This commit is contained in:
2026-01-24 16:34:15 -05:00
commit c23bf51490
3996 changed files with 657568 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Actions
- type: entity
parent: BaseMentalAction
id: ActionExitConsole
name: Exit console
description: Exit console.
components:
- type: Action
checkCanInteract: false
priority: -20
itemIconStyle: BigAction
icon:
sprite: _Shitmed/Interface/Actions/actions_abductor.rsi
state: exit
- type: InstantAction
event: !type:ExitConsoleEvent
- type: entity
parent: BaseMentalAction
id: ActionSendYourself
name: Send yourself
description: You need to FTL to the same map as the station to use this ability!
components:
- type: Action
itemIconStyle: BigAction
checkCanInteract: false
icon:
sprite: _Shitmed/Interface/Actions/actions_abductor.rsi
state: send-yourself
useDelay: 10
priority: -19
- type: TargetAction
checkCanAccess: false
range: -1
- type: WorldTargetAction
event: !type:SendYourselfEvent
- type: entity
parent: BaseAction
id: ActionReturnToShip
name: return
description: return to the ship.
components:
- type: Action
useDelay: 30
icon:
sprite: _Shitmed/Interface/Actions/actions_abductor.rsi
state: take
priority: -12
- type: InstantAction
event: !type:AbductorReturnToShipEvent

View File

@@ -0,0 +1,27 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Technically goliath will also have these, but its HTN should not abuse it.
# Only player controlled ones would, and you could claim its a feature to throw salvies off at that point :trollface:
- type: entity
parent: BaseAction
id: ActionGoliathTentacleCrew
name: "[color=red]Tentacle Slam[/color]"
description: Use your tentacles to grab and stun a target player!
components:
- type: Action
useDelay: 80
raiseOnUser: true
icon:
sprite: Mobs/Aliens/Asteroid/goliath.rsi
state: goliath_tentacle_spawn
iconOn:
sprite: Mobs/Aliens/Asteroid/goliath.rsi
state: goliath_tentacle_wiggle
sound:
path: "/Audio/Weapons/slash.ogg"
- type: TargetAction
range: 10
- type: WorldTargetAction
event: !type:GoliathSummonTentacleAction

View File

@@ -0,0 +1,40 @@
- type: alert
id: BrokenBones
icons:
- sprite: /Textures/_Shitmed/Interface/Alerts/alerts.rsi
state: brokenbones
name: alerts-broken-bones-name
description: alerts-broken-bones-desc
- type: alert
id: AugmentBattery
category: Battery
clickEvent: !type:AugmentBatteryAlertEvent
# holy goida
icons:
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery0
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery1
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery2
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery3
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery4
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery5
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery6
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery7
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery8
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery9
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery10
name: alerts-augment-battery-name
description: alerts-augment-battery-desc
minSeverity: 0
maxSeverity: 10

View File

@@ -0,0 +1,92 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: OrganAnimalBrain
parent: BaseAnimalOrganUnGibbable
name: animal brain
description: "Not so intelligence, not so honk."
components:
- type: Sprite
state: brain
- type: Organ
slotId: brain
intCap: 28
integrity: 28
integrityThresholds:
Normal: 28
Damaged: 16
Destroyed: 0
- type: Input
context: "ghost"
- type: Brain
- type: InputMover
- type: Examiner
- type: BlockMovement
- type: BadFood
- type: Tag
tags:
- Meat
- Organ
- Brain
- type: SolutionContainerManager
solutions:
organ:
reagents:
- ReagentId: Nutriment
Quantity: 10
food:
maxVol: 5
reagents:
- ReagentId: GreyMatter
Quantity: 5
- type: FlavorProfile
flavors:
- people
- type: FoodSequenceElement
entries:
burger:
name: food-sequence-content-brain
taco:
name: food-sequence-content-brain
- type: Item
size: Small
heldPrefix: brain
- type: NerveSystem # backmen: wounding
- type: ConsciousnessRequired
identifier: "nerveSystem"
causesDeath: true
- type: entity
id: OrganAnimalEyes
parent: BaseAnimalOrgan
name: animal eyes
description: "I see you!"
components:
# start-backmen: surgery
- type: Organ
slotId: eyes
intCap: 12
integrity: 12
integrityThresholds:
Normal: 12
Damaged: 6
Destroyed: 0
- type: Eyes
# end-backmen: surgery
- type: Sprite
layers:
- state: eyeball-l
- state: eyeball-r
- type: Item
size: Small
heldPrefix: eyeballs
- type: Tag
tags:
- Meat
- Organ
- Eyes

View File

@@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# this only exists as a workaround to surgery not supporting multiple organs of the same type
- type: entity
parent: OrganAnimalRuminantStomach
id: OrganAnimalRuminantStomach2
name: ruminant stomach 2
description: electric boogaloo
components:
- type: Organ
slotId: stomach2

View File

@@ -0,0 +1,100 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: OrganAnimalLungs
id: OrganSpaceAnimalLungs
name: space animal lungs
components:
- type: Organ
intCap: 28
integrity: 28
integrityThresholds:
Normal: 28
Damaged: 16
Destroyed: 0
onAdd:
- type: BreathingImmunity
- type: entity
parent: OrganAnimalHeart
id: OrganSpaceAnimalHeart
name: space animal heart
components:
- type: Organ
intCap: 21
integrity: 21
integrityThresholds:
Normal: 21
Damaged: 12
Destroyed: 0
onAdd:
- type: PressureImmunity
- type: entity
parent: OrganAnimalHeart
id: OrganGoliathHeart
name: goliath heart
components:
- type: Organ
onAdd:
- type: GoliathTentacle
- type: Sprite
sprite: _Shitmed/Mobs/Species/Space/Goliath/organs.rsi
state: heart-on
- type: entity
parent: OrganAnimalLungs
id: OrganDragonLungs
name: dragon lungs
components:
- type: Organ
onAdd:
- type: ActionGun
action: ActionDragonsBreath
gunProto: DragonsBreathGun
- type: entity
parent: OrganHumanEyes
id: OrganLaserEyes
name: laser raptor eyes
components:
- type: Organ
onAdd:
- type: HitscanBatteryAmmoProvider
proto: RedLightLaser
fireCost: 50
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 25
- type: Battery
maxCharge: 100
startingCharge: 0
- type: Gun
fireRate: 1
useKey: false
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
- type: entity
parent: [ OrganAnimalHeart, BaseMajorContraband ]
id: OrganCobraHeart
name: cobra gland
components:
- type: Organ
onAdd:
- type: Stealth
enabledOnDeath: false
maxVisibility: 1.2
- type: StealthOnMove
passiveVisibilityRate: -0.25
movementVisibilityRate: 0.25
- type: Sprite
sprite: _Shitmed/Mobs/Species/Space/Cobra/organs.rsi
state: heart-on

View File

@@ -0,0 +1,79 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: OrganAbductorBrain
parent: OrganHumanBrain
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: brain
- type: entity
id: OrganAbductorEyes
parent: OrganHumanEyes
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: eyeballs
layers:
- state: eyeballs
- type: entity
id: OrganAbductorEars
parent: OrganHumanEars
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: ears
- type: entity
id: OrganAbductorLungs
parent: OrganHumanLungs
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
layers:
- state: lung-l
- state: lung-r
- type: Lung
alert: LowNitrogen
- type: Organ
slotId: lungs
- type: entity
id: OrganAbductorHeart
parent: OrganHumanHeart
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: heart-on
- type: entity
id: OrganAbductorStomach
parent: OrganHumanStomach
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: stomach
- type: entity
id: OrganAbductorLiver
parent: OrganHumanLiver
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
state: liver
- type: entity
id: OrganAbductorKidneys
parent: OrganHumanKidneys
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/organs.rsi
layers:
- state: kidney-l
- state: kidney-r

View File

@@ -0,0 +1,270 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: BaseCyberneticOrgan
parent: BaseHumanOrgan
abstract: true
components:
- type: Cybernetics
- type: Sprite
sprite: _Shitmed/Mobs/Species/Misc/Cybernetics/organs.rsi
- type: Tag
tags:
- Organ
# Eyes
- type: entity
parent: BaseCyberneticOrgan
id: BasicCyberneticEyes
name: cybernetic eyes
description: A pair of cybernetic eyes that enhance your vision, and protect you from eye damage.
components:
- type: Cybernetics
- type: Sprite
sprite: _Shitmed/Mobs/Species/Misc/Cybernetics/organs.rsi
state: eyes
- type: Organ
intCap: 21
integrity: 21
integrityThresholds:
Normal: 21
Damaged: 11
Destroyed: 0
slotId: eyes
onAdd:
- type: FlashImmunity
- type: EyeProtection
- type: Tag
tags:
- Eyes
- type: Eyes
- type: entity
parent: BasicCyberneticEyes
id: SecurityCyberneticEyes
name: cybernetic security eyes
description: A pair of cybernetic eyes that enhance your vision, featuring an integrated SecHUD.
components:
- type: Sprite
state: eyes-sechud
- type: Organ
onAdd:
- type: ShowJobIcons
- type: ShowMindShieldIcons
- type: ShowCriminalRecordIcons
- type: FlashImmunity
- type: EyeProtection
- type: entity
parent: BasicCyberneticEyes
id: MedicalCyberneticEyes
name: cybernetic medhud eyes
description: A pair of cybernetic eyes that enhance your vision, featuring an integrated MedHUD.
components:
- type: Sprite
state: eyes-medhud
- type: Organ
onAdd:
- type: ShowHealthBars
damageContainers:
- Biological
- type: ShowHealthIcons
damageContainers:
- Biological
- type: entity
parent: BasicCyberneticEyes
id: DiagnosticCyberneticEyes
name: cybernetic diagnostic eyes
description: A pair of cybernetic eyes that enhance your vision, featuring an integrated diagnostic hud.
components:
- type: Sprite
state: eyes-diagnostic
- type: Organ
onAdd:
- type: ShowHealthBars
damageContainers:
- Inorganic
- Silicon
- SiliconRadiation
- type: ShowHealthIcons
damageContainers:
- Inorganic
- Silicon
- SiliconRadiation
# Heart
- type: entity
parent: BaseCyberneticOrgan
id: BasicCyberneticHeart
name: cybernetic heart
description: A precision-tuned heart that slows down medicine absorption while hastening the absorption of poisons and narcotics resulting in weakened effects.
components:
- type: Sprite
state: heart-on
- type: Heart
- type: Organ
intCap: 25
integrity: 25
integrityThresholds:
Normal: 25
Damaged: 9
Destroyed: 0
slotId: heart
onAdd:
- type: StaminaModifier
modifier: 1.35
- type: Metabolizer
maxPoisonsProcessable: 2
metabolizerTypes: [ Cybernetic ]
groups:
- id: Medicine
rateModifier: 0.7
- id: Poison
rateModifier: 1.4
- id: Narcotic
rateModifier: 1.2
- type: Tag
tags:
- Organ
- Heart
- type: Item
size: Small
heldPrefix: heart
- type: entity
parent: BasicCyberneticHeart
id: UpgradedCyberneticHeart
name: upgraded cybernetic heart
description: A next-gen circulatory core that slowly delivers medicine throughout the body providing much better healing while heavily accelerating and weakening toxins and narcotics.
components:
- type: Sprite
state: heart-u-on
- type: Organ
intCap: 32
integrity: 32
integrityThresholds:
Normal: 32
Damaged: 9
Destroyed: 0
slotId: heart
onAdd:
- type: StaminaModifier
modifier: 1.7
- type: Metabolizer
maxPoisonsProcessable: 2
metabolizerTypes: [ Cybernetic ]
groups:
- id: Medicine
rateModifier: 0.4
- id: Poison
rateModifier: 2.8
- id: Narcotic
rateModifier: 1.6
# Liver
- type: entity
parent: BaseCyberneticOrgan
id: BasicCyberneticLiver
name: cybernetic liver
description: A high-efficiency synthetic liver that neutralizes all negative effects of alcohol while preserving the buzz.
components:
- type: Liver
- type: Organ
intCap: 29
integrity: 29
integrityThresholds:
Normal: 29
Damaged: 12
Destroyed: 0
slotId: liver
- type: Sprite
state: liver
- type: Item
size: Small
heldPrefix: liver
- type: Metabolizer
maxPoisonsProcessable: 1
metabolizerTypes: [ Cybernetic ]
groups:
- id: Alcohol
rateModifier: 0.1
- type: Tag
tags:
- Organ
- Liver
# Lungs
- type: entity
parent: BaseCyberneticOrgan
id: BasicCyberneticLungs
name: cybernetic lungs
description: Advanced synthetic lungs that breathe oxygen and nitrogen, ignore CO2, and resist most other atmospheric hazards.
components:
- type: Sprite
layers:
- state: lung-l
- state: lung-r
- type: Organ
intCap: 25
integrity: 25
integrityThresholds:
Normal: 25
Damaged: 9
Destroyed: 0
slotId: lungs
- type: Item
size: Small
heldPrefix: lungs
- type: Lung
- type: Metabolizer
removeEmpty: true
solutionOnBody: false
solution: "Lung"
metabolizerTypes: [ Cybernetic ]
groups:
- id: Gas
rateModifier: 100.0
- type: SolutionContainerManager
solutions:
Lung:
maxVol: 100.0
canReact: false
- type: Tag
tags:
- Organ
- Lungs
- type: entity
parent: BasicCyberneticLungs
id: UpgradedCyberneticLungs
name: upgraded cybernetic lungs
description: A self-contained respiratory system that eliminates the need to breathe entirely and grants increased stamina recovery.
components:
- type: Sprite
layers:
- state: lung-u-l
- state: lung-u-r
- type: Organ
intCap: 32
integrity: 32
integrityThresholds:
Normal: 32
Damaged: 9
Destroyed: 0
slotId: lungs
onAdd:
- type: StaminaRegeneration
regenerationRate: -3.0

View File

@@ -0,0 +1,286 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rinary <72972221+Rinary1@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 fishbait <gnesse@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ss14-Starlight <ss14-Starlight@outlook.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: OrganDubiousBase
parent: [ OrganHumanHeart, BaseMajorContraband ]
name: mysterious gland
categories: [ HideSpawnMenu ]
abstract: true
description: Suspicious alien gland, replaces the heart.
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Misc/Dubious/organs.rsi
state: gland
- type: AbductorOrgan
- type: entity
id: OrganDubiousHealth
parent: OrganDubiousBase
components:
- type: Sprite
state: health
- type: Organ
onAdd:
- type: PassiveDamage
allowedStates:
- Alive
- Critical
damageCap: 150
damage:
groups:
Brute: -0.14
Burn: -0.14
Airloss: -0.14
Toxin: -0.14
Genetic: -0.14
- type: entity
id: OrganDubiousAA
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: Access
enabled: true
groups:
- AllAccess
- type: AccessReader
access: [["Command"], ["Research"]]
- type: entity
id: OrganDubiousShock
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: Insulated
- type: LightningArcShooter
arcDepth: 1
maxLightningArc: 3
shootMinInterval: 90
shootMaxInterval: 300
shootRange: 5
lightningPrototype: Lightning
- type: entity
id: OrganDubiousInvisible
parent: OrganDubiousBase
components:
- type: Sprite
state: species
- type: Organ
onAdd:
- type: Stealth
enabledOnDeath: false
maxVisibility: 1.2
- type: StealthOnMove
passiveVisibilityRate: -0.25
movementVisibilityRate: 0.25
- type: entity
id: OrganDubiousGoliath
parent: OrganDubiousBase
components:
- type: Sprite
state: species
- type: Organ
onAdd:
- type: GoliathTentacle
- type: entity
id: OrganDubiousSpaceAdaptation
parent: OrganDubiousBase
components:
- type: Sprite
state: species
- type: Organ
onAdd:
- type: PressureImmunity
- type: BreathingImmunity
- type: entity
id: OrganDubiousArtifact
parent: OrganDubiousBase
components:
- type: Sprite
state: mindshock
- type: Organ
onAdd:
- type: XenoArtifact
- type: RandomStatusActivation
statusEffects:
ActivateArtifactEffect: ActivateArtifactEffect
- type: entity
id: OrganDubiousScrambleDna
parent: OrganDubiousBase
components:
- type: Sprite
state: species
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
ScrambleDnaEffect: ScrambleDnaEffect
- type: entity
id: OrganDubiousScrambleLocation
parent: OrganDubiousBase
components:
- type: Sprite
state: vent
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
ScrambleLocationEffect: ScrambleLocationEffect
- type: entity
id: OrganDubiousSpiderEggs
parent: OrganDubiousBase
components:
- type: Sprite
state: spider
- type: Organ
onAdd:
- type: RandomStatusActivation
minActivationTime: 120
maxActivationTime: 360
statusEffects:
SpawnSpiderEggs: SpawnSpiderEggs
- type: entity
id: OrganDubiousSlimeEggs
parent: OrganDubiousBase
components:
- type: Sprite
state: slime
- type: Organ
onAdd:
- type: RandomStatusActivation
minActivationTime: 120
maxActivationTime: 360
statusEffects:
SpawnSlimes: SpawnSlimes
- type: entity
id: OrganDubiousEMP
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
SpawnEmp: SpawnEmp
- type: entity
id: OrganDubiousGravityWell
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
SpawnGravityWell: SpawnGravityWell
- type: entity
id: OrganDubiousFlash
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
SpawnFlash: SpawnFlash
- type: entity
id: OrganDubiousSmoke
parent: OrganDubiousBase
components:
- type: Sprite
state: emp
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
SpawnSmoke: SpawnSmoke
- type: entity
id: OrganDubiousGas
parent: OrganDubiousBase
components:
- type: Sprite
state: viral
- type: Organ
onAdd:
- type: RandomStatusActivation
statusEffects:
ExpelGas: ExpelGas
- type: entity
id: OrganDubiousSteptriggerImmune
parent: OrganDubiousBase
components:
- type: Sprite
state: viral
- type: Organ
onAdd:
- type: StepTriggerImmune
whitelist:
types:
- Shard
- Landmine
- Mousetrap
- Lava
- Chasm
- SlipTile
- SlipEntity
- ContrabandDetector
- type: entity
id: OrganDubiousVentcrawler
parent: OrganDubiousBase
components:
- type: Sprite
state: viral
- type: Organ
onAdd:
- type: VentCrawler
allowInventory: false
- type: entity
id: OrganDubiousRepairable
parent: OrganDubiousBase
components:
- type: Sprite
state: species
- type: Organ
onAdd:
- type: Repairable
fuelCost: 5
doAfterDelay: 3
damage:
types:
Blunt: -10
Piercing: -10
Slash: -10

View File

@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: OrganFelinidEars
parent: OrganHumanEars
name: cat ears
description: "Holding these might potentially be contagious."
components:
- type: Sprite
sprite: Clothing/Head/Hats/catears.rsi
state: icon
- type: MarkingContainer
marking: FelinidEarsBasic
- type: entity
id: OrganFelinidTail
parent: BaseHumanOrgan
name: cat tail
description: "Should you really have this?"
components:
- type: Sprite
sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi
state: basic_tail_tip
- type: MarkingContainer
marking: FelinidTailBasic
- type: Tail

View File

@@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: OrganHumanHeart
id: BioSynthHeart
name: bio-synthetic heart
description: This heart can be transplanted into any living organism and it will adapt to its recipient.
- type: entity
parent: OrganHumanLiver
id: BioSynthLiver
name: bio-synthetic liver
description: This liver can be transplanted into any living organism and it will adapt to its recipient.
- type: entity
parent: OrganHumanLungs
id: BioSynthLungs
name: bio-synthetic lungs
description: These lungs can be transplanted into any living organism and it will adapt to its recipient.
- type: entity
parent: OrganHumanEyes
id: BioSynthEyes
name: bio-synthetic eyes
description: These eyes can be transplanted into any living organism and it will adapt to its recipient.

View File

@@ -0,0 +1,19 @@
- type: entity
id: RightArmSiliconIndestructible
name: "right silicon arm"
parent: [PartSiliconBase, BaseRightArm]
components:
- type: Sprite
state: borg_r_arm
- type: Icon
state: borg_r_arm
- type: entity
id: RightHandSiliconIndestructible
name: "right silicon hand"
parent: [PartSiliconBase, BaseRightHand]
components:
- type: Sprite
state: borg_r_arm
- type: Icon
state: borg_r_arm

View File

@@ -0,0 +1,55 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
abstract: true
parent: PartBase
id: PartCarpBase
components:
- type: Sprite
sprite: _Shitmed/Mobs/Aliens/Carps/carp_parts.rsi
- type: Icon
sprite: _Shitmed/Mobs/Aliens/Carps/carp_parts.rsi
- type: entity
parent: PartCarpBase
id: TailCarp
name: carp tail
description: Unique glands in this tail let space carp fly in a vacuum.
components:
- type: Sprite
state: tail
- type: Icon
state: tail
- type: BodyPart
partType: Tail
- type: MovementBodyPart
walkSpeed: 2.5
sprintSpeed: 3.5
# TODO: Make it actually needed. Legs are hardcoded to be the only parts that matter for movement.
# TODO: space flight stuff
- type: entity
parent: [ PartCarpBase, BaseChest ]
id: ChestCarp
name: carp chest
components:
- type: Sprite
state: chest
- type: Icon
state: chest
- type: entity
parent: [ PartCarpBase, BaseGroin ]
id: GroinCarp
name: carp groin
components:
- type: Sprite
state: groin
- type: Icon
state: groin

View File

