Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Content.Shared/_NF/Shipyard/SharedShipyardSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public enum ShipyardConsoleUiKey : byte
Ussp,
SHM,
DrakeIndustries,
Viper,
// Add ships to this key if they are only available from mothership consoles. Shipyards using it are inherently empty and are populated using the ShipyardListingComponent.
Custom
}
Expand Down
3 changes: 2 additions & 1 deletion Resources/Locale/en-US/_Mono/job/department-desc.ftl
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
department-PMC-description = Combat focused contractors, who have less restrictions on gear they can carry.
department-Medical-description = Emergency medical responders, deployed across space for rapid aid and rescue.
department-Medical-description = Emergency medical responders, deployed across space for rapid aid and rescue.
department-Viper-description = Elite contractors belonging to a company of syndicate origins.
1 change: 1 addition & 0 deletions Resources/Locale/en-US/_Mono/job/department.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ department-PMC = Private Military Contractors
department-UnionOfSovietSocialistPlanets = Union of Soviet Socialist Planets
department-UnionOfSovietSocialistPlanets-description = Serve the glorious Union in space against TSFMC and PDV forces.
department-Medical = Medical Dispatch
department-Viper = Viper Group
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/_Mono/job/job-description.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ job-description-tsf-borg = Half-human, Half-machine. Follow your laws, serve the

# MARK: PDV
job-description-pdv-borg = Half-human, Half-machine. Follow your laws, serve the PDV, and beg dynasty troops for upgrades.

# MARK: Viper Group
job-description-vg-infanteer = Serve the Union in space. Follow orders from your superiors and spread socialist ideals throughout the cosmos.
job-description-vg-lieutenant = Serve the Union in space. Follow orders from your superiors and spread socialist ideals throughout the cosmos.
job-description-vg-commander = Serve the Union in space. Follow orders from your superiors and spread socialist ideals throughout the cosmos.
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/_Mono/job/job-names.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,8 @@ job-name-tsf-borg = TSFMC Cyborg

# MARK: PDV
job-name-pdv-borg = PDV Cyborg

# MARK: Viper Group
job-name-vg-infanteer = VG Infanteer
job-name-vg-lieutenant = VG Lieutenant
job-name-vg-commander = VG Commander
5 changes: 4 additions & 1 deletion Resources/Locale/en-US/_Mono/job/job-supervisors.ftl
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
job-supervisors-doc = Director of Care
job-supervisors-doc = Director of Care
job-supervisors-vg-infanteer = the lieutenant
job-supervisors-vg-lieutenant = the commander
job-supervisors-vg-commander = Sidewinder-01
13 changes: 12 additions & 1 deletion Resources/Locale/en-US/_Mono/navmap-beacons/station-beacons.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,15 @@ station-beacon-ussp-cargo = USSP Cargo
station-beacon-ussp-brig = USSP Brig
station-beacon-ussp-servers = USSP Servers
station-beacon-exped-lounge = Expeditionary Lounge
station-beacon-mail-room = Post Office
station-beacon-mail-room = Post Office
station-beacon-viper-shipyard = Viper Group Shipyard
station-beacon-viper-dock-alpha = Viper Group Dock Alpha
station-beacon-viper-dock-beta = Viper Group Dock Beta
station-beacon-viper-control = Viper Group Control Room
station-beacon-viper-reception = Viper Group Reception
station-beacon-viper-dorms = Viper Group Dorms
station-beacon-viper-commander = Commander
station-beacon-viper-armory = Viper Group Armory
station-beacon-viper-cargo = Viper Group Cargo
station-beacon-viper-brig = Viper Group Brig
station-beacon-viper-servers = Viper Group Servers
3 changes: 3 additions & 0 deletions Resources/Locale/en-US/_Mono/prototypes/access/accesses.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ id-card-access-level-pdv-vizier = PDV Grand Vizier
id-card-access-level-pdv-command = PDV Command

id-card-access-level-tsf-engineer = TSF Engineering

id-card-access-level-vg = Viper Group
id-card-access-level-vg-high = Viper Group Command
1 change: 1 addition & 0 deletions Resources/Locale/en-US/_Mono/radio.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ chat-radio-letoferol = Letoferol Chimera Hivemind
chat-radio-cortical-borer = Cortical Borer Hivemind
chat-radio-remnants = Remnants
chat-radio-monolithic = Monolith Connection
chat-radio-viper = Viper Group
2,469 changes: 2,469 additions & 0 deletions Resources/Maps/_Mono/Shuttles/Viper/reaver.yml

