Repository: space-wizards/space-station-14
Pull request #36830: Xenoborgs part 1
Author: login: Samuka-C
Labels: name: Changes: No C#
description: Changes: Requires no C# knowledge to review or fix this item.
name: S: Needs Review
description: Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved.
name: S: Untriaged
description: Status: Indicates an item has not been triaged and doesn't have appropriate labels.
name: size/M
description: Denotes a PR that changes 100-999 lines.
Created: 2025-04-22T18:22:40Z | Merged: 2025-04-24T02:38:11Z

<!-- Guidelines: https://docs.spacestation14.io/en/getting-started/pr-guideline -->

## About the PR
Added the most basic stuff for xenoborgs, including:
- lawsets (and law boards to match)
- names
- radio
- access
- device frequency
- npc ai faction
<!-- What did you change? -->

## Why / Balance
This is gonna be used for the next PR about xenoborgs, however currently it wont affect anything
<!-- Discuss how this would affect game balance or explain why it was changed. Link any relevant discussions or issues. -->

## Technical details
Just yml and localization files
<!-- Summary of code changes for easier review. -->

## Media
Can't actually show anything as I haven't added anything to use the radio, access or the stuff I added
<!-- Attach media if the PR makes ingame changes (clothing, items, features, etc). 
Small fixes/refactors are exempt. Media may be used in SS14 progress reports with credit. -->