@@ -0,0 +1,132 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# TODO: Add descriptions (many)
- type: entity
abstract: true
parent: BasePart
id: PartKobold
components:
- type: Sprite
sprite: Mobs/Animals/kobold.rsi
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartKobold, BaseChest]
id: ChestKobold
name: "kobold chest"
components:
- type: Sprite
state: "chest_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartKobold, BaseGroin]
id: GroinKobold
name: "kobold groin"
components:
- type: Sprite
state: "groin_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartKobold, BaseHead]
id: HeadKobold
name: "kobold head"
components:
- type: Sprite
state: "head_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 5
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartKobold, BaseLeftArm]
id: LeftArmKobold
name: "left kobold arm"
components:
- type: Sprite
state: "l_arm"
- type: entity
parent: [PartKobold, BaseRightArm]
id: RightArmKobold
name: "right kobold arm"
components:
- type: Sprite
state: "r_arm"
- type: entity
parent: [PartKobold, BaseLeftHand]
id: LeftHandKobold
name: "left kobold hand"
components:
- type: Sprite
state: "l_hand"
- type: entity
parent: [PartKobold, BaseRightHand]
id: RightHandKobold
name: "right kobold hand"
components:
- type: Sprite
state: "r_hand"
- type: entity
parent: [PartKobold, BaseLeftLeg]
id: LeftLegKobold
name: "left kobold leg"
components:
- type: Sprite
state: "l_leg"
- type: entity
parent: [PartKobold, BaseRightLeg]
id: RightLegKobold
name: "right kobold leg"
components:
- type: Sprite
state: "r_leg"
- type: entity
parent: [PartKobold, BaseLeftFoot]
id: LeftFootKobold
name: "left kobold foot"
components:
- type: Sprite
state: "l_foot"
- type: entity
parent: [PartKobold, BaseRightFoot]
id: RightFootKobold
name: "right kobold foot"
components:
- type: Sprite
state: "r_foot"

View File

@@ -0,0 +1,132 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# TODO: Add descriptions (many)
- type: entity
abstract: true
parent: BasePart
id: PartMonkey
components:
- type: Sprite
sprite: Mobs/Animals/monkey.rsi
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartMonkey, BaseChest]
id: ChestMonkey
name: "monkey chest"
components:
- type: Sprite
state: "chest_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartMonkey, BaseGroin]
id: GroinMonkey
name: "monkey groin"
components:
- type: Sprite
state: "groin_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartMonkey, BaseHead]
id: HeadMonkey
name: "monkey head"
components:
- type: Sprite
state: "head_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 5
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartMonkey, BaseLeftArm]
id: LeftArmMonkey
name: "left monkey arm"
components:
- type: Sprite
state: "l_arm"
- type: entity
parent: [PartMonkey, BaseRightArm]
id: RightArmMonkey
name: "right monkey arm"
components:
- type: Sprite
state: "r_arm"
- type: entity
parent: [PartMonkey, BaseLeftHand]
id: LeftHandMonkey
name: "left monkey hand"
components:
- type: Sprite
state: "l_hand"
- type: entity
parent: [PartMonkey, BaseRightHand]
id: RightHandMonkey
name: "right monkey hand"
components:
- type: Sprite
state: "r_hand"
- type: entity
parent: [PartMonkey, BaseLeftLeg]
id: LeftLegMonkey
name: "left monkey leg"
components:
- type: Sprite
state: "l_leg"
- type: entity
parent: [PartMonkey, BaseRightLeg]
id: RightLegMonkey
name: "right monkey leg"
components:
- type: Sprite
state: "r_leg"
- type: entity
parent: [PartMonkey, BaseLeftFoot]
id: LeftFootMonkey
name: "left monkey foot"
components:
- type: Sprite
state: "l_foot"
- type: entity
parent: [PartMonkey, BaseRightFoot]
id: RightFootMonkey
name: "right monkey foot"
components:
- type: Sprite
state: "r_foot"

View File

@@ -0,0 +1,142 @@
- type: entity
abstract: true
parent: BasePart
id: PartScurret
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Scurret/parts.rsi
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartScurret, BaseChest]
id: ChestScurret
name: "scurret chest"
components:
- type: Sprite
state: "chest"
enableOverrideDir: true
overrideDir: south
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartScurret, BaseGroin]
id: GroinScurret
name: "scurret groin"
components:
- type: Sprite
state: "groin"
enableOverrideDir: true
overrideDir: south
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
parent: [PartScurret, BaseHead]
id: HeadScurret
name: "scurret head"
description: "It shall never wawa again."
components:
- type: Sprite
state: "head"
enableOverrideDir: true
overrideDir: south
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 5
- ReagentId: Blood
Quantity: 10
- type: entity
parent: [PartScurret, BaseLeftArm]
id: LeftArmScurret
name: "left scurret arm"
components:
- type: Sprite
state: "l_arm"
enableOverrideDir: true
overrideDir: west
- type: entity
parent: [PartScurret, BaseRightArm]
id: RightArmScurret
name: "right scurret arm"
components:
- type: Sprite
state: "r_arm"
enableOverrideDir: true
overrideDir: east
- type: entity
parent: [PartScurret, BaseLeftHand]
id: LeftHandScurret
name: "left scurret hand"
components:
- type: Sprite
state: "l_hand"
enableOverrideDir: true
overrideDir: west
- type: entity
parent: [PartScurret, BaseRightHand]
id: RightHandScurret
name: "right scurret hand"
components:
- type: Sprite
state: "r_hand"
enableOverrideDir: true
overrideDir: east
- type: entity
parent: [PartScurret, BaseLeftLeg]
id: LeftLegScurret
name: "left scurret leg"
components:
- type: Sprite
state: "l_leg"
- type: entity
parent: [PartScurret, BaseRightLeg]
id: RightLegScurret
name: "right scurret leg"
components:
- type: Sprite
state: "r_leg"
- type: entity
parent: [PartScurret, BaseLeftFoot]
id: LeftFootScurret
name: "left scurret foot"
components:
- type: Sprite
state: "l_foot"
enableOverrideDir: true
overrideDir: west
- type: entity
parent: [PartScurret, BaseRightFoot]
id: RightFootScurret
name: "right scurret foot"
components:
- type: Sprite
state: "r_foot"
enableOverrideDir: true
overrideDir: east

View File

@@ -0,0 +1,113 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
abstract: true
parent: BasePart
id: PartAbductorBase
components:
- type: Sprite
sprite: _Shitmed/Mobs/Species/Abductor/parts.rsi
- type: Icon
sprite: _Shitmed/Mobs/Species/Abductor/parts.rsi
- type: BodyPart
species: Abductor
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: Chest # Default to Chest if something anomalous happens.
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#878787"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
- type: entity
parent: [ PartAbductorBase, BaseChest ]
id: ChestAbductor
name: "abductor chest"
components:
- type: Sprite
state: chest
- type: Icon
state: chest
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Nutriment
Quantity: 10
- ReagentId: Sugar
Quantity: 20
- type: entity
parent: [ PartAbductorBase, BaseGroin ]
id: GroinAbductor
name: "abductor groin"
components:
- type: Sprite
state: groin
- type: Icon
state: groin
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Nutriment
Quantity: 10
- ReagentId: Sugar
Quantity: 20
- type: entity
parent: [ PartAbductorBase, BaseHead ]
id: HeadAbductor
name: "abductor head"
components:
- type: Sprite
state: head
- type: Icon
state: head
- type: entity
parent: [ PartAbductorBase, BaseLeftArm ]
id: LeftArmAbductor
name: "left abductor arm"
- type: entity
parent: [ PartAbductorBase, BaseRightArm ]
id: RightArmAbductor
name: "right abductor arm"
- type: entity
parent: [ PartAbductorBase, BaseLeftHand ]
id: LeftHandAbductor
name: "left abductor hand"
- type: entity
parent: [ PartAbductorBase, BaseRightHand ]
id: RightHandAbductor
name: "right abductor hand"
- type: entity
parent: [ PartAbductorBase, BaseLeftLeg ]
id: LeftLegAbductor
name: "left abductor leg"
- type: entity
parent: [ PartAbductorBase, BaseRightLeg ]
id: RightLegAbductor
name: "right abductor leg"
- type: entity
parent: [ PartAbductorBase, BaseLeftFoot ]
id: LeftFootAbductor
name: "left abductor foot"
- type: entity
parent: [ PartAbductorBase, BaseRightFoot ]
id: RightFootAbductor
name: "right abductor foot"

View File

@@ -0,0 +1,108 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Monkey head for borging/transplanting pun pun
- type: entity
parent: [PartAnimalBase, BaseHead]
id: HeadAnimal
name: animal head
components:
- type: Sprite
layers:
- state: head_m
- type: entity
parent: [PartAnimalBase, ChestAnimal]
id: ChestGoliath
name: goliath chest
components:
- type: Woundable
integrity: 350
integrityCap: 350
thresholds:
Minor: 315
Moderate: 240
Severe: 120
Critical: 60
Mangled: 0
- type: entity
parent: [PartAnimalBase, GroinAnimal]
id: GroinGoliath
name: goliath groin
components:
- type: Woundable
integrity: 350
integrityCap: 350
thresholds:
Minor: 315
Moderate: 240
Severe: 120
Critical: 60
Mangled: 0
- type: entity
parent: [PartAnimalBase, LegsAnimal]
id: LegsGoliath
name: goliath legs
components:
- type: Woundable
integrity: 350
integrityCap: 350
thresholds:
Minor: 315
Moderate: 240
Severe: 120
Critical: 60
Mangled: 0
- type: entity
parent: [PartAnimalBase, ChestAnimal]
id: ChestDragon
name: dragon chest
components:
- type: Woundable
integrity: 500
integrityCap: 500
thresholds:
Minor: 450
Moderate: 350
Severe: 200
Critical: 100
Mangled: 0
- type: entity
parent: [PartAnimalBase, GroinAnimal]
id: GroinDragon
name: dragon groin
components:
- type: Woundable
integrity: 500
integrityCap: 500
thresholds:
Minor: 450
Moderate: 350
Severe: 200
Critical: 100
Mangled: 0
- type: entity
parent: [PartAnimalBase, LegsAnimal]
id: LegsDragon
name: dragon legs
components:
- type: Woundable
integrity: 500
integrityCap: 500
thresholds:
Minor: 450
Moderate: 350
Severe: 200
Critical: 100
Mangled: 0

View File

@@ -0,0 +1,105 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# body part with regular organic destruction
- type: entity
abstract: true
parent: BasePartInorganic
id: BasePart
components:
- type: BodyPart
partComposition: Organic
- type: Damageable
damageContainer: Biological # Shitmed Change
- type: Nerve
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10
# Goob edit start
- type: Food
- type: BadFood
- type: SolutionContainerManager
solutions:
food:
maxVol: 15
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 15
# Goob edit end
# organic torsos have higher health
# this doesn't affect gibbing bodies as there is code to prevent torso gibbing while part of a body
- type: entity
abstract: true
parent: BaseChestInorganic
id: BaseChest
components:
- type: BodyPart
partComposition: Organic
- type: Woundable
damageContainer: Biological
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 400
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 1
max: 1
- !type:BurnBodyBehavior { }
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact
- type: Extractable # torso is meatier
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: Chest
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#FF0000"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: _Shitmed/Mobs/Effects/bleeding_damage.rsi
- type: entity
abstract: true
id: BaseGroin
parent: BaseGroinInorganic
components:
- type: BodyPart
partComposition: Organic
- type: Woundable
damageContainer: Biological
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: Groin
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#FF0000"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi

View File

@@ -0,0 +1,254 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
abstract: true
parent: BasePartInorganic
id: CyberneticPartBase
components:
- type: Sprite
sprite: _EinsteinEngines/Mobs/Species/Cybernetics/bishop/bishop_main.rsi
- type: Icon
sprite: _EinsteinEngines/Mobs/Species/Cybernetics/bishop/bishop_main.rsi
- type: Damageable
damageContainer: Silicon
- type: Cybernetics
- type: Nerve
painMultiplier: 1.5
- type: Woundable
canBleed: false
- type: entity
parent: [ CyberneticPartBase, BaseLeftArm ]
id: LeftArmCybernetic
name: cybernetic left arm
components:
- type: Sprite
state: "l_arm-combined"
- type: Icon
state: "l_arm-combined"
- type: BodyPart
baseLayerId: MobCyberneticBishopLArm
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: LArm
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseRightArm ]
id: RightArmCybernetic
name: cybernetic right arm
components:
- type: Sprite
state: "r_arm-combined"
- type: Icon
state: "r_arm-combined"
- type: BodyPart
baseLayerId: MobCyberneticBishopRArm
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: RArm
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseLeftLeg ]
id: LeftLegCybernetic
name: cybernetic left leg
components:
- type: Sprite
state: "l_leg-combined"
- type: Icon
state: "l_leg-combined"
- type: BodyPart
baseLayerId: MobCyberneticBishopLLeg
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: LLeg
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseRightLeg ]
id: RightLegCybernetic
name: cybernetic right leg
components:
- type: Sprite
state: "r_leg-combined"
- type: Icon
state: "r_leg-combined"
- type: BodyPart
baseLayerId: MobCyberneticBishopRLeg
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: RLeg
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseLeftHand ]
id: LeftHandCybernetic
name: cybernetic left hand
components:
- type: BodyPart
baseLayerId: MobCyberneticBishopLHand
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: LHand
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseRightHand ]
id: RightHandCybernetic
name: cybernetic right hand
components:
- type: BodyPart
baseLayerId: MobCyberneticBishopRHand
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: RHand
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseLeftFoot ]
id: LeftFootCybernetic
name: cybernetic left foot
components:
- type: BodyPart
baseLayerId: MobCyberneticBishopLFoot
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: LFoot
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: [ CyberneticPartBase, BaseRightFoot ]
id: RightFootCybernetic
name: cybernetic right foot
components:
- type: BodyPart
baseLayerId: MobCyberneticBishopRFoot
- type: WoundableVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
occupiedLayer: RFoot
damageOverlayGroups:
Brute:
sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
color: "#DD8822"
Burn:
sprite: _Shitmed/Mobs/Effects/burn_damage.rsi
bleedingOverlay: null
- type: entity
parent: LeftArmCybernetic
id: JawsOfLifeLeftArm
name: J.W.L left arm
description: A cybernetic left arm with the ability to pry doors open.
components:
- type: BodyPart
onAdd:
- type: Prying
speedModifier: 1.5
pryPowered: true
- type: UseDelay # For insta prying
delay: 1
- type: entity
parent: RightArmCybernetic
id: JawsOfLifeRightArm
name: J.W.L right arm
description: A cybernetic right arm with the ability to pry doors open.
components:
- type: BodyPart
onAdd:
- type: Prying
speedModifier: 1.5
pryPowered: true
- type: UseDelay # For insta prying
delay: 1
- type: entity
parent: LeftLegCybernetic
id: SpeedLeftLeg
name: S.P.E.E.D left leg
description: A cybernetic left leg that allows its wearer to run faster.
components:
- type: MovementBodyPart
walkSpeed: 3.125
sprintSpeed: 5.175
- type: entity
parent: RightLegCybernetic
id: SpeedRightLeg
name: S.P.E.E.D right leg
description: A cybernetic left leg that allows its wearer to run faster.
components:
- type: MovementBodyPart
walkSpeed: 3.125
sprintSpeed: 5.175
- type: entity
id: DexLeftHand
parent: LeftHandCybernetic
name: D.E.X left hand
description: A cybernetic left hand that allows its wearer to interact faster.
components:
- type: DoAfterDelayMultiplier
multiplier: 0.9
- type: entity
id: DexRightHand
parent: RightHandCybernetic
name: D.E.X right hand
description: A cybernetic right hand that allows its wearer to interact faster.
components:
- type: DoAfterDelayMultiplier
multiplier: 0.9

View File

@@ -0,0 +1,125 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Martynas6ha4 <martynashagriefer@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: HeadHuman
id: BioSynthHeadEmpty
name: bio-synthetic hollow head
description: This synthetic head can be transplanted into any living organism and it will adapt to its recipient, does not contain a brain or eyes though.
- type: entity
parent: LeftArmHuman
id: BioSynthLeftArm
name: bio-synthetic left arm
description: This left arm can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: BodyPart
children:
left hand:
id: "left hand"
type: Hand
- type: entity
parent: RightArmHuman
id: BioSynthRightArm
name: bio-synthetic right arm
description: This right arm can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: BodyPart
children:
right hand:
id: "right hand"
type: Hand
- type: entity
parent: [PartHuman, BaseLeftHand]
id: BioSynthLeftHand
name: bio-synthetic left hand
description: This left hand can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "l_hand"
- type: entity
parent: [PartHuman, BaseRightHand]
id: BioSynthRightHand
name: bio-synthetic right hand
description: This right hand can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "r_hand"
- type: entity
parent: LeftLegHuman
id: BioSynthLeftLeg
name: bio-synthetic left leg
description: This left leg can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: BodyPart
children:
left foot:
id: "left foot"
type: Foot
- type: entity
parent: RightLegHuman
id: BioSynthRightLeg
name: bio-synthetic right leg
description: This right leg can be transplanted into any living organism and it will adapt to its recipient.
components:
- type: BodyPart
children:
right foot:
id: "right foot"
type: Foot
- type: entity
parent: LeftFootHuman
id: BioSynthLeftFoot
name: bio-synthetic left foot
description: This left foot can be transplanted into any living organism and it will adapt to its recipient.
- type: entity
parent: RightFootHuman
id: BioSynthRightFoot
name: bio-synthetic right foot
description: This right foot can be transplanted into any living organism and it will adapt to its recipient.
# JOKE ITEMS
- type: entity
parent: LeftArmHuman
id: PizzaLeftArm
name: pizza left arm
description: For when you want to turn someone into a Space John's.
components:
- type: BodyPart
partType: Arm
symmetry: Left
toolName: "a left arm"
baseLayerId: MobPizzaLArm
- type: Sprite
sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi
state: "l_arm"
- type: entity
parent: RightArmHuman
id: PizzaRightArm
name: pizza right arm
description: For when you want to turn someone into a Space John's.
components:
- type: BodyPart
partType: Arm
symmetry: Right
toolName: "a right arm"
baseLayerId: MobPizzaRArm
- type: Sprite
sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi
state: "r_arm"

View File

@@ -0,0 +1,31 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: Carp
name: carp
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- tail
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
tail:
part: TailCarp

View File

@@ -0,0 +1,38 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceDragon
name: "space dragon"
root: chest
slots:
chest:
part: ChestDragon
connections:
- groin
organs:
lungs: OrganDragonLungs # Fire breathing
heart: OrganAnimalHeart
groin:
part: GroinDragon
connections:
- legs
organs:
liver: OrganAnimalLiver
stomach: OrganAnimalStomach
kidneys: OrganAnimalKidneys
legs:
part: LegsDragon
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: Goliath
name: "goliath"
root: chest
slots:
chest:
part: ChestGoliath
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganGoliathHeart # Allows you to use a slower version of their tentacles.
groin:
part: GroinGoliath
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsGoliath
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 LankLTE <135308300+LankLTE@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 portfiend <109661617+portfiend@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Shitmed - this is just a copy of human body but with animal organs.
- type: body
id: Kobold
name: "Kobold"
root: chest
slots:
head:
part: HeadKobold
connections:
- chest
organs:
brain: OrganAnimalBrain
eyes: OrganAnimalEyes
chest:
part: ChestKobold
connections:
- groin
- right arm
- left arm
- head
organs:
heart: OrganAnimalHeart
lungs: OrganAnimalLungs
groin:
part: GroinKobold
connections:
- right leg
- left leg
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
right arm:
part: RightArmKobold
connections:
- right hand
left arm:
part: LeftArmKobold
connections:
- left hand
right hand:
part: RightHandKobold
left hand:
part: LeftHandKobold
right leg:
part: RightLegKobold
connections:
- right foot
left leg:
part: LeftLegKobold
connections:
- left foot
right foot:
part: RightFootKobold
left foot:
part: LeftFootKobold

View File

@@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: LaserRaptor
name: "laser raptor"
root: chest
slots:
head:
part: HeadAnimal
connections:
- chest
organs:
eyes: OrganLaserEyes
chest:
part: ChestAnimal
connections:
- groin
- head
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 LankLTE <135308300+LankLTE@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 portfiend <109661617+portfiend@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Shitmed - this is just a copy of human body but with animal organs.
- type: body
id: Monkey
name: "Monkey"
root: chest
slots:
head:
part: HeadMonkey
connections:
- chest
organs:
brain: OrganAnimalBrain
eyes: OrganAnimalEyes
chest:
part: ChestMonkey
connections:
- groin
- right arm
- left arm
- head
organs:
heart: OrganAnimalHeart
lungs: OrganAnimalLungs
groin:
part: GroinMonkey
connections:
- right leg
- left leg
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
right arm:
part: RightArmMonkey
connections:
- right hand
left arm:
part: LeftArmMonkey
connections:
- left hand
right hand:
part: RightHandMonkey
left hand:
part: LeftHandMonkey
right leg:
part: RightLegMonkey
connections:
- right foot
left leg:
part: LeftLegMonkey
connections:
- left foot
right foot:
part: RightFootMonkey
left foot:
part: LeftFootMonkey

View File

@@ -0,0 +1,55 @@
- type: body
id: Scurret
name: "Scurret"
root: chest
slots:
head:
part: HeadScurret
connections:
- chest
organs:
brain: OrganAnimalBrain
eyes: OrganAnimalEyes
chest:
part: ChestScurret
connections:
- groin
- right arm
- left arm
- head
organs:
heart: OrganAnimalHeart
lungs: OrganAnimalLungs
groin:
part: GroinScurret
connections:
- right leg
- left leg
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
right arm:
part: RightArmScurret
connections:
- right hand
left arm:
part: LeftArmScurret
connections:
- left hand
right hand:
part: RightHandScurret
left hand:
part: LeftHandScurret
right leg:
part: RightLegScurret
connections:
- right foot
left leg:
part: LeftLegScurret
connections:
- left foot
right foot:
part: RightFootScurret
left foot:
part: LeftFootScurret

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceAdder
name: "space adder"
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceBear
name: "space bear"
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceCobra
name: "space cobra"
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganCobraHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceKangaroo
name: "space kangaroo"
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2022 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ExponentialWizard <38435756+ExponentialWizard@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: SpaceSpider
name: "space spider"
root: chest
slots:
chest:
part: ChestAnimal
connections:
- groin
organs:
lungs: OrganAnimalLungs
heart: OrganAnimalHeart
groin:
part: GroinAnimal
connections:
- legs
organs:
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
kidneys: OrganAnimalKidneys
legs:
part: LegsAnimal
connections:
- feet
feet:
part: FeetAnimal

View File