Large diffs are not rendered by default.

1,890 changes: 1,890 additions & 0 deletions Resources/Maps/_Mono/Shuttles/Viper/talonuran.yml

Large diffs are not rendered by default.

32 changes: 26 additions & 6 deletions Resources/Maps/_Mono/Test/dev_map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ meta:
engineVersion: 271.2.0
forkId: ""
forkVersion: ""
time: 03/28/2026 18:51:07
entityCount: 1706
time: 05/13/2026 10:42:36
entityCount: 1709
maps:
- 1
grids:
Expand Down Expand Up @@ -398,16 +398,17 @@ entities:
- type: StationTransit
- type: SpreaderGrid
spreadQueues:
Smoke: []
Puddle: []
MetalFoam: []
Puddle: []
Smoke: []
Kudzu: []
- type: GridPathfinding
- type: NavMap
- type: ShipGridLock
locked: False
- type: CloakHeat
lastUpdateTime: 0
- type: ThermalSignature
- uid: 3
components:
- type: MetaData
Expand Down Expand Up @@ -7482,8 +7483,6 @@ entities:
rot: -1.5707963267948966 rad
pos: -3.7517176,-10.459884
parent: 2
- proto: ShipVoucherTsfT0
entities:
- uid: 1087
components:
- type: Transform
Expand Down Expand Up @@ -7993,6 +7992,27 @@ entities:
- type: Transform
pos: -3.5,2.5
parent: 2
- proto: SpawnPointVGCommander
entities:
- uid: 1707
components:
- type: Transform
pos: -4.5,1.5
parent: 2
- proto: SpawnPointVGInfanteer
entities:
- uid: 1708
components:
- type: Transform
pos: -4.5,1.5
parent: 2
- proto: SpawnPointVGLieutenant
entities:
- uid: 1709
components:
- type: Transform
pos: -4.5,1.5
parent: 2
- proto: SpawnVehicleATV
entities:
- uid: 1159
Expand Down
20 changes: 20 additions & 0 deletions Resources/Prototypes/_Mono/Access/vipergroup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
- type: accessLevel
id: Viper
name: id-card-access-level-vg

- type: accessLevel
id: ViperCommand
name: id-card-access-level-vg-command

- type: accessGroup
id: ViperHigh
tags:
- Viper
- ViperCommand
- Mercenary

- type: accessGroup
id: ViperLow
tags:
- Viper
- Mercenary
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- id: ClothingShoesBootsMagSecurity
- type: AccessReader
access: [["Mercenary"]]

- type: entity
id: SuitStorageUsspL10
parent: SuitStorageBase
Expand Down Expand Up @@ -144,3 +144,39 @@
- id: ClothingShoesBootsMagSyndie
- id: ClothingMaskGasSyndicate
- id: JetpackBlackFilled # Frontier

# Viper Group

- type: entity
id: SuitStorageViperWL
parent: SuitStorageBase
suffix: Viper Group - Warlord
components:
- type: StorageFill
contents:
- id: OxygenTankFilled
- id: NitrogenTankFilled
- id: ClothingOuterHardsuitViperGroupInitiate
- id: ClothingMaskGasSecurity
- id: JetpackMiniFilled
- id: ClothingShoesBootsMagSecurity
- id: ClothingNeckViperGroupMantle
- type: AccessReader
access: [ [ "Viper" ] ]

- type: entity
id: SuitStorageViperJackal
parent: SuitStorageBase
suffix: Viper Group - Jackal
components:
- type: StorageFill
contents:
- id: OxygenTankFilled
- id: NitrogenTankFilled
- id: ClothingOuterHardsuitViperGroupStandard
- id: ClothingMaskGasSecurity
- id: JetpackMiniFilled
- id: ClothingShoesBootsMagSecurity
- id: ClothingNeckViperGroupMantle
- type: AccessReader
access: [ [ "Viper" ] ]
Original file line number Diff line number Diff line change
Expand Up @@ -334,3 +334,13 @@
- type: entity
parent: [ SuitStorageWallmount, SuitStorageM86 ]
id: SuitStorageWallmountM86

# Viper Group

- type: entity
parent: [ SuitStorageWallmount, SuitStorageViperWL ]
id: SuitStorageWallmountViperWL

- type: entity
parent: [ SuitStorageWallmount, SuitStorageViperJackal ]
id: SuitStorageWallmountViperJackal
27 changes: 27 additions & 0 deletions Resources/Prototypes/_Mono/Entities/Clothing/Ears/headsets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,30 @@
- EncryptionKeyCentCom
- EncryptionKeyStationMasterSR
- EncryptionKeyDiplomacy