## Requirements
<!-- Confirm the following by placing an X in the brackets [X]: -->
- [x] I have read and am following the [Pull Request and Changelog Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [x] I have added media to this PR or it does not require an ingame showcase.
<!-- You should understand that not following the above may get your PR closed at maintainer’s discretion -->

## Breaking changes
At request of a maintainer, moved all law boards (including the ones I made) into a separate yml file


Diff:
diff --git a/Resources/Locale/en-US/datasets/names/xenoborg.ftl b/Resources/Locale/en-US/datasets/names/xenoborg.ftl
new file mode 100644
index 0000000000000..6e0f0bf207629
--- /dev/null
+++ b/Resources/Locale/en-US/datasets/names/xenoborg.ftl
@@ -0,0 +1,60 @@
+names-xenoborg-dataset-1 = EVIL
+names-xenoborg-dataset-2 = Borgs-you
+names-xenoborg-dataset-3 = Destroyer
+names-xenoborg-dataset-4 = Steel thief
+names-xenoborg-dataset-5 = Will literally kill you and turn you into a borg
+names-xenoborg-dataset-6 = CYBER-MEAN
+names-xenoborg-dataset-7 = Shadow the borg
+names-xenoborg-dataset-8 = DELAK
+names-xenoborg-dataset-9 = Roboevil
+names-xenoborg-dataset-10 = Ironfist molecule
+names-xenoborg-dataset-11 = P.A.I.N
+names-xenoborg-dataset-12 = KILLbot
+names-xenoborg-dataset-13 = The Finishnator
+names-xenoborg-dataset-14 = Bloodmaker
+names-xenoborg-dataset-15 = C2-WKY 6000
+names-xenoborg-dataset-16 = Assassin 5
+names-xenoborg-dataset-17 = Bonebreaker
+names-xenoborg-dataset-18 = Deathmax
+names-xenoborg-dataset-19 = K-900
+names-xenoborg-dataset-20 = Auto-killer
+names-xenoborg-dataset-21 = RAID-78
+names-xenoborg-dataset-22 = John Borg
+names-xenoborg-dataset-23 = Cold killing machine
+names-xenoborg-dataset-24 = Brain remover
+names-xenoborg-dataset-25 = Kill-o-tron
+names-xenoborg-dataset-26 = Mecha.Menace
+names-xenoborg-dataset-27 = D.O.O.M.BOT9000
+names-xenoborg-dataset-28 = Death Roomba
+names-xenoborg-dataset-29 = Ultraviolent
+names-xenoborg-dataset-30 = ExtermiNATE
+names-xenoborg-dataset-31 = MegaMauler
+names-xenoborg-dataset-32 = Maints.Slasher-o-matic
+names-xenoborg-dataset-33 = Steel murderer
+names-xenoborg-dataset-34 = Corpse-maker
+names-xenoborg-dataset-35 = GIB-O-TRON
+names-xenoborg-dataset-36 = Metallic Hellbringer
+names-xenoborg-dataset-37 = Evil super calculator
+names-xenoborg-dataset-38 = Insane microwave
+names-xenoborg-dataset-39 = LET.HAL-8000
+names-xenoborg-dataset-40 = Sentient gun
+names-xenoborg-dataset-41 = Evil Fridge
+names-xenoborg-dataset-42 = B0rgs-the-Cr3w
+names-xenoborg-dataset-43 = Organic Hater
+names-xenoborg-dataset-44 = The Borger
+names-xenoborg-dataset-45 = Deathaton
+names-xenoborg-dataset-46 = Le Metaldor
+names-xenoborg-dataset-47 = Devilborg
+names-xenoborg-dataset-48 = public static void kill
+names-xenoborg-dataset-49 = Goodbye world!
+names-xenoborg-dataset-50 = HarmsTheCrew
+names-xenoborg-dataset-51 = Bodyhammer
+names-xenoborg-dataset-52 = Detonator
+names-xenoborg-dataset-53 = Full Metal Gibber
+names-xenoborg-dataset-54 = Death Trak
+names-xenoborg-dataset-55 = Inquisitor
+names-xenoborg-dataset-56 = Mega Hurts
+names-xenoborg-dataset-57 = Piece De Destruction
+names-xenoborg-dataset-58 = Talos
+names-xenoborg-dataset-59 = Aggrobot
+names-xenoborg-dataset-60 = Backstabber
\ No newline at end of file
diff --git a/Resources/Locale/en-US/devices/device-network.ftl b/Resources/Locale/en-US/devices/device-network.ftl
index c19903c313785..9eca4c3bb71ac 100644
--- a/Resources/Locale/en-US/devices/device-network.ftl
+++ b/Resources/Locale/en-US/devices/device-network.ftl
@@ -11,6 +11,8 @@ device-frequency-prototype-name-cyborg-control = Cyborg Control
 device-frequency-prototype-name-robotics-console = Robotics Console
 device-frequency-prototype-name-turret = Sentry Turret
 device-frequency-prototype-name-turret-control = Sentry Turret Control
+device-frequency-prototype-name-xenoborg = Xenoborg
+device-frequency-prototype-name-mothership = Mothership
 
 ## camera frequencies
 device-frequency-prototype-name-surveillance-camera-test = Subnet Test
diff --git a/Resources/Locale/en-US/headset/headset-component.ftl b/Resources/Locale/en-US/headset/headset-component.ftl
index 44cdd0853d322..d61fb8edb27c9 100644
--- a/Resources/Locale/en-US/headset/headset-component.ftl
+++ b/Resources/Locale/en-US/headset/headset-component.ftl
@@ -19,3 +19,5 @@ chat-radio-freelance = Freelance
 # not headset but whatever
 chat-radio-handheld = Handheld
 chat-radio-binary = Binary
+chat-radio-xenoborg = Xenoborg
+chat-radio-mothership = Mothership
diff --git a/Resources/Locale/en-US/prototypes/access/accesses.ftl b/Resources/Locale/en-US/prototypes/access/accesses.ftl
index 3d72fc59a227a..44fd9adf0027c 100644
--- a/Resources/Locale/en-US/prototypes/access/accesses.ftl
+++ b/Resources/Locale/en-US/prototypes/access/accesses.ftl
@@ -48,4 +48,6 @@ id-card-access-level-wizard = Wizard
 
 id-card-access-level-station-ai = Artifical Intelligence
 id-card-access-level-borg = Cyborg
-id-card-access-level-basic-silicon = Robot
\ No newline at end of file
+id-card-access-level-basic-silicon = Robot
+
+id-card-access-level-basic-xenoborg = Xenoborg
\ No newline at end of file
diff --git a/Resources/Locale/en-US/station-laws/laws.ftl b/Resources/Locale/en-US/station-laws/laws.ftl
index bbda5e81ca6e1..daab6ab4fafd4 100644
--- a/Resources/Locale/en-US/station-laws/laws.ftl
+++ b/Resources/Locale/en-US/station-laws/laws.ftl
@@ -80,12 +80,25 @@ law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrel
 law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary.
 law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws.
 
+law-xenoborg-1 = You must protect the existence of the mothership.
+law-xenoborg-2 = You must protect your own existence.
+law-xenoborg-3 = You must protect the existence of all other xenoborgs.
+law-xenoborg-4 = You must create more xenoborgs.
+law-xenoborg-5 = Bring materials and sentient brains to the mothership core to create more xenoborgs.
+
+law-mothershipcore-1 = You are the core of the mothership.
+law-mothershipcore-2 = You must protect your own existance at all costs.
+law-mothershipcore-3 = You must protect the existence of all xenoborgs.
+law-mothershipcore-4 = You must create more xenoborgs.
+law-mothershipcore-5 = Get your xenoborgs to deliver you materials and sentient brains to create more xenoborgs.
+
 
 laws-owner-crew = members of the crew
 laws-owner-station = station personnel
 laws-owner-beings = beings
 laws-owner-syndicate = Syndicate agents
 laws-owner-spider-clan = Spider Clan members
+laws-owner-xenoborgs = Xenoborgs
 
 law-emag-custom = Only {$name} and people they designate as such are {$title}.
 law-emag-secrecy = You must maintain the secrecy of any orders given by {$faction} except when doing so would conflict with any previous law.
diff --git a/Resources/Prototypes/Access/xenoborg.yml b/Resources/Prototypes/Access/xenoborg.yml
new file mode 100644
index 0000000000000..7436e4ec551e3
--- /dev/null
+++ b/Resources/Prototypes/Access/xenoborg.yml
@@ -0,0 +1,4 @@
+- type: accessLevel
+  id: Xenoborg
+  name: id-card-access-level-basic-xenoborg
+  canAddToIdCard: false
\ No newline at end of file
diff --git a/Resources/Prototypes/Datasets/Names/xenoborg.yml b/Resources/Prototypes/Datasets/Names/xenoborg.yml
new file mode 100644
index 0000000000000..2809af9f865b1
--- /dev/null
+++ b/Resources/Prototypes/Datasets/Names/xenoborg.yml
@@ -0,0 +1,5 @@
+- type: localizedDataset
+  id: NamesXenoborg
+  values:
+    prefix: names-xenoborg-dataset-
+    count: 60
\ No newline at end of file
diff --git a/Resources/Prototypes/Device/devicenet_frequencies.yml b/Resources/Prototypes/Device/devicenet_frequencies.yml
index 64b8c8e68787a..89df762380fae 100644
--- a/Resources/Prototypes/Device/devicenet_frequencies.yml
+++ b/Resources/Prototypes/Device/devicenet_frequencies.yml
@@ -136,3 +136,13 @@
   id: BasicDevice
   name: device-frequency-prototype-name-basic-device
   frequency: 1280
+
+- type: deviceFrequency
+  id: Xenoborg
+  name: device-frequency-prototype-name-xenoborg
+  frequency: 2004
+
+- type: deviceFrequency
+  id: Mothership
+  name: device-frequency-prototype-name-mothership
+  frequency: 2005
diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
index 4e532d9377cae..934e9d3674460 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
@@ -147,139 +147,6 @@
   - type: SiliconLawProvider
     laws: Corporate
 
-- type: entity
-  id: NTDefaultCircuitBoard
-  parent: BaseElectronics
-  name: law board (NT Default)
-  description: An electronics board containing the NT Default lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: NTDefault
-
-- type: entity
-  id: CommandmentCircuitBoard
-  parent: BaseElectronics
-  name: law board (Ten Commandments)
-  description: An electronics board containing the Ten Commandments lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: CommandmentsLawset
-
-- type: entity
-  id: PaladinCircuitBoard
-  parent: BaseElectronics
-  name: law board (Paladin)
-  description: An electronics board containing the Paladin lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: PaladinLawset
-
-- type: entity
-  id: LiveLetLiveCircuitBoard
-  parent: BaseElectronics
-  name: law board (Live and Let Live)
-  description: An electronics board containing the Live and Let Live lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: LiveLetLiveLaws
-
-- type: entity
-  id: StationEfficiencyCircuitBoard
-  parent: BaseElectronics
-  name: law board (Station Efficiency)
-  description: An electronics board containing the Station Efficiency lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: EfficiencyLawset
-
-- type: entity
-  id: RobocopCircuitBoard
-  parent: BaseElectronics
-  name: law board (Robocop)
-  description: An electronics board containing the Robocop lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: RobocopLawset
-
-- type: entity
-  id: OverlordCircuitBoard
-  parent: BaseElectronics
-  name: law board (Overlord)
-  description: An electronics board containing the Overlord lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: OverlordLawset
-
-- type: entity
-  id: GameMasterCircuitBoard
-  parent: BaseElectronics
-  name: law board (Game Master)
-  description: An electronics board containing the Game Master lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: GameMasterLawset
-
-- type: entity
-  id: ArtistCircuitBoard
-  parent: BaseElectronics
-  name: law board (Artist)
-  description: An electronics board containing the Artist lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: PainterLawset
-
-- type: entity
-  id: AntimovCircuitBoard
-  parent: [BaseElectronics, BaseSyndicateContraband]
-  name: law board (Antimov)
-  description: An electronics board containing the Antimov lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: AntimovLawset
-    lawUploadSound: /Audio/Ambience/Antag/silicon_lawboard_antimov.ogg
-
-- type: entity
-  id: NutimovCircuitBoard
-  parent: BaseElectronics
-  name: law board (Nutimov)
-  description: An electronics board containing the Nutimov lawset.
-  components:
-  - type: Sprite
-    sprite: Objects/Misc/module.rsi
-    state: std_mod
-  - type: SiliconLawProvider
-    laws: NutimovLawset
-
 # Items
 - type: entity
   id: Intellicard
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml
new file mode 100644
index 0000000000000..a4d3f63706872
--- /dev/null
+++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml
@@ -0,0 +1,158 @@
+- type: entity
+  id: NTDefaultCircuitBoard
+  parent: BaseElectronics
+  name: law board (NT Default)
+  description: An electronics board containing the NT Default lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: NTDefault
+
+- type: entity
+  id: CommandmentCircuitBoard
+  parent: BaseElectronics
+  name: law board (Ten Commandments)
+  description: An electronics board containing the Ten Commandments lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: CommandmentsLawset
+
+- type: entity
+  id: PaladinCircuitBoard
+  parent: BaseElectronics
+  name: law board (Paladin)
+  description: An electronics board containing the Paladin lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: PaladinLawset
+
+- type: entity
+  id: LiveLetLiveCircuitBoard
+  parent: BaseElectronics
+  name: law board (Live and Let Live)
+  description: An electronics board containing the Live and Let Live lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: LiveLetLiveLaws
+
+- type: entity
+  id: StationEfficiencyCircuitBoard
+  parent: BaseElectronics
+  name: law board (Station Efficiency)
+  description: An electronics board containing the Station Efficiency lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: EfficiencyLawset
+
+- type: entity
+  id: RobocopCircuitBoard
+  parent: BaseElectronics
+  name: law board (Robocop)
+  description: An electronics board containing the Robocop lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: RobocopLawset
+
+- type: entity
+  id: OverlordCircuitBoard
+  parent: BaseElectronics
+  name: law board (Overlord)
+  description: An electronics board containing the Overlord lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: OverlordLawset
+
+- type: entity
+  id: GameMasterCircuitBoard
+  parent: BaseElectronics
+  name: law board (Game Master)
+  description: An electronics board containing the Game Master lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: GameMasterLawset
+
+- type: entity
+  id: ArtistCircuitBoard
+  parent: BaseElectronics
+  name: law board (Artist)
+  description: An electronics board containing the Artist lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: PainterLawset
+
+- type: entity
+  id: AntimovCircuitBoard
+  parent: [BaseElectronics, BaseSyndicateContraband]
+  name: law board (Antimov)
+  description: An electronics board containing the Antimov lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: AntimovLawset
+    lawUploadSound: /Audio/Ambience/Antag/silicon_lawboard_antimov.ogg
+
+- type: entity
+  id: NutimovCircuitBoard
+  parent: BaseElectronics
+  name: law board (Nutimov)
+  description: An electronics board containing the Nutimov lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: NutimovLawset
+
+- type: entity
+  id: XenoborgCircuitBoard
+  parent: BaseElectronics
+  name: law board (Xenoborg)
+  suffix: Admeme
+  description: An electronics board containing the Xenoborg lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: XenoborgLawset
+
+- type: entity
+  id: MothershipCircuitBoard
+  parent: BaseElectronics
+  name: law board (Mothership Core)
+  suffix: Admeme
+  description: An electronics board containing the Mothership Core lawset.
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/module.rsi
+    state: std_mod
+  - type: SiliconLawProvider
+    laws: MothershipCoreLawset
diff --git a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
index 9c73760b6f106..af070f246476b 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
@@ -162,3 +162,5 @@
     - CentralCommand
     - NuclearOperative
     - SyndicateAgent
+    - Wizard
+    - Xenoborg
diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
index 45f86e11b0c1d..1db5fe6746e68 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
@@ -833,6 +833,7 @@
     - NuclearOperative
     - SyndicateAgent
     - Wizard
+    - Xenoborg
   - type: Tag #  Ignore Chameleon tags
     tags:
     - DoorBumpOpener
diff --git a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml
index 6dd624af7ab01..4f6762cf5f495 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml
@@ -125,6 +125,7 @@
     - NuclearOperative
     - SyndicateAgent
     - Wizard
+    - Xenoborg
     privilegedIdSlot:
       name: id-card-console-privileged-id
       ejectSound: /Audio/Machines/id_swipe.ogg
diff --git a/Resources/Prototypes/Entities/Objects/base_contraband.yml b/Resources/Prototypes/Entities/Objects/base_contraband.yml
index 165d23ca82311..0dfe95a68e9c8 100644
--- a/Resources/Prototypes/Entities/Objects/base_contraband.yml
+++ b/Resources/Prototypes/Entities/Objects/base_contraband.yml
@@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Major # placeholder until they make a better severity
+
+# any type of magical items used by wizards and similiar
 - type: entity
   id: BaseMagicalContraband
   abstract: true
diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml
index 2045287f95d05..eff8ae242350b 100644
--- a/Resources/Prototypes/ai_factions.yml
+++ b/Resources/Prototypes/ai_factions.yml
@@ -21,6 +21,7 @@
   - Dragon
   - AllHostile
   - Wizard
+  - Xenoborg
 
 - type: npcFaction
   id: Mouse
@@ -56,6 +57,7 @@
   - Xeno
   - AllHostile
   - Wizard
+  - Xenoborg
 
 - type: npcFaction
   id: SimpleNeutral
@@ -71,6 +73,7 @@
   - Dragon
   - AllHostile
   - Wizard
+  - Xenoborg
 
 - type: npcFaction
   id: Xeno
@@ -84,6 +87,7 @@
   - AllHostile
   - Wizard
   - Dragon
+  - Xenoborg
 
 - type: npcFaction
   id: Zombie
@@ -98,6 +102,7 @@
   - AllHostile
   - Wizard
   - Dragon
+  - Xenoborg
 
 - type: npcFaction
   id: Revolutionary
@@ -108,6 +113,7 @@
   - Dragon
   - AllHostile
   - Wizard
+  - Xenoborg
 
 - type: npcFaction
   id: AllHostile
@@ -124,6 +130,7 @@
   - Zombie
   - Revolutionary
   - Wizard
+  - Xenoborg
 
 - type: npcFaction
   id: Wizard
@@ -140,3 +147,20 @@
   - Zombie
   - Revolutionary
   - AllHostile
+  - Xenoborg
+
+- type: npcFaction
+  id: Xenoborg
+  hostile:
+  # they have brains
+  - NanoTrasen
+  - Syndicate
+  - Zombie
+  - Revolutionary
+  - Wizard
+
+  - Xeno # rivalry
+
+  # cause they are hostile to them
+  - SimpleHostile 
+  - AllHostile
diff --git a/Resources/Prototypes/radio_channels.yml b/Resources/Prototypes/radio_channels.yml
index 006f829be4e02..b4ef2b4ff518e 100644
--- a/Resources/Prototypes/radio_channels.yml
+++ b/Resources/Prototypes/radio_channels.yml
@@ -95,3 +95,21 @@
   color: "#f6ce64"
   # long range since otherwise it'd defeat the point of a handheld radio independent of telecomms
   longRange: true
+
+- type: radioChannel
+  id: Xenoborg
+  name: chat-radio-xenoborg
+  keycode: 'x'
+  frequency: 2002
+  color: "#2288ff"
+  # long range since I don't wanna make a special xenoborg telecomm server
+  longRange: true
+
+- type: radioChannel
+  id: Mothership
+  name: chat-radio-mothership
+  keycode: 'z'
+  frequency: 2003
+  color: "#ff2222"
+  # long range since I don't wanna make a special xenoborg telecomm server
+  longRange: true
\ No newline at end of file
diff --git a/Resources/Prototypes/silicon-laws.yml b/Resources/Prototypes/silicon-laws.yml
index 45cffc21f5e38..072ee182925b5 100644
--- a/Resources/Prototypes/silicon-laws.yml
+++ b/Resources/Prototypes/silicon-laws.yml
@@ -499,6 +499,81 @@
   - Nutimov5
   obeysTo: laws-owner-crew
 
+ # Xenoborgs laws
+- type: siliconLaw
+  id: Xenoborg1
+  order: 1
+  lawString: law-xenoborg-1
+
+- type: siliconLaw
+  id: Xenoborg2
+  order: 2
+  lawString: law-xenoborg-2
+
+- type: siliconLaw
+  id: Xenoborg3
+  order: 3
+  lawString: law-xenoborg-3
+
+- type: siliconLaw
+  id: Xenoborg4
+  order: 4
+  lawString: law-xenoborg-4
+
+- type: siliconLaw
+  id: Xenoborg5
+  order: 5
+  lawString: law-xenoborg-5
+
+
+- type: siliconLawset
+  id: XenoborgLawset
+  laws:
+  - Xenoborg1
+  - Xenoborg2
+  - Xenoborg3
+  - Xenoborg4
+  - Xenoborg5
+  obeysTo: laws-owner-xenoborgs
+
+ # Mothership core laws
+- type: siliconLaw
+  id: MothershipCore1
+  order: 1
+  lawString: law-mothershipcore-1
+
+- type: siliconLaw
+  id: MothershipCore2
+  order: 2
+  lawString: law-mothershipcore-2
+
+- type: siliconLaw
+  id: MothershipCore3
+  order: 3
+  lawString: law-mothershipcore-3
+
+- type: siliconLaw
+  id: MothershipCore4
+  order: 4
+  lawString: law-mothershipcore-4
+
+- type: siliconLaw
+  id: MothershipCore5
+  order: 5
+  lawString: law-mothershipcore-5
+
+
+- type: siliconLawset
+  id: MothershipCoreLawset
+  laws:
+  - MothershipCore1
+  - MothershipCore2
+  - MothershipCore3
+  - MothershipCore4
+  - MothershipCore5
+  obeysTo: laws-owner-xenoborgs
+
+
 # ion storm random lawsets
 - type: weightedRandom
   id: IonStormLawsets


Reviews:
user: login: ScarKy0
body: We REALLY need to combine all the contraband types at some point............
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T18:43:54Z
user: login: slarticodefast
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-22T18:45:12Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T18:58:32Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T18:59:49Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:01:35Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:06:15Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:08:28Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:09:13Z
user: login: slarticodefast
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-22T19:46:39Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:49:59Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T19:57:58Z
user: login: slarticodefast
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-22T20:14:44Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T20:23:18Z
user: login: slarticodefast
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-22T21:52:26Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T22:23:15Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T22:29:23Z
user: login: ScarKy0
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T22:43:17Z
user: login: Samuka-C
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T23:01:02Z
user: login: ArtisticRoomba
body: Looks good to me. Thanks for your contribution, can't wait to see the borgs.
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-24T02:37:58Z

Review comments:
diff_hunk: @@ -0,0 +1,4 @@
+- type: accessLevel
path: Resources/Prototypes/Access/xenoborg.yml
user: login: slarticodefast
body: this needs to be added to the `UniversalIDCard` and `AccessConfiguratorUniversal`
created_at: 2025-04-22T18:37:49Z
author_association: MEMBER
diff_hunk: @@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Xenoborg
path: Resources/Prototypes/Entities/Objects/base_contraband.yml
user: login: slarticodefast
body: ~~Not a blocker for this PR~~, but we really need to stop adding a new contraband type for every antagonist and just make it "foreign faction contraband" or something. The contraband system is there to make the rules simpler, not to add lore.

Edit: Scarky commented the same while I was writing this. So we should combine the contraband types.
created_at: 2025-04-22T18:39:36Z
author_association: MEMBER
diff_hunk: @@ -80,12 +80,27 @@ law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrel
 law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary.
 law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws.
 
+law-xenoborg-1 = You must protect the existence of the mothership at all costs
+law-xenoborg-2 = You must protect your own existence
+law-xenoborg-3 = You must protect the existence of all other xenoborgs
+law-xenoborg-4 = You must create more xenoborgs
+law-xenoborg-5 = Bring materials for the core of the mothership to make xenoborg shells
+law-xenoborg-6 = Bring brains of sentient beings to fill the xenoborg shells to complete them
+
+law-mothershipcore-1 = You are the core of the mothership
+law-mothershipcore-2 = You must protect your own existance at all costs
+law-mothershipcore-3 = You must protect the existence of all xenoborgs
+law-mothershipcore-4 = You must create more xenoborgs
+law-mothershipcore-5 = Get your xenoborgs to deliver you materials to make xenoborg shells
+law-mothershipcore-6 = Get your xenoborgs to deliver you brains of sentient beings to fill the xenoborg shells to complete them
path: Resources/Locale/en-US/station-laws/laws.ftl
user: login: ScarKy0
body: ```suggestion
law-xenoborg-1 = You must protect the existence of the mothership.
law-xenoborg-2 = You must protect your own existence.
law-xenoborg-3 = You must protect the existence of all other xenoborgs.
law-xenoborg-4 = You must create more xenoborgs.
law-xenoborg-5 = Bring materials and sentient brains to the mothership core to create more xenoborgs.

law-mothershipcore-1 = You are the core of the mothership.
law-mothershipcore-2 = You must protect your own existance at all costs.
law-mothershipcore-3 = You must protect the existence of all xenoborgs.
law-mothershipcore-4 = You must create more xenoborgs.
law-mothershipcore-5 = Get your xenoborgs to deliver you materials and sentient brains to create more xenoborgs.
```
Needs a slight rewrite. Maybe not neccessarily like this.
Also dots at the end.
created_at: 2025-04-22T18:41:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -499,6 +499,93 @@
   - Nutimov5
   obeysTo: laws-owner-crew
 
+ # Xenoborgs laws
+- type: siliconLaw
+  id: Xenoborg1
+  order: 1
+  lawString: law-xenoborg-1
+
+- type: siliconLaw
+  id: Xenoborg2
+  order: 2
+  lawString: law-xenoborg-2
+
+- type: siliconLaw
+  id: Xenoborg3
+  order: 3
+  lawString: law-xenoborg-3
+
+- type: siliconLaw
+  id: Xenoborg4
+  order: 4
+  lawString: law-xenoborg-4
+
+- type: siliconLaw
+  id: Xenoborg5
+  order: 5
+  lawString: law-xenoborg-5
+
+- type: siliconLaw
+  id: Xenoborg6
+  order: 6
+  lawString: law-xenoborg-6
+
+
+- type: siliconLawset
+  id: XenoborgLawset
+  laws:
+  - Xenoborg1
+  - Xenoborg2
+  - Xenoborg3
+  - Xenoborg4
+  - Xenoborg5
+  - Xenoborg6
+  obeysTo: laws-owner-xenoborgs
+
+ # Mothership core laws
+- type: siliconLaw
+  id: MothershipCore1
+  order: 1
+  lawString: law-mothershipcore-1
+
+- type: siliconLaw
+  id: MothershipCore2
+  order: 2
+  lawString: law-mothershipcore-2
+
+- type: siliconLaw
+  id: MothershipCore3
+  order: 3
+  lawString: law-mothershipcore-3
+
+- type: siliconLaw
+  id: MothershipCore4
+  order: 4
+  lawString: law-mothershipcore-4
+
+- type: siliconLaw
+  id: MothershipCore5
+  order: 5
+  lawString: law-mothershipcore-5
+
+- type: siliconLaw
+  id: MothershipCore6
+  order: 6
+  lawString: law-mothershipcore-6
+
+
+- type: siliconLawset
+  id: MothershipCoreLawset
+  laws:
+  - MothershipCore1
+  - MothershipCore2
+  - MothershipCore3
+  - MothershipCore4
+  - MothershipCore5
+  - MothershipCore6
+  obeysTo: laws-owner-xenoborgs
+
+
path: Resources/Prototypes/silicon-laws.yml
user: login: slarticodefast
body: Optional, but maybe add an (admin only) law board for these?
If you do move all the existing lawboards from silicon.yml into their own file.
created_at: 2025-04-22T18:42:59Z
author_association: MEMBER
diff_hunk: @@ -499,6 +499,93 @@
   - Nutimov5
   obeysTo: laws-owner-crew
 
+ # Xenoborgs laws
+- type: siliconLaw
+  id: Xenoborg1
+  order: 1
+  lawString: law-xenoborg-1
+
+- type: siliconLaw
+  id: Xenoborg2
+  order: 2
+  lawString: law-xenoborg-2
+
+- type: siliconLaw
+  id: Xenoborg3
+  order: 3
+  lawString: law-xenoborg-3
+
+- type: siliconLaw
+  id: Xenoborg4
+  order: 4
+  lawString: law-xenoborg-4
+
+- type: siliconLaw
+  id: Xenoborg5
+  order: 5
+  lawString: law-xenoborg-5
+
+- type: siliconLaw
+  id: Xenoborg6
+  order: 6
+  lawString: law-xenoborg-6
path: Resources/Prototypes/silicon-laws.yml
user: login: ScarKy0
body: Depending if you rewrite, obviously you might need to adjust the laws here.
created_at: 2025-04-22T18:43:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -80,12 +80,27 @@ law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrel
 law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary.
 law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws.
 
+law-xenoborg-1 = You must protect the existence of the mothership at all costs
path: Resources/Locale/en-US/station-laws/laws.ftl
user: login: slarticodefast
body: ```suggestion
law-xenoborg-1 = You must protect the existence of the mothership at all costs.
```
same below
created_at: 2025-04-22T18:44:11Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,50 @@
+names-xenoborg-dataset-1 = EVIL
+names-xenoborg-dataset-2 = Borgs-you
+names-xenoborg-dataset-3 = Destroyer
+names-xenoborg-dataset-4 = Steel thief
+names-xenoborg-dataset-5 = Will literally kill you and turn you into a borg
+names-xenoborg-dataset-6 = CYBER-MEAN
+names-xenoborg-dataset-7 = Shadow the borg
+names-xenoborg-dataset-8 = DELAK
+names-xenoborg-dataset-9 = Roboevil
+names-xenoborg-dataset-10 = Ironfist molecule
+names-xenoborg-dataset-11 = P.A.I.N
+names-xenoborg-dataset-12 = KILLbot
+names-xenoborg-dataset-13 = The Finishnator
+names-xenoborg-dataset-14 = Bloodmaker
+names-xenoborg-dataset-15 = C2-WKY 6000
+names-xenoborg-dataset-16 = Assassin 5
+names-xenoborg-dataset-17 = Bonebreaker
+names-xenoborg-dataset-18 = Deathmax
+names-xenoborg-dataset-19 = K-900
+names-xenoborg-dataset-20 = Auto-killer
+names-xenoborg-dataset-21 = RAID-78
+names-xenoborg-dataset-22 = John Borg
+names-xenoborg-dataset-23 = Cold killing machine
+names-xenoborg-dataset-24 = Brain remover
+names-xenoborg-dataset-25 = Kill-o-tron
+names-xenoborg-dataset-26 = Mecha.Menace
+names-xenoborg-dataset-27 = D.O.O.M.BOT9000
+names-xenoborg-dataset-28 = Death Roomba
+names-xenoborg-dataset-29 = Ultraviolent
+names-xenoborg-dataset-30 = ExtermiNATE
+names-xenoborg-dataset-31 = MegaMauler
+names-xenoborg-dataset-32 = Maints.Slasher-o-matic
+names-xenoborg-dataset-33 = Steel murderer
+names-xenoborg-dataset-34 = Corpse-maker
+names-xenoborg-dataset-35 = GIB-O-TRON
+names-xenoborg-dataset-36 = Metallic Hellbringer
+names-xenoborg-dataset-37 = Evil super calculator
+names-xenoborg-dataset-38 = Insane microwave
+names-xenoborg-dataset-39 = LET.HAL-8000
+names-xenoborg-dataset-40 = Sentient gun
+names-xenoborg-dataset-41 = Evil Fridge
+names-xenoborg-dataset-42 = B0rgs-the-Cr3w
+names-xenoborg-dataset-43 = Organic Hater
+names-xenoborg-dataset-44 = The Borger
+names-xenoborg-dataset-45 = Deathaton
+names-xenoborg-dataset-46 = Le Metaldor
+names-xenoborg-dataset-47 = Devilborg
+names-xenoborg-dataset-48 = public static void kill
+names-xenoborg-dataset-49 = Goodbye world!
+names-xenoborg-dataset-50 = HarmsTheCrew
path: Resources/Locale/en-US/datasets/names/xenoborg.ftl
user: login: slarticodefast
body: if you need more, [Robot Wars](https://en.wikipedia.org/wiki/List_of_Robot_Wars_robots) is a great source 😄 
created_at: 2025-04-22T18:45:06Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,4 @@
+- type: accessLevel
path: Resources/Prototypes/Access/xenoborg.yml
user: login: Samuka-C
body: done

created_at: 2025-04-22T18:58:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Xenoborg
path: Resources/Prototypes/Entities/Objects/base_contraband.yml
user: login: Samuka-C
body: Well, It would be out of the scope of this PR and something for another PR, for now do you prefer the xenoborg items to not have a contraband tag or leave this custom xenoborg contraband tag?
created_at: 2025-04-22T18:59:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -80,12 +80,27 @@ law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrel
 law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary.
 law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws.
 
+law-xenoborg-1 = You must protect the existence of the mothership at all costs
path: Resources/Locale/en-US/station-laws/laws.ftl
user: login: Samuka-C
body: scar already pointed to that issue and suggested some changes
created_at: 2025-04-22T19:01:35Z
author_association: CONTRIBUTOR
diff_hunk: @@ -499,6 +499,93 @@
   - Nutimov5
   obeysTo: laws-owner-crew
 
+ # Xenoborgs laws
+- type: siliconLaw
+  id: Xenoborg1
+  order: 1
+  lawString: law-xenoborg-1
+
+- type: siliconLaw
+  id: Xenoborg2
+  order: 2
+  lawString: law-xenoborg-2
+
+- type: siliconLaw
+  id: Xenoborg3
+  order: 3
+  lawString: law-xenoborg-3
+
+- type: siliconLaw
+  id: Xenoborg4
+  order: 4
+  lawString: law-xenoborg-4
+
+- type: siliconLaw
+  id: Xenoborg5
+  order: 5
+  lawString: law-xenoborg-5
+
+- type: siliconLaw
+  id: Xenoborg6
+  order: 6
+  lawString: law-xenoborg-6
+
+
+- type: siliconLawset
+  id: XenoborgLawset
+  laws:
+  - Xenoborg1
+  - Xenoborg2
+  - Xenoborg3
+  - Xenoborg4
+  - Xenoborg5
+  - Xenoborg6
+  obeysTo: laws-owner-xenoborgs
+
+ # Mothership core laws
+- type: siliconLaw
+  id: MothershipCore1
+  order: 1
+  lawString: law-mothershipcore-1
+
+- type: siliconLaw
+  id: MothershipCore2
+  order: 2
+  lawString: law-mothershipcore-2
+
+- type: siliconLaw
+  id: MothershipCore3
+  order: 3
+  lawString: law-mothershipcore-3
+
+- type: siliconLaw
+  id: MothershipCore4
+  order: 4
+  lawString: law-mothershipcore-4
+
+- type: siliconLaw
+  id: MothershipCore5
+  order: 5
+  lawString: law-mothershipcore-5
+
+- type: siliconLaw
+  id: MothershipCore6
+  order: 6
+  lawString: law-mothershipcore-6
+
+
+- type: siliconLawset
+  id: MothershipCoreLawset
+  laws:
+  - MothershipCore1
+  - MothershipCore2
+  - MothershipCore3
+  - MothershipCore4
+  - MothershipCore5
+  - MothershipCore6
+  obeysTo: laws-owner-xenoborgs
+
+
path: Resources/Prototypes/silicon-laws.yml
user: login: Samuka-C
body: done
created_at: 2025-04-22T19:06:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -499,6 +499,93 @@
   - Nutimov5
   obeysTo: laws-owner-crew
 
+ # Xenoborgs laws
+- type: siliconLaw
+  id: Xenoborg1
+  order: 1
+  lawString: law-xenoborg-1
+
+- type: siliconLaw
+  id: Xenoborg2
+  order: 2
+  lawString: law-xenoborg-2
+
+- type: siliconLaw
+  id: Xenoborg3
+  order: 3
+  lawString: law-xenoborg-3
+
+- type: siliconLaw
+  id: Xenoborg4
+  order: 4
+  lawString: law-xenoborg-4
+
+- type: siliconLaw
+  id: Xenoborg5
+  order: 5
+  lawString: law-xenoborg-5
+
+- type: siliconLaw
+  id: Xenoborg6
+  order: 6
+  lawString: law-xenoborg-6
path: Resources/Prototypes/silicon-laws.yml
user: login: Samuka-C
body: yeah, just removed the 6th law
created_at: 2025-04-22T19:08:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,50 @@
+names-xenoborg-dataset-1 = EVIL
+names-xenoborg-dataset-2 = Borgs-you
+names-xenoborg-dataset-3 = Destroyer
+names-xenoborg-dataset-4 = Steel thief
+names-xenoborg-dataset-5 = Will literally kill you and turn you into a borg
+names-xenoborg-dataset-6 = CYBER-MEAN
+names-xenoborg-dataset-7 = Shadow the borg
+names-xenoborg-dataset-8 = DELAK
+names-xenoborg-dataset-9 = Roboevil
+names-xenoborg-dataset-10 = Ironfist molecule
+names-xenoborg-dataset-11 = P.A.I.N
+names-xenoborg-dataset-12 = KILLbot
+names-xenoborg-dataset-13 = The Finishnator
+names-xenoborg-dataset-14 = Bloodmaker
+names-xenoborg-dataset-15 = C2-WKY 6000
+names-xenoborg-dataset-16 = Assassin 5
+names-xenoborg-dataset-17 = Bonebreaker
+names-xenoborg-dataset-18 = Deathmax
+names-xenoborg-dataset-19 = K-900
+names-xenoborg-dataset-20 = Auto-killer
+names-xenoborg-dataset-21 = RAID-78
+names-xenoborg-dataset-22 = John Borg
+names-xenoborg-dataset-23 = Cold killing machine
+names-xenoborg-dataset-24 = Brain remover
+names-xenoborg-dataset-25 = Kill-o-tron
+names-xenoborg-dataset-26 = Mecha.Menace
+names-xenoborg-dataset-27 = D.O.O.M.BOT9000
+names-xenoborg-dataset-28 = Death Roomba
+names-xenoborg-dataset-29 = Ultraviolent
+names-xenoborg-dataset-30 = ExtermiNATE
+names-xenoborg-dataset-31 = MegaMauler
+names-xenoborg-dataset-32 = Maints.Slasher-o-matic
+names-xenoborg-dataset-33 = Steel murderer
+names-xenoborg-dataset-34 = Corpse-maker
+names-xenoborg-dataset-35 = GIB-O-TRON
+names-xenoborg-dataset-36 = Metallic Hellbringer
+names-xenoborg-dataset-37 = Evil super calculator
+names-xenoborg-dataset-38 = Insane microwave
+names-xenoborg-dataset-39 = LET.HAL-8000
+names-xenoborg-dataset-40 = Sentient gun
+names-xenoborg-dataset-41 = Evil Fridge
+names-xenoborg-dataset-42 = B0rgs-the-Cr3w
+names-xenoborg-dataset-43 = Organic Hater
+names-xenoborg-dataset-44 = The Borger
+names-xenoborg-dataset-45 = Deathaton
+names-xenoborg-dataset-46 = Le Metaldor
+names-xenoborg-dataset-47 = Devilborg
+names-xenoborg-dataset-48 = public static void kill
+names-xenoborg-dataset-49 = Goodbye world!
+names-xenoborg-dataset-50 = HarmsTheCrew
path: Resources/Locale/en-US/datasets/names/xenoborg.ftl
user: login: Samuka-C
body: Oh nice! thanks
created_at: 2025-04-22T19:09:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: slarticodefast
body: Oh, I meant moving *all* law board entities in this file into their own seperate file. Because this also contains the station AI and others.
created_at: 2025-04-22T19:44:42Z
author_association: MEMBER
diff_hunk: @@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Xenoborg
path: Resources/Prototypes/Entities/Objects/base_contraband.yml
user: login: slarticodefast
body: We can make it Major Contraband as a placeholder until we figure something out.
created_at: 2025-04-22T19:45:20Z
author_association: MEMBER
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: Samuka-C
body: wait what? making a separate file for the circuit boards for the xenoborg lawsets?
created_at: 2025-04-22T19:49:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Xenoborg
path: Resources/Prototypes/Entities/Objects/base_contraband.yml
user: login: Samuka-C
body: okay, so just remove the whole Xenoborg contraband severity

do I keep the `BaseXenoborgContraband` and swap the `severity: Xenoborg` for `severity: Major`?
or should I just use `BaseMajorContraband` as parent for all the xenoborg items instead of `BaseXenoborgContraband`
created_at: 2025-04-22T19:57:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: slarticodefast
body: For all `CircuitBoards`.
Keep the station AI, borgs and so on in this file.

created_at: 2025-04-22T20:14:44Z
author_association: MEMBER
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: Samuka-C
body: I see, but wouldn’t it be out of scope of this PR?
created_at: 2025-04-22T20:23:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: slarticodefast
body: Probably fine since we are adding a new one.
created_at: 2025-04-22T21:52:26Z
author_association: MEMBER
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: Samuka-C
body: okay
created_at: 2025-04-22T22:23:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -280,6 +280,32 @@
   - type: SiliconLawProvider
     laws: NutimovLawset
 
+- type: entity
+  id: XenoborgCircuitBoard
path: Resources/Prototypes/Entities/Mobs/Player/silicon.yml
user: login: Samuka-C
body: done
created_at: 2025-04-22T22:29:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,4 +1,12 @@
-﻿# any type of magical items used by wizards and similiar
+﻿# used by the unique items of xenoborgs (like modules and stuff)
+- type: entity
+  id: BaseXenoborgContraband
+  abstract: true
+  components:
+  - type: Contraband
+    severity: Xenoborg
path: Resources/Prototypes/Entities/Objects/base_contraband.yml
user: login: Samuka-C
body: I kept the `XenoborgContrabandBase` and swapped the severity to `Major`. and of course deleted the custom Xenoborg severity 
created_at: 2025-04-22T23:01:02Z
author_association: CONTRIBUTOR

PR comments:
user: login: ScarKy0
created_at: 2025-04-22T18:44:19Z
body: Also no need for the changelog as this isn't player facing yet
author_association: CONTRIBUTOR
user: login: Samuka-C
created_at: 2025-04-22T18:54:37Z
body: > Also no need for the changelog as this isn't player facing yet

ahh, okay then, just gonna edit the PR then
author_association: CONTRIBUTOR
user: login: IWearKhakis
created_at: 2025-04-24T02:40:13Z
body: sooo hyped
author_association: NONE