@@ -0,0 +1,60 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: body
id: Abductor
name: Abductor
root: chest
slots:
head:
part: HeadAbductor
connections:
- chest
organs:
brain: OrganAbductorBrain
eyes: OrganAbductorEyes
chest:
part: ChestAbductor
connections:
- groin
- right arm
- left arm
organs:
heart: OrganAbductorHeart
lungs: OrganAbductorLungs
groin:
part: GroinAbductor
connections:
- right leg
- left leg
organs:
stomach: OrganAbductorStomach
liver: OrganAbductorLiver
kidneys: OrganAbductorKidneys
right arm:
part: RightArmAbductor
connections:
- right hand
left arm:
part: LeftArmAbductor
connections:
- left hand
right hand:
part: RightHandAbductor
left hand:
part: LeftHandAbductor
right leg:
part: RightLegAbductor
connections:
- right foot
left leg:
part: LeftLegAbductor
connections:
- left foot
right foot:
part: RightFootAbductor
left foot:
part: LeftFootAbductor

View File

@@ -0,0 +1,12 @@
# It's a silicon that has a hand. And nothing else.
- type: body
id: SiliconHand
name: "Silicon"
root: right arm
slots:
right arm:
part: RightArmSiliconIndestructible
connections:
- right hand
right hand:
part: RightHandSiliconIndestructible

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: ClothingBackpackDuffelAbductor
id: ClothingBackpackDuffelAbductorFilled
name: alien surgery duffel bag
description: An ordinary surgical duffel bag woven from a durable fiber.
components:
- type: StorageFill
contents:
- id: EnergyScalpelAbductor
- id: SearingToolAbductor
- id: MechanicalPinchesAbductor
- id: BoneManipulatorAbductor

View File

@@ -0,0 +1,20 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: ClothingAbductorBeltFilled
parent: ClothingAbductorBelt
suffix: Filled
components:
- type: StorageFill
contents:
- id: CrowbarAbductor
- id: WrenchAbductor
- id: ScrewdriverAbductor
- id: WirecutterAbductor
- id: WelderAbductor
- id: MultitoolAbductor

View File

@@ -0,0 +1,8 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: metabolizerType
id: Cybernetic
name: metabolizer-type-cybernetic

View File

@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingHandsButcherable, BaseMedicalContraband ]
id: ClothingHandsGlovesSurgical
name: bluespace surgical gloves
description: These experimental gloves utilize bluespace technology to allow their user to perform surgery through clothing.
components:
- type: Sprite
sprite: _Shitmed/Clothing/Hands/surgery_gloves.rsi
- type: Clothing
sprite: _Shitmed/Clothing/Hands/surgery_gloves.rsi
- type: Fiber
fiberColor: fibers-blue
fiberMaterial: fibers-latex
- type: FingerprintMask
- type: ClothingGrantComponent
component:
- type: SurgeryIgnoreClothing

View File

@@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ UnsensoredClothingUniformBase, BaseMajorContraband ]
id: ClothingUniformJumpsuitAbductor
name: abductor uniform
components:
- type: Sprite
sprite: _Shitmed/Clothing/Uniforms/Jumpsuit/abductor.rsi
- type: Clothing
sprite: _Shitmed/Clothing/Uniforms/Jumpsuit/abductor.rsi

View File

@@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2024 fishbait <gnesse@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: damageContainer
id: OrganicPart
supportedGroups:
- Brute
- Burn

View File

@@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Change this if you want to alter how damage types affect part severing/integrity.
- type: damageModifierSet
id: PartDamage
coefficients:
Blunt: 0.8
Slash: 1.2
Piercing: 0.5
Cold: 0.5
Heat: 0.8
Shock: 0.5
ignoreArmorPierceFlags: All # Goobstation

View File

@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: localizedDataset
id: AbductorNames
values:
prefix: abductor-names-dataset-
count: 45
- type: localizedDataset
id: AbductorScientistPrefix
values:
prefix: abductor-scientist-prefix-dataset-
count: 2
- type: localizedDataset
id: AbductorAgentPrefix
values:
prefix: abductor-agent-prefix-dataset-
count: 2

View File

@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: sinkPort
id: OperatingTableReceiver
name: signal-port-name-operating-table
description: signal-port-description-operating-table-receiver

View File

@@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: sourcePort
id: OperatingTable
name: signal-port-name-operating-table
description: signal-port-description-operating-table-sender
defaultLinks: [ OperatingTableReceiver ]

View File

@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingBackpack, BaseMajorContraband ]
id: ClothingBackpackAbductor
name: alien backpack
description: An ordinary backpack woven from a durable fiber.
components:
- type: Sprite
sprite: _Shitmed/Clothing/Back/Backpacks/abductor.rsi
- type: ExplosionResistance
damageCoefficient: 0.1

View File

@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingBackpackDuffel, BaseMajorContraband ]
id: ClothingBackpackDuffelAbductor
name: alien duffel bag
description: An ordinary duffel bag woven from a durable fiber.
components:
- type: Sprite
sprite: _Shitmed/Clothing/Back/Duffels/abductor.rsi
- type: ExplosionResistance
damageCoefficient: 0.1
- type: Storage
grid:
- 0,0,8,4

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingBeltUtility, BaseMajorContraband ]
id: ClothingAbductorBelt
name: alien belt
description: Can hold various OUR things. # I was going to change this, but it's funny so it stays.
components:
- type: Sprite
sprite: _Shitmed/Clothing/Belt/abductor.rsi
- type: Clothing
sprite: _Shitmed/Clothing/Belt/abductor.rsi

View File

@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingHeadsetAlt, BaseMajorContraband ]
id: ClothingHeadsetAltAbductor
name: abductor over-ear headset
components:
- type: ContainerFill
containers:
key_slots:
- EncryptionKeyStationMaster
- type: Sprite
sprite: _Shitmed/Clothing/Ears/Headsets/abductor.rsi
- type: Clothing
sprite: _Shitmed/Clothing/Ears/Headsets/abductor.rsi

View File

@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Marty <martynashagriefer@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingHeadHelmetBase, BaseMajorContraband ]
id: ClothingHeadHelmetAbductor
name: alien helmet
description: Zeep Glorp!
components:
- type: Armor
coverage:
- Head
modifiers:
coefficients:
Blunt: 0.35
Slash: 0.35
Piercing: 0.35
Heat: 0.35
Radiation: 0.5
Caustic: 0.5
- type: ExplosionResistance
damageCoefficient: 0.75
- type: Sprite
sprite: _Shitmed/Clothing/Head/Helmets/abductor.rsi
- type: Clothing
sprite: _Shitmed/Clothing/Head/Helmets/abductor.rsi
- type: EyeProtection
- type: HideLayerClothing
layers:
HeadTop : HEAD
HeadSide : HEAD

View File

@@ -0,0 +1,137 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <aviu00@protonmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [ ClothingOuterBase, AllowSuitStorageClothing, BaseMajorContraband ]
id: ClothingOuterArmorAbductor
name: agent vest
components:
- type: Sprite
sprite: _Shitmed/Clothing/OuterClothing/Armor/abductor.rsi
- type: AbductorVest
- type: ModifyDelayedKnockdown # Goobstation
cancel: true
- type: StaminaResistance
damageCoefficient: 0.25
- type: ItemSwitch
state: stealth
states:
Stealth: !type:ItemSwitchState
verb: Stealth
hidden: true
sprite:
sprite: _Shitmed/Clothing/OuterClothing/Armor/abductor.rsi
state: icon
components:
- type: Armor
traumaDeductions:
Dismemberment: 0.4
OrganDamage: 0.4
BoneDamage: 0.4
VeinsDamage: 0
NerveDamage: 0
coverage:
- Chest
- Groin
- Arm
- Leg
- Tail
- Hand
- Foot
modifiers:
coefficients:
Blunt: 0.6
Slash: 0.6
Heat: 0.6
Piercing: 0.6
Radiation: 0.6
Caustic: 0.4
- type: ExplosionResistance
damageCoefficient: 0.85
- type: Clothing
sprite: _Shitmed/Clothing/OuterClothing/Armor/abductor.rsi
slots:
- outerClothing
Combat: !type:ItemSwitchState
verb: Combat
hidden: true
sprite:
sprite: _Shitmed/Clothing/OuterClothing/Armor/abductor.rsi
state: combat-icon
components:
- type: Armor
traumaDeductions:
Dismemberment: 0.4
OrganDamage: 0.4
BoneDamage: 0.4
VeinsDamage: 0
NerveDamage: 0
coverage:
- Chest
- Groin
- Arm
- Leg
- Tail
modifiers:
coefficients:
Blunt: 0.25
Slash: 0.25
Heat: 0.25
Piercing: 0.25
Radiation: 0.25
Caustic: 0.1
- type: ExplosionResistance
damageCoefficient: 0.5
- type: Clothing
sprite: _Shitmed/Clothing/OuterClothing/Armor/abductor.rsi
slots:
- outerClothing
equippedPrefix: combat
- type: entity
parent: [ ClothingOuterStorageBase, AllowSuitStorageClothing, BaseMajorContraband]
id: ClothingOuterCoatAbductor
name: alien lab coat
description: A suit of alien origin that protects from various injuries, as well as from chemical spills.
components:
- type: Sprite
sprite: _Shitmed/Clothing/OuterClothing/Coats/abductor.rsi
- type: Clothing
sprite: _Shitmed/Clothing/OuterClothing/Coats/abductor.rsi
- type: Armor
coverage:
- Chest
- Groin
- Arm
- Leg
- Tail
traumaDeductions:
Dismemberment: 0.3
OrganDamage: 0.3
BoneDamage: 0.3
VeinsDamage: 0
NerveDamage: 0
modifiers:
coefficients:
Blunt: 0.6
Slash: 0.6
Heat: 0.6
Piercing: 0.6
Radiation: 0.6
Caustic: 0.4
- type: ExplosionResistance
damageCoefficient: 0.75
- type: StaminaResistance
damageCoefficient: 0.4
- type: ModifyDelayedKnockdown
delayDelta: 3
knockdownTimeDelta: -3

View File

@@ -0,0 +1,87 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
name: bang severer
parent: BaseItem
id: MeleeDebugSever
description: sever yer parts a week from now
suffix: DEBUG
components:
- type: Tag
tags:
- Debug
- type: Sprite
sprite: Objects/Weapons/Melee/debug.rsi
state: icon
- type: MeleeWeapon
damage:
types:
Slash: 20000
clickPartDamageMultiplier: 10
- type: Item
size: Tiny
sprite: Objects/Weapons/Melee/debug.rsi
- type: entity
name: bang severer 100dmg
parent: MeleeDebugSever
id: MeleeDebugSever100
components:
- type: Tag
tags:
- Debug
- type: MeleeWeapon
damage:
types:
Slash: 100
- type: entity
name: bang severer 200dmg
parent: MeleeDebugSever
id: MeleeDebugSever200
components:
- type: Tag
tags:
- Debug
- type: MeleeWeapon
damage:
types:
Slash: 200
- type: entity
name: bang burner
parent: BaseItem
id: MeleeDebugBurner
description: burn yer parts
suffix: DEBUG
components:
- type: Tag
tags:
- Debug
- type: Sprite
sprite: Objects/Weapons/Melee/debug.rsi
state: icon
- type: MeleeWeapon
damage:
types:
Heat: 20000
clickPartDamageMultiplier: 10
- type: Item
size: Tiny
sprite: Objects/Weapons/Melee/debug.rsi
- type: entity
name: bang burner 200dmg
parent: MeleeDebugBurner
id: MeleeDebugBurner200
components:
- type: Tag
tags:
- Debug
- type: MeleeWeapon
damage:
types:
Heat: 200

View File

@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: EffectTeleportation
categories: [ HideSpawnMenu ]
name: teleportation
components:
- type: Transform
anchored: True
- type: Physics
bodyType: Static
canCollide: false
- type: Sprite
sprite: _Shitmed/Effects/teleportation.rsi
state: teleportation
scale: 0.65, 0.65
color: "#FD009899"
- type: TimedDespawn
lifetime: 5.0
- type: entity
id: EffectTeleportationEntity
categories: [ HideSpawnMenu ]
name: teleportation
components:
- type: Physics
bodyType: Static
canCollide: false
- type: Sprite
sprite: _Shitmed/Effects/teleportation.rsi
state: teleportation-entity
scale: 0.65, 0.65
color: "#FD009899"
- type: TimedDespawn
lifetime: 5.0

View File

@@ -0,0 +1,61 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rinary <72972221+Rinary1@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 fishbait <gnesse@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ss14-Starlight <ss14-Starlight@outlook.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entityTable
id: DubiousOrgansTable
table: !type:GroupSelector
children:
# Not-so Annoying Organs Group - 50% chance
- !type:GroupSelector
weight: 50
children:
- id: OrganDubiousHealth
- id: OrganDubiousInvisible
- id: OrganDubiousSpaceAdaptation
- id: OrganDubiousScrambleDna
- id: OrganDubiousScrambleLocation
- id: OrganDubiousArtifact
- id: OrganDubiousVentcrawler
- id: OrganDubiousSteptriggerImmune
- id: OrganDubiousRepairable
# Annoying/Disruptive Organs Group - 35% chance
- !type:GroupSelector
weight: 35
children:
- id: OrganDubiousShock
- id: OrganDubiousGoliath
- id: OrganDubiousEMP
- id: OrganDubiousGravityWell
- id: OrganDubiousFlash
- id: OrganDubiousSmoke
- id: OrganDubiousGas
# Very Disruptive Organs Group - 15% chance
- !type:GroupSelector
weight: 15
children:
- id: OrganDubiousAA
- id: OrganDubiousSpiderEggs
- id: OrganDubiousSlimeEggs
- type: entity
name: Dubious Organ Spawner
id: DubiousOrganSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: _Shitmed/Mobs/Species/Misc/Dubious/organs.rsi
state: gland
- type: EntityTableSpawner
table: !type:NestedSelector
tableId: DubiousOrgansTable

View File

@@ -0,0 +1,295 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 CerberusWolfie <wb.johnb.willis@gmail.com>
# SPDX-FileCopyrightText: 2025 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Entity Prototypes
- type: entity
parent: MobAbductor
id: MobAbductorAntag
abstract: true
components:
- type: Abductor
- type: ActionGrant
actions:
- ActionReturnToShip
- type: GhostRole
rules: abductors-ghost-role-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: NpcFactionMember
factions:
- SimpleHostile
- type: RandomMetadata
nameSegments:
- AbductorScientistPrefix
- AbductorNames
nameFormat: name-format-standard
- type: Tag
tags:
- Abductor
- AbductorScientist
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: entity
name: lone abductor
parent: MobAbductorAntag
id: MobLoneAbductor
components:
- type: GhostRole
name: abductor-lone-ghost-role-name
description: abductor-lone-ghost-role-desc
mindRoles:
- MindRoleGhostRoleSoloAntagonist
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 7200 #2 hours
- !type:DepartmentTimeRequirement
department: Security
time: 7200 #2 hours
- type: AbductorScientist
- type: SurgeryIgnoreClothing
- type: Sanitized
- type: SurgerySpeedModifier
speedModifier: 1.5
- type: Loadout
prototypes:
- LoneAbductorGear
- type: entity
name: abductor scientist
parent: MobAbductorAntag
id: MobAbductorScientist
components:
- type: GhostRole
name: abductor-scientist-ghost-role-name
description: abductor-scientist-ghost-role-desc
mindRoles:
- MindRoleGhostRoleTeamAntagonist
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 10800 #3 hours
- type: AbductorScientist
- type: SurgeryIgnoreClothing
- type: Sanitized
- type: SurgerySpeedModifier
speedModifier: 1.5
- type: Loadout
prototypes:
- AbductorScientistGear
- type: entity
name: abductor agent
parent: MobAbductorAntag
id: MobAbductorAgent
components:
- type: GhostRole
name: abductor-agent-ghost-role-name
description: abductor-agent-ghost-role-desc
mindRoles:
- MindRoleGhostRoleTeamAntagonist
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Security
time: 10800 #3 hours
- type: RandomMetadata
nameSegments:
- AbductorAgentPrefix
- AbductorNames
- type: Tag # Ignore AbductorScientist tag
tags:
- Abductor
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: AbductorScientist # Should be removed when we have proper teleportation system
- type: Loadout
prototypes:
- AbductorAgentGear
# Gearsets
- type: startingGear
id: LoneAbductorGear
equipment:
jumpsuit: ClothingUniformJumpsuitAbductor
ears: ClothingHeadsetAltAbductor
shoes: ClothingShoesBootsCombat
gloves: ClothingHandsGlovesCombat
head: ClothingHeadHelmetAbductor
outerClothing: ClothingOuterCoatAbductor
back: ClothingBackpackAbductor
pocket1: AbductorGizmo
pocket2: WeaponAlien
suitstorage: Wonderprod
id: AgentIDCard
- type: startingGear
id: AbductorScientistGear
equipment:
jumpsuit: ClothingUniformJumpsuitAbductor
ears: ClothingHeadsetAltAbductor
shoes: ClothingShoesBootsCombat
gloves: ClothingHandsGlovesCombat
head: ClothingHeadMirror
outerClothing: ClothingOuterCoatAbductor
back: ClothingBackpackDuffelAbductor
pocket1: AbductorGizmo
suitstorage: WeaponDecloner
id: AgentIDCard
- type: startingGear
id: AbductorAgentGear
equipment:
jumpsuit: ClothingUniformJumpsuitAbductor
ears: ClothingHeadsetAltAbductor
shoes: ClothingShoesBootsCombat
gloves: ClothingHandsGlovesCombat
head: ClothingHeadHelmetAbductor
outerClothing: ClothingOuterArmorAbductor
back: ClothingBackpackAbductor
pocket1: Silencer
pocket2: WeaponAlien
suitstorage: Wonderprod
id: AgentIDCard
# Spawners
- type: entity
name: lone abductor spawner
id: SpawnPointLoneAbductor
parent: MarkerBase
components:
- type: SpawnPoint
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation
- type: entity
categories: [ HideSpawnMenu, Spawner ]
parent: BaseAntagSpawner
id: LoneAbductorSpawner
components:
- type: GhostRole
name: abductor-lone-ghost-role-name
description: abductor-lone-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleSoloAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 7200 #2 hours
- !type:DepartmentTimeRequirement
department: Security
time: 7200 #2 hours
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation
- type: entity
name: abductor agent spawner
id: SpawnPointAbductorAgent
parent: MarkerBase
components:
- type: SpawnPoint
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation
- type: entity
categories: [ HideSpawnMenu, Spawner ]
parent: BaseAntagSpawner
id: AbductorAgentSpawner
components:
- type: GhostRole
name: abductor-agent-ghost-role-name
description: abductor-agent-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Security
time: 10800 #3 hours
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation
- type: entity
name: abductor scientist spawner
id: SpawnPointAbductorScientist
parent: MarkerBase
components:
- type: SpawnPoint
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation
- type: entity
categories: [ HideSpawnMenu, Spawner ]
parent: BaseAntagSpawner
id: AbductorScientistSpawner
components:
- type: GhostRole
name: abductor-scientist-ghost-role-name
description: abductor-scientist-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 10800 #3 hours
- type: Sprite
sprite: Markers/jobs.rsi
layers:
- state: green
- sprite: Structures/Wallmounts/signs.rsi
state: radiation

View File

@@ -0,0 +1,84 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Poips <Hanakohashbrown@gmail.com>
# SPDX-FileCopyrightText: 2025 Rinary <72972221+Rinary1@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 kamkoi <poiiiple1@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
save: false
name: Urist McAlien
parent:
- MobBloodstream
- MobFlammable
- BaseMobSpecies
- BaseMobDisgust # Goobstation
id: MobAbductor
components:
- type: Absorbable # BLOOD FOR THE BLOOD GOD
# - type: GlorpAccent # GoobStation - Glorpshit # Removed for EE - Languages
- type: HumanoidAppearance
species: Abductor
- type: Icon
sprite: _Shitmed/Mobs/Species/Abductor/parts.rsi
state: full
- type: Fingerprint
- type: Blindable
- type: Body
prototype: Abductor
requiredLegs: 2
- type: FireVisuals
alternateState: Standing
- type: Damageable
damageContainer: Biological
- type: Tag
tags:
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: CollectiveMind
defaultChannel: Abductormind
channels:
- Abductormind
- type: LanguageKnowledge # Einstein Engines - Language
speaks:
- Xeeplian
understands:
- TauCetiBasic # Can understand, but cannot speak it.
- Xeeplian
# - type: DamageVisuals
# damageOverlayGroups:
# Brute:
# sprite: _Shitmed/Mobs/Effects/brute_damage.rsi
# color: "#878787"
# Burn:
# sprite: Mobs/Effects/burn_damage.rsi
# - type: PassiveDamage
# allowedStates:
# - Alive
# damageCap: 40
# damage:
# types:
# Heat: -0.14
# groups:
# Brute: -0.14
- type: Targeting
- type: SurgeryTarget
- type: Bloodstream
bloodReagent: AlienBlood
- type: entity
parent: BaseSpeciesDummy
id: MobAbductorDummy
categories: [ HideSpawnMenu ]
components:
- type: HumanoidAppearance
species: Abductor

View File

@@ -0,0 +1,46 @@
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
save: false
parent: BaseSpeciesDummy
id: MobMonkeyDummy
categories: [ HideSpawnMenu ]
description: A dummy monkey meant to be used in character setup.
components:
- type: Icon
sprite: Mobs/Animals/monkey.rsi
state: full
- type: Appearance
- type: HumanoidAppearance
species: Monkey
- type: Body
prototype: Monkey
requiredLegs: 2
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too
type: HumanoidMarkingModifierBoundUserInterface
- type: entity
save: false
parent: BaseSpeciesDummy
id: MobKoboldDummy
categories: [ HideSpawnMenu ]
description: A dummy kobold meant to be used in character setup.
components:
- type: Icon
sprite: Mobs/Animals/kobold.rsi
state: full
- type: Appearance
- type: HumanoidAppearance
species: Kobold
- type: Body
prototype: Kobold
requiredLegs: 2
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too
type: HumanoidMarkingModifierBoundUserInterface

View File