#Viper Group

- type: entity
parent: ClothingHeadsetAlt
id: ClothingHeadsetViper
name: Viper Group headset
description: The standard-issue headset of Viper Group mercenaries, This headset will accept standard encryption keys and comes prefitted with a key for Tactical Communications.
components:
- type: Sprite
sprite: _Mono/Clothing/Ears/Headsets/viper.rsi
- type: Clothing
sprite: _Mono/Clothing/Ears/Headsets/viper.rsi
- type: ContainerFill
containers:
key_slots:
- EncryptionKeyCommon
- EncryptionKeyViper

- type: entity
parent: ClothingHeadsetViper
id: ClothingHeadsetViperAlt
components:
- type: Sprite
sprite: _Mono/Clothing/Ears/Headsets/viperalt.rsi
- type: Clothing
sprite: _Mono/Clothing/Ears/Headsets/viperalt.rsi
35 changes: 35 additions & 0 deletions Resources/Prototypes/_Mono/Entities/Markers/Spawners/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,38 @@
state: robot
- sprite: Mobs/Silicon/chassis.rsi
state: robot_e

# Viper Group

- type: entity
id: SpawnPointVGInfanteer
parent: SpawnPointJobBase
name: VG Infanteer
components:
- type: SpawnPoint
job_id: VGInfanteer
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-red

- type: entity
id: SpawnPointVGLieutenant
parent: SpawnPointJobBase
name: VG Lieutenant
components:
- type: SpawnPoint
job_id: VGLieutenant
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-red

- type: entity
id: SpawnPointVGCommander
parent: SpawnPointJobBase
name: VG Commander
components:
- type: SpawnPoint
job_id: VGCommander
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-red
Original file line number Diff line number Diff line change
Expand Up @@ -202,3 +202,55 @@
type: ChameleonBoundUserInterface
- type: Contraband # Frontier
hideValues: true # Frontier

#MARK: Viper Group
- type: entity
parent: IDCardStandard
id: VGInfanteerIDCard
name: VG infanteer ID card
components:
- type: PresetIdCard
job: VGInfanteer
- type: Sprite
sprite: _Mono/Objects/Misc/id_cards.rsi
layers:
- state: vgbase
- state: id_infanteer
- type: Clothing
sprite: Objects/Misc/id_cards.rsi
- type: Item
heldPrefix: default

- type: entity
parent: IDCardStandard
id: VGLieutenantIDCard
name: VG lieutenant ID card
components:
- type: PresetIdCard
job: VGLieutenant
- type: Sprite
sprite: _Mono/Objects/Misc/id_cards.rsi
layers:
- state: vgbase
- state: id_lieutenant
- type: Clothing
sprite: Objects/Misc/id_cards.rsi
- type: Item
heldPrefix: default

- type: entity
parent: IDCardStandard
id: VGCommanderIDCard
name: VG commander ID card
components:
- type: PresetIdCard
job: VGCommander
- type: Sprite
sprite: _Mono/Objects/Misc/id_cards.rsi
layers:
- state: vgbase
- state: id_commander
- type: Clothing
sprite: Objects/Misc/id_cards.rsi
- type: Item
heldPrefix: default
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,19 @@
components:
- type: AccessReader
access: [["PDVCommand"]]

- type: entity
parent: DoorElectronics
id: DoorElectronicsViper
suffix: Viper Group, Locked
components:
- type: AccessReader
access: [["Viper"]]

- type: entity
parent: DoorElectronics
id: DoorElectronicsViperCommand
suffix: Viper Group Command, Locked
components:
- type: AccessReader
access: [["ViperCommand"]]
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,23 @@
#- Nfsd #Deliberately excluded: You don't command them
#- Freelance
defaultChannel: Command

- type: entity
parent: EncryptionKey
id: EncryptionKeyViper
name: ViperGroup encryption key
description: An encryption key for the Viper Group tactical-level communications channel.
components:
- type: EncryptionKey
channels:
- Viper
defaultChannel: Viper
- type: Item
sprite: _Mono/Objects/Devices/encryption_keys.rsi
- type: Sprite
sprite: _Mono/Objects/Devices/encryption_keys.rsi
layers:
- state: crypt_red
- state: viper_label
#- type: PirateBountyItem
# id: EncryptionKeyFaction > Unsure if these should stay as the USSP minor faction/company has it.
Loading
Loading