diff --git a/Content.Shared/Contraband/ContrabandComponent.cs b/Content.Shared/Contraband/ContrabandComponent.cs
index 883f503ba6..a4ce652f2f 100644
--- a/Content.Shared/Contraband/ContrabandComponent.cs
+++ b/Content.Shared/Contraband/ContrabandComponent.cs
@@ -7,13 +7,14 @@ namespace Content.Shared.Contraband;
///
/// This is used for marking entities that are considered 'contraband' IC and showing it clearly in examine.
///
-[RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem))]
+[RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem)), AutoGenerateComponentState]
public sealed partial class ContrabandComponent : Component
{
///
/// The degree of contraband severity this item is considered to have.
///
[DataField]
+ [AutoNetworkedField]
public ProtoId Severity = "Restricted";
///
@@ -22,5 +23,6 @@ public sealed partial class ContrabandComponent : Component
/// If null, no departments are allowed to use this.
///
[DataField]
+ [AutoNetworkedField]
public HashSet>? AllowedDepartments = ["Security"];
}
diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
index 5520b6751a..44df034ee9 100644
--- a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
+++ b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
@@ -234,7 +234,7 @@
coverage: EYES
- type: entity
- parent: ClothingEyesBase
+ parent: [ClothingEyesBase, BaseMajorContraband]
id: ClothingEyesVisorNinja
name: ninja visor
description: An advanced visor protecting a ninja's eyes from flashing lights.
diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
index 684ef791ec..d5d3b64e0f 100644
--- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
+++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
@@ -202,7 +202,7 @@
- type: FingerprintMask
- type: entity
- parent: [ClothingHandsBase, BaseToggleClothing]
+ parent: [ClothingHandsBase, BaseToggleClothing, BaseMajorContraband]
id: ClothingHandsGlovesSpaceNinja
name: space ninja gloves
description: These black nano-enhanced gloves insulate from electricity and provide fire resistance.
@@ -255,7 +255,7 @@
- type: CriminalRecordsHacker
- type: entity
- parent: [ClothingHandsGlovesColorBlack, BaseMinorContraband]
+ parent: [ClothingHandsGlovesColorBlack, BaseSecurityEngineeringContraband]
id: ClothingHandsGlovesCombat
name: combat gloves
description: These tactical gloves are fireproof and shock resistant.
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
index 1d5fbb0119..a04bdde31f 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
@@ -127,7 +127,7 @@
slots: WITHOUT_POCKET
- type: entity
- parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing]
+ parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing, BaseMajorContraband]
id: ClothingOuterSuitSpaceNinja
name: space ninja suit
description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation.
diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml b/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml
index 80d5eab249..c8a3e615f3 100644
--- a/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml
+++ b/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml
@@ -111,7 +111,7 @@
- type: NoSlip
- type: entity
- parent: ClothingShoesBaseButcherable
+ parent: [ClothingShoesBaseButcherable, BaseMajorContraband]
id: ClothingShoesSpaceNinja
name: space ninja shoes
description: A pair of nano-enhanced boots with built-in magnetic suction cups.
diff --git a/Resources/Prototypes/Entities/Objects/Misc/handy_flags.yml b/Resources/Prototypes/Entities/Objects/Misc/handy_flags.yml
index 61162edf2c..6df1a39dc8 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/handy_flags.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/handy_flags.yml
@@ -23,7 +23,7 @@
sprite: Objects/Misc/Handy_Flags/NT_handy_flag.rsi
- type: entity
- parent: BaseItem
+ parent: [BaseItem, BaseSyndicateContraband]
id: SyndieHandyFlag
name: syndicate handheld flag
description: "For truly rebellious patriots. Death to NT!"
diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml
index 478521bcfd..7d392e016d 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml
@@ -566,7 +566,7 @@
stealGroup: BoxFolderQmClipboard
- type: entity
- parent: Paper
+ parent: [Paper, BaseSyndicateContraband] # eat or burn your damn piece of paper damn thieves
id: TraitorCodePaper
name: syndicate codeword
description: A leaked codeword to possibly get in touch with the Syndicate.
@@ -575,7 +575,7 @@
- type: TraitorCodePaper
- type: entity
- parent: Paper
+ parent: [Paper, BaseSyndicateContraband]
id: AllTraitorCodesPaper
name: syndicate codewords registry
description: A registry of all active Syndicate codewords.
diff --git a/Resources/Prototypes/Entities/Objects/Misc/pen.yml b/Resources/Prototypes/Entities/Objects/Misc/pen.yml
index 2ff0a2258b..e5a96f26e3 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/pen.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/pen.yml
@@ -57,10 +57,8 @@
heldPrefix: luxury_pen
- type: entity
- name: Cybersun pen
- parent: [PenEmbeddable, BaseSyndicateContraband]
- id: CyberPen
- description: A high-tech pen straight from Cybersun's legal department, capable of refracting hard-light at impossible angles through its diamond tip in order to write. So powerful, it's even able to rewrite officially stamped documents should the need arise.
+ id: BaseAdvancedPen
+ parent: PenEmbeddable
components:
- type: Tag
tags:
@@ -68,10 +66,6 @@
- WriteIgnoreStamps
- Pickaxe
- Pen
- - type: Sprite
- state: overpriced_pen
- - type: Item
- heldPrefix: overpriced_pen
- type: MeleeWeapon
wideAnimationRotation: -45
damage:
@@ -81,10 +75,32 @@
path: /Audio/Weapons/bladeslice.ogg
- type: Tool
qualities:
- - Screwing
+ - Screwing
useSound:
collection: Screwdriver
+- type: entity
+ name: Cybersun pen
+ parent: [BaseAdvancedPen, BaseSyndicateContraband]
+ id: CyberPen
+ description: A high-tech pen straight from Cybersun's legal department, capable of refracting hard-light at impossible angles through its diamond tip in order to write. So powerful, it's even able to rewrite officially stamped documents should the need arise.
+ components:
+ - type: Sprite
+ state: overpriced_pen
+ - type: Item
+ heldPrefix: overpriced_pen
+
+- type: entity
+ name: CentComm pen
+ parent: [BaseAdvancedPen, BaseCommandContraband]
+ id: PenCentcom
+ description: In an attempt to keep up with the "power" of the cybersun bureaucracy, NT made a replica of cyber pen, in their corporate style.
+ components:
+ - type: Sprite
+ state: pen_centcom
+ - type: Item
+ heldPrefix: pen_centcom
+
- type: entity
name: captain's fountain pen
parent: PenEmbeddable
@@ -94,17 +110,6 @@
- type: Sprite
state: pen_cap
-- type: entity
- name: CentComm pen
- parent: CyberPen
- id: PenCentcom
- description: In an attempt to keep up with the "power" of the cybersun bureaucracy, NT made a replica of cyber pen, in their corporate style.
- components:
- - type: Sprite
- state: pen_centcom
- - type: Item
- heldPrefix: pen_centcom
-
- type: entity
name: hop's fountain pen
parent: PenEmbeddable
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
index e60c955f4e..4aa7ae7ba1 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -199,10 +199,10 @@
- type: Appearance
- type: entity
- name: laser rifle
- parent: [BaseWeaponBattery, BaseGunWieldable, BaseRestrictedContraband]
- id: WeaponLaserCarbine
- description: Favoured by Nanotrasen Security for being cheap and easy to use.
+ name: practice laser rifle
+ parent: [BaseWeaponBattery, BaseGunWieldable]
+ id: WeaponLaserCarbinePractice
+ description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
@@ -214,28 +214,28 @@
shader: unshaded
- type: Clothing
sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
- - type: StaticPrice
- price: 420
- type: Gun
selectedMode: SemiAuto
availableModes:
- SemiAuto
- - type: HitscanBatteryAmmoProvider
- proto: RedLaser
- fireCost: 62.5
-
-- type: entity
- name: practice laser rifle
- parent: WeaponLaserCarbine
- id: WeaponLaserCarbinePractice
- description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
- components:
- type: HitscanBatteryAmmoProvider
proto: RedLaserPractice
fireCost: 62.5
- type: StaticPrice
price: 300
+- type: entity
+ name: laser rifle
+ parent: [WeaponLaserCarbinePractice, BaseGunWieldable, BaseRestrictedContraband]
+ id: WeaponLaserCarbine
+ description: Favoured by Nanotrasen Security for being cheap and easy to use.
+ components:
+ - type: StaticPrice
+ price: 420
+ - type: HitscanBatteryAmmoProvider
+ proto: RedLaser
+ fireCost: 62.5
+
- type: entity
name: pulse pistol
parent: BaseWeaponBatterySmall
@@ -406,46 +406,71 @@
zeroVisible: true
- type: Appearance
+- type: entity
+ name: practice disabler
+ parent: BaseWeaponBatterySmall
+ id: WeaponDisablerPractice
+ description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. This one has been undertuned for cadets making it mostly harmless.
+ components:
+ - type: Sprite
+ sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
+ layers:
+ - state: base
+ map: ["enum.GunVisualLayers.Base"]
+ - state: mag-unshaded-0
+ map: ["enum.GunVisualLayers.MagUnshaded"]
+ shader: unshaded
+ - type: Clothing
+ sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
+ quickEquip: false
+ slots:
+ - Belt
+ - type: Appearance
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: true
+ - type: StaticPrice
+ price: 100
+ - type: Gun
+ fireRate: 2
+ soundGunshot:
+ path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
+ - type: ProjectileBatteryAmmoProvider
+ proto: BulletDisablerPractice
+ fireCost: 100
+ - type: Tag
+ tags:
+ - Taser
+ - Sidearm
+
- type: entity
name: disabler
- parent: [ BaseWeaponBatterySmall, BaseSecurityCommandContraband ]
+ parent: [ WeaponDisablerPractice, BaseSecurityCommandContraband ]
id: WeaponDisabler
description: A self-defense weapon that exhausts organic targets, weakening them until they collapse.
components:
- - type: Tag
- tags:
- - Taser
- - Sidearm
- - type: Sprite
- sprite: Objects/Weapons/Guns/Battery/disabler.rsi
- layers:
- - state: base
- map: ["enum.GunVisualLayers.Base"]
- - state: mag-unshaded-0
- map: ["enum.GunVisualLayers.MagUnshaded"]
- shader: unshaded
- - type: Clothing
- sprite: Objects/Weapons/Guns/Battery/disabler.rsi
- quickEquip: false
- slots:
- - suitStorage
- - Belt
- - type: Gun
- fireRate: 2
- soundGunshot:
- path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
- - type: ProjectileBatteryAmmoProvider
- proto: BulletDisabler
- fireCost: 100
- - type: MagazineVisuals
- magState: mag
- steps: 5
- zeroVisible: true
- - type: Appearance
- - type: GuideHelp
- guides:
- - Security
- - Antagonists
+ - type: Sprite
+ sprite: Objects/Weapons/Guns/Battery/disabler.rsi
+ layers:
+ - state: base
+ map: ["enum.GunVisualLayers.Base"]
+ - state: mag-unshaded-0
+ map: ["enum.GunVisualLayers.MagUnshaded"]
+ shader: unshaded
+ - type: Clothing
+ sprite: Objects/Weapons/Guns/Battery/disabler.rsi
+ quickEquip: false
+ slots:
+ - suitStorage
+ - Belt
+ - type: ProjectileBatteryAmmoProvider
+ proto: BulletDisabler
+ fireCost: 100
+ - type: GuideHelp
+ guides:
+ - Security
+ - Antagonists
- type: entity
name: disabler SMG
@@ -485,31 +510,6 @@
- type: StaticPrice
price: 260
-- type: entity
- name: practice disabler
- parent: WeaponDisabler
- id: WeaponDisablerPractice
- description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. This one has been undertuned for cadets making it mostly harmless.
- components:
- - type: Sprite
- sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
- layers:
- - state: base
- map: ["enum.GunVisualLayers.Base"]
- - state: mag-unshaded-0
- map: ["enum.GunVisualLayers.MagUnshaded"]
- shader: unshaded
- - type: Clothing
- sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
- quickEquip: false
- slots:
- - Belt
- - type: StaticPrice
- price: 100
- - type: ProjectileBatteryAmmoProvider
- proto: BulletDisablerPractice
- fireCost: 100
-
- type: entity
name: taser
parent: [ BaseWeaponBatterySmall, BaseRestrictedContraband ]
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
index d16afb5478..64280542db 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
@@ -53,7 +53,7 @@
- type: entity
name: AKMS
- parent: [BaseWeaponRifle, BaseMinorContraband]
+ parent: [BaseWeaponRifle, BaseMajorContraband]
id: WeaponRifleAk
description: An iconic weapon of war. Uses .30 rifle ammo.
components:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
index 53ddd96178..e364809b50 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
@@ -1,8 +1,7 @@
- type: entity
- name: energy sword
- parent: [BaseItem, BaseSyndicateContraband]
- id: EnergySword
- description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Cuts through unarmored targets like butter.
+ id: BaseMeleeWeaponEnergy # more generic naming in case someone makes like, idk, an energy axe
+ parent: BaseItem
+ abstract: true
components:
- type: EnergySword
- type: ItemToggle
@@ -38,19 +37,10 @@
params:
variation: 0.125
activatedDamage:
- types:
- Slash: 15
- Heat: 15
- Structural: 20
- - type: Sprite
- sprite: Objects/Weapons/Melee/e_sword.rsi
- layers:
- - state: e_sword
- - state: e_sword_blade
- color: "#FFFFFF"
- visible: false
- shader: unshaded
- map: [ "blade" ]
+ types:
+ Slash: 15
+ Heat: 15
+ Structural: 20
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 1
@@ -59,7 +49,6 @@
Blunt: 4.5
- type: Item
size: Small
- sprite: Objects/Weapons/Melee/e_sword-inhands.rsi
- type: UseDelay
delay: 1.0
- type: PointLight
@@ -82,9 +71,27 @@
- type: IgnitionSource
temperature: 700
+- type: entity
+ name: energy sword
+ parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
+ id: EnergySword
+ description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Cuts through unarmored targets like butter.
+ components:
+ - type: Sprite
+ sprite: Objects/Weapons/Melee/e_sword.rsi
+ layers:
+ - state: e_sword
+ - state: e_sword_blade
+ color: "#FFFFFF"
+ visible: false
+ shader: unshaded
+ map: [ "blade" ]
+ - type: Item
+ sprite: Objects/Weapons/Melee/e_sword-inhands.rsi
+
- type: entity
name: energy dagger
- parent: EnergySword
+ parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
id: EnergyDaggerLoud
description: A not as loud and dangerous dagger with a beam made of pure, concentrated plasma. This one is completely undisguised.
components:
@@ -139,30 +146,16 @@
- type: Item
size: Tiny
sprite: Objects/Weapons/Melee/e_dagger_loud.rsi
- - type: UseDelay
- delay: 1.0
- type: PointLight
enabled: false
radius: 1.5
energy: 1.5
color: white
netsync: false
- - type: Appearance
- - type: ToggleableLightVisuals
- spriteLayer: blade
- inhandVisuals:
- left:
- - state: inhand-left-blade
- shader: unshaded
- right:
- - state: inhand-right-blade
- shader: unshaded
- - type: DisarmMalus
- malus: 0
- type: entity
name: pen
- parent: EnergyDaggerLoud
+ parent: BaseMeleeWeaponEnergy
id: EnergyDagger
suffix: E-Dagger
description: 'A dark ink pen.'
@@ -181,6 +174,26 @@
path: /Audio/Weapons/ebladehum.ogg
params:
volume: -6
+ - type: ItemToggleMeleeWeapon
+ activatedSoundOnSwing:
+ path: /Audio/Weapons/eblademiss.ogg
+ params:
+ volume: -3
+ variation: 0.250
+ activatedDamage:
+ types:
+ Slash: 10
+ Heat: 10
+ - type: ComponentToggler
+ components:
+ - type: Sharp
+ - type: DisarmMalus
+ malus: 0.4
+ - type: Execution
+ doAfterDuration: 4.0
+ - type: Contraband
+ severity: Syndicate
+ allowedDepartments: null
- type: Sprite
sprite: Objects/Weapons/Melee/e_dagger.rsi
layers:
@@ -193,6 +206,19 @@
- type: Item
size: Tiny
sprite: Objects/Weapons/Melee/e_dagger.rsi
+ - type: PointLight
+ enabled: false
+ radius: 1.5
+ energy: 1.5
+ color: white
+ netsync: false
+ - type: MeleeWeapon
+ wideAnimationRotation: 145
+ attackRate: 1
+ hidden: true
+ damage:
+ types:
+ Blunt: 1
- type: Tag
tags:
- Write
@@ -217,7 +243,7 @@
- type: entity
name: energy cutlass
- parent: EnergySword
+ parent: [BaseMeleeWeaponEnergy, BaseMajorContraband]
id: EnergyCutlass
description: An exotic energy weapon.
components:
@@ -237,21 +263,11 @@
shader: unshaded
map: [ "blade" ]
- type: Item
- size: Small
sprite: Objects/Weapons/Melee/e_cutlass.rsi
- - type: ToggleableLightVisuals
- spriteLayer: blade
- inhandVisuals:
- left:
- - state: inhand-left-blade
- shader: unshaded
- right:
- - state: inhand-right-blade
- shader: unshaded
- type: entity
name: double-bladed energy sword
- parent: EnergySword
+ parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
id: EnergySwordDouble
description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. This can be stored in pockets.
components:
@@ -312,17 +328,6 @@
- type: Reflect
reflectProb: .75
spread: 75
- - type: UseDelay
- delay: 1
- - type: ToggleableLightVisuals
- spriteLayer: blade
- inhandVisuals:
- left:
- - state: inhand-left-blade
- shader: unshaded
- right:
- - state: inhand-right-blade
- shader: unshaded
- type: entity
suffix: One-Handed, For Borgs
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
index dd00c2054a..586247bb3a 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
@@ -43,7 +43,7 @@
- type: entity
name: katana
- parent: [ BaseSword, BaseMinorContraband ]
+ parent: [ BaseSword, BaseMajorContraband ]
id: Katana
description: Ancient craftwork made with not so ancient plasteel.
components:
@@ -93,7 +93,7 @@
- type: entity
name: machete
- parent: [ BaseSword, BaseMinorContraband ]
+ parent: [ BaseSword, BaseMajorContraband ]
id: Machete
description: A large, vicious looking blade.
components:
@@ -114,7 +114,7 @@
- type: entity
name: claymore
- parent: [ BaseSword, BaseMinorContraband ]
+ parent: [ BaseSword, BaseMajorContraband ]
id: Claymore
description: An ancient war blade.
components:
@@ -136,7 +136,7 @@
- type: entity
name: cutlass
- parent: [ BaseSword, BaseMinorContraband ]
+ parent: [ BaseSword, BaseMajorContraband ]
id: Cutlass
description: A wickedly curved blade, often seen in the hands of space pirates.
components:
@@ -157,7 +157,7 @@
- type: entity
name: Throngler
- parent: [ BaseSword, BaseMinorContraband ]
+ parent: [ BaseSword, BaseMajorContraband ]
id: Throngler
description: Why would you make this?
components:
diff --git a/Resources/Prototypes/Entities/Objects/base_contraband.yml b/Resources/Prototypes/Entities/Objects/base_contraband.yml
index 84783ccf7d..fffa4b506c 100644
--- a/Resources/Prototypes/Entities/Objects/base_contraband.yml
+++ b/Resources/Prototypes/Entities/Objects/base_contraband.yml
@@ -60,6 +60,14 @@
- type: Contraband
allowedDepartments: [ Security, Science, Command ]
+- type: entity
+ id: BaseSecurityEngineeringContraband
+ parent: BaseRestrictedContraband
+ abstract: true
+ components:
+ - type: Contraband
+ allowedDepartments: [ Security, Engineering ]
+
- type: entity
id: BaseEngineeringContraband
parent: BaseRestrictedContraband