@@ -0,0 +1,20 @@
- type: entity
save: false
parent: BaseSpeciesDummy
id: MobScurretDummy
categories: [ HideSpawnMenu ]
description: A dummy scurret meant to be used in character setup.
components:
- type: Icon
sprite: Mobs/Animals/scurret/scurret.rsi
state: scurret
- type: Appearance
- type: HumanoidAppearance
species: Scurret
- type: Body
prototype: Scurret
requiredLegs: 2
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key:
type: HumanoidMarkingModifierBoundUserInterface

View File

@@ -0,0 +1,323 @@
- type: entity
abstract: true
parent: BaseAugment
id: BaseArmAugment
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/arm.rsi
- type: Item
size: Huge
- type: Organ
slotId: armImplant
- type: AugmentArm
# Tools
- type: entity
parent: BaseAugmentAction
id: ActionAugmentOpenToolsPanel
name: Open tools panel
description: Access the tools implanted within you
components:
- type: Action
icon: { sprite: Clothing/Belt/utility.rsi, state: icon }
iconOn: Interface/Default/blocked.png
- type: entity
abstract: true
parent: BaseArmAugment
id: BaseAugmentToolPanel
components:
- type: Sprite
state: base
- type: Storage
maxItemSize: Normal
defaultStorageOrientation: Vertical
grid:
- 0,0,9,1
- type: ContainerContainer
containers:
storagebase: !type:Container
ents: []
- type: ItemToggle
activated: true # needs to be activated for installation
onUse: false
onActivate: false
- type: AugmentPowerDraw
draw: 6 # used while an item is equipped
- type: AugmentToolPanel
- type: UserInterface
interfaces:
enum.StorageUiKey.Key:
type: StorageBoundUserInterface
enum.AugmentToolPanelUiKey.Key:
type: AugmentToolPanelMenuBoundUserInterface
interactionRange: 0
- type: AugmentActivatableUI
key: enum.AugmentToolPanelUiKey.Key
- type: AugmentAction
action: ActionAugmentOpenToolsPanel
- type: Construction
graph: AugmentToolsPanel
# Arm augment electronics
- type: entity
abstract: true
parent: BaseElectronics
id: BaseAugmentElectronics
components:
- type: Sprite
state: mainboard
- type: Item
storedRotation: 0
- type: PhysicalComposition
materialComposition:
Glass: 100
Steel: 100
chemicalComposition:
Silicon: 20
- type: entity
parent: BaseAugmentElectronics
id: AugmentUtilityPanelElectronics
name: utility tools panel electronics
description: An electronics board that programs a tool panel to hold a specific type of item. This one holds utility tools.
components:
- type: Tag
tags: [ AugmentUtilityToolElectronics ]
- type: entity
parent: BaseAugmentElectronics
id: AugmentBotanyPanelElectronics
name: botany tools panel electronics
description: An electronics board that programs a tool panel to hold a specific type of item. This one holds botanical tools.
components:
- type: Tag
tags: [ AugmentBotanyToolElectronics ]
- type: entity
parent: BaseAugmentElectronics
id: AugmentSurgeryPanelElectronics
name: surgery tools panel electronics
description: An electronics board that programs a tool panel to hold a specific type of item. This one holds surgical tools.
components:
- type: Tag
tags: [ AugmentSurgeryToolElectronics ]
- type: entity
parent: BaseAugmentElectronics
id: AugmentPaperworkPanelElectronics
name: paperwork tools panel electronics
description: An electronics board that programs a tool panel to hold a specific type of item. This one holds paperwork tools.
components:
- type: Tag
tags: [ AugmentPaperworkToolElectronics ]
- type: entity
parent: BaseAugmentElectronics
id: AugmentStrengthElectronics
name: strength augment electronics
description: An electronics board that controls a strength augment.
components:
- type: Tag
tags: [ AugmentStrengthElectronics ]
# Arm augment casings
- type: entity
abstract: true
parent: BaseItem
id: BaseIncompleteAugmentToolPanel
description: Can be implanted into a body to provide access to specific tools. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/arm.rsi
- type: Item
size: Huge
- type: Construction
graph: AugmentToolsPanel
- type: entity
parent: BaseIncompleteAugmentToolPanel
id: AugmentToolPanelCasing
name: tools panel augment casing
components:
- type: Sprite
state: base
- type: Construction
node: casing
- type: Tag
tags: [ AugmentToolPanelCasing ]
- type: entity
parent: BaseIncompleteAugmentToolPanel
id: AugmentToolPanelCables
name: tools panel augment casing with cables
components:
- type: Sprite
state: base_cables
- type: Construction
node: cables
- type: entity
parent: BaseAugmentToolPanel
id: AugmentToolsPanel
name: utility tools panel augment
description: A panel that can be augmented into a patient's arm to provide them access to its contents. This one can hold basic tools.
components:
- type: Sprite
state: engineering
- type: Storage
whitelist:
tags:
- Wirecutter
- Crowbar
- Screwdriver
- Wrench
- GeigerCounter
- Powerdrill
- JawsOfLife
- HolofanProjector
- Multitool
- AppraisalTool
components:
- StationMap
- SprayPainter
- NetworkConfigurator
- RCD
- RCDAmmo
- Welder
- PowerCell
- Geiger
- TrayScanner
- GasAnalyzer
- type: Construction
node: "utility tools panel"
- type: entity
parent: BaseAugmentToolPanel
id: AugmentBotanyPanel
name: botanical tools panel augment
description: A panel that can be augmented into a patient's arm to provide them access to its contents. This one can hold botanical tools.
components:
- type: Sprite
state: botany
- type: Storage
whitelist:
tags:
- PlantSampleTaker
- BotanyShovel
- BotanyHoe
- BotanyHatchet
- Dropper
components:
- HandLabeler
- type: Construction
node: "botany tools panel"
- type: entity
parent: BaseAugmentToolPanel
id: AugmentPaperworkPanel
name: paperwork tools panel augment
description: A panel that can be augmented into a patient's arm to provide them access to its contents. This one can hold paperwork tools.
components:
- type: Sprite
state: paperwork
- type: Storage
whitelist:
tags:
- Folder
components:
- HandLabeler
- Stamp
- TapeRecorder
- type: Construction
node: "paperwork tools panel"
- type: entity
parent: BaseAugmentToolPanel
id: AugmentSurgicalPanel
name: surgical tools panel augment
description: A panel that can be augmented into a patient's arm to provide them access to its contents. This one can hold surgical tools.
components:
- type: Sprite
state: surgical
- type: Storage
whitelist:
requireAll: true
tags:
- SurgeryTool
components:
- SurgeryTool
- type: Construction
node: "surgery tools panel"
# Strength
- type: entity
abstract: true
parent: BaseItem
id: BaseIncompleteAugmentStrength
description: Can be implanted into a body to increase physical strength. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/arm.rsi
- type: Item
size: Huge
- type: Construction
graph: AugmentStrength
- type: entity
parent: BaseIncompleteAugmentStrength
id: AugmentStrengthCasing
name: strength augment casing
components:
- type: Sprite
state: base
- type: Construction
node: casing
- type: Tag
tags: [ AugmentStrengthCasing ]
- type: entity
parent: BaseIncompleteAugmentStrength
id: AugmentStrengthCables
name: strength augment casing with cables
components:
- type: Sprite
state: base_cables
- type: Construction
node: cables
- type: entity
parent: BaseAugmentAction
id: ActionAugmentToggleStrength
name: Toggle strength augment
description: Increases your melee damage by 25%, consumes 30W while active.
components:
- type: Action
icon: Interface/Default/blocked.png
iconOn: { sprite: Objects/Tools/Toolboxes/toolbox_blue.rsi, state: icon }
- type: InstantAction
event: !type:ToggleActionEvent
- type: entity
parent: BaseArmAugment
id: AugmentStrength
name: strength augment
description: Can be implanted into a body to increase physical strength.
components:
- type: Sprite
state: strength
- type: ItemToggle
onUse: false
onActivate: false
- type: AugmentStrength
- type: AugmentPowerDraw
draw: 30
- type: AugmentAction
action: ActionAugmentToggleStrength
- type: Construction
graph: AugmentStrength
node: augment

View File

@@ -0,0 +1,23 @@
- type: entity
abstract: true
parent: BaseItem
id: BaseAugment
components:
- type: Augment
- type: SurgeryTool
ignoreToggle: true # ItemToggle is used for augment logic not surgical tool usability
- type: Organ
intCap: 30
integrity: 30
integrityThresholds:
Normal: 30
Damaged: 12
Destroyed: 0
- type: entity
abstract: true
parent: BaseAction
id: BaseAugmentAction
components:
- type: InstantAction
event: !type:AugmentActionEvent

View File

@@ -0,0 +1,138 @@
# Power Cell Slot
- type: entity
parent: BaseItem
id: AugmentPowerCellSlotCasing
name: augment power cell slot casing
description: Can be implanted into a body to provide power to other implants. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_cell
- type: Construction
graph: AugmentPowerCellSlot
node: casing
defaultTarget: augment
- type: Tag
tags: [ AugmentCellCasing ]
- type: entity
parent: BaseItem
id: AugmentPowerCellSlotCables
name: augment power cell slot casing with cables
description: Can be implanted into a body to provide power to other implants. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_cell_cables
- type: Construction
graph: AugmentPowerCellSlot
node: cables
- type: entity
parent: BaseAugment
id: AugmentPowerCellSlot
name: augment power cell slot
description: Can be implanted into a body to provide power to other implants.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: cell
- type: Organ
slotId: powerCell
onAdd:
- type: HasAugmentPowerCellSlot
- type: AugmentPowerCellSlot
- type: Construction
graph: AugmentPowerCellSlot
node: augment
- type: ContainerContainer
containers:
cell_slot: !type:ContainerSlot { }
- type: PowerCellSlot
cellSlotId: cell_slot
- type: PowerCellDraw
drawRate: 0
enabled: false
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
whitelist:
components:
- PowerCell
blacklist:
tags:
- PowerCage
# Power Cell Charger
- type: entity
abstract: true
parent: BaseAugment
id: BaseAugmentRecharger
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: cell
- type: Organ
slotId: charger
- type: AugmentCharger
- type: entity
parent: BaseItem
id: AugmentRechargerCasing
name: augment recharger casing
description: Can be implanted into a body to recharge an internal power cell. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_charger
- type: Construction
graph: AugmentRecharger
node: casing
- type: Tag
tags: [ AugmentRechargerCasing ]
- type: entity
parent: BaseItem
id: AugmentRechargerCables
name: augment recharger casing with cables
description: Can be implanted into a body to recharge an internal power cell. This one is incomplete.
components:
- type: Sprite
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_charger_cables
- type: Construction
graph: AugmentRecharger
node: cables
- type: entity
parent: BaseAugmentRecharger
id: AugmentRechargerAPC
name: augment apc recharger
description: Allows the implantee to recharge their power cell via APCs.
components:
- type: Sprite
state: apc
- type: Organ
onAdd:
- type: BatteryDrinker
- type: Construction
graph: AugmentRecharger
node: apc
- type: entity
parent: BaseAugmentRecharger
id: AugmentRechargerStation
name: augment station recharger
description: Allows the implantee to recharge their power cell via cyborg recharging stations.
components:
- type: Sprite
state: station
- type: Organ
onAdd:
- type: AugmentStationRecharge
- type: Construction
graph: AugmentRecharger
node: station

View File

@@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseMachineCircuitboard
id: AutodocCircuitboard
name: autodoc machine board
description: A machine printed circuit board for an autodoc.
components:
- type: MachineBoard
prototype: Autodoc
stackRequirements:
Cable: 3
Manipulator: 4
Steel: 10
tagRequirements:
BorgArm:
amount: 3
defaultPrototype: LeftArmBorg
- type: entity
parent: AutodocCircuitboard
id: AutodocSyndieCircuitboard
suffix: Syndie
components:
- type: MachineBoard
prototype: AutodocSyndie
- type: entity
parent: BaseMachineCircuitboard
id: OperatingTableCircuitboard
name: operating table machine board
description: A machine printed circuit board for an operating table.
components:
- type: MachineBoard
prototype: OperatingTable
stackRequirements:
Cable: 3
Silver: 2
Steel: 4

View File

@@ -0,0 +1,25 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: EggSpider
id: EggSpiderFertilized
name: spider egg
description: Is it a gemstone? Is it an egg? It looks expensive.
components:
- type: Timer
- type: TimedSpawner
prototypes:
- MobGiantSpider
intervalSeconds: 60
minimumEntitiesSpawned: 1
maximumEntitiesSpawned: 1
- type: TimedDespawn
lifetime: 61
- type: FactionException
- type: PettableFriend
successString: petting-success-spider-egg
failureString: petting-failure-spider-egg

View File

@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
name: wondercuffs
description: Made out of a metal more durable than anything Nanotrasen could dream of.
id: AbductorHandcuffs
parent: [BaseMajorContraband, Handcuffs]
components:
- type: Handcuff
cuffTime: 1.5
uncuffTime: 4.5
breakoutTime: 30
stunBonus: 1.0
cuffedRSI: _Shitmed/Objects/Misc/handcuffs.rsi
bodyIconState: body-overlay
- type: Sprite
sprite: _Shitmed/Objects/Misc/handcuffs.rsi
state: handcuff
- type: GuideHelp
guides:
- Abductors
- type: UseDelay
delay: 1.5

View File

@@ -0,0 +1,36 @@
- type: entity
parent: FoodMeatBase
id: XenoTissueSample
name: tissue sample
description: A chunk of alien flesh, leaking a caustic goop.
components:
- type: Sprite
sprite: _Shitmed/Objects/Misc/tissue_sample.rsi
state: xeno
- type: SurgeryTool
- type: TissueSample
- type: StaticPrice
price: 2500 # coroner gameplay
- type: SolutionContainerManager
solutions:
food:
reagents:
- ReagentId: SulfuricAcid
Quantity: 20
- type: FoodSequenceElement # it's usable as xeno meat in a burger... but what a waste
sprite:
sprite: Objects/Consumable/Food/meat.rsi
state: xeno
entries:
burger:
name: food-sequence-content-xeno
taco:
name: food-sequence-content-xeno
- type: FlavorProfile
flavors:
- meaty
- acid
- type: Tag
tags:
- Raw
- Meat

View File

@@ -0,0 +1,356 @@
- type: entity
parent: BaseToolSurgery
id: Bonesetter
name: bone setter
description: Used for setting bones back into place.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi
state: bonesetter
- type: Item
- type: BoneSetter
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/bone_setter.ogg
- type: entity
parent: BaseToolSurgery
id: BoneGel
name: bottle of bone gel
description: A container for bone gel that often needs to be refilled from a specialized machine.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi
state: bone-gel
- type: BoneGel
- type: entity
parent: BaseToolSurgery
id: MedicalStitches
name: medical stitches
description: A fine, curved needle with a length of absorbable polyglycolide suture thread.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/stitches.rsi
state: stitches
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/saw.ogg # TODO: SOUND
- type: Stitches
- type: entity
name: tissue cutter
id: EnergyScalpel
parent: Scalpel
description: A scalpel which uses an energy blade, also serves as a drill in its powered state.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi
state: e-scalpel-on
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi
heldPrefix: scalpel
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel2.ogg
- type: MeleeWeapon
damage:
types:
Slash: 12
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Gold: 37
- type: Scalpel
speed: 3
- type: BoneSaw
speed: 3
- type: ItemSwitch
showLabel: true
state: scalpel
defaultState: scalpel
states:
scalpel: !type:ItemSwitchState
verb: scalpel
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi
state: e-scalpel
components:
- type: Scalpel
speed: 3
- type: BoneSaw
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
drill: !type:ItemSwitchState
verb: drill
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi
state: e-scalpel-on
components:
- type: Drill
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
- type: entity
name: power pinches
id: AdvancedRetractor
parent: Retractor
description: A retractor with mechanical pinches, also serves as a hemostat in its powered state.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi
state: adv-retractor-on
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi
heldPrefix: retractor
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/retractor1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/retractor2.ogg
- type: MeleeWeapon
damage:
types:
Piercing: 12
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Silver: 37
- type: Retractor
speed: 3
- type: ItemSwitch
showLabel: true
state: retractor
states:
retractor: !type:ItemSwitchState
verb: retractor
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi
state: adv-retractor
components:
- type: Retractor
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
hemostat: !type:ItemSwitchState
verb: hemostat
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi
state: adv-retractor-on
components:
- type: Hemostat
speed: 3
- type: Tweezers
speed: 3
- type: Tending
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
- type: entity
name: energy stapler
id: EnergyCautery
parent: Cautery
description: A cautery with an energy tip, also serves as stitches in its powered state.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi
state: e-cautery-on
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi
heldPrefix: cautery
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/cautery1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/cautery2.ogg
- type: MeleeWeapon
damage:
types:
Heat: 12
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Plasma: 37
- type: Cautery
speed: 3
- type: ItemSwitch
showLabel: true
state: cautery
states:
cautery: !type:ItemSwitchState
verb: cautery
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi
state: e-cautery
components:
- type: Cautery
speed: 3
soundStateActivate:
collection: WelderOn
params:
variation: 0.125
volume: -5
stitches: !type:ItemSwitchState
verb: stitches
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi
state: e-cautery-on
components:
- type: Stitches # should be unlimited when the actual stitches become limited
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
- type: entity
name: bone multitool
id: AdvancedBoneGel
parent: BoneGel
description: A mechanized bone healer, also serves as bone setter in its powered state.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-bone-gel.rsi
state: e-bone-gel-on
- type: Item
heldPrefix: bonegel
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/bone_setter.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/bone_setter.ogg
- type: MeleeWeapon
damage:
types:
Blunt: 12
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Plasma: 37
- type: BoneGel # should be unlimited when the actual bone gel becomes limited
speed: 3
- type: ItemSwitch
showLabel: true
state: bonegel
states:
bonegel: !type:ItemSwitchState
verb: bone gel
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-bone-gel.rsi
state: e-bone-gel
components:
- type: BoneGel # should be unlimited when the actual bone gel becomes limited
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
bonesetter: !type:ItemSwitchState
verb: bone setter
sprite:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-bone-gel.rsi
state: e-bone-gel-on
components:
- type: BoneSetter
speed: 3
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
- type: entity
name: surgical omnitool
id: OmnimedTool
parent: BaseToolSurgery
description: A compact surgical omnitool conveniently packed like a Swiss Army knife.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi
state: omnimed
- type: Item
size: Normal
sprite: _Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/saw.ogg
- type: Hemostat
- type: Scalpel
- type: Drill
- type: BoneSetter
- type: Retractor
- type: Cautery
- type: BoneGel
- type: BoneSaw
- type: Tweezers
- type: Tending
- type: Stitches
- type: entity
parent: [ OmnimedTool, BaseSyndicateContraband ]
id: OmnimedToolSyndie
name: gorlex surgical omnitool
description: A compact surgical omnitool conveniently packed like a Swiss Army knife, except that its user has probably violated a couple of Swiss conventions. Can perform surgery through clothing.
components:
- type: Sprite
state: evil
- type: Item
size: Small
heldPrefix: evil
- type: SurgeryIgnoreClothing
- type: entity
id: OmnimedToolDebug
parent: OmnimedToolSyndie
suffix: Admeme
name: experimental surgical omnitool
components:
- type: Hemostat
speed: 10
- type: Scalpel
speed: 10
- type: Drill
speed: 10
- type: BoneSetter
speed: 10
- type: Retractor
speed: 10
- type: Cautery
speed: 10
- type: BoneGel
speed: 10
- type: BoneSaw
speed: 10
- type: Tweezers
speed: 10
- type: Tending
speed: 10
- type: Stitches
speed: 10

View File

@@ -0,0 +1,74 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: BaseBulletStarlight
name: BaseBullet
description: If you can see this you're probably dead!
abstract: true
components:
- type: Reflective
- type: FlyBySound
- type: Clickable
- type: Sprite
noRot: false
sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
layers:
- state: bullet
shader: unshaded
- type: Physics
bodyType: Dynamic
linearDamping: 0
angularDamping: 0
- type: Fixtures
fixtures:
projectile:
shape:
!type:PhysShapeAabb
bounds: "-0.1,-0.1,0.1,0.1"
hard: false
mask:
- Impassable
- BulletImpassable
fly-by: &flybyfixture
shape: !type:PhysShapeCircle
radius: 1.5
layer:
- Impassable
- MidImpassable
- HighImpassable
- LowImpassable
hard: False
- type: Projectile
impactEffect: BulletImpactEffect
damage:
types:
Piercing: 14
soundHit:
path: /Audio/Weapons/Guns/Hits/bullet_hit.ogg
- type: TimedDespawn
lifetime: 10
- type: entity
id: BulletDeclone
name: decloner bolt
parent: BaseBulletStarlight
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Shitmed/Objects/Weapons/Guns/Projectiles/projectiles.rsi
layers:
- state: declone
- type: Projectile
damage:
types:
Radiation: 20
ignoreResistances: true
soundHit:
collection: MeatLaserImpact

View File

@@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: [BaseWeaponBatterySmall, BaseMajorContraband]
id: WeaponAlien
name: alien pistol
description: Is this a war crime? Probably.
components:
- type: Sprite
sprite: _Shitmed/Objects/Weapons/Guns/Battery/alien.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-unshaded-4
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: ProjectileBatteryAmmoProvider
proto: BulletDisabler
fireCost: 50
- type: BatteryWeaponFireModes
fireModes:
- proto: BulletDisabler
fireCost: 50
- proto: BulletDeclone
fireCost: 125
- type: Appearance
- type: MagazineVisuals
magState: mag
steps: 5
zeroVisible: true
- type: entity
parent: [BaseWeaponBattery, BaseGunWieldable, BaseMajorContraband]
id: WeaponDecloner
name: decloner
description: Is this a war crime? Absolutely.
components:
- type: Clothing
sprite: _Shitmed/Objects/Weapons/Guns/Battery/decloner.rsi
- type: Sprite
sprite: _Shitmed/Objects/Weapons/Guns/Battery/decloner.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-unshaded-4
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: Item
shape:
- 0,0,5,1
- type: ProjectileBatteryAmmoProvider
proto: BulletDeclone
fireCost: 125
- type: Battery
maxCharge: 2000
startingCharge: 2000

View File

@@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
name: silencer
parent: [ BaseItem, BaseMajorContraband ]
id: Silencer
description: Tool for silencing humans.
components:
- type: Item
sprite: _Shitmed/Objects/Weapons/Melee/silencer.rsi
size: Small
storedRotation: -90
- type: Sprite
sprite: _Shitmed/Objects/Weapons/Melee/silencer.rsi
state: icon
# - type: RestrictMeleeByUserTag
# contains:
# - Abductor
# messages:
# - abductors-weapon-restricted-1
# - abductors-weapon-restricted-2
# - abductors-weapon-restricted-3
# - abductors-weapon-restricted-4
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 1
damage:
types:
Shock: 0
angle: 60
animation: WeaponArcThrust
- type: InjectOnHit
reagents:
- ReagentId: MuteToxin
Quantity: 5
limit: 10

View File

@@ -0,0 +1,134 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
name: wonderprod
parent: [BaseItem, BaseMajorContraband]
id: Wonderprod
description: Universal tool of the abductor agent.
components:
- type: Item
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
heldPrefix: stun
size: Large
storedRotation: -90
shape:
- 0,0,2,2
- type: Clothing
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
quickEquip: false
equippedPrefix: stun
slots:
- Back
- suitStorage
- type: Sprite
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
state: icon
- type: GuideHelp
guides:
- Abductors
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
Shock: 0
angle: 60
animation: WeaponArcThrust
- type: StaminaDamageOnHit
damage: 60
lightAttackDamageMultiplier: 2
sound: /Audio/Weapons/Guns/Hits/taser_hit.ogg
# - type: RestrictMeleeByUserTag
# contains:
# - Abductor
# messages:
# - abductors-weapon-restricted-1
# - abductors-weapon-restricted-2
# - abductors-weapon-restricted-3
# - abductors-weapon-restricted-4
- type: Tag
tags:
- Wonderprod
- type: Multihit
multihitWhitelist:
tags:
- Wonderprod
conditions:
- !type:MultihitUserWhitelistEvent
whitelist:
tags:
- Abductor
- type: DisarmMalus
- type: ItemSwitch
state: stun
showLabel: true
states:
stun: !type:ItemSwitchState
verb: stun
sprite:
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
state: stun-icon
components:
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
Shock: 0
angle: 60
animation: WeaponArcThrust
- type: StaminaDamageOnHit
damage: 60
lightAttackDamageMultiplier: 2
sound: /Audio/Weapons/Guns/Hits/taser_hit.ogg
soundStateActivate:
collection: sparks
params:
variation: 0.250
cuffs: !type:ItemSwitchState
verb: cuffs
sprite:
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
state: cuffs-icon
components:
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
Shock: 0
angle: 60
animation: WeaponArcThrust
- type: CuffsOnHit
proto: Cablecuffs
sleep: !type:ItemSwitchState
verb: sleep
sprite:
sprite: _Shitmed/Objects/Weapons/Melee/wonderprod.rsi
state: sleep-icon
components:
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 1
damage:
types:
Ion: 30
angle: 60
animation: WeaponArcThrust
- type: InjectOnHit
reagents:
- ReagentId: Nocturine
Quantity: 5
limit: 20
needsRestrain: true

View File

@@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: AbductorGizmo
parent: [BaseItem, BaseMajorContraband]
name: gizmo
description: A device that inserts a nano tracker, which can be used to target a teleportation beam.
components:
- type: Sprite
sprite: _Shitmed/Objects/Misc/gizmo.rsi
state: icon
- type: Item
sprite: _Shitmed/Objects/Misc/gizmo.rsi
- type: RestrictInteractionByUserTag
contains:
- AbductorScientist
messages:
- abductors-gizmo-restricted-1
- abductors-gizmo-restricted-2
- type: RestrictMeleeByUserTag
contains:
- AbductorScientist
messages:
- abductors-gizmo-restricted-1
- abductors-gizmo-restricted-2
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 0.5
damage:
types:
Shock: 0
angle: 60
animation: WeaponArcThrust
- type: AbductorGizmo
- type: GuideHelp
guides:
- Abductors

View File

@@ -0,0 +1,164 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
name: high-tech retractor
id: MechanicalPinchesAbductor
description: A highly advanced retractor, it also seems to work like a hemostat.
parent: [BaseToolSurgery, BaseMajorContraband]
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: abductor
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
heldPrefix: abductor
storedRotation: 90
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/retractor1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/retractor2.ogg
- type: MeleeWeapon
damage:
types:
Piercing: 15
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Silver: 37
- type: Hemostat
speed: 2
- type: Retractor
speed: 2
- type: Tweezers
speed: 2
- type: Tending
speed: 2
- type: GuideHelp
guides:
- Abductors
# barber scissor
- type: MagicMirror
addSlotTime: 2
removeSlotTime: 2 # yawn and your hair is gone
selectSlotTime: 2
changeSlotTime: 2
- type: ActivatableUI
key: enum.MagicMirrorUiKey.Key
inHandsOnly: true
requireActiveHand: true
- type: UserInterface
interfaces:
enum.MagicMirrorUiKey.Key:
type: MagicMirrorBoundUserInterface
- type: entity
name: high-tech searing tool
description: A highly advanced cautery with an energy tip, it seems to also work as as stitches.
id: SearingToolAbductor
parent: [BaseToolSurgery, BaseMajorContraband]
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi
state: abductor
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi
heldPrefix: abductor
storedRotation: 90
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/cautery1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/cautery2.ogg
- type: MeleeWeapon
damage:
types:
Heat: 15
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Plasma: 37
- type: Stitches
speed: 2
- type: Cautery
speed: 2
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech energy scalpel
description: A scalpel which uses an energy blade, it seems to also work as a saw and a drill.
id: EnergyScalpelAbductor
parent: [BaseToolSurgery, BaseMajorContraband]
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: abductor
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
heldPrefix: abductor
storedRotation: 90
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel2.ogg
- type: MeleeWeapon
damage:
types:
Slash: 15
- type: PhysicalComposition #Goobstation - Recycle update
materialComposition:
Steel: 150
Glass: 37
Gold: 37
- type: Scalpel
speed: 2
- type: BoneSaw
speed: 2
- type: Drill
speed: 2
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech bone manipulator
id: BoneManipulatorAbductor
description: A highly advanced tool, capable of mending bones.
parent: [BaseToolSurgery, BaseMajorContraband]
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi
state: abductor
- type: Item
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi
heldPrefix: abductor
storedRotation: 90
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/bone_setter.ogg
- type: MeleeWeapon
damage:
types:
Blunt: 15
- type: BoneSetter
speed: 2
- type: BoneGel
speed: 2
- type: GuideHelp
guides:
- Abductors

View File

@@ -0,0 +1,292 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 BeBright <98597725+be1bright@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Abductor's Crowbar
- type: entity
parent: [ BaseCrowbar, BaseMajorContraband ]
id: CrowbarAbductor
name: high-tech crowbar
description: Made out of metal more durable than anything Nanotrasen could dream of.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/crowbar.rsi
state: abductor
- type: Tool
speedModifier: 2
qualities:
- Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech wirecutter
parent: [ BaseItem, BaseMajorContraband]
id: WirecutterAbductor
description: Cuts through wires like a hot knife through butter.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/wirecutters.rsi
state: abductor
- type: EmitSoundOnLand
sound:
path: /Audio/Items/wirecutter_drop.ogg
- type: Tag
tags:
- PlantSampleTaker
- Wirecutter
- type: MeleeWeapon
wideAnimationRotation: -90
damage:
types:
Piercing: 2
attackRate: 2
soundHit:
path: "/Audio/Items/wirecutter.ogg"
- type: Tool
qualities:
- Cutting
useSound:
path: /Audio/Items/wirecutter.ogg
- type: Item
sprite: _Shitmed/Objects/Specific/Abductor/wirecutters.rsi
storedRotation: -90
- type: ToolTileCompatible
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 30
- type: Retractor
speed: 0.35
- type: Hemostat
speed: 0.6
- type: SurgeryTool
startSound:
path: /Audio/Items/wirecutter.ogg
params:
variation: 0.125
endSound:
path: /Audio/Items/wirecutter.ogg
params:
variation: 0.125
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech screwdriver
parent: [ BaseItem, BaseMajorContraband ]
id: ScrewdriverAbductor
description: More efficient than anything Nanotrasen could dream of. Not to be confused with a sonic screwdriver.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/screwdriver.rsi
state: abductor
- type: EmitSoundOnLand
sound:
path: /Audio/Items/screwdriver_drop.ogg
- type: Tag
tags:
- Screwdriver
- type: Item
sprite: _Shitmed/Objects/Specific/Abductor/screwdriver.rsi
storedRotation: -90
- type: MeleeWeapon
wideAnimationRotation: -90
attackRate: 1
damage:
types:
Piercing: 6
soundHit:
path: "/Audio/Weapons/bladeslice.ogg"
- type: Tool
qualities:
- Screwing
useSound:
collection: Screwdriver
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 30
- type: Retractor
speed: 0.45
- type: Tending
speed: 0.65
- type: SurgeryTool
startSound:
collection: Screwdriver
endSound:
path: /Audio/_Shitmed/Medical/Surgery/retractor2.ogg
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech wrench
parent: [ Wrench, BaseMajorContraband ]
id: WrenchAbductor
description: Can take a bolt off in a single turn. Not intended for melee combat.
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/wrench.rsi
state: abductor
- type: Item
sprite: _Shitmed/Objects/Specific/Abductor/wrench.rsi
storedRotation: 45
heldPrefix: abductor
storedSprite:
sprite: _Shitmed/Objects/Specific/Abductor/wrench.rsi
state: abductor
- type: Tool
speedModifier: 2
qualities:
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech welding tool
parent: [ Welder, BaseMajorContraband ]
id: WelderAbductor
description: "A highly advanced welder capable of producing infinite fuel."
components:
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/welder.rsi
state: abductor
- type: SolutionContainerManager
solutions:
Welder:
reagents:
- ReagentId: WeldingFuel
Quantity: 1000
maxVol: 1000
- type: PointLight
enabled: false
radius: 1.5
color: lightblue
- type: SolutionRegeneration
solution: Welder
generated:
reagents:
- ReagentId: WeldingFuel
Quantity: 10
- type: Tool
speedModifier: 2.0
useSound:
collection: Welder
qualities:
- Welding
- Axing # Goobstation
- type: ToolTileCompatible # Goobstation
delay: 2
- type: GuideHelp
guides:
- Abductors
- type: entity
name: high-tech multitool
parent: [BaseItem, BaseMajorContraband]
id: MultitoolAbductor
description: A highly advanced hacking tool capable of viewing wire functionality. Can be used as Cryptographic sequencer in its alternate mode.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/multitool_drop.ogg
- type: Item
size: Small
heldPrefix: link
- type: PhysicalComposition
materialComposition:
Steel: 100
Plastic: 100
- type: StaticPrice
price: 56
- type: Sprite
sprite: _Shitmed/Objects/Specific/Abductor/multitool.rsi
state: abductor
layers:
- state: abductor
- type: Clothing
quickEquip: false
equippedPrefix: link
slots:
- Belt
- type: GuideHelp
guides:
- Abductors
- type: UserInterface
interfaces:
enum.NetworkConfiguratorUiKey.List:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Configure:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Link:
type: NetworkConfiguratorBoundUserInterface
- type: Tag
tags:
- Multitool
- DoorElectronicsConfigurator
- ShowWires
- type: Tool
qualities:
- Pulsing
- type: NetworkConfigurator
showLabel: false
- type: LimitedCharges
- type: AutoRecharge
rechargeDuration: 20
- type: ItemSwitch
state: link
states:
link: !type:ItemSwitchState
verb: link
sprite:
sprite: _Shitmed/Objects/Specific/Abductor/multitool.rsi
state: abductor
components:
- type: Tool
qualities:
- Pulsing
- type: NetworkConfigurator
showLabel: false
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5
hijack: !type:ItemSwitchState
verb: hijack
sprite:
sprite: _Shitmed/Objects/Specific/Abductor/multitool.rsi
state: override-abductor
components:
- type: Emag
emagType: Access
validTargets:
components:
- Airlock
soundStateActivate:
collection: sparks
params:
variation: 0.125
volume: -5

View File

@@ -0,0 +1,92 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseComputer
id: AbductorConsole
name: abductor console
description: A computer that is used for spying on the station.
components:
- type: AbductorConsole
- type: Sprite
sprite: _Shitmed/Structures/Machines/abductor_console.rsi
layers:
- map: ["console"]
state: console
- type: ActivatableUI
key: enum.AbductorConsoleUIKey.Key
- type: UserInterface
interfaces:
enum.AbductorConsoleUIKey.Key:
type: AbductorConsoleBui
- type: PointLight
enabled: true
radius: 1.5
energy: 1.6
color: "#FC0097"
- type: entity
parent: ComputerComms
id: CentCommSectoralConsole
name: centcomm sectoral console
description: Use this to annoy captains of all stations at once.
components:
- type: AccessReader
access: [[ "Command" ]]
- type: CommunicationsConsole
title: comms-console-announcement-title-centcom
global: true
- type: entity
parent: BaseComputer
id: AbductorHumanObservationConsole
name: human observation console
description: Use this to set teleporter destination or retrieve people marked by scientist tools. Also used for buying replacement gear and linking the agent's vest.
components:
- type: Sprite
sprite: _Shitmed/Structures/Machines/abductor_camera_console.rsi
layers:
- map: ["console"]
state: console
- type: AbductorHumanObservationConsole
- type: ActivatableUI
key: enum.AbductorCameraConsoleUIKey.Key
- type: UserInterface
interfaces:
enum.AbductorCameraConsoleUIKey.Key:
type: AbductorCameraConsoleBui
- type: PointLight
enabled: true
radius: 1.5
energy: 1.6
color: "#FC0097"
- type: entity
parent:
- Incorporeal
- BaseMob
id: AbductorHumanObservationConsoleEye
name: abductor eye
description: The abductor's viewer.
categories: [ HideSpawnMenu, DoNotMap ]
suffix: DO NOT MAP
components:
- type: NoFTL
- type: WarpPoint
follow: true
- type: Eye
pvsScale: 1.5
- type: Visibility
layer: 8
- type: Sprite
sprite: _Shitmed/Structures/Machines/abductor_camera_console.rsi
layers:
- state: eye
shader: unshaded
- type: Tag
tags:
- CantInteract

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: AbductorOperatingTable
parent: OperatingTable
name: abductor operating table
components:
- type: Sprite
sprite: _Shitmed/Structures/Furniture/Tables/abductor_optable.rsi
state: operating_table
noRot: true
- type: Icon
sprite: _Shitmed/Structures/Furniture/Tables/abductor_optable.rsi
state: operating_table

View File

@@ -0,0 +1,144 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 JohnOakman <sremy2012@hotmail.fr>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Autodocs
- type: entity
parent: [ConstructibleMachine, BaseMachinePowered]
id: Autodoc
name: Autodoc Mk.XIV
description: A programmable robotic surgeon capable of automatically operating on patients.
components:
- type: Sprite
sprite: _Shitmed/Structures/Machines/autodoc.rsi
layers:
- state: idle
- type: Hands
- type: HandsFill
hands:
multitool: OmnimedToolAutodoc
surgery_specific: null
- type: WiresPanel
- type: Wires
layoutId: Autodoc # do it, snip the safety wire :godo:
boardName: wires-board-name-autodoc
- type: Machine
board: AutodocCircuitboard
- type: Construction
graph: Machine
node: machine
containers:
- machine_board
- machine_parts
- storagebase
- type: EmptyOnMachineDeconstruct
containers:
- surgery_specific
- storagebase
- type: ContainerContainer
containers:
machine_board: !type:Container
showEnts: False
occludes: True
ents: []
machine_parts: !type:Container
showEnts: False
occludes: True
ents: []
storagebase: !type:Container
showEnts: False
occludes: True
ents: []
- type: ApcPowerReceiver
powerLoad: 10000
- type: AutomationSlots
slots:
- !type:AutomatedStorage
input: AutomationSlotStorage
output: AutomationSlotStorage
- !type:AutomatedHand
input: AutomationSlotAutodocHand
output: AutomationSlotAutodocHand
handName: surgery_specific
- type: DeviceList
- type: DeviceNetwork
deviceNetId: Wired
receiveFrequencyId: BasicDevice
- type: DeviceLinkSink
ports:
- OperatingTableReceiver
- type: UserInterface
interfaces:
enum.AutodocUiKey.Key:
type: AutodocBoundUserInterface
enum.StorageUiKey.Key:
type: StorageBoundUserInterface
enum.WiresUiKey.Key:
type: WiresBoundUserInterface
- type: ActivatableUI
key: enum.AutodocUiKey.Key
- type: ActivatableUIRequiresPower
- type: Autodoc
- type: Sanitized
- type: DoAfter # Required for it to do surgery
- type: TypingIndicator
proto: robot
- type: Speech
speechVerb: Robotic
speechSounds: Pai
- type: Storage
clickInsert: false # incredibly annoying for linking it
openOnActivate: false # use the verb, UI is higher priority
grid:
- 0,0,3,3
- type: SurgerySpeedModifier
speedModifier: 1
- type: GuideHelp
guides: [ Autodoc ]
- type: entity
parent: Autodoc
id: AutodocSyndie
# TODO: make it valid
suffix: Syndie
components:
- type: Machine
board: AutodocSyndieCircuitboard
- type: SurgerySpeedModifier
speedModifier: 1.0 # as good as a surgeon using a multitool, nukies need it or something
# Autodoc tools
- type: entity
parent: OmnimedTool
id: OmnimedToolAutodoc
suffix: Unremoveable, Autodoc
components:
- type: Unremoveable
- type: Hemostat
speed: 2
- type: Scalpel
speed: 2
- type: Drill
speed: 2
- type: BoneSetter
speed: 2
- type: Retractor
speed: 2
- type: Cautery
speed: 2
- type: BoneGel
speed: 2
- type: BoneSaw
speed: 2
- type: Tweezers
speed: 2
- type: Tending
speed: 2
- type: Stitches
speed: 2

View File

@@ -0,0 +1,42 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseLathe
id: MedicalBiofabricator
name: medical biofabricator
description: Produces organs and other organic matter that can be surgically grafted onto patients with biomass.
components:
- type: Sprite
sprite: _Shitmed/Structures/Machines/limbgrower.rsi
snapCardinals: true
layers:
- state: limbgrower_idleoff
map: ["enum.LatheVisualLayers.IsRunning"]
# - state: limbgrower_idleoff
# shader: unshaded
# map: ["enum.PowerDeviceVisualLayers.Powered"]
# - state: inserting
# map: ["enum.MaterialStorageVisualLayers.Inserting"]
# - state: panel
# map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Machine
board: MedicalBiofabMachineBoard
- type: MaterialStorage
whitelist:
tags:
- Sheet
- RawMaterial
- type: Lathe
idleState: limbgrower_idleoff
runningState: limbgrower_idleon
staticPacks:
- BiofabPartsStatic
- type: EmagLatheRecipes
emagStaticPacks:
- BiofabPartsEmagStatic

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseStructure
id: AbductorExperimentator
name: experimentator
description: A device that analyzes the result of the experiment and resets the subject to the place from where they were taken.
components:
- type: AbductorExperimentator
- type: Sprite
noRot: true
sprite: _Shitmed/Structures/abductor_experimentator.rsi
layers:
- state: experimentator_0
map: ["base"]
- type: InteractionOutline
- type: Physics
canCollide: false
- type: DragInsertContainer
containerId: storage
- type: ExitContainerOnMove
containerId: storage
- type: ContainerContainer
containers:
storage: !type:ContainerSlot
- type: Appearance
- type: GenericVisualizer
visuals:
enum.AbductorExperimentatorVisuals.Full:
base:
True: { state: experimentator_1 }
False: { state: experimentator_0 }

View File

@@ -0,0 +1,51 @@
# SPDX-FileCopyrightText: 2022 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 ElectroJr <leonsfriedrich@gmail.com>
# SPDX-FileCopyrightText: 2023 Julian Giebel <juliangiebel@live.de>
# SPDX-FileCopyrightText: 2023 Visne <39844191+Visne@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: AbductorAlienPad
parent: [ BaseMachinePowered, ConstructibleMachine ]
name: alien pad
description: Beam in the inferior lifeforms and dig in.
components:
- type: AbductorAlienPad
- type: InteractionOutline
- type: Physics
bodyType: Static
canCollide: false
- type: Transform
anchored: true
noRot: true
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.00"
density: 190
mask:
- MachineMask
- type: Sprite
sprite: _Shitmed/Structures/abductor_alien_pad.rsi
drawdepth: FloorObjects
layers:
- state: offline
map: [ "enum.CargoTelepadLayers.Base" ]
- state: idle
map: [ "enum.CargoTelepadLayers.Beam" ]
- type: WirelessNetworkConnection
range: 200
- type: Appearance
- type: CollideOnAnchor

View File

@@ -0,0 +1,20 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: TableAbductor
parent: TableBase
name: alien table
description: Literally the sturdiest thing you have ever seen. # Peak. No changes needed.
components:
- type: Sprite
sprite: _Shitmed/Structures/Tables/abductor_table.rsi
- type: Icon
sprite: _Shitmed/Structures/Tables/abductor_table.rsi
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepFloor

View File

@@ -0,0 +1,99 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
#shuttle walls
- type: entity
id: WallAbductorDiagonal
name: shuttle wall
suffix: Diagonal
description: Keeps the air in and the bloodthirsty salvagers out.
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Transform
anchored: true
- type: Clickable
- type: Tag
tags:
- Wall
- Diagonal
- type: Sprite
drawdepth: Walls
sprite: _Shitmed/Structures/Walls/abductor_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: _Shitmed/Structures/Walls/abductor_diagonal.rsi
state: state0
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallic
- type: Physics
bodyType: Static
- type: Reflect
reflectProb: 1
- type: Pullable
- type: Airtight
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- East
- type: Fixtures
fixtures:
fix1:
shape:
!type:PolygonShape
vertices:
- "-0.5,-0.5"
- "0.5,0.5"
- "0.5,-0.5"
mask:
- FullTileMask
layer:
- WallLayer
- type: Construction
graph: Girder
node: diagonalshuttleWall
- type: RustRequiresPathStage
pathStage: 10 # Ascension
- type: entity
parent: BaseWall
id: WallAbductor
name: shuttle wall
suffix: Reinforced, Exterior
description: Keeps the air in and the bloodthirsty salvagers out.
components:
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: StaticPrice
price: 250
- type: RadiationBlocker
resistance: 5
- type: Sprite
sprite: _Shitmed/Structures/Walls/abductor.rsi
- type: Icon
sprite: _Shitmed/Structures/Walls/abductor.rsi
state: full
- type: Construction
graph: Girder
node: shuttleWall
- type: IconSmooth
key: walls
base: state
- type: Appearance
- type: Reflect
reflectProb: 1
- type: RustRequiresPathStage
pathStage: 10 # Ascension

View File

@@ -0,0 +1,55 @@
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: Bone
parent: BaseItem
name: bone
description: A real bone. Contains calcium, a lot of calcium.
components:
- type: Bone # backmen: wounding
- type: Sprite
sprite: Objects/Materials/materials.rsi
state: bones
- type: Appearance
- type: Item
sprite: Objects/Materials/materials.rsi
size: Normal
- type: Tag
tags:
- RawMaterial
- type: Damageable
damageContainer: Inorganic
- type: entity
id: BoneNeck
parent: Bone
name: neck bone
description: A bone from the neck. Contains a lot of calcium.
components:
- type: Bone
integrityCap: 100 # Goob edit
boneIntegrity: 100 # Goob edit
- type: Sprite
sprite: Objects/Materials/materials.rsi
state: bones
- type: Appearance
- type: entity
id: BoneWeak
parent: Bone
components:
- type: Bone
integrityCap: 40
boneIntegrity: 40
- type: entity
id: BoneNeckWeak
parent: BoneNeck
components:
- type: Bone
integrityCap: 60
boneIntegrity: 60

View File

@@ -0,0 +1,70 @@
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: BluntScar
parent: WoundBase
components:
- type: Wound
damageType: Blunt
woundType: External
woundVisibility: Always
canBeHealed: false
isScar: true
- type: PainInflicter
multiplier: 0
- type: entity
id: PiercingScar
parent: WoundBase
components:
- type: Wound
damageType: Piercing
woundType: External
woundVisibility: Always
canBeHealed: false
isScar: true
- type: PainInflicter
multiplier: 0
- type: entity
id: SlashScar
parent: WoundBase
components:
- type: Wound
damageType: Slash
woundType: External
woundVisibility: Always
canBeHealed: false
isScar: true
- type: PainInflicter
multiplier: 0
- type: entity
id: BurnScar
parent: WoundBase
components:
- type: Wound
damageType: Heat
woundType: External
woundVisibility: Always
canBeHealed: false
isScar: true
- type: PainInflicter
multiplier: 0
- type: entity
id: RadiationScar
parent: WoundBase
components:
- type: Wound
damageType: Radiation
woundType: External
woundVisibility: Always
canBeHealed: false
isScar: true
- type: PainInflicter
multiplier: 0 # lmao

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,836 @@
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Janet Blackquill <uhhadd@gmail.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
abstract: true
id: SurgeryStepBase
components:
- type: SurgeryStep
- type: entity
parent: SurgeryStepBase
id: SurgeryStepOpenIncisionScalpel
name: Cut with a scalpel
components:
- type: SurgeryStep
tool:
- type: Scalpel
add:
- type: IncisionOpen
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: scalpel
- type: SurgeryDamageChangeEffect
damage:
types:
Bloodloss: 10
sleepModifier: 0.5
- type: SurgeryStepPainInflicter
painDuration: 30
painType: TraumaticPain
amount: 34
sleepModifier: 0.12
- type: entity
parent: SurgeryStepBase
id: SurgeryStepClampBleeders
name: Clamp the bleeders
components:
- type: SurgeryStep
tool:
- type: Hemostat
add:
- type: BleedersClamped
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryRepeatableStep
- type: SurgeryBleedsTreatmentStep
amount: 2
- type: entity
parent: SurgeryStepBase
id: SurgeryStepCloseBloodOutputs
name: Stitch up destroyed tissues
components:
- type: SurgeryStep
tool:
- type: Stitches
remove:
- type: BleedersClamped
duration: 5
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/stitches.rsi
state: stitches
- type: SurgeryStepPainInflicter
painDuration: 30
painType: TraumaticPain
amount: 34
sleepModifier: 0.12
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRetractSkin
name: Retract the skin
components:
- type: SurgeryStep
tool:
- type: Retractor
add:
- type: SkinRetracted
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi
state: retractor
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRemoveSeveredSkin
name: Remove the dead skin
components:
- type: SurgeryStep
tool:
- type: Scalpel
add:
- type: BodyPartSawed
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: scalpel
- type: SurgeryStepPainInflicter
painDuration: 60
amount: 45
sleepModifier: 0.07
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSawBones
name: Saw through bones
components:
- type: SurgeryStep
tool:
- type: BoneSaw
add:
- type: BonesSawed
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi
state: circular-saw
- type: SurgeryStepPainInflicter
painType: TraumaticPain
painDuration: 40
amount: 34
sleepModifier: 0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRemoveLeftoverBones
name: Clear up bone leftovers
components:
- type: SurgeryStep
tool:
- type: BoneSaw
add:
- type: BonesOpen
duration: 5
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi
state: circular-saw
- type: entity
parent: SurgeryStepBase
id: SurgeryStepMendBones
name: Mend bones
components:
- type: SurgeryStep
tool:
- type: BoneGel
duration: 7
- type: SurgeryAffixPartStep
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi
state: bone-gel
- type: SurgeryStepPainInflicter
amount: 12
painType: TraumaticPain
sleepModifier: 0
- type: SurgeryRepeatableStep
- type: SurgeryTraumaTreatmentStep
traumaType: BoneDamage
amount: 17
- type: entity
parent: SurgeryStepBase
id: SurgeryStepHealOrgans
name: Heal Organs
components:
- type: SurgeryStep
tool:
- type: Tending
duration: 7
- type: SurgeryAffixOrganStep
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryStepPainInflicter
amount: 24
painType: TraumaticPain
sleepModifier: 0
- type: SurgeryRepeatableStep
- type: SurgeryTraumaTreatmentStep
traumaType: OrganDamage
amount: 17
- type: entity
parent: SurgeryStepBase
id: SurgeryStepPriseOpenBones
name: Prise the bones open
components:
- type: SurgeryStep
tool:
- type: Retractor
add:
- type: BonesOpen
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi
state: retractor
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepCutLarvaRoots
# name: Cut larva roots
# components:
# - type: SurgeryStep
# skill: 2
# tool:
# - type: Scalpel
# - type: SurgeryCutLarvaRootsStep
# - type: Sprite
# sprite: Objects/Specific/Medical/Surgery/scalpel.rsi
# state: scalpel
# - type: SurgeryOperatingTableCondition
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepRemoveLarva
# name: Remove larva
# components:
# - type: SurgeryStep
# skill: 2
# tool:
# - type: Hemostat
# bodyRemove:
# - type: VictimInfected
# - type: Sprite
# sprite: Objects/Specific/Medical/Surgery/scissors.rsi
# state: hemostat
# - type: SurgeryOperatingTableCondition
# - type: SurgeryStepSpawnEffect
# entity: XenoEmbryo
- type: entity
parent: SurgeryStepBase
id: SurgeryStepCloseBones
name: Close bones
components:
- type: SurgeryStep
tool:
- type: Retractor
remove:
- type: BonesOpen
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi
state: retractor
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSealBones
name: Seal bones
components:
- type: SurgeryStep
tool:
- type: BoneGel
remove:
- type: BonesSawed
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi
state: bone-gel
- type: entity
parent: SurgeryStepSealBones
id: SurgeryStepSealSkull
name: Seal skull
- type: entity
parent: SurgeryStepSealBones
id: SurgeryStepSealRibcage
name: Seal ribcage
- type: entity
parent: SurgeryStepBase
id: SurgeryStepCloseIncision
name: Close incision
components:
- type: SurgeryStep
tool:
- type: Cautery
remove:
# This surgery removes a bunch of components that might be leftover from other surgeries in unintended cases.
# Essentially a bit of a fallback for endusers :)
- type: SkinRetracted
- type: BleedersClamped
- type: IncisionOpen
- type: BodyPartReattached
- type: InternalBleedersClamped
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: cautery
- type: SurgeryDamageChangeEffect
damage:
types:
Heat: -5
sleepModifier: 2
- type: SurgeryStepPainInflicter
amount: 9
sleepModifier: 0.34
# Feature Insertion
- type: entity
parent: SurgeryStepBase
id: SurgeryStepInsertFeature
name: Insert part
components:
- type: SurgeryStep
tool:
- type: BodyPart
duration: 6
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
state: insertion
- type: SurgeryAddPartStep
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSealWounds
name: Seal wounds
components:
- type: SurgeryStep
tool:
- type: Cautery
remove:
- type: SkinRetracted
- type: BleedersClamped
- type: IncisionOpen
- type: InternalBleedersClamped
duration: 2
- type: SurgeryAffixPartStep
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: cautery
- type: SurgeryStepPainInflicter
amount: 12
painDuration: 60
sleepModifier: 0.34
- type: SurgeryDamageChangeEffect
damage:
types:
Heat: -5
sleepModifier: 2
# Feature Removal
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSawFeature
name: Saw through bones
components:
- type: SurgeryStep
tool:
- type: BoneSaw
add:
- type: BodyPartSawed
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi
state: circular-saw
- type: SurgeryStepPainInflicter
amount: 26
painDuration: 40
painType: TraumaticPain
sleepModifier: 0.0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepClampInternalBleeders
name: Clamp internal bleeders
components:
- type: SurgeryStep
tool:
- type: Hemostat
add:
- type: InternalBleedersClamped
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryDamageChangeEffect
damage:
types:
Bloodloss: -5
sleepModifier: 2
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRemoveFeature
name: Amputate part
components:
- type: SurgeryStep
tool:
- type: BoneSaw
remove:
# We remove these components to force people to go through all the steps again lol, otherwise you can just keep chopping.
- type: SkinRetracted
- type: BleedersClamped
- type: InternalBleedersClamped
- type: IncisionOpen
duration: 8
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi
state: circular-saw
- type: SurgeryRemovePartStep
- type: SurgeryStepPainInflicter
amount: 50
painDuration: 60
painType: TraumaticPain
sleepModifier: 0.14
# Tend Wounds
- type: entity
parent: SurgeryStepBase
id: SurgeryStepCarefulIncisionScalpel
name: Make a careful incision
components:
- type: SurgeryStep
tool:
- type: Scalpel
add:
- type: IncisionOpen
duration: 3
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: scalpel
- type: SurgeryStepPainInflicter
amount: 17
painDuration: 30
sleepModifier: 0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRepairBruteTissue
name: Repair damaged tissue
components:
- type: SurgeryStep
tool:
- type: Tending
duration: 1
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryTendWoundsEffect
damage:
groups:
Brute: -15
- type: SurgeryRepeatableStep
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRepairBurnTissue
name: Repair burnt tissue
components:
- type: SurgeryStep
tool:
- type: Tending
duration: 1
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryTendWoundsEffect
mainGroup: Burn
damage:
groups:
Burn: -20
- type: SurgeryRepeatableStep
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSealTendWound
name: Seal the wound
components:
- type: SurgeryStep
tool:
- type: Cautery
remove:
- type: IncisionOpen
duration: 2
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: cautery
- type: SurgeryDamageChangeEffect
damage:
types:
Heat: -5
sleepModifier: 2
- type: SurgeryStepPainInflicter
amount: 21
painDuration: 40
sleepModifier: 0.34
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSealDismembermentWound
name: Stitch up the dismemberment wound
components:
- type: SurgeryStep
tool:
- type: Stitches
remove:
- type: IncisionOpen
duration: 8
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/stitches.rsi
state: stitches
- type: SurgeryTraumaTreatmentStep
traumaType: Dismemberment
- type: SurgeryStepPainInflicter
amount: 34
painDuration: 60
painType: TraumaticPain
sleepModifier: 0.25
# Cavity Implanting
- type: entity
parent: SurgeryStepBase
id: SurgeryStepInsertItem
name: Insert item into cavity
components:
- type: SurgeryStep
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
state: insertion
- type: SurgeryStepCavityEffect
action: Insert
- type: SurgeryStepPainInflicter
amount: 34
painDuration: 60
painType: TraumaticPain
sleepModifier: 0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRemoveItem
name: Remove item from cavity
components:
- type: SurgeryStep
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
state: insertion
- type: SurgeryStepCavityEffect
action: Remove
- type: SurgeryStepPainInflicter
amount: 34
painDuration: 60
painType: TraumaticPain
sleepModifier: 0
# Organ Manipulation
- type: entity
parent: SurgeryStepBase
id: SurgeryStepRemoveOrgan
name: Remove organ
components:
- type: SurgeryStep
tool:
- type: Tweezers
duration: 8
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryRemoveOrganStep
- type: SurgeryStepPainInflicter
amount: 90
painDuration: 60
painType: TraumaticPain
sleepModifier: 0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepInsertOrgan
name: Add organ
components:
- type: SurgeryStep
tool:
- type: Organ
duration: 6
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
state: insertion
- type: SurgeryAddOrganStep
- type: SurgeryStepPainInflicter
amount: 90
painDuration: 60
painType: TraumaticPain
sleepModifier: 0
- type: entity
parent: SurgeryStepBase
id: SurgeryStepOpenOrganSlot
name: Carve out a cavity
components:
- type: SurgeryStep
tool:
- type: Scalpel
duration: 6
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
state: insertion
- type: SurgeryAddOrganSlotStep
- type: SurgeryStepPainInflicter
amount: 21
painDuration: 60
sleepModifier: 0.34
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertLungs
name: Add lungs
components:
- type: SurgeryDamageChangeEffect
damage:
types:
Asphyxiation: -2147483648 # Literally the max 32 bit value, if your patient has gone higher than this, maybe it's time to restart the round.
sleepModifier: 1
isConsumable: true
affectAll: true
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertLiver
name: Add liver
components:
- type: SurgeryDamageChangeEffect
damage:
types:
Poison: -2147483648 # Literally the max 32 bit value, if your patient has gone higher than this, maybe it's time to restart the round.
sleepModifier: 1
isConsumable: true
affectAll: true
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertEyes
name: Add eyes
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertHeart
name: Add heart
components:
- type: SurgerySpecialDamageChangeEffect
damageType: Rot
isConsumable: true
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertPump
name: Add pump
- type: entity
parent: SurgeryStepBase
id: SurgeryStepSealOrganWound
name: Seal wounds
components:
- type: SurgeryStep
tool:
- type: Cautery
duration: 2
- type: SurgeryAffixOrganStep
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: cautery
- type: SurgeryDamageChangeEffect
damage:
types:
Heat: -5
sleepModifier: 2
- type: SurgeryStepPainInflicter
amount: 21
painDuration: 60
sleepModifier: 0.34
# The lengths I go to just for a joke... I HATE HARDCODING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
# Maybe I should modify species prototypes to include tails and ears properly...
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepAddFelinidEars
# name: Add cat ears
# components:
# - type: SurgeryStep
# tool:
# - type: Organ
# - type: SurgeryAddMarkingStep
# marking: FelinidEarsBasic
# markingCategory: HeadTop
# matchString: FelinidEars
# organ:
# - type: Ears
# accent:
# - type: OwOAccent
# - type: Sprite
# sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
# state: insertion
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepAddFelinidTail
# name: Add cat tail
# components:
# - type: SurgeryStep
# tool:
# - type: Organ
# - type: SurgeryAddMarkingStep
# marking: FelinidTailBasic
# markingCategory: Tail
# matchString: FelinidTail
# organ:
# - type: Tail
# - type: Sprite
# sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
# state: insertion
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepRemoveFelinidEars
# name: Remove cat ears
# components:
# - type: SurgeryStep
# tool:
# - type: Organ
# - type: SurgeryRemoveMarkingStep
# markingCategory: HeadTop
# matchString: FelinidEars
# - type: Sprite
# sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
# state: insertion
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepRemoveFelinidTail
# name: Remove cat tail
# components:
# - type: SurgeryStep
# tool:
# - type: Organ
# - type: SurgeryRemoveMarkingStep
# markingCategory: Tail
# matchString: FelinidTail
# - type: Sprite
# sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi
# state: insertion
#- type: entity
# parent: SurgeryStepBase
# id: SurgeryStepWingReconstruction
# name: Start wing reconstruction
# components:
# - type: SurgeryStep
# duration: 6 # On TG success chance is lower, so here the surgery slower
# tool:
# - type: Tending
# - type: ??? moth ops go here when wings can be destroyed
# - type: Sprite
# sprite: Interface/Emotes/chitter.png
# Augments
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertAugmentPowerCellSlot
name: Add power cell slot
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertAugmentPowerCellCharger
name: Add power cell charger
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertAugmentArm
name: Add arm augment
# Lobotomy
- type: entity
parent: SurgeryStepBase
id: SurgeryStepLobotomize
name: Lobotomize patient
categories: [ HideSpawnMenu ]
components:
- type: SurgeryStep
tool:
- type: Drill
addOrganOnAdd:
brain:
- type: OhioAccent
- type: RatvarianLanguage
- type: Clumsy
duration: 5
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi
state: drill
- type: SurgeryStepEmoteEffect
- type: SurgeryDamageChangeEffect
damage:
types:
Piercing: 10
- type: entity
parent: SurgeryStepBase
id: SurgeryStepMendBrainTissue
name: Mend brain tissue
categories: [ HideSpawnMenu ]
components:
- type: SurgeryStep
tool:
- type: Hemostat
duration: 4
removeOrganOnAdd:
brain:
- type: OhioAccent
- type: RatvarianLanguage
- type: Clumsy
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: SurgeryStepEmoteEffect

View File

@@ -0,0 +1,437 @@
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: WoundBase
abstract: true
components:
- type: Wound
damageType: Blunt
- type: ContainerContainer
containers:
Traumas: !type:Container
ents: [ ]
- type: entity
id: Blunt
parent: WoundBase
components:
- type: Wound
damageType: Blunt
woundType: External
woundVisibility: Always
scarWound: BluntScar
mangleSeverity: Severe
integrityMultiplier: 0.5 #heheheha
- type: TraumaInflicter
severityThreshold: 12
allowedTraumas:
- Dismemberment
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- Dismemberment
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: -2
OrganDamage: 0.17
BoneDamage: 0.8
VeinsDamage: 0
NerveDamage: 0
mangledMultipliers:
BoneDamage: 1
- type: PainInflicter
multiplier: 0.87
- type: BleedInflicter
scalingSpeed: 0.8
severityThreshold: 8
- type: entity
id: Piercing
parent: WoundBase
components:
- type: Wound
damageType: Piercing
woundType: External
woundVisibility: Always
scarWound: PiercingScar
integrityMultiplier: 0.1
mangleSeverity: Severe
- type: TraumaInflicter
severityThreshold: 12
allowedTraumas:
- Dismemberment
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- Dismemberment
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: -2
OrganDamage: 0.08
BoneDamage: 0.14
VeinsDamage: -0.4 # goes through rather easy.
NerveDamage: -0.4
mangledMultipliers:
BoneDamage: 0.1
- type: PainInflicter
multiplier: 0.67
- type: BleedInflicter
severityThreshold: 9
scalingSpeed: 0.5
- type: entity
id: ArmorPiercing
parent: WoundBase
components:
- type: Wound
woundType: External
woundVisibility: Always
scarWound: PiercingScar
integrityMultiplier: 0.15
selfHealMultiplier: 0
- type: TraumaInflicter
severityThreshold: 6
allowArmourDeduction:
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
allowedTraumas:
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: -1.8 # Bullets go THROUGH people
OrganDamage: 0.24
BoneDamage: 0.24
VeinsDamage: -0.4
NerveDamage: -0.4
- type: PainInflicter
multiplier: 0.44
- type: BleedInflicter
scalingSpeed: 0.34
severityThreshold: 5
- type: entity
id: Slash
parent: WoundBase
components:
- type: Wound
damageType: Slash
woundType: External
woundVisibility: Always
scarWound: SlashScar
integrityMultiplier: 0.17
mangleSeverity: Severe
- type: TraumaInflicter
severityThreshold: 9
allowedTraumas:
- Dismemberment
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- Dismemberment # seems rather reasonable. Wear armour, guys
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0.2
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0.27
NerveDamage: 0.27
mangledMultipliers:
BoneDamage: 0.2
- type: PainInflicter
multiplier: 0.67
- type: BleedInflicter
scalingSpeed: 1.7
- type: entity
id: Heat
parent: WoundBase
components:
- type: Wound
damageType: Heat
woundType: External
woundVisibility: Always
scarWound: BurnScar
integrityMultiplier: 0.4 # boiling people
- type: TraumaInflicter
severityThreshold: 17
allowedTraumas:
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: -0.12
BoneDamage: -0.21
VeinsDamage: 0.34
NerveDamage: 0.34
- type: PainInflicter
multiplier: 0.8
- type: BleedRemover
severityThreshold: 3
- type: entity
id: Ion
parent: WoundBase
categories: [ HideSpawnMenu ]
components:
- type: Wound
damageType: Ion
woundType: External
woundVisibility: Always
scarWound: BurnScar
integrityMultiplier: 0.34 # boiling people
- type: TraumaInflicter
severityThreshold: 17
allowedTraumas:
# - OrganDamage
# - BoneDamage
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- OrganDamage # No matter what ultrasuperduper cool armour you have, while getting fucking boiled alive - YOUR VEINS AND NERVES WILL HURT.
- BoneDamage
traumasChances:
Dismemberment: 0
# OrganDamage: -0.12
# BoneDamage: -0.21
VeinsDamage: 0.34
NerveDamage: 0.34
mangledMultipliers:
BoneDamage: 1
- type: PainInflicter
multiplier: 0.6
- type: entity
id: Cold
parent: WoundBase
components:
- type: Wound
damageType: Cold
woundType: External
woundVisibility: Always
scarWound: BurnScar
integrityMultiplier: 0.34
- type: TraumaInflicter
severityThreshold: 12
allowedTraumas:
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0.5
NerveDamage: 0.5
- type: PainInflicter
multiplier: 0.75 # it hurts
- type: entity
id: Holy
parent: WoundBase
components:
- type: Wound
damageType: Holy
woundType: Internal
woundVisibility: AdvancedScanner
integrityMultiplier: 0
- type: TraumaInflicter
severityThreshold: 0
allowedTraumas:
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0
NerveDamage: 0.777
- type: PainInflicter
multiplier: 0.77
- type: entity
id: Shock
parent: WoundBase
components:
- type: Wound
damageType: Shock
woundType: Internal
woundVisibility: HandScanner
scarWound: BurnScar
integrityMultiplier: 0.07
- type: TraumaInflicter
severityThreshold: 9
allowedTraumas:
- OrganDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0.34 # People are great conductors
NerveDamage: 0.34
- type: PainInflicter
multiplier: 0.7
- type: entity
id: Cellular
parent: WoundBase
components:
- type: Wound
damageType: Cellular
woundType: Internal
woundVisibility: AdvancedScanner
scarWound: BurnScar
integrityMultiplier: 0.15
selfHealMultiplier: 0
- type: TraumaInflicter
severityThreshold: 0
allowedTraumas:
- OrganDamage
- BoneDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0.17
NerveDamage: 0.17
- type: PainInflicter
painType: TraumaticPain
multiplier: 0.32
- type: entity
id: Caustic
parent: WoundBase
components:
- type: Wound
damageType: Caustic
woundType: Internal
woundVisibility: AdvancedScanner
scarWound: BurnScar
integrityMultiplier: 0
- type: TraumaInflicter
severityThreshold: 12
allowedTraumas:
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0
BoneDamage: 0
VeinsDamage: 0.5
NerveDamage: 0.5
- type: PainInflicter
painType: TraumaticPain
multiplier: 0.12
- type: entity
id: Radiation
parent: WoundBase
components:
- type: Wound
damageType: Radiation
woundType: Internal
woundVisibility: HandScanner
scarWound: RadiationScar
integrityMultiplier: 0
selfHealMultiplier: 0
- type: TraumaInflicter
severityThreshold: 11
allowedTraumas:
- OrganDamage
- VeinsDamage
- NerveDamage
allowArmourDeduction:
- OrganDamage
traumasChances:
Dismemberment: 0
OrganDamage: 0.34
BoneDamage: 0
VeinsDamage: 0.34
NerveDamage: 0.34
- type: PainInflicter
painType: TraumaticPain
multiplier: 0.12
- type: entity
id: Poison
parent: WoundBase
components:
- type: Wound
damageType: Poison
woundType: Internal
woundVisibility: HandScanner
integrityMultiplier: 0
- type: TraumaInflicter
severityThreshold: 7
allowedTraumas:
- OrganDamage
- VeinsDamage
- NerveDamage
traumasChances:
Dismemberment: 0
OrganDamage: -0.34
BoneDamage: 0
VeinsDamage: 0.12
NerveDamage: 0.12
- type: PainInflicter
painType: TraumaticPain
multiplier: 0.7
- type: entity
id: BoneDamage
components:
- type: Trauma
traumaType: BoneDamage
- type: entity
id: OrganDamage
components:
- type: Trauma
traumaType: OrganDamage
- type: entity
id: VeinsDamage
components:
- type: Trauma
traumaType: VeinsDamage
- type: entity
id: NerveDamage
components:
- type: Trauma
traumaType: NerveDamage
- type: entity
id: Dismemberment
components:
- type: Trauma
traumaType: Dismemberment

View File

@@ -0,0 +1,402 @@
# Generic
- type: entity
abstract: true
parent: SurgeryBase
id: BaseSurgeryXeno
components:
- type: SurgeryPartComponentCondition
inverse: false # xeno surgeries can only be done on xenos
- type: entity
abstract: true
parent: BaseSurgeryXeno
id: BaseSurgeryXenoCommon
components:
- type: SurgeryPartPresentCondition
- type: entity
parent: BaseSurgeryXenoCommon
id: SurgeryXenoInciseExoskeleton
name: Incise Exoskeleton
components:
- type: Surgery
steps:
- SurgeryStepXenoCutExoskeleton
- SurgeryStepXenoSawExoskeleton
- SurgeryStepXenoClampBleeders
- SurgeryStepXenoRetractExoskeleton
- type: entity
parent: BaseSurgeryXenoCommon
id: SurgeryXenoResealExoskeleton
name: Reseal Exoskeleton
components:
- type: Surgery
requirement: SurgeryXenoResealEndoskeleton
steps:
- SurgeryStepXenoCloseExoskeleton
- SurgeryStepXenoMendExoskeleton
- type: entity
parent: BaseSurgeryXenoCommon
id: SurgeryXenoExposeEndoskeleton
name: Expose Endoskeleton
components:
- type: Surgery
requirement: SurgeryXenoInciseExoskeleton
steps:
- SurgeryStepXenoSawEndoskeleton
- SurgeryStepXenoRetractEndoskeleton
- type: entity
parent: BaseSurgeryXenoCommon
id: SurgeryXenoResealEndoskeleton
name: Repair Endoskeleton
components:
- type: Surgery
steps:
- SurgeryStepXenoCloseEndoskeleton
- SurgeryStepXenoMendEndoskeleton
- type: entity
parent: [ BaseSurgeryXeno, SurgeryRemovePart ]
id: SurgeryXenoRemovePart
components:
- type: Surgery
requirement: SurgeryXenoInciseExoskeleton
steps:
- SurgeryStepXenoSawEndoskeleton
- SurgeryStepXenoClampBleeders
- SurgeryStepXenoRemoveFeature
# Insert organs
- type: entity
abstract: true
parent: BaseSurgeryXeno
id: BaseSurgeryXenoInsertOrgan
components:
- type: Surgery
requirement: SurgeryXenoExposeEndoskeleton
- type: SurgeryPartCondition
parts: [ Head ]
- type: SurgeryOrganCondition
inverse: true
reattaching: true
## Basic Organs (Intentionally missing brain)
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertEyes
name: Insert Xeno Eyes
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepInsertEyes
- SurgeryStepXenoSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: eyes
- type: SurgeryOrganCondition
organ:
- type: Eyes
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertLiver
name: Insert Xeno Liver
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepInsertLiver
- SurgeryStepXenoSealOrganWound
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganSlotCondition
organSlot: liver
- type: SurgeryOrganCondition
organ:
- type: Liver
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertStomach
name: Insert Xeno Stomach
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepInsertOrgan
- SurgeryStepXenoSealOrganWound
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganSlotCondition
organSlot: stomach
- type: SurgeryOrganCondition
organ:
- type: Stomach
## Xeno Organs
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertHiveNode
name: Insert Hive Node
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertHiveNode
- SurgeryStepXenoSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: hive_node
- type: SurgeryOrganCondition
organ:
- type: HiveNode
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertResinSpinner
name: Insert Resin Spinner
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertResinSpinner
- SurgeryStepXenoSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: resin_spinner
- type: SurgeryOrganCondition
organ:
- type: ResinSpinner
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertNeurotoxinGland
name: Insert Neurotoxin Gland
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertNeurotoxinGland
- SurgeryStepXenoSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: neurotoxin_gland
- type: SurgeryOrganCondition
organ:
- type: NeurotoxinGland
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertAcidGland
name: Insert Acid Gland
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertAcidGland
- SurgeryStepXenoSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: acid_gland
- type: SurgeryOrganCondition
organ:
- type: AcidGland
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertPlasmaVessel
name: Insert Plasma Vessel
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertPlasmaVessel
- SurgeryStepXenoSealOrganWound
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganSlotCondition
organSlot: plasma_vessel
- type: SurgeryOrganCondition
organ:
- type: PlasmaVessel
- type: entity
parent: BaseSurgeryXenoInsertOrgan
id: SurgeryXenoInsertEggSack
name: Insert Egg Sack
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepInsertEggSack
- SurgeryStepXenoSealOrganWound
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganSlotCondition
organSlot: egg_sack
- type: SurgeryOrganCondition
organ:
- type: EggSack
# Remove organs
- type: entity
abstract: true
parent: BaseSurgeryXeno
id: BaseSurgeryXenoRemoveOrgan
components:
- type: Surgery
requirement: SurgeryXenoExposeEndoskeleton
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoRemoveOrgan
- type: SurgeryPartCondition
parts: [ Head ]
## Basic Organs
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveEyes
name: Remove Xeno Eyes
components:
- type: SurgeryOrganCondition
organ:
- type: Eyes
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveLiver
name: Remove Xeno Liver
components:
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganCondition
organ:
- type: Liver
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveStomach
name: Remove Xeno Stomach
components:
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganCondition
organ:
- type: Stomach
## Xeno Organs
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveHiveNode
name: Remove Hive Node
components:
- type: SurgeryOrganCondition
organ:
- type: HiveNode
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveResinSpinner
name: Remove Resin Spinner
components:
- type: SurgeryOrganCondition
organ:
- type: ResinSpinner
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveNeurotoxinGland
name: Remove Neurotoxin Gland
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoRemoveOrgan
- type: SurgeryOrganCondition
organ:
- type: NeurotoxinGland
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveAcidGland
name: Remove Acid Gland
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoRemoveOrgan
- type: SurgeryOrganCondition
organ:
- type: AcidGland
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemovePlasmaVessel
name: Remove Plasma Vessel
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoSeverPlasma
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoRemoveOrgan
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganCondition
organ:
- type: PlasmaVessel
- type: entity
parent: BaseSurgeryXenoRemoveOrgan
id: SurgeryXenoRemoveEggSack
name: Remove Egg Sack
components:
- type: Surgery
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoSeverPlasma
- SurgeryStepXenoRemoveOrgan
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganCondition
organ:
- type: EggSack
# Shitty xenobio
- type: entity
parent: SurgeryBase
id: SurgeryXenoTakeSample
name: Take tissue sample
components:
- type: Surgery
requirement: SurgeryXenoExposeEndoskeleton
steps:
- SurgeryStepXenoOpenIncision
- SurgeryStepXenoNeutralizeAcid
- SurgeryStepXenoTakeSample
- type: SurgeryBodyComponentCondition
inverse: false
components:
- type: Xenomorph
caste: Drone # yml major
- type: SurgeryPartComponentCondition
inverse: false
components:
- type: HasTissueSample

View File

@@ -0,0 +1,244 @@
## Xeno Biology surgeries that are done on humanoids
# Organ slots
- type: entity
abstract: true
parent: SurgeryOpenCavityBase
id: BaseSurgeryOpenXenoCavity
components:
- type: Surgery
requirement: SurgeryOpenIncision
steps:
- SurgeryStepSawBones
- SurgeryStepGraftXenoSample
- SurgeryStepOpenOrganSlot
- type: SurgeryPartCondition
parts: [ Head ]
- type: SurgeryBodyComponentCondition
components:
- type: XenoCompatible
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityHiveNode
name: Open Hive Node Cavity
components:
- type: SurgeryOrganSlotCondition
organSlot: hive_node
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityResinSpinner
name: Open Resin Spinner Cavity
components:
- type: SurgeryOrganSlotCondition
organSlot: resin_spinner
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityNeurotoxinGland
name: Open Neurotoxin Gland Cavity
components:
- type: SurgeryOrganSlotCondition
organSlot: neurotoxin_gland
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityAcidGland
name: Open Acid Gland Cavity
components:
- type: SurgeryOrganSlotCondition
organSlot: acid_gland
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityPlasmaVessel
name: Open Plasma Vessel Cavity
components:
- type: Surgery
requirement: SurgeryOpenRibcage
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganSlotCondition
organSlot: plasma_vessel
- type: entity
parent: BaseSurgeryOpenXenoCavity
id: SurgeryOpenXenoCavityEggSack
name: Open Egg Sack Cavity
components:
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganSlotCondition
organSlot: egg_sack
# Insert organs (human surgeries)
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertHiveNode
name: Transplant Hive Node
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertHiveNode
- SurgeryStepSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: hive_node
- type: SurgeryOrganCondition
organ:
- type: HiveNode
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertResinSpinner
name: Transplant Resin Spinner
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertResinSpinner
- SurgeryStepSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: resin_spinner
- type: SurgeryOrganCondition
organ:
- type: ResinSpinner
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertNeurotoxinGland
name: Transplant Neurotoxin Gland
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertNeurotoxinGland
- SurgeryStepSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: neurotoxin_gland
- type: SurgeryOrganCondition
organ:
- type: NeurotoxinGland
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertAcidGland
name: Transplant Acid Gland
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertAcidGland
- SurgeryStepSealOrganWound
- type: SurgeryOrganSlotCondition
organSlot: acid_gland
- type: SurgeryOrganCondition
organ:
- type: AcidGland
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertPlasmaVessel
name: Transplant Plasma Vessel
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertPlasmaVessel
- SurgeryStepSealOrganWound
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganSlotCondition
organSlot: plasma_vessel
- type: SurgeryOrganCondition
organ:
- type: PlasmaVessel
- type: entity
parent: BaseSurgeryInsertOrgan
id: SurgeryInsertEggSack
name: Transplant Egg Sack
components:
- type: Surgery
steps:
- SurgeryStepOpenIncisionScalpel
- SurgeryStepClampBleeders
- SurgeryStepInsertEggSack
- SurgeryStepSealOrganWound
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganSlotCondition
organSlot: egg_sack
- type: SurgeryOrganCondition
organ:
- type: EggSack
# Remove Organs
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemoveHiveNode
name: Remove Transplanted Hive Node
components:
- type: SurgeryOrganCondition
organ:
- type: HiveNode
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemoveResinSpinner
name: Remove Transplanted Resin Spinner
components:
- type: SurgeryOrganCondition
organ:
- type: ResinSpinner
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemoveNeurotoxinGland
name: Remove Transplanted Neurotoxin Gland
components:
- type: SurgeryOrganCondition
organ:
- type: NeurotoxinGland
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemoveAcidGland
name: Remove Transplanted Acid Gland
components:
- type: SurgeryOrganCondition
organ:
- type: AcidGland
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemovePlasmaVessel
name: Remove Transplanted Plasma Vessel
components:
- type: Surgery
requirement: SurgeryOpenRibcage
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganCondition
organ:
- type: PlasmaVessel
- type: entity
parent: BaseSurgeryRemoveOrgan
id: SurgeryRemoveEggSack
name: Remove Transplanted Egg Sack
components:
- type: SurgeryPartCondition
parts: [ Groin ]
- type: SurgeryOrganCondition
organ:
- type: EggSack

View File

@@ -0,0 +1,277 @@
# Base
- type: entity
abstract: true
parent: SurgeryStepBase
id: BaseSurgeryStepXeno
components:
# TODO: higher base chance of catastrophic failure
- type: SurgeryDamageUser
popup: surgery-step-acid-popup
damage:
types:
Caustic: 10 # need very good PPE to do a lot of xeno surgery
# Common steps
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepOpenIncisionScalpel ]
id: SurgeryStepXenoOpenIncision
name: Open an incision
components:
- type: SurgeryStep
duration: 4
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepClampBleeders ]
id: SurgeryStepXenoClampBleeders
name: Clamp the acid vessels
components:
- type: SurgeryStep
duration: 6
- type: SurgeryDamageUser
damage:
types:
Caustic: 15 # especially bloody
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepSawBones ]
id: SurgeryStepXenoSeverPlasma
name: Sever plasma connections
components:
- type: SurgeryStep
add:
- type: PlasmaSevered
duration: 8
- type: entity
parent: SurgeryStepBase # no damage from it duh
id: SurgeryStepXenoNeutralizeAcid
name: Neutralize acid
components:
- type: SurgeryStep
tool:
- type: BoneGel # bone gel is basic idk, the alternative is port tg chem :)
add:
- type: AcidNeutralized
duration: 4
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi
state: bone-gel
# Exoskeleton
- type: entity
parent: SurgeryStepXenoOpenIncision
id: SurgeryStepXenoCutExoskeleton
name: Score the exoskeleton
components:
- type: SurgeryStep
add:
- type: ExoskeletonIncision
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepPriseOpenBones ]
id: SurgeryStepXenoRetractExoskeleton
name: Retract the exoskeleton
components:
- type: SurgeryStep
duration: 6
add:
- type: ExoskeletonOpen
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepSawBones ]
id: SurgeryStepXenoSawExoskeleton
name: Saw through the exoskeleton
components:
- type: SurgeryStep
duration: 8
add:
- type: ExoskeletonSawed
- type: entity
parent: BaseSurgeryStepXeno
id: SurgeryStepXenoMendExoskeleton
name: Reseal the exoskeleton
components:
- type: SurgeryStep
tool:
- type: Cautery
remove:
- type: BleedersClamped
- type: ExoskeletonSawed
- type: ExoskeletonIncision
duration: 6
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi
state: cautery
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepCloseBones ]
id: SurgeryStepXenoCloseExoskeleton
name: Close the exoskeleton
components:
- type: SurgeryStep
duration: 4
remove:
- type: ExoskeletonOpen
# Endoskeleton - this is the same as a human's ribcage
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepPriseOpenBones ]
id: SurgeryStepXenoRetractEndoskeleton
name: Retract the endoskeleton
components:
- type: SurgeryStep
duration: 4
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepSawBones ]
id: SurgeryStepXenoSawEndoskeleton
name: Saw through the endoskeleton
components:
- type: SurgeryStep
duration: 8
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepSealRibcage ]
id: SurgeryStepXenoMendEndoskeleton
name: Mend the endoskeleton
components:
- type: SurgeryStep
duration: 4
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepCloseBones ]
id: SurgeryStepXenoCloseEndoskeleton
name: Close the endoskeleton
components:
- type: SurgeryStep
duration: 4
# Common
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepCloseIncision ]
id: SurgeryStepXenoCloseIncision
components:
- type: SurgeryStep
duration: 4
remove:
- type: SkinRetracted
- type: BleedersClamped
- type: IncisionOpen
- type: BodyPartReattached
- type: InternalBleedersClamped
# above are from the parent
- type: PlasmaSevered
- type: AcidNeutralized
- type: SurgeryDamageUser
damage:
types:
Caustic: 2 # minimal damage
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepSealOrganWound ]
id: SurgeryStepXenoSealOrganWound
components:
- type: SurgeryStep
duration: 4
remove:
- type: SkinRetracted
- type: BleedersClamped
- type: IncisionOpen
- type: InternalBleedersClamped
# above are from the parent
- type: PlasmaSevered
- type: SurgeryDamageUser
damage:
types:
Caustic: 5 # less damage, but its an organ
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepRemoveFeature ]
id: SurgeryStepXenoRemoveFeature
components:
- type: SurgeryDamageUser
damage:
types:
Caustic: 40 # big blood
# Xeno organs
- type: entity
parent: [ BaseSurgeryStepXeno, SurgeryStepRemoveOrgan ]
id: SurgeryStepXenoRemoveOrgan
components:
- type: SurgeryDamageUser
damage:
types:
Caustic: 20
# putting organs in does no damage
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertHiveNode
name: Add hive node
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertResinSpinner
name: Add resin spinner
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertNeurotoxinGland
name: Add neurotoxin gland
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertAcidGland
name: Add acid gland
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertPlasmaVessel
name: Add plasma vessel
- type: entity
parent: SurgeryStepInsertOrgan
id: SurgeryStepInsertEggSack
name: Add egg sack
# Shitty xenobio
- type: entity
parent: BaseSurgeryStepXeno
id: SurgeryStepXenoTakeSample
name: Remove tissue sample
components:
- type: SurgeryStep
duration: 6
tool:
- type: Tweezers
remove:
- type: HasTissueSample
- type: SurgeryStepSpawnEffect
entity: XenoTissueSample
- type: Sprite
sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi
state: hemostat
- type: entity
parent: SurgeryStepBase # this is a regular surgery
id: SurgeryStepGraftXenoSample
name: Graft xeno tissue sample
components:
- type: SurgeryStep
duration: 8
tool:
- type: TissueSample
add:
- type: HasTissueSample
- type: Sprite
sprite: _Shitmed/Objects/Misc/tissue_sample.rsi
state: xeno

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entityCategory
id: Surgeries
name: entity-category-name-surgeries
hideSpawnMenu: true
- type: entityCategory
id: SurgerySteps
name: entity-category-name-surgery-steps
hideSpawnMenu: true
- type: entityCategory
id: Wounds
name: entity-category-name-wounds
hideSpawnMenu: true

View File

@@ -0,0 +1,241 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Poips <Hanakohashbrown@gmail.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 grub <unalterableness@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 shityaml <unalterableness@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseGameRule
id: LoneAbductorSpawn
components:
- type: StationEvent
earliestStart: 15
reoccurrenceDelay: 45
weight: 3 # Goobstation - 7.5 -> 3
minimumPlayers: 10
duration: null # Goobstation - chud
chaos:
Hostile: 75
Medical: 75
eventType: HostilesSpawn
- type: GameRule
chaosScore: 100
- type: RuleGrids
- type: LoadMapRule
mapPath: /Maps/_Shitmed/Shuttles/ShuttleEvent/abductor_shuttle.yml
- type: AntagObjectives
objectives:
- AbductObjective
- type: AntagLoadProfileRule
speciesHardOverride: Abductor
- type: AntagSelection
definitions:
- spawnerPrototype: LoneAbductorSpawner
min: 1
max: 1
pickPlayer: false
startingGear: LoneAbductorGear
briefing:
text: abductor-role-greeting
color: Green
sound: /Audio/_Shitmed/Misc/abductor.ogg
components:
- type: Abductor
- type: ActionGrant
actions:
- ActionReturnToShip
- type: GhostRole
name: abductor-lone-ghost-role-name
description: abductor-lone-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleSoloAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 180000 #50 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 7200 #2 hours
- !type:DepartmentTimeRequirement
department: Security
time: 7200 #2 hours
- type: GhostTakeoverAvailable
- type: NpcFactionMember
factions:
- SimpleHostile
- type: RandomMetadata
nameSegments:
- AbductorScientistPrefix
- AbductorNames
nameFormat: name-format-standard
- type: Tag
tags:
- Abductor
- AbductorScientist
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: AbductorScientist
- type: SurgeryIgnoreClothing
- type: Sanitized
- type: SurgerySpeedModifier
speedModifier: 1.5
mindRoles:
- MindRoleLoneAbductor
- type: entity
parent: BaseGameRule
id: AbductorVictim
components:
- type: AbductorVictimRule
- type: AntagSelection
definitions:
- mindRoles:
- MindRoleAbductorVictim
briefing:
text: abductor-victim-role-greeting
color: Red
sound: /Audio/_Shitmed/Misc/abducted.ogg
- type: AntagRandomObjectives
maxDifficulty: 1
sets:
- maxPicks: 1
groups: AbductorVictimObjectiveGroups
- type: entity
parent: BaseGameRule
id: DuoAbductorSpawn
components:
- type: StationEvent
earliestStart: 15
reoccurrenceDelay: 45
weight: 3 # Goobstation - 7.5 -> 3
minimumPlayers: 20
duration: null # Goobstation - chud
chaos:
Hostile: 150
Medical: 150
eventType: HostilesSpawn
- type: GameRule
chaosScore: 150
- type: RuleGrids
- type: LoadMapRule
mapPath: /Maps/_Shitmed/Shuttles/ShuttleEvent/duo_abductor_shuttle.yml
- type: AntagObjectives
objectives:
- AbductObjective
- type: AntagLoadProfileRule
speciesHardOverride: Abductor
- type: AntagSelection
definitions:
- spawnerPrototype: AbductorScientistSpawner
min: 1
max: 1
pickPlayer: false
startingGear: AbductorScientistGear
briefing:
text: abductor-role-greeting
color: Green
sound: /Audio/_Shitmed/Misc/abductor.ogg
components:
- type: Abductor
- type: ActionGrant
actions:
- ActionReturnToShip
- type: GhostRole
name: abductor-scientist-ghost-role-name
description: abductor-scientist-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 180000 #50 hours
- !type:DepartmentTimeRequirement
department: Medical
time: 10800 #3 hours
- type: GhostTakeoverAvailable
- type: NpcFactionMember
factions:
- SimpleHostile
- type: RandomMetadata
nameSegments:
- AbductorScientistPrefix
- AbductorNames
nameFormat: name-format-standard
- type: Tag
tags:
- Abductor
- AbductorScientist
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: AbductorScientist
- type: SurgeryIgnoreClothing
- type: Sanitized
- type: SurgerySpeedModifier
speedModifier: 1.5
mindRoles:
- MindRoleAbductorScientist
- spawnerPrototype: AbductorAgentSpawner
min: 1
max: 1
pickPlayer: false
startingGear: AbductorAgentGear
briefing:
text: abductor-role-greeting
color: Green
sound: /Audio/_Shitmed/Misc/abductor.ogg
components:
- type: Abductor
- type: ActionGrant
actions:
- ActionReturnToShip
- type: GhostRole
name: abductor-agent-ghost-role-name
description: abductor-agent-ghost-role-desc
rules: abductors-ghost-role-rules
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
requirements:
- !type:OverallPlaytimeRequirement
time: 18000 #5 hours
- !type:DepartmentTimeRequirement
department: Security
time: 10800 #3 hours
- type: GhostTakeoverAvailable
- type: NpcFactionMember
factions:
- SimpleHostile
- type: RandomMetadata
nameSegments:
- AbductorAgentPrefix
- AbductorNames
nameFormat: name-format-standard
- type: Tag
tags:
- Abductor
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: AbductorScientist # Should be removed when we have proper teleportation system
mindRoles:
- MindRoleAbductorAgent

View File

@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: guideEntry
id: Abductors
name: guide-entry-abductors
text: "/ServerInfo/_Shitmed/Guidebook/Antagonist/Abductors.xml"

View File

@@ -0,0 +1,38 @@
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: guideEntry
id: Surgery
name: guide-entry-surgery
text: "/ServerInfo/_Shitmed/Guidebook/Medical/Surgery.xml"
children:
- PartManipulation
- OrganManipulation
- UtilitySurgeries
- Autodoc
- type: guideEntry
id: PartManipulation
name: guide-entry-partmanipulation
text: "/ServerInfo/_Shitmed/Guidebook/Medical/PartManipulation.xml"
filterEnabled: true
- type: guideEntry
id: OrganManipulation
name: guide-entry-organmanipulation
text: "/ServerInfo/_Shitmed/Guidebook/Medical/OrganManipulation.xml"
filterEnabled: true
- type: guideEntry
id: UtilitySurgeries
name: guide-entry-utilitysurgeries
text: "/ServerInfo/_Shitmed/Guidebook/Medical/UtilitySurgeries.xml"
filterEnabled: true
- type: guideEntry
id: Autodoc
name: guide-entry-autodoc
text: "/ServerInfo/_Shitmed/Guidebook/Medical/Autodoc.xml"

View File

@@ -0,0 +1,63 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: weightedRandom
id: AbductorVictimObjectiveGroups
weights:
AbductorVictimObjectiveGroupHarmless: 0.75
AbductorVictimObjectiveGroupAnnoy: 0.20
AbductorVictimObjectiveGroupHarmful: 0.05
- type: weightedRandom
id: AbductorVictimObjectiveGroupHarmless
weights:
AbductorVictimPaintObjective: 1
AbductorVictimPristine: 1
AbductorVictimCorpseCollector: 1
AbductorVictimBlingFloor: 1
AbductorVictimParaplegic: 1
AbductorVictimHungry: 1
AbductorVictimBlazeIt: 1
AbductorVictimVirtualInsanity: 1
AbductorVictimSocialExperiment: 1
AbductorVictimGame: 1
AbductorVictimSaveAnimals: 1
AbductorVictimMusic: 1
AbductorVictimNarrator: 1
AbductorVictimStalker: 1
AbductorVictimConspiracy: 1
AbductorVictimSixthsense: 1
AbductorVictimParty: 1
AbductorVictimDeadStationTheory: 1
AbductorVictimWeaknessOfMyFlesh: 1
AbductorVictimInstructor: 1
AbductorVictimActor: 1
- type: weightedRandom
id: AbductorVictimObjectiveGroupAnnoy
weights:
AbductorVictimNations: 1
AbductorVictimPowerUnlimited: 1
AbductorVictimBuild: 1
AbductorVictimDefect: 1
AbductorVictimMonkeyTakeover: 1
AbductorVictimAverageFrontierPirate: 1
AbductorVictimNoClown: 1
AbductorVictimReplacePets: 1
AbductorVictimBald: 1
- type: weightedRandom
id: AbductorVictimObjectiveGroupHarmful
weights:
AbductorVictimNoWalls: 1
AbductorVictimAbductception: 1
AbductorVictimNoOxygen: 1
AbductorVictimEscapeStation: 1
AbductorVictimNoCloning: 1
AbductorVictimStealWeapons: 1
AbductorVictimDismantleComputers: 1
AbductorVictimFinality: 1
AbductorVictimHeretic: 0.01

View File

@@ -0,0 +1,484 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
abstract: true
parent: BaseObjective
id: BaseAbductorObjective
components:
- type: Objective
difficulty: 1.5
issuer: objective-issuer-abductors
- type: RoleRequirement
roles:
- Abductor
- type: entity
parent: BaseAbductorObjective
id: AbductObjective
components:
- type: Objective
icon:
sprite: _Shitmed/Mobs/Species/Misc/Dubious/organs.rsi
state: gland
- type: NumberObjective
min: 6
max: 9
title: objective-condition-abduct-title
description: objective-condition-abduct-description
- type: AbductCondition
- type: entity
parent: BaseObjective
id: BaseAbductorVictimObjective
abstract: true
components:
- type: Objective
difficulty: 1
issuer: objective-issuer-voices
- type: RoleplayObjective
- type: RoleRequirement
roles:
- AbductorVictim
# Harmless Objectives
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimPaintObjective
name: Paint the station.
description: The station is hideous. You must color it all!
components:
- type: Objective
icon:
sprite: Objects/Fun/crayons.rsi
state: rainbow
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimPristine
name: Ensure the station is pristine.
description: The CEO of Nanotrasen is coming! Ensure the station is in absolutely pristine condition.
components:
- type: Objective
icon:
sprite: Clothing/Head/Hats/comcap.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimBlingFloor
name: Replace the floor.
description: Replace all the floor tiles with wood, carpeting, grass or bling.
components:
- type: Objective
icon:
sprite: Objects/Tiles/tile.rsi
state: carpet-blue
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimCorpseCollector
name: Collect dead corpses.
description: Start a collection of corpses. Don't kill people to get these corpses.
components:
- type: Objective
icon:
sprite: Objects/Specific/Medical/Morgue/bodybags.rsi
state: bag
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimParaplegic
name: Paraplegic.
description: Convince the crew that you are paraplegic.
components:
- type: Objective
icon:
sprite: Objects/Specific/Medical/Morgue/bodybags.rsi
state: bag
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimHungry
name: Sate your hunger.
description: You are hungry. Eat as much food as you can find.
components:
- type: Objective
icon:
sprite: Objects/Consumable/Food/meat.rsi
state: plain-cooked
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimBlazeIt
name: Chemically improve your body.
description: Your body must be improved. Ingest as many drugs as you can.
components:
- type: Objective
icon:
sprite: Objects/Specific/Hydroponics/cannabis.rsi
state: produce
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimSocialExperiment
name: It's all a lie.
description: This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth.
components:
- type: Objective
icon:
sprite: Structures/Wallmounts/camera.rsi
state: cameracase
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimVirtualInsanity
name: NOTHING IS REAL.
description: It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR.
components:
- type: Objective
icon:
sprite: Structures/Machines/computers.rsi
state: avionics-systems
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimGame
name: Chat is this real?
description: Convince the crew that we are in a game, without explicitly telling them we are in a game.
components:
- type: Objective
icon:
sprite: Structures/Machines/arcade.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimSaveAnimals
name: Save the animals.
description: Nanotrasen is abusing the animals! Save as many as you can!
components:
- type: Objective
icon:
sprite: Mobs/Animals/monkey.rsi
state: full
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimMusic
name: Share your music.
description: You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument!
components:
- type: Objective
icon:
sprite: Objects/Fun/Instruments/guitar.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimStalker
name: Stalk the crew.
description: Someone hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it.
components:
- type: Objective
icon:
sprite: Objects/Misc/folders.rsi
state: folder-colormap
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimConspiracy
name: The conspiracy.
description: The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people!
components:
- type: Objective
icon:
sprite: Structures/Wallmounts/camera.rsi
state: cameracase
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNarrator
name: Narrate the story.
description: You're the narrator of this tale. Follow around the protagonists to tell their story.
components:
- type: Objective
icon:
sprite: Objects/Misc/books.rsi
state: book_icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimSixthsense
name: Are you really alive?
description: You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo.
components:
- type: Objective
icon:
sprite: Structures/Storage/Crates/coffin.rsi
state: base
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimParty
name: PARTY!
description: You NEED to throw a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE!
components:
- type: Objective
icon:
sprite: Objects/Consumable/Drinks/beer.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimDeadStationTheory
name: Only one other person exists.
description: There is only one other person in existence, they are just really good at pretending to be multiple people.
components:
- type: Objective
icon:
sprite: Mobs/Species/Human/parts.rsi
state: full
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimWeaknessOfMyFlesh
name: The flesh is rotting.
description: Your flesh is rotting from your body. Fight the inevitable, and replace your tainted limbs with entirely new ones.
components:
- type: Objective
icon:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: scalpel
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimInstructor
name: Military instructor.
description: You are a military instructor. You must make sure the crew is in top shape for the war against the syndicate!
components:
- type: Objective
icon:
sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi
state: scalpel
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimActor
name: Action movie.
description: You are in an action movie. You must say as many cheesy one-liners as possible.
components:
- type: Objective
icon:
sprite: Clothing/Eyes/Glasses/sunglasses.rsi
state: icon
# Annoying Objectives
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNations
name: Make your department prosper.
description: Ensure your department prospers over all else.
components:
- type: Objective
icon:
sprite: Clothing/Neck/Medals/gold.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimPowerUnlimited
name: Unlimited power.
description: Flood the station's powernet with as much electricity as you can.
components:
- type: Objective
icon:
sprite: Objects/Power/power_cells.rsi
state: antique
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimBuild
name: Expand the station.
description: The station is too tiny, and you're going to fix that.
components:
- type: Objective
icon:
sprite: Objects/Tools/rcd.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimDefect
name: Defect from the station.
description: Fuck the system! Defect from the station and start an independent colony in space, Mining Outpost or the derelict. Recruit crewmates if you can.
components:
- type: Objective
icon:
sprite: Structures/Shuttles/gyroscope.rsi
state: base
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimMonkeyTakeover
name: Raise an army of monkeys.
description: OOK OOK AAH!!!
components:
- type: Objective
icon:
sprite: Mobs/Animals/monkey.rsi
state: full
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimAverageFrontierPirate
name: Steal shoes.
description: Steal as many shoes as you can.
components:
- type: Objective
icon:
sprite: Clothing/Shoes/color.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNoClown
name: The clown is not funny.
description: The clown is not funny. You can do better! Take over their role and make the crew laugh!
components:
- type: Objective
icon:
sprite: Clothing/Mask/clown.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimReplacePets
name: Replace the pets.
description: All the pets around here suck. You need to make them cooler. Replace them with exotic beasts!
components:
- type: Objective
icon:
sprite: Mobs/Animals/snake.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimBald
name: Save people from the hair invasion.
description: There are alien parasites masquerading as people's hair. Save people from this invasion.
components:
- type: Objective
icon:
sprite: Objects/Tools/scissors.rsi
state: icon
# Harmful Objectives
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNoWalls
name: Break down the walls.
description: The crew must get to know one another better. Break down the walls inside the station!
components:
- type: Objective
icon:
sprite: Structures/Walls/solid.rsi
state: rgeneric
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimAbductception
name: Take revenge.
description: You have been changed forever. Find the aliens that did this to you and give them a taste of their own medicine.
components:
- type: Objective
icon:
sprite: Objects/Weapons/Melee/baseball_bat.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNoOxygen
name: OXYGEN IS KILLING EVERYONE.
description: The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station.
components:
- type: NotJobRequirement
job: AtmosphericTechnician # It would be too free for atmos techs :) CE is fair game though.
- type: Objective
icon:
sprite: Objects/Tanks/oxygen.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimEscapeStation
name: Escape the station.
description: You must escape the station! Get the shuttle called!
components:
- type: Objective
icon:
sprite: Structures/Furniture/chairs.rsi
state: shuttle
- type: EscapeShuttleCondition
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimNoCloning
name: No cloning.
description: Don't allow anyone to be cloned.
components:
- type: Objective
icon:
sprite: Structures/Machines/cloning.rsi
state: pod_g
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimStealWeapons
name: Steal weapons.
description: Steal as many weapons as you can fit on your person.
components:
- type: Objective
icon:
sprite: Objects/Weapons/Melee/baseball_bat.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimDismantleComputers
name: Steal computers.
description: The 7G waves coming off from the computers are killing the crew and they dont know it! Dismantle them!
components:
- type: Objective
icon:
sprite: Structures/Machines/computers.rsi
state: avionics-systems
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimFinality
name: No revival.
description: Death should be final and modern medicine disrupts the natural order. Don't allow anyone to be revived.
components:
- type: Objective
icon:
sprite: Objects/Specific/Medical/defib.rsi
state: icon
- type: entity
parent: BaseAbductorVictimObjective
id: AbductorVictimHeretic
name: THE GATES HAVE OPENED MY MIND IS OPEN MY MIND IS OPEN MY MIND IS OPEN
description: You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL.
components:
- type: ForceHereticObjective
- type: Objective
icon:
sprite: _Goobstation/Heretic/mansus_grasp.rsi
state: icon

View File

@@ -0,0 +1,17 @@
- type: reagent
parent: Nocturine
id: NocturineWonderprod
name: reagent-name-nocturine-wonderprod
desc: reagent-desc-nocturine-wonderprod
metabolisms:
Narcotic:
effects:
- !type:ModifyStatusEffect
conditions:
# this intentionally has no yowie condition so abductors can sleep disgruntled yowies
- !type:ReagentThreshold
reagent: NocturineWonderprod
min: 8
effectProto: StatusEffectForcedSleeping
time: 3
type: Add

View File

@@ -0,0 +1,176 @@
- type: constructionGraph
id: AugmentPowerCellSlot
start: start
graph:
- node: start
edges:
- to: casing
steps:
- tag: AugmentCellCasing
name: construction-graph-tag-casing
icon:
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_cell
- node: casing
entity: AugmentPowerCellSlotCasing
edges:
- to: cables
steps:
- material: Cable
amount: 1
- node: cables
entity: AugmentPowerCellSlotCables
edges:
- to: augment
steps:
- material: Plastic
amount: 1
- node: augment
entity: AugmentPowerCellSlot
- type: constructionGraph
id: AugmentRecharger
start: start
graph:
- node: start
edges:
- to: casing
steps:
- tag: AugmentRechargerCasing
name: construction-graph-tag-casing
icon:
sprite: _Shitmed/Objects/Augments/power.rsi
state: incomplete_charger
- node: casing
entity: AugmentRechargerCasing
edges:
- to: cables
steps:
- material: Cable
amount: 1
- node: cables
entity: AugmentRechargerCables
edges:
- to: apc
steps:
- tag: AugmentRechargerBoard
name: construction-graph-tag-cell-recharger
icon:
sprite: Objects/Misc/module.rsi
state: charger_APC
- to: station
steps:
- tag: AugmentStationBoard
name: construction-graph-tag-cyborg-recharger
icon:
sprite: Objects/Misc/module.rsi
state: charger_APC
- node: apc
entity: AugmentRechargerAPC
- node: station
entity: AugmentRechargerStation
- type: constructionGraph
id: AugmentToolsPanel
start: start
graph:
- node: start
edges:
- to: casing
steps:
- tag: AugmentToolPanelCasing
name: construction-graph-tag-casing
icon:
sprite: _Shitmed/Objects/Augments/arm.rsi
state: base
- node: casing
entity: AugmentToolPanelCasing
edges:
- to: cables
steps:
- material: Cable
amount: 1
- node: cables
entity: AugmentToolPanelCables
edges:
- to: "botany tools panel"
steps:
- tag: AugmentBotanyToolElectronics
name: construction-graph-tag-botany-tools-electronics
icon:
sprite: Objects/Misc/module.rsi
state: mainboard
- to: "paperwork tools panel"
steps:
- tag: AugmentPaperworkToolElectronics
name: construction-graph-tag-paperwork-tools-electronics
icon:
sprite: Objects/Misc/module.rsi
state: mainboard
- to: "utility tools panel"
steps:
- tag: AugmentUtilityToolElectronics
name: construction-graph-tag-utility-tools-electronics
icon:
sprite: Objects/Misc/module.rsi
state: mainboard
- to: "surgery tools panel"
steps:
- tag: AugmentSurgeryToolElectronics
name: construction-graph-tag-surgery-tools-electronics
icon:
sprite: Objects/Misc/module.rsi
state: mainboard
- node: "botany tools panel"
entity: AugmentBotanyPanel
- node: "paperwork tools panel"
entity: AugmentPaperworkPanel
- node: "surgery tools panel"
entity: AugmentSurgicalPanel
- node: "utility tools panel"
entity: AugmentToolsPanel
- type: constructionGraph
id: AugmentStrength
start: start
graph:
- node: start
edges:
- to: casing
steps:
- tag: AugmentStrengthCasing
name: construction-graph-tag-casing
icon:
sprite: _Shitmed/Objects/Augments/arm.rsi
state: base
- node: casing
entity: AugmentStrengthCasing
edges:
- to: cables
steps:
- material: Cable
amount: 1
- node: cables
entity: AugmentStrengthCables
edges:
- to: augment
steps:
- tag: AugmentStrengthElectronics
name: construction-graph-tag-strength-augment-electronics
icon:
sprite: Objects/Misc/module.rsi
state: mainboard
- material: Plasteel
amount: 4
doAfter: 3
- tool: Welding
doAfter: 4
- material: Steel
amount: 12
doAfter: 2
- tool: Hammering
doAfter: 3
- tool: Welding
doAfter: 2
- node: augment
entity: AugmentStrength

View File

@@ -0,0 +1,67 @@
# Power
- type: construction
id: AugmentPowerCellSlot
graph: AugmentPowerCellSlot
startNode: start
targetNode: augment
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentRechargerAPC
graph: AugmentRecharger
startNode: start
targetNode: apc
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentRechargerStation
graph: AugmentRecharger
startNode: start
targetNode: station
category: construction-category-utilities
canBuildInImpassable: false
# Arm
- type: construction
id: AugmentToolsPanel
graph: AugmentToolsPanel
startNode: start
targetNode: "utility tools panel"
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentBotanyPanel
graph: AugmentToolsPanel
startNode: start
targetNode: "botany tools panel"
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentPaperworkPanel
graph: AugmentToolsPanel
startNode: start
targetNode: "paperwork tools panel"
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentSurgicalPanel
graph: AugmentToolsPanel
startNode: start
targetNode: "surgery tools panel"
category: construction-category-utilities
canBuildInImpassable: false
- type: construction
id: AugmentStrength
graph: AugmentStrength
startNode: start
targetNode: augment
category: construction-category-utilities
canBuildInImpassable: false

View File

@@ -0,0 +1,16 @@
- type: latheRecipePack
id: PowerAugments
recipes:
- AugmentPowerCellSlotCasing
- AugmentRechargerCasing
- type: latheRecipePack
id: ToolAugments
recipes:
- AugmentToolPanelCasing
- AugmentUtilityPanelElectronics
- AugmentBotanyPanelElectronics
- AugmentSurgeryPanelElectronics
- AugmentPaperworkPanelElectronics
- AugmentStrengthCasing
- AugmentStrengthElectronics

View File

@@ -0,0 +1,3 @@
- type: latheCategory
id: Augments
name: lathe-category-augments

Some files were not shown because too many files have changed in this diff Show More