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,49 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Spatison <137375981+Spatison@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseAction
id: ToggleNightVision
name: Toggle Night Vision
description: Toggles night vision.
categories: [ HideSpawnMenu ]
components:
- type: Action
itemIconStyle: BigAction
priority: -20
useDelay: 1
icon:
sprite: _White/Clothing/Eyes/Goggles/nightvision.rsi
state: icon
- type: InstantAction
event: !type:ToggleNightVisionEvent
- type: entity
parent: BaseAction
id: ToggleThermalVision
name: Toggle Thermal Vision
description: Toggles thermal vision.
categories: [ HideSpawnMenu ]
components:
- type: Action
itemIconStyle: BigAction
priority: -20
useDelay: 1
icon:
sprite: _White/Clothing/Eyes/Goggles/thermal.rsi
state: icon
- type: InstantAction
event: !type:ToggleThermalVisionEvent
- type: entity
id: PulseThermalVision
parent: ToggleThermalVision
name: Pulse Thermal Vision
description: Activate thermal vision temporarily.
categories: [ HideSpawnMenu ]
components:
- type: Action
useDelay: 4

View File

@@ -0,0 +1,287 @@
# Combat action
- type: entity
id: ActionCombatModeToggleXenomorph
parent: ActionCombatModeToggle
components:
- type: Action
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: help }
iconOn: { sprite: _White/Interface/Actions/xenomorph.rsi, state: harm }
# Thermal action
- type: entity
id: ToggleThermalVisionXenomorph
parent: ToggleThermalVision
components:
- type: Action
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: vision_off }
iconOn: { sprite: _White/Interface/Actions/xenomorph.rsi, state: vision_on }
# Evolution actions
- type: entity
id: ActionEvolution
parent: BaseAction
name: Evolve
description: Evolve into a higher xenomorph caste.
components:
- type: Action
checkCanInteract: false
itemIconStyle: BigAction
useDelay: 0
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: evolve }
- type: InstantAction
event: !type:EvolutionsActionEvent
- type: entity
id: ActionEvolutionPraetorian
parent: ActionEvolution
name: Evolve to praetorian (500)
description: Evolve into the main defender of the hive.
components:
- type: Action
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: evolve_praetorian }
- type: PlasmaCostAction
plasmaCost: 500
- type: entity
id: ActionEvolutionQueen
parent: ActionEvolutionPraetorian
name: Evolve to queen (500)
description: Produce an internal egg sac capable of spawning children. Only one queen can exist at a time.
components:
- type: Action
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: evolve_queen }
# Structures actions
- type: entity
id: ActionSpawnResinWeedNode
parent: BaseAction
name: Plant weeds (50)
description: Plants some xenomorph weeds.
components:
- type: Action
itemIconStyle: BigAction
useDelay: 2
icon: { sprite: _RMC14/Structures/Xenos/xeno_weeds.rsi, state: constructionnode } # Goobstation new sprites
- type: InstantAction
event: !type:SpawnTileEntityActionEvent
entity: ResinWeedNode
blockedCollisionMask:
- SlipLayer
blockedCollisionLayer:
- Impassable
- MidImpassable
- LowImpassable
- type: PlasmaCostAction
plasmaCost: 50 # Goobstation
- type: entity
id: ActionSpawnXenomorphEgg
name: Lay egg (75)
description: Lay an egg to produce facehuggers to impregnate prey with.
components:
- type: Action
checkCanInteract: false
itemIconStyle: BigAction
useDelay: 2
icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: egg }
- type: InstantAction
event: !type:SpawnTileEntityActionEvent
entity: XenomorphEgg
blockedCollisionMask:
- TableMask
blockedCollisionLayer:
- TableLayer
- BulletImpassable
- type: PlasmaCostAction
plasmaCost: 75
# TODO: delete it
- type: entity
id: ActionSpawnWallResin
parent: BaseAction
name: Build a resin wall (50)
description: Secrete tough malleable resin.
components:
- type: Action
useDelay: 2 # Goobstation
itemIconStyle: BigAction
icon: { sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi, state: resin } # Goobstation new sprites
- type: TargetAction
range: 2
- type: WorldTargetAction
event: !type:PlaceTileEntityEvent
entity: WallResin
length: 2 # Goobstation
blockedCollisionMask:
- FullTileMask
blockedCollisionLayer:
- WallLayer
- type: PlasmaCostAction
plasmaCost: 50 # Goobstation
# TODO: delete it # Goobstation - removed
#- type: entity
# id: ActionSpawnResinMembrane
# parent: BaseAction
# name: Build a resin membrane (50)
# description: Secrete tough malleable resin.
# components:
# - type: Action
# useDelay: 1
# itemIconStyle: BigAction
# icon: { sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi, state: membrane } # Goobstation new sprites
# - type: TargetAction
# range: 2
# - type: WorldTargetAction
# event: !type:PlaceTileEntityEvent
# entity: ResinMembrane
# length: 0.5
# blockedCollisionMask:
# - FullTileMask
# blockedCollisionLayer:
# - GlassLayer
# - type: PlasmaCostAction
- type: entity # Goobstation - new action
id: ActionSpawnResinDoor
parent: BaseAction
name: Build a resin door (75)
description: Secrete tough malleable resin.
components:
- type: Action
useDelay: 2
itemIconStyle: BigAction
icon: { sprite : _RMC14/Structures/Xenos/xeno_resin_door.rsi, state: resin }
- type: TargetAction
range: 2
- type: WorldTargetAction
event: !type:PlaceTileEntityEvent
entity: ResinDoor
length: 2
blockedCollisionMask:
- TableMask
blockedCollisionLayer:
- TableLayer
- BulletImpassable
- type: PlasmaCostAction
plasmaCost: 75
# TODO: delete it
- type: entity
id: ActionSpawnResinNest
parent: BaseAction
name: Build a resin nest (50)
description: Secrete tough malleable resin.
components:
- type: Action
useDelay: 1
itemIconStyle: BigAction
icon: { sprite : _White/Structures/Windows/resin_membrane.rsi, state: full }
- type: TargetAction
range: 2
- type: WorldTargetAction
event: !type:PlaceTileEntityEvent
entity: ResinNest
length: 2 # Goobstation
blockedCollisionMask:
- TableMask
blockedCollisionLayer:
- TableLayer
- BulletImpassable
- type: PlasmaCostAction
plasmaCost: 50 # Goobstation
# Tail lash action
- type: entity
id: ActionTailLash
parent: BaseAction
name: Tail lash
description: Hit your opponent with your tail.
components:
- type: Action
useDelay: 11
itemIconStyle: BigAction
icon: { sprite : _White/Interface/Actions/xenomorph.rsi, state: tail_attack }
- type: TargetAction
range: 10
- type: WorldTargetAction
event: !type:TailLashActionEvent
# Acid action - Goob Commented out until future fix
#- type: entity
# id: ActionAcid
# parent: BaseAction
# name: Corrosive acid (200)
# description: Drench an object in acid, destroying it over time.
# components:
# - type: Action
# useDelay: 11
# itemIconStyle: BigAction # Goobstation
# icon: { sprite: _White/Interface/Actions/xenomorph.rsi, state: acid } # Goobstation
# - type: TargetAction
# interactOnMiss: false
# range: 2
# targetingIndicator: true # Goobstation
# checkCanAccess: true # Goobstation
# - type: EntityTargetAction
# event: !type:AcidActionEvent
# - type: PlasmaCostAction
# plasmaCost: 200
# Jump action
- type: entity
id: ActionJumpXenomorph
parent: BaseAction
name: Jump
description: Stun your enemies with a quick jump.
components:
- type: Action
priority: 0
useDelay: 3
icon: { sprite : _White/Interface/Actions/xenomorph.rsi, state: leap_off }
iconOn: { sprite : _White/Interface/Actions/xenomorph.rsi, state: leap_on }
- type: TargetAction
range: 10
- type: WorldTargetAction
event: !type:JumpActionEvent
# Transfer plasma action
- type: entity
id: ActionTransferPlasma
parent: BaseAction
name: Transfer plasma (50)
description: Passes plasma to your friend.
components:
- type: Action
priority: 0
icon: { sprite : _White/Interface/Actions/xenomorph.rsi, state: plasma_transfer_off }
iconOn: { sprite : _White/Interface/Actions/xenomorph.rsi, state: plasma_transfer_on }
- type: TargetAction
interactOnMiss: false
range: 2
- type: EntityTargetAction
event: !type:TransferPlasmaActionEvent
# Promotion action
- type: entity
id: ActionXenomorphPromotion
parent: BaseAction
name: Promote to Praetorian (500) # Goobstation
description: Directly promote a xenomorph to Praetorian status. # Goobstation
components:
- type: Action
itemIconStyle: BigAction
useDelay: 5 # Goobstation
icon: { sprite : _White/Interface/Actions/xenomorph.rsi, state: promote }
- type: TargetAction # Goobstation start
checkCanAccess: true
range: 2
- type: EntityTargetAction
canTargetSelf: false
whitelist:
requireAll: true
components:
- XenomorphComponent # Goobstation end
event: !type:PromotionActionEvent
- type: PlasmaCostAction
plasmaCost: 500

View File

@@ -0,0 +1,7 @@
- type: alert
id: RecentlyBlocked
icons:
- sprite: /Textures/Objects/Weapons/Melee/shields.rsi
state: buckler-icon
name: alerts-blocked-name
description: alerts-blocked-desc

View File

@@ -0,0 +1,2 @@
- type: alertCategory
id: Counter

View File

@@ -0,0 +1,84 @@
# Health Alert
- type: alert
id: XenomorphHealth
category: Health
icons:
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health0
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health1
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health2
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health3
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health4
- sprite: /Textures/_White/Interface/Alerts/xenomorph_alive.rsi
state: health5
name: alerts-health-name
description: alerts-health-desc
minSeverity: 0
maxSeverity: 5
- type: alert
id: XenomorphCrit
category: Health
icons:
- sprite: /Textures/_White/Interface/Alerts/xenomorph_critical.rsi
state: critical
name: alerts-crit-name
description: alerts-crit-desc
- type: alert
id: XenomorphDead
category: Health
icons:
- sprite: /Textures/_White/Interface/Alerts/xenomorph_dead.rsi
state: dead
name: alerts-dead-name
description: alerts-dead-desc
# Plasma Alert
- type: alert
id: Plasma
category: Counter
icons:
- sprite: /Textures/_White/Interface/Alerts/plasma_counter.rsi
state: plasma_display
alertViewEntity: AlertPlasmaSpriteView
name: alerts-plasma-name
description: alerts-plasma-desc
- type: entity
id: AlertPlasmaSpriteView
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: /Textures/_White/Interface/Alerts/plasma_counter.rsi
layers:
- map: [ "enum.AlertVisualLayers.Base" ]
- map: [ "enum.PlasmaVisualLayers.Digit1" ]
- map: [ "enum.PlasmaVisualLayers.Digit2" ]
offset: 0.175, 0
- map: [ "enum.PlasmaVisualLayers.Digit3" ]
offset: 0.35, 0
# Queen Finder Alert
- type: alert
id: QueenFinder
icons:
- sprite: /Textures/_White/Interface/Alerts/queen_finder.rsi
state: queen_finder
alertViewEntity: AlertQueenFinderSpriteView
name: alerts-queen-finder-name
description: alerts-queen-finder-desc
- type: entity
id: AlertQueenFinderSpriteView
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: /Textures/_White/Interface/Alerts/queen_finder.rsi
layers:
- map: [ "enum.AlertVisualLayers.Base" ]
- map: [ "enum.PinpointerLayers.Screen" ]

View File

@@ -0,0 +1,265 @@
- type: entity
parent: BaseItem
id: BaseXenomorphOrgan
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Species/Xenomorph/organs.rsi
- type: Organ
- type: Food
- type: Extractable
grindableSolutionName: organ
- type: SolutionContainerManager
solutions:
organ:
reagents:
- ReagentId: SulfuricAcid
Quantity: 10
food:
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 3
- ReagentId: SulfuricAcid
Quantity: 2
- type: FlavorProfile
flavors:
- people
- type: Tag
tags:
- Meat
- type: entity
parent: [BaseXenomorphOrgan, OrganHumanBrain]
id: OrganXenomorphBrain
name: xenomorph brain
description: We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?
components:
- type: SolutionContainerManager
solutions:
organ:
reagents:
- ReagentId: SulfuricAcid
Quantity: 10
food:
maxVol: 5
reagents:
- ReagentId: GreyMatter
Quantity: 5
- type: entity
parent: [BaseXenomorphOrgan, OrganHumanEyes]
id: OrganXenomorphEyes
name: xenomorph eyes
description: It turned out they had them after all!
components: # Goobstation - eyes give you xeno vision
- type: Organ
onAdd:
- type: ThermalVision
toggleAction: ToggleThermalVisionXenomorph
color: white
drawOverlay: false
lightRadius: 10
strength: 0
noise: 0
tint: 3, 3, 3
- type: entity
parent: [BaseXenomorphOrgan, OrganHumanTongue]
id: OrganXenomorphTongue
name: xenomorph tongue
description: According to leading xenobiologists the evolutionary benefit of having a second mouth in your mouth is "that it looks badass".
- type: entity
parent: [BaseXenomorphOrgan, OrganReptilianStomach]
id: OrganXenomorphStomach
name: xenomorph stomach
description: Its walls are capable of both significantly expanding and contracting with enormous force.
# TODO port xeno devouring
- type: entity
parent: [BaseXenomorphOrgan, OrganHumanLiver]
id: OrganXenomorphLiver
name: xenomorph liver
description: A liver that used to belong to a killer alien, who knows what it used to eat.
components:
- type: Metabolizer
metabolizerTypes: [Xenomorph]
groups:
- id: Poison
rateModifier: 1
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphAcidGland
name: acid gland
description: A specialized tank with acid. The resulting corrosive mixture can melt most known materials.
components:
- type: Sprite
state: acid_gland
- type: Organ
slotId: acid_gland
onAdd:
- type: XenomorphAcid
damagePerSecond:
types:
Caustic: 20
Heat: 20 # Goobstation
# <Goobstation>
- type: AcidGland
# - type: OrganActions
# actions:
# - ActionAcid
# </Goobstation> commented until acid if fixed
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphNeurotoxinGland
name: neurotoxin gland
description: A specialized tank with neurotoxin. Сonsists of many microscopic tubes filled with clear liquid.
components:
- type: Sprite
state: neurotoxin_gland
- type: Organ
slotId: neurotoxin_gland
onAdd:
- type: RechargeBasicEntityAmmo
rechargeCooldown: 0.75
- type: PlasmaAmmoProvider
fireCost: 55
proto: BulletNeurotoxin
- type: Gun
fireRate: 0.75
useKey: false
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg
- type: NeurotoxinGland # Goobstation
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphEggSack
name: egg sack
description: Designed to produce and store eggs containing facehuggers, the organ's enormous size allows the xenomorph queen to lay thousands of eggs in a short period of time.
components:
- type: Sprite
sprite: _White/Mobs/Species/Xenomorph/organs.rsi
state: egg_sack
- type: Organ
slotId: egg_sack
# <Goobstation>
- type: EggSack
- type: OrganActions
actions:
- ActionSpawnXenomorphEgg
# </Goobstation>
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphResinSpinner
name: resin spinner
description: Designed for the production and isolation of resin-like biopolymer.
components:
- type: Sprite
state: resin_spinner
- type: Organ
slotId: resin_spinner
# <Goobstation>
- type: ResinSpinner
- type: OrganActions
actions:
- ActionSpawnWallResin
- ActionSpawnResinDoor
- ActionSpawnResinNest
# </Goobstation>
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphHiveNode
name: hive node
description: The central organ of the xenomorphs, providing communication with the common mind.
components:
- type: Sprite
state: hive_node
- type: Organ
slotId: hive_node
- type: HiveNode
# TODO: Organ should give XenoHivemind language and Xeno faction
- type: entity
parent: BaseXenomorphOrgan
id: OrganXenomorphPlasmaVessel
name: plasma vessel
description: A reservoir containing concentrated and highly active plasma - the main source of energy and raw material for the xenomorph's biological weapons.
components:
- type: Sprite
state: plasma_vessel
- type: Organ
slotId: plasma_vessel
onAdd:
- type: PlasmaVessel
# <Goobstation>
- type: PlasmaVessel # just used for whitelist, shouldn't do anything funny
- type: OrganActions
actions:
- ActionTransferPlasma
- ActionSpawnResinWeedNode
# </Goobstation>
- type: entity
parent: OrganXenomorphPlasmaVessel
id: OrganXenomorphPlasmaVesselLarge
name: large plasma vessel
components:
- type: Sprite
state: plasma_vessel_large
- type: Organ
onAdd:
- type: PlasmaVessel
maxPlasma: 500
plasma: 200
plasmaPerSecondOffWeed: 0.75
plasmaPerSecondOnWeed: 7.5
- type: entity
parent: OrganXenomorphPlasmaVesselLarge
id: OrganXenomorphPlasmaVesselLargeQueen
components:
- type: Organ
onAdd:
- type: PlasmaVessel
maxPlasma: 500
plasma: 200
plasmaPerSecondOffWeed: 1
plasmaPerSecondOnWeed: 10
- type: entity
parent: OrganXenomorphPlasmaVessel
id: OrganXenomorphPlasmaVesselSmall
name: small plasma vessel
components:
- type: Sprite
state: plasma_vessel_small
- type: Organ
onAdd:
- type: PlasmaVessel
maxPlasma: 150
plasma: 100
plasmaPerSecondOffWeed: 0.25
plasmaPerSecondOnWeed: 2.5
- type: entity
parent: OrganXenomorphPlasmaVessel
id: OrganXenomorphPlasmaVesselTiny
name: tiny plasma vessel
components:
- type: Sprite
state: plasma_vessel_tiny
- type: Organ
onAdd:
- type: PlasmaVessel
maxPlasma: 100
- type: OrganActions # Goobstation - larba cant spread weeds, only transfer
actions:
- ActionTransferPlasma

View File

@@ -0,0 +1,109 @@
- type: entity
parent: BaseItem
id: XenomorphInfection
name: xenomorph larva embryo
description: A parasitic life form in its early stages of development. It has a worm-like body shape, underdeveloped limbs, and a tail appendage.
components:
- type: Sprite
sprite: _White/Mobs/Species/Xenomorph/organs.rsi
state: embryon
- type: Organ
slotId: xenomorph_larva
- type: StaticPrice
price: 2000
- type: XenomorphInfection
maxGrowthStage: 6
growProb: 0.5
infectedIcons:
0: XenomorphInfectionIconStageZero
1: XenomorphInfectionIconStageOne
2: XenomorphInfectionIconStageTwo
3: XenomorphInfectionIconStageThree
4: XenomorphInfectionIconStageFour
5: XenomorphInfectionIconStageFive
6: XenomorphInfectionIconStageSix
effects:
2:
- !type:PopupMessage
messages: [ "xenomorph-infection-stage-2" ]
visualType: SmallCaution
- !type:Paralyze
paralyzeTime: 1
- !type:GenericStatusEffect
key: Muted
component: Muted
type: Add
time: 1
refresh: true
- !type:GenericStatusEffect
key: TemporaryBlindness
component: TemporaryBlindness
type: Add
time: 1
refresh: true
- !type:Jitter
time: 2
3:
- !type:PopupMessage
messages: [ "xenomorph-infection-stage-3" ]
visualType: SmallCaution
- !type:Paralyze
paralyzeTime: 2
- !type:GenericStatusEffect
key: Muted
component: Muted
type: Add
time: 2
refresh: true
- !type:GenericStatusEffect
key: TemporaryBlindness
component: TemporaryBlindness
type: Add
time: 2
refresh: true
- !type:Jitter
time: 4
4:
- !type:PopupMessage
messages: [ "xenomorph-infection-stage-4" ]
visualType: SmallCaution
- !type:Paralyze
paralyzeTime: 4
- !type:GenericStatusEffect
key: Muted
component: Muted
type: Add
time: 4
refresh: true
- !type:GenericStatusEffect
key: TemporaryBlindness
component: TemporaryBlindness
type: Add
time: 4
refresh: true
- !type:Jitter
time: 8
6:
- !type:PopupMessage
messages: [ "xenomorph-infection-stage-6" ]
visualType: Medium
- !type:Paralyze
paralyzeTime: 8
- !type:GenericStatusEffect
key: Muted
component: Muted
type: Add
time: 8
refresh: true
- !type:GenericStatusEffect
key: TemporaryBlindness
component: TemporaryBlindness
type: Add
time: 8
refresh: true
- !type:HealthChange
damage:
types:
Blunt: 40
- !type:Jitter
time: 16

View File

@@ -0,0 +1,117 @@
- type: entity
parent: BasePart
id: PartXenomorph
abstract: true
components:
# <Goobstation>
- type: Sprite
sprite: _Shitmed/Mobs/Species/Xenomorph/parts.rsi
- type: Icon
sprite: _Shitmed/Mobs/Species/Xenomorph/parts.rsi
- type: XenoBodyPart
- type: HasTissueSample
# </Goobstation>
- type: Extractable
juiceSolution:
reagents:
- ReagentId: SulfuricAcid
Quantity: 3
- ReagentId: FluorosulfuricAcid
Quantity: 10
- type: Woundable
integrity: 750
integrityCap: 750
thresholds:
Minor: 700
Moderate: 600
Severe: 350
Critical: 150
Mangled: 0
- type: entity
id: ChestXenomorph
name: xenomorph chest
parent: [PartXenomorph, BaseChest]
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: SulfuricAcid
Quantity: 10
- ReagentId: FluorosulfuricAcid
Quantity: 20
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 1500
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
id: GroinXenomorph
name: xenomorph groin
parent: [PartXenomorph, BaseGroin]
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: SulfuricAcid
Quantity: 10
- ReagentId: FluorosulfuricAcid
Quantity: 20
- type: entity
id: HeadXenomorph
name: xenomorph head
parent: [PartXenomorph, BaseHead]
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: SulfuricAcid
Quantity: 5
- ReagentId: FluorosulfuricAcid
Quantity: 10
- type: entity
id: LeftArmXenomorph
name: left xenomorph arm
parent: [PartXenomorph, BaseLeftArm]
- type: entity
id: RightArmXenomorph
name: right xenomorph arm
parent: [PartXenomorph, BaseRightArm]
- type: entity
id: LeftHandXenomorph
name: left xenomorph hand
parent: [PartXenomorph, BaseLeftHand]
- type: entity
id: RightHandXenomorph
name: right xenomorph hand
parent: [PartXenomorph, BaseRightHand]
- type: entity
id: LeftLegXenomorph
name: left xenomorph leg
parent: [PartXenomorph, BaseLeftLeg]
- type: entity
id: RightLegXenomorph
name: right xenomorph leg
parent: [PartXenomorph, BaseRightLeg]
- type: entity
id: LeftFootXenomorph
name: left xenomorph foot
parent: [PartXenomorph, BaseLeftFoot]
- type: entity
id: RightFootXenomorph
name: right xenomorph foot
parent: [PartXenomorph, BaseRightFoot]

View File

@@ -0,0 +1,57 @@
- type: body
id: XenomorphDrone
name: xenomorph drone
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
resin_spinner: OrganXenomorphResinSpinner
acid_gland: OrganXenomorphAcidGland
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVesselLarge
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,55 @@
- type: body
id: XenomorphHunter
name: xenomorph hunter
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVesselSmall
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,20 @@
- type: body
id: XenomorphLarva
name: xenomorph larva
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
chest:
part: ChestXenomorph
connections:
- head
organs:
liver: OrganXenomorphLiver
plasma_vessel: OrganXenomorphPlasmaVesselTiny

View File

@@ -0,0 +1,55 @@
- type: body
id: XenomorphMaid
name: xenomorph maid
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVessel
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,58 @@
- type: body
id: XenomorphPraetorian
name: xenomorph praetorian
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
resin_spinner: OrganXenomorphResinSpinner
neurotoxin_gland: OrganXenomorphNeurotoxinGland
acid_gland: OrganXenomorphAcidGland
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVesselLarge
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,59 @@
- type: body
id: XenomorphQueen
name: xenomorph queen
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
resin_spinner: OrganXenomorphResinSpinner
neurotoxin_gland: OrganXenomorphNeurotoxinGland
acid_gland: OrganXenomorphAcidGland
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVesselLargeQueen
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
egg_sack: OrganXenomorphEggSack
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,57 @@
- type: body
id: XenomorphSentinel
name: xenomorph sentinel
root: chest
slots:
head:
part: HeadXenomorph
connections:
- chest
organs:
brain: OrganXenomorphBrain
eyes: OrganXenomorphEyes
hive_node: OrganXenomorphHiveNode
neurotoxin_gland: OrganXenomorphNeurotoxinGland
acid_gland: OrganXenomorphAcidGland
chest:
part: ChestXenomorph
connections:
- right arm
- left arm
- groin
- head
organs:
plasma_vessel: OrganXenomorphPlasmaVessel
groin:
part: GroinXenomorph
connections:
- right leg
- left leg
- head
organs:
stomach: OrganXenomorphStomach
liver: OrganXenomorphLiver
right arm:
part: RightArmXenomorph
connections:
- right hand
left arm:
part: LeftArmXenomorph
connections:
- left hand
right hand:
part: RightHandXenomorph
left hand:
part: LeftHandXenomorph
right leg:
part: RightLegXenomorph
connections:
- right foot
left leg:
part: LeftLegXenomorph
connections:
- left foot
right foot:
part: RightFootXenomorph
left foot:
part: LeftFootXenomorph

View File

@@ -0,0 +1,105 @@
# SPDX-FileCopyrightText: 2024 Spatison <137375981+spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.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 Spatison <137375981+Spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Weaponry
- type: listing
id: UplinkExperimentalSyndicateTeleporter
name: uplink-experimental-syndicate-teleporter-name
description: uplink-experimental-syndicate-teleporter-desc
productEntity: ExperimentalSyndicateTeleporter
cost:
Telecrystal: 50 # Goob
categories:
- UplinkDisruption
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
- type: listing
id: UplinkBetrayalKnife
name: uplink-betrayal-knife-name
description: uplink-betrayal-knife-desc
icon: { sprite: /Textures/_White/Objects/Weapons/Melee/Daggers/betrayal_knife.rsi, state: icon }
productEntity: BetrayalKnife
cost:
Telecrystal: 30 # goob
categories:
- UplinkWeaponry
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
# Night Vision
- type: listing
id: UplinkNightGoggles
name: uplink-night-vision-name
description: uplink-night-vision-desc
productEntity: ClothingEyesNightVisionGogglesSyndie
cost:
Telecrystal: 10 # goob
categories:
- UplinkWearables
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
- type: listing
id: UplinkNightGogglesNukie
name: uplink-night-vision-name
description: uplink-night-vision-desc
productEntity: ClothingEyesNightVisionGogglesNukie
cost:
Telecrystal: 15 # goob
categories:
- UplinkWearables
conditions:
- !type:StoreWhitelistCondition
whitelist:
tags:
- NukeOpsUplink
# Thermal Vision
- type: listing
id: UplinkThermalGoggles
name: uplink-thermal-vision-name
description: uplink-thermal-vision-desc
productEntity: ClothingEyesThermalVisionGogglesSyndie
cost:
Telecrystal: 15 # goob
categories:
- UplinkWearables
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
- type: listing
id: UplinkThermalGogglesNukie
name: uplink-thermal-vision-name
description: uplink-thermal-vision-desc
productEntity: ClothingEyesThermalVisionGogglesNukie
cost:
Telecrystal: 20 # goob
categories:
- UplinkWearables
conditions:
- !type:StoreWhitelistCondition
whitelist:
tags:
- NukeOpsUplink

View File

@@ -0,0 +1,3 @@
- type: metabolizerType
id: Xenomorph
name: metabolizer-type-xenomorph

View File

@@ -0,0 +1,28 @@
- type: damageModifierSet
id: Xenomorph
coefficients:
Blunt: 0.80
Slash: 0.80
Piercing: 0.80
Cold: 0
Heat: 1.2
Poison: 0
- type: damageModifierSet
id: XenomorphDungeon
coefficients:
Blunt: 1
Slash: 1
Piercing: 1
Cold: 0
Heat: 1.5
Poison: 0
- type: damageModifierSet
id: Resin
coefficients:
Blunt: 0.3
Slash: 0.5
Piercing: 0.8
Heat: 1.5
Shock: 0

View File

@@ -0,0 +1,87 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Spatison <137375981+Spatison@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Night Vision Goggles
- type: entity
parent: ClothingEyesBase
id: ClothingEyesNightVisionGoggles
name: night vision goggles
description: Now you can see in the dark!
components:
- type: Sprite
sprite: _White/Clothing/Eyes/Goggles/nightvision.rsi
- type: Clothing
sprite: _White/Clothing/Eyes/Goggles/nightvision.rsi
- type: NightVision
flashDurationMultiplier: 2
isEquipment: true
- type: IdentityBlocker
coverage: EYES
- type: entity
parent: [ClothingEyesNightVisionGoggles, ShowMedicalIcons, BaseSyndicateContraband]
id: ClothingEyesNightVisionGogglesSyndie
name: syndicate night vision goggles
description: A high-tech pair of night vision goggles. Has medical analysis technology.
components:
- type: Sprite
sprite: _White/Clothing/Eyes/Goggles/snightvision.rsi
- type: Clothing
sprite: _White/Clothing/Eyes/Goggles/snightvision.rsi
- type: entity
parent: ClothingEyesNightVisionGogglesSyndie
id: ClothingEyesNightVisionGogglesNukie
suffix: "NukeOps"
components:
- type: ShowSyndicateIcons
# Thermal Vision Goggles
- type: entity
parent: ClothingEyesBase
id: ClothingEyesThermalVisionGoggles
name: thermal vision goggles
description: Now you can see everyone!
components:
- type: Sprite
sprite: _White/Clothing/Eyes/Goggles/thermal.rsi
- type: Clothing
sprite: _White/Clothing/Eyes/Goggles/thermal.rsi
- type: ThermalVision
flashDurationMultiplier: 2
pulseTime: 2
isEquipment: true
toggleAction: PulseThermalVision
- type: IdentityBlocker
coverage: EYES
- type: entity
parent: [ClothingEyesBase, BaseSyndicateContraband]
id: ClothingEyesThermalVisionGogglesSyndie
name: thermal vision goggles
description: A high-tech pair of thermal goggles.
components:
- type: Sprite
sprite: _White/Clothing/Eyes/Goggles/sthermals.rsi
- type: Clothing
sprite: _White/Clothing/Eyes/Goggles/sthermals.rsi
- type: ThermalVision
flashDurationMultiplier: 2
isEquipment: true
toggleAction: ToggleThermalVision
- type: IdentityBlocker
coverage: EYES
- type: entity
parent: ClothingEyesThermalVisionGogglesSyndie
id: ClothingEyesThermalVisionGogglesNukie
suffix: "NukeOps"
components:
- type: ShowSyndicateIcons
- type: ShowJobIcons
- type: ShowMindShieldIcons

View File

@@ -0,0 +1,11 @@
- type: entity
id: XenomorphAcid
name: corrosive acid
description: Burbling corrosive stuff. I wouldn't want to touch it.
components:
- type: Sprite
sprite: _White/Interface/Actions/xenomorph.rsi # TODO: move it
state: acid
- type: AmbientSound
sound: /Audio/Items/welder.ogg
volume: 1

View File

@@ -0,0 +1,45 @@
# SPDX-FileCopyrightText: 2024 Spatison <137375981+spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: ExperimentalTeleporterInEffect
categories: [ HideSpawnMenu ]
components:
- type: TimedDespawn
lifetime: 0.6
- type: EvaporationSparkle
- type: Transform
noRot: true
anchored: true
- type: Sprite
layers:
- sprite: /Textures/_White/Objects/Devices/experimentalsyndicateteleporter.rsi
state: in
shader: unshaded
netsync: false
drawdepth: Effects
- type: PointLight
color: "#008DFE"
- type: entity
id: ExperimentalTeleporterOutEffect
categories: [ HideSpawnMenu ]
components:
- type: TimedDespawn
lifetime: 0.6
- type: EvaporationSparkle
- type: Transform
noRot: true
anchored: true
- type: Sprite
layers:
- sprite: /Textures/_White/Objects/Devices/experimentalsyndicateteleporter.rsi
state: out
shader: unshaded
netsync: false
drawdepth: Effects
- type: PointLight
color: "#008DFE"

View File

@@ -0,0 +1,57 @@
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 AstroDogeDX <48888500+AstroDogeDX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spatison <137375981+Spatison@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: footprint
id: Footprint
save: false
description: Trace of liquid.
placement:
mode: SnapgridCenter
components:
- type: Clickable
- type: Transform
noRot: false
anchored: true
- type: Sprite
drawdepth: FloorObjects
- type: Physics
bodyType: Static
- type: Appearance
- type: Fixtures
fixtures:
slipFixture:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
mask:
- ItemMask
layer:
- SlipLayer
hard: false
- type: SolutionContainerManager
- type: Footprint
- type: Puddle
solution: print
affectsMovement: false
affectsSound: false
- type: ExaminableSolution
solution: print
- type: MixableSolution
solution: print
- type: DrawableSolution
solution: print
- type: BadDrink
- type: IgnoresFingerprints
- type: Drink
delay: 3
transferAmount: 0.5
solution: print
examinable: false
- type: Tag
tags:
- DNASolutionScannable

View File

@@ -0,0 +1,17 @@
- type: entity
parent: BaseAntagSpawner
id: SpawnPointGhostXenomorph
categories: [ HideSpawnMenu, Spawner ]
suffix: xenomorph larva
components:
- type: Sprite
layers:
- state: green
- sprite: _White/Mobs/Aliens/Xenomorphs/larva.rsi
state: xenomorph
- type: GhostRole
name: ghost-role-information-xenomorph-larva-name
description: ghost-role-information-xenomorph-larva-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist

View File

@@ -0,0 +1,164 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PuroSlavKing <103608145+PuroSlavKing@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# HEAD
- type: marking
id: LizardHeadGuilmon
bodyPart: Eyes
markingCategory: Head
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/snouts.rsi
state: guilmon
- type: marking
id: LizardHeadCobraHood
bodyPart: HeadSide
markingCategory: HeadSide
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian_parts.rsi
state: cobra_hood_with_ears
- sprite: _White/Mobs/Customization/reptilian_parts.rsi
state: cobra_hood_with_ears_overlay
# SHOUT
- type: marking
id: LizardShoutEasternDragon
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/snouts.rsi
state: eastern_dragon
- sprite: _White/Mobs/Customization/snouts.rsi
state: eastern_dragon_overlay
- type: marking
id: LizardShoutEasternDragonUsiki
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/snouts.rsi
state: eastern_dragon
- sprite: _White/Mobs/Customization/snouts.rsi
state: eastern_dragon_overlay
- sprite: _White/Mobs/Customization/snouts.rsi
state: eastern_dragon_usiki
# TAIL
- type: marking
id: SnakeLargeTail
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian_64x32.rsi
state: snake_large
- sprite: _White/Mobs/Customization/reptilian_64x32.rsi
state: snake_large_overlay
- type: marking
id: SnakeLargeTailAnimated
bodyPart: Tail
markingCategory: Tail
speciesRestriction: []
sprites:
- sprite: _White/Mobs/Customization/reptilian_64x32.rsi
state: snake_large_wagging
- sprite: _White/Mobs/Customization/reptilian_64x32.rsi
state: snake_large_wagging_overlay
# SPINE
- type: marking
id: LizardChestSpinesAquatic
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_aquatic
- type: marking
id: LizardChestSpinesAquaticWithoutTail
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_aquatic_alt
- type: marking
id: LizardChestSpinesLong
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_long
- type: marking
id: LizardChestSpinesLongWithoutTail
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_long_alt
- type: marking
id: LizardChestSpinesLongMembrane
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_longmembrane
- type: marking
id: LizardChestSpinesLongMembraneWithoutTail
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_longmembrane_alt
- type: marking
id: LizardChestSpinesShort
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_short
- type: marking
id: LizardChestSpinesShortWithoutTail
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_short_alt
- type: marking
id: LizardChestSpinesShortMembrane
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_shortmembrane
- type: marking
id: LizardChestSpinesShortMembraneWithoutTail
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Reptilian]
sprites:
- sprite: _White/Mobs/Customization/reptilian.rsi
state: spines_shortmembrane_alt

View File

@@ -0,0 +1,18 @@
- type: entity
id: MobXenomorphFaceHuggerLamarr
parent: MobXenomorphFaceHugger
name: Lamarr
description: A former nightmare candidate, now an exemplary pet.
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/old_facehugger.rsi
- type: FaceHugger
knockdownTime: 0
infectionPrototype: null
damageOnImpact:
types:
Blunt: 2
- type: UseDelay
delay: 7
- type: StealTarget
stealGroup: AnimalLamarr

View File

@@ -0,0 +1,221 @@
- type: entity
parent:
- BaseMob
- MobDamageable
- MobPolymorphable
- MobCombat
- XenomorphBloodstream # Goob, uses custom bloodstream so we can disable bleeding for the time being.
- MobFlammable
id: BaseMobXenomorph
abstract: true
components:
- type: Xenomorph
weedHeal: # Goobstation - nerfed healing
groups:
Burn: -3
Toxin: -5
Airloss: -10
Brute: -4
- type: Pinpointer
whitelist:
components:
- XenomorphQueen
alert: QueenFinder
isActive: true
canToggle: false
canEmag: false
canExamine: false
- type: ThermalVision
toggleAction: ToggleThermalVisionXenomorph
color: white
drawOverlay: false
lightRadius: 10
strength: 0
noise: 0
tint: 3, 3, 3
- type: NameIdentifier
group: GenericNumber
- type: CombatMode
combatToggleAction: ActionCombatModeToggleXenomorph
canDisarm: true
- type: MovementSpeedModifier
baseWalkSpeed: 3
baseSprintSpeed: 4.5
- type: NpcFactionMember
factions:
- Xeno
- type: Deathgasp
prototype: XenomorphDeathgasp
- type: DamageStateVisuals
states:
Alive:
Base: xenomorph
Critical:
Base: xenomorph_unconscious
Dead:
Base: xenomorph_dead
- type: MobThresholds
thresholds:
0: Alive
185: Critical
200: Dead
stateAlertDict:
Alive: XenomorphHealth
Critical: XenomorphCrit
Dead: XenomorphDead
- type: SlowOnDamage
speedModifierThresholds:
105: 0.9
125: 0.7
150: 0.6
- type: Damageable
damageContainer: Biological
damageModifierSet: Xenomorph
- type: Stamina
critThreshold: 500
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.25
density: 200
mask:
- MobMask
layer:
- MobLayer
- type: Bloodstream
bloodReagent: FluorosulfuricAcid
bloodMaxVolume: 250
bloodlossDamage:
types:
Bloodloss: 0.05
bloodlossHealDamage:
types:
Bloodloss: -1
bleedReductionAmount: 5 #goob
- type: MeleeWeapon
altDisarm: true
angle: 0
soundHit:
collection: AlienClaw
animation: WeaponArcBite
damage:
groups:
Brute: 25
- type: TypingIndicator
proto: alien
- type: AtmosExposed
- type: Temperature
heatDamageThreshold: 600
coldDamageThreshold: -150
currentTemperature: 310.15
coldDamage: #per second, scales with temperature & other constants
types:
Cold : 0.1
specificHeat: 42
heatDamage: #per second, scales with temperature & other constants
types:
Heat : 1.5
- type: ZombieImmune
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- type: NoSlip
- type: Perishable
molsPerSecondPerUnitMass: 0.0005
- type: LizardAccent
- type: Speech
speechSounds: Xenomorph
speechVerb: SmallMob
- type: Vocal
sounds:
Male: Xenomorph
Female: Xenomorph
Unsexed: Xenomorph
- type: LanguageKnowledge
speaks:
- Xeno
# - XenoHivemind # Goobstation - collective mind
understands:
- Xeno
# - XenoHivemind # Goobstation - collective mind
- Hissing
- Draconic
- type: CollectiveMind # Goobstation
defaultChannel: Xenomorphivemind
channels:
- Xenomorphivemind
- type: SSDIndicator
- type: Emoting
- type: BodyEmotes
soundsId: GeneralBodyEmotes
- type: Access # Goobstation - xeno doors
enabled: true
groups:
- XenomorphAccess
- type: entity
parent: [BaseMobXenomorph, StripableInventoryBase]
id: BaseMobXenomorphAdult
abstract: true
components:
- type: Prying #Switched from Tools component to this
speedModifier: 1.5
pryPowered: true
- type: ComplexInteraction
- type: Hands
- type: ShowHealthIcons
- type: Puller
needsHands: false
- type: IdExaminable
- type: Inventory
templateId: xenomorph
- type: Stripping
- type: SurgeryTarget
- type: UserInterface
interfaces:
enum.StrippingUiKey.Key:
type: StrippableBoundUserInterface
enum.InstrumentUiKey.Key:
type: InstrumentBoundUserInterface
requireInputValidation: false
enum.SurgeryUIKey.Key:
type: SurgeryBui
- type: RotationVisuals
defaultRotation: 90
horizontalRotation: 90
- type: Dna
- type: Tag
tags:
- DoorBumpOpener
- FootstepSound
- type: XenomorphShoveTracker
- type: entity
id: BaseMobXenomorphDungeon
abstract: true
suffix: Dungeon
components:
- type: Damageable
damageModifierSet: XenomorphDungeon
- type: HTN
rootTask:
task: XenomorphCompound
blackboard:
NavClimb: !type:Bool
true
NavInteract: !type:Bool
true
NavPry: !type:Bool
true
NavSmash: !type:Bool
true
FreeHands: !type:Bool
false
ActiveHandFree: !type:Bool
false
Inventory: !type:Bool
false

View File

@@ -0,0 +1,14 @@
- type: entity
id: XenomorphBloodstream
parent: MobBloodstream
components:
- type: Bloodstream
bloodReagent: Blood
bloodMaxVolume: 300
chemicalMaxVolume: 250
bleedReductionAmount: 5
maxBleedAmount: 0
bloodlossDamage:
types: {}
bloodlossHealDamage:
types: {}

View File

@@ -0,0 +1,79 @@
- type: entity
parent: BaseMobXenomorphAdult
id: BaseMobXenomorphDrone
name: xenomorph drone
description: A specialized individual designed to build and maintain a hive. Less aggressive than other xenomorph forms, but still deadly when approached.
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/drone.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: xenomorph
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: _White/Objects/Misc/handcuffs.rsi
state: body-overlay-xenomorph
visible: false
- type: Xenomorph
caste: Drone
#- type: ActionGrant # Goobstation - moved to orgnas
# actions:
# - ActionTransferPlasma
# - ActionSpawnWallResin
# - ActionSpawnResinMembrane # no membrane its for chuds
# - ActionSpawnResinNest
# - ActionSpawnResinWeedNode
- type: VentCrawler
- type: Cuffable
- type: Body
prototype: XenomorphDrone
# - type: GuideHelp
# guides:
# - XenomorphDrone
- type: entity
parent: BaseMobXenomorphDrone
id: MobXenomorphDrone
components:
- type: XenomorphEvolution
evolutionActionId: ActionEvolutionPraetorian
evolvesTo:
- prototype: MobXenomorphPraetorian
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-drone-name
description: ghost-role-information-xenomorph-drone-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: UserInterface
interfaces:
enum.StrippingUiKey.Key:
type: StrippableBoundUserInterface
enum.InstrumentUiKey.Key:
type: InstrumentBoundUserInterface
requireInputValidation: false
enum.SurgeryUIKey.Key:
type: SurgeryBui
enum.RadialSelectorUiKey.Key:
type: TrackedRadialSelectorMenuBUI
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphDrone]
id: MobXenomorphDroneDungeon
components:
- type: MovementSpeedModifier
baseSprintSpeed: 4
- type: SlowOnDamage
speedModifierThresholds:
105: 0.7
125: 0.6
150: 0.5

View File

@@ -0,0 +1,120 @@
- type: entity
parent: [BaseMob, ClothingMaskBase, MobDamageable]
id: MobXenomorphFaceHugger
name: xenomorph facehugger
description: A writhing nightmare. The facehugger clings to its victim's face, forcibly inserting a xenomorph fetus.
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/facehugger.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: facehugger
- type: Clothing
sprite: _White/Mobs/Aliens/Xenomorphs/facehugger.rsi
slots: [mask]
- type: IngestionBlocker
- type: Blindfold
- type: AddAccentClothing
accent: ReplacementAccent
replacement: mumble
- type: ThrowableFacehugger # Goobstation
minThrowForce: 5.0 # Goobstation
- type: Damageable
damageContainer: Biological
damageModifierSet: Xenomorph
- type: MobThresholds
thresholds:
0: Alive
10: Dead
stateAlertDict:
Alive: XenomorphHealth
Critical: XenomorphCrit
Dead: XenomorphDead
- type: DamageStateVisuals
states:
Alive:
Base: facehugger
Dead:
Base: facehugger_dead
- type: MeleeWeapon
hidden: true
canHeavyAttack: false
angle: 0
damage:
types:
Blunt: 0
- type: Temperature
heatDamageThreshold: 360
coldDamageThreshold: -150
currentTemperature: 310.15
- type: Butcherable
spawned:
- id: FoodMeatXeno
amount: 1
- type: FaceHugger
blacklist:
components:
- XenomorphInfected
- XenomorphLarvaVictim
- Silicon
- Ghost
- XenomorphEgg
- FacehuggerImmune # Goobstation
damageOnImpact:
types:
Blunt: 15
damageOnInfect:
groups:
Genetic: 100
sleepChem: Nocturine # ID of the Chemical we want to inject - Goobstation start
sleepChemAmount: 10 # Amount in units (Often no need to use more than 10u for most chems)
minChemicalThreshold: 8 # Minimum amount of the chemical required to prevent additional injections
initialInjectionDelay: 5 # Delay in seconds before the first injection occurs
attachAttemptDelay: 5 # Delay in seconds between attach attempts when blocked by a mask
maskBlockDamage:
damage:
Slash: 5 # Damage dealt when blocked by a breathable mask
maskBlockSound:
collection: MetalThud # Sound collection for when the facehugger hits the mask - Goobstation end
- type: StepTrigger
intersectRatio: 0.2
requiredTriggeredSpeed: 0.0
- type: NameIdentifier
group: GenericNumber
- type: NpcFactionMember
factions:
- Xeno
- type: Tag
tags:
- XenomorphItem
- type: Physics
bodyType: Dynamic
- type: CollisionWake
enabled: false
- type: RequireProjectileTarget
active: true
- type: Fixtures
fixtures:
slips:
shape:
!type:PhysShapeCircle
radius: 0.35
layer:
- SlipLayer
hard: false
fix1:
shape:
!type:PhysShapeCircle
radius: 0.35
density: 10
mask:
- SmallMobMask
layer:
- SmallMobLayer
step:
shape:
!type:PhysShapeCircle
radius: 0.35
layer:
- LowImpassable
hard: false

View File

@@ -0,0 +1,86 @@
- type: entity
parent: BaseMobXenomorphAdult
id: BaseMobXenomorphHunter
name: xenomorph hunter
description: A specialized individual, an excellent predator, created to track down and destroy targets. Extremely dangerous in close combat.
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/hunter.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: xenomorph
- map: [ "enum.JumpLayers.Jumping" ]
sprite: _White/Mobs/Aliens/Xenomorphs/hunter_jump.rsi
state: xenomorph_jump
visible: false
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: _White/Objects/Misc/handcuffs.rsi
state: body-overlay-xenomorph
visible: false
- type: GenericVisualizer
visuals:
enum.JumpVisuals.Jumping:
enum.JumpLayers.Jumping:
True: { visible: true }
False: { visible: false }
enum.DamageStateVisualLayers.Base:
True: { visible: false}
False: { visible: true}
- type: Xenomorph
caste: Hunter
- type: StealthOnWalk
plasmaCost: 2.5
- type: Stealth
revealOnAttack: false
revealOnDamage: false
enabled: false
lastVisibility: 0.2
- type: Jump
jumpAction: ActionJumpXenomorph
#- type: ActionGrant # Goobstation - moved to organ
# actions:
# - ActionTransferPlasma
# - ActionSpawnResinWeedNode
- type: VentCrawler
- type: Cuffable
- type: Body
prototype: XenomorphHunter
- type: MovementSpeedModifier
baseWalkSpeed: 3
baseSprintSpeed: 5.8
# - type: GuideHelp
# guides:
# - XenomorphHunter
- type: entity
parent: BaseMobXenomorphHunter
id: MobXenomorphHunter
components:
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-hunter-name
description: ghost-role-information-xenomorph-hunter-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphHunter]
id: MobXenomorphHunterDungeon
components:
- type: MovementSpeedModifier
baseSprintSpeed: 4.8
- type: SlowOnDamage
speedModifierThresholds:
105: 0.7
125: 0.6
150: 0.5

View File

@@ -0,0 +1,95 @@
- type: entity
parent: BaseMobXenomorph
id: BaseMobXenomorphLarva
name: xenomorph larva
description: An early stage of development characterized by small size, a worm-like body shape, and the absence of distinct limbs.
abstract: true
components:
- type: Sprite
drawdepth: SmallMobs
sprite: _White/Mobs/Aliens/Xenomorphs/larva.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base", "movement"]
state: xenomorph
- type: SpriteMovement
movementLayers:
movement:
state: xenomorph-moving
noMovementLayers:
movement:
state: xenomorph
- type: Xenomorph
caste: Larva
- type: XenomorphLarva
#- type: ActionGrant # Goobstation - moved to organ
# actions:
# - ActionTransferPlasma
- type: VentCrawler
- type: Body
prototype: XenomorphLarva
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.2
density: 10
mask:
- SmallMobMask
layer:
- SmallMobLayer
- type: Deathgasp
prototype: LarvaDeathgasp
- type: MobThresholds
thresholds:
0: Alive
25: Dead
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 5
- type: MeleeWeapon
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh1.ogg
damage:
types:
Blunt: 2
- type: Bloodstream
bloodMaxVolume: 50
- type: MobPrice
price: 250
- type: Organ
slotId: xenomorph_larva
# - type: GuideHelp
# guides:
# - XenomorphLarva
- type: entity
parent: BaseMobXenomorphLarva
id: MobXenomorphLarva
components:
- type: XenomorphEvolution
max: 200
evolvesTo:
- prototype: MobXenomorphDrone
- prototype: MobXenomorphSentinel
- prototype: MobXenomorphHunter
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-larva-name
description: ghost-role-information-xenomorph-larva-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: UserInterface
interfaces:
enum.RadialSelectorUiKey.Key:
type: TrackedRadialSelectorMenuBUI
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphLarva]
id: MobXenomorphLarvaDungeon

View File

@@ -0,0 +1,64 @@
- type: entity
parent: BaseMobXenomorphAdult
id: MobXenomorphMaid
name: xenomorph maid
description: I mean, I guess it is kinda cute?
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/maid.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: xenomorph
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: _White/Objects/Misc/handcuffs.rsi
state: body-overlay-xenomorph
visible: false
- type: Xenomorph
caste: Maid
#- type: ActionGrant # Goobstation - moved to organ
# actions:
# - ActionTransferPlasma
# - ActionSpawnResinWeedNode
- type: Cuffable
- type: MobThresholds
thresholds:
0: Alive
200: Dead
- type: SlowOnDamage
speedModifierThresholds:
150: 0.9
170: 0.7
190: 0.6
- type: MeleeWeapon
damage:
groups:
Brute: 10
- type: OwOAccent
- type: Pacified
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-maid-name
description: ghost-role-information-xenomorph-maid-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: LanguageKnowledge
speaks:
- Xeno
- XenoHivemind
- TauCetiBasic # Smart thing
understands:
- Xeno
- XenoHivemind
- Hissing
- Draconic
- TauCetiBasic
# - type: GuideHelp
# guides:
# - XenomorphMaid

View File

@@ -0,0 +1,95 @@
- type: entity
parent: BaseMobXenomorphAdult
id: BaseMobXenomorphPraetorian
name: xenomorph praetorian
description: An elite specimen designed to protect the Hive and the Queen, his very presence instills fear and trepidation into the enemy ranks.
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/praetorian.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: xenomorph
offset: 0, 0.6
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- type: Xenomorph
caste: Praetorian
- type: TailLash
tailDamage:
groups:
Brute: 5
inject:
ChloralHydrate: 5 # Goobstation - new chemical
#- type: ActionGrant # Goobstation - moved to organs
# actions:
# - ActionTransferPlasma
# - ActionSpawnWallResin
# - ActionSpawnResinMembrane
# - ActionSpawnResinNest
# - ActionSpawnResinWeedNode
- type: Body
prototype: XenomorphPraetorian
- type: TypingIndicator
proto: alien_royal
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.4
density: 300
mask:
- MobMask
layer:
- MobLayer
- type: MobThresholds
thresholds:
0: Alive
360: Critical
375: Dead
- type: SlowOnDamage
speedModifierThresholds:
225: 0.9
270: 0.7
315: 0.6
- type: MeleeWeapon
damage:
groups:
Brute: 30
# - type: GuideHelp
# guides:
# - XenomorphPraetorian
- type: entity
parent: BaseMobXenomorphPraetorian
id: MobXenomorphPraetorian
components:
- type: XenomorphEvolution
evolutionActionId: ActionEvolutionQueen
evolvesTo:
- prototype: MobXenomorphQueen
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-praetorian-name
description: ghost-role-information-xenomorph-praetorian-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphPraetorian]
id: MobXenomorphPraetorianDungeon
components:
- type: MovementSpeedModifier
baseSprintSpeed: 3.8
- type: SlowOnDamage
speedModifierThresholds:
225: 0.7
270: 0.6
315: 0.5

View File

@@ -0,0 +1,112 @@
- type: entity
parent: BaseMobXenomorphAdult
id: BaseMobXenomorphQueen
name: xenomorph queen
description: The highest individual, the central element and mother of the Hive. The destruction of the Queen in most cases means the collapse of the Hive.
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/queen.rsi
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: xenomorph
offset: 0, 0.6
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- type: Xenomorph
caste: Queen
- type: XenomorphQueen
- type: TailLash
tailDamage:
groups:
Brute: 5
inject:
ChloralHydrate: 10 # Goobstation - new chemical
#- type: ActionGrant # Goobstation - moved to organs
# actions:
# - ActionTransferPlasma
# - ActionSpawnWallResin
# - ActionSpawnResinMembrane
# - ActionSpawnResinNest
# - ActionSpawnResinWeedNode
# - ActionSpawnXenomorphEgg
- type: Body
prototype: XenomorphQueen
- type: TypingIndicator
proto: alien_royal
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.40
density: 300
mask:
- MobMask
layer:
- MobLayer
- type: MobThresholds
thresholds:
0: Alive
735: Critical
750: Dead
- type: SlowOnDamage
speedModifierThresholds:
600: 0.9
645: 0.7
690: 0.6
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 2.5
- type: MeleeWeapon
damage:
groups:
Brute: 50
- type: Deathgasp
prototype: XenomorphQueenDeathgasp
- type: Speech
speechSounds: Xenomorph
speechVerb: LargeMob
- type: LanguageKnowledge
speaks:
- Xeno
# - XenoHivemind # Goobstation - collective mind
- TauCetiBasic
understands:
- Xeno
# - XenoHivemind # Goobstation - collective mind
- Hissing
- Draconic
- TauCetiBasic
# - type: GuideHelp
# guides:
# - XenomorphQueen
- type: entity
parent: BaseMobXenomorphQueen
id: MobXenomorphQueen
components:
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-queen-name
description: ghost-role-information-xenomorph-queen-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphQueen]
id: MobXenomorphQueenDungeon
components:
- type: MovementSpeedModifier
baseSprintSpeed: 3.8
- type: SlowOnDamage
speedModifierThresholds:
600: 0.7
645: 0.6
690: 0.5

View File

@@ -0,0 +1,71 @@
- type: entity
parent: BaseMobXenomorphAdult
id: BaseMobXenomorphSentinel
name: xenomorph sentinel
description: A specialized specimen designed to hit targets at a distance. Particularly dangerous in narrow corridors and confined spaces.
abstract: true
components:
- type: Sprite
sprite: _White/Mobs/Aliens/Xenomorphs/sentinel.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: xenomorph
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: _White/Objects/Misc/handcuffs.rsi
state: body-overlay-xenomorph
visible: false
- type: Xenomorph
caste: Sentinel
#- type: ActionGrant # Goobstation - moved to organs
# actions:
# - ActionTransferPlasma
# - ActionSpawnResinWeedNode
- type: VentCrawler
- type: Cuffable
- type: Body
prototype: XenomorphSentinel
- type: MobThresholds
thresholds:
0: Alive
225: Critical
240: Dead
- type: SlowOnDamage
speedModifierThresholds:
150: 0.9
170: 0.7
195: 0.6
# - type: GuideHelp
# guides:
# - XenomorphSentinel
- type: entity
parent: BaseMobXenomorphSentinel
id: MobXenomorphSentinel
components:
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-xenomorph-sentinel-name
description: ghost-role-information-xenomorph-sentinel-description
rules: ghost-role-information-rules-default-xeno
mindRoles:
- MindRoleGhostRoleTeamAntagonist
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
parent: [BaseMobXenomorphDungeon, BaseMobXenomorphSentinel]
id: MobXenomorphSentinelDungeon
components:
- type: MovementSpeedModifier
baseSprintSpeed: 3.2
- type: SlowOnDamage
speedModifierThresholds:
150: 0.7
170: 0.6
195: 0.5

View File

@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2024 Spatison <137375981+spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: ExperimentalSyndicateTeleporter
parent: [BaseItem, BaseSyndicateContraband]
name: experimental Syndicate teleporter
description: A self-recharging device that teleports the user forward. In case of teleportation into a wall, uses emergency teleportation. Or gibs the user if it's out of charges.
components:
- type: Sprite
sprite: /Textures/_White/Objects/Devices/experimentalsyndicateteleporter.rsi
layers:
- state: icon
- type: ExperimentalTeleporter
- type: LimitedCharges
maxCharges: 4
- type: AutoRecharge
rechargeDuration: 10

View File

@@ -0,0 +1,62 @@
# MISC
- type: entity
parent: ClothingMaskBase
id: FaceHuggerToys
name: xenomorph facehugger
description: A toy often used to play pranks on other crew members by putting it in their beds. It takes a bit to recharge after latching onto something.
suffix: Toys
components:
- type: Sprite
noRot: true
sprite: _White/Mobs/Aliens/Xenomorphs/old_facehugger.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: facehugger
- type: Clothing
sprite: _White/Mobs/Aliens/Xenomorphs/old_facehugger.rsi
slots: [mask]
- type: IngestionBlocker
- type: Blindfold
- type: AddAccentClothing
accent: ReplacementAccent
replacement: mumble
- type: FaceHugger
blacklist:
components:
- Ghost
knockdownTime: 0
infectionPrototype: null
damageOnImpact:
types:
Blunt: 0
- type: MeleeWeapon
hidden: true
canHeavyAttack: false
angle: 0
damage:
types:
Blunt: 0
- type: Physics
bodyType: Dynamic
- type: CollisionWake
enabled: false
- type: Fixtures
fixtures:
slips:
shape:
!type:PhysShapeCircle
radius: 0.35
layer:
- SlipLayer
hard: false
fix1:
shape:
!type:PhysShapeCircle
radius: 0.35
density: 10
mask:
- ItemMask
- type: Tag
tags:
- XenomorphItem

View File

@@ -0,0 +1,18 @@
- type: entity
parent: BaseItem
id: XenomorphPromotion
name: royal parasite
description: Inject this into one of your grown children to promote her to a Praetorian!
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _White/Objects/Misc/xenomorph_promotion.rsi
state: icon
- type: Item
size: Ginormous
- type: Unremoveable
deleteOnDrop: true
- type: XenomorphPromotion
- type: Tag
tags:
- XenomorphItem

View File

@@ -0,0 +1,12 @@
- type: entity
id: BulletNeurotoxin
parent: BulletAcid
name: neurotoxin spit
categories: [ HideSpawnMenu ]
components:
- type: StaminaDamageOnCollide
damage: 65
- type: Projectile
damage:
types:
Caustic: 1

View File

@@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.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 Spatison <137375981+Spatison@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: betrayal knife
description: Watch your back!
parent: [BaseKnife, BaseSyndicateContraband]
id: BetrayalKnife
components:
- type: Sprite
sprite: _White/Objects/Weapons/Melee/Daggers/betrayal_knife.rsi
state: icon
- type: Item
size: Small
- type: MeleeWeapon
angle: 0
wideAnimationRotation: 180
attackRate: 3
damage:
types:
Slash: 8
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Sharp
- type: EmbeddableProjectile
sound: /Audio/Weapons/star_hit.ogg
- type: ThrowingAngle
angle: 180
- type: DamageOtherOnHit
damage:
types:
Slash: 15
- type: DisarmMalus
malus: 0.225
- type: BackStab
- type: Blink
- type: UseDelay
delay: 0.8
delays:
blink:
length: 4
- type: UseDelayBlockMelee

View File

@@ -0,0 +1,93 @@
- type: entity
parent: CMBaseXenoStructure
id: ResinDoor
name: resin Door
description: Thick resin solidified into a door.
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Sprite
sprite: _RMC14/Structures/Xenos/xeno_resin_door.rsi
layers:
- state: resin
map: ["enum.DoorVisualLayers.Base"]
- state: closed_unlit
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: closed_unlit
map: ["enum.DoorVisualLayers.BaseBolted"]
- type: AnimationPlayer
- type: Physics
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
density: 100
mask:
- FullTileMask
layer:
- AirlockLayer
- type: IconSmooth
key: walls
mode: NoSprite
- type: Door
canPry: false
crushDamage:
types:
Blunt: 15
openSpriteState: resinopen
closedSpriteState: resin
openingSpriteState: resinopening
closingSpriteState: resinclosing
openSound:
path: /Audio/_RMC14/Xeno/alien_resin_move1.ogg
closeSound:
path: /Audio/_RMC14/Xeno/alien_resin_move2.ogg
- type: Appearance
- type: Airtight
fixVacuum: true
noAirWhenFullyAirBlocked: false
- type: Occluder
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: MeleeSound
soundGroups:
Brute:
collection: blood
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 100
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: gib
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 60
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Airlock
emergencyAccessLayer: false
animatePanel: false
powered: true
openingSpriteState: closed_unlit
closingSpriteState: closed_unlit
- type: AccessReader
access: [["Xenomorph"]]
breakOnAccessBreaker: false # Goobstation

View File

@@ -0,0 +1,74 @@
- type: entity
parent: BaseStructure
id: ResinNest
name: resin nest
description: Slimy and sticky mass representing a bed?....
components:
- type: Sprite
sprite: _White/Structures/Furniture/resin_nest.rsi
state: full
noRot: true
- type: Icon
sprite: _White/Structures/Furniture/resin_nest.rsi
state: full
- type: IconSmooth
key: full
base: resin_nest
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.05"
density: 190
layer:
- BulletImpassable
- type: RequireProjectileTarget
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 35
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: blood
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 45
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: HealOnBuckle
damage:
types:
Poison: -0.05
Blunt: -0.05
Slash: -0.05
Piercing: -0.05
Caustic: -0.05
Cold: -0.03
Asphyxiation: -0.8
Bloodloss: -1.8 #Need to keep someone alive without blood
- type: SpaceImmunityOnBuckle
- type: BlockHandsOnBuckle
- type: Strap
position: Down
rotation: -90
selfUnBuckleDelay: 120
- type: Transform
anchored: true
noRot: true

View File

@@ -0,0 +1,96 @@
- type: entity
parent: BaseStructure
id: ResinWeed
name: resin floor
description: A thick resin surface covers the floor.
components:
- type: Sprite
noRot: true
drawdepth: FloorTiles
sprite: _RMC14/Structures/Xenos/xeno_weeds.rsi # Goobstation new sprites
layers:
- state: weed0
- type: Icon
sprite: _RMC14/Structures/Xenos/xeno_weeds.rsi # Goobstation new sprites
state: weed0
- type: IconSmooth # Goobstation new sprites
key: cm_xeno_weeds
base: weed_dir
mode: CardinalFlags
# - type: SmoothEdge # goobstation new sprites
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
mask:
- SlipLayer
layer:
- Impassable
- MidImpassable
- LowImpassable
hard: false
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 18
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: blood
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 18
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepResin
- type: PlasmaGainModifier
- type: ItemPlacer
maxEntities: 5
whitelist:
requireAll: true
components:
- PlasmaVessel
- Xenomorph
- type: Tag
tags: [ Carpet ]
- type: entity
parent: ResinWeed
id: ResinWeedNode
name: glowing resin
description: Blue bioluminescence shines from beneath the surface.
components:
- type: Sprite
sprite: _RMC14/Structures/Xenos/xeno_weeds.rsi # Goobstation new sprites
drawdepth: FloorTiles
layers:
- state: weed0
- state: constructionnode
- type: Icon
sprite: _RMC14/Structures/Xenos/xeno_weeds.rsi # Goobstation new sprites
state: weed0
- type: AreaSpawner
spawnPrototype: ResinWeed
- type: PointLight
radius: 2.5
energy: 2
color: "#00CED1"

View File

@@ -0,0 +1,105 @@
- type: entity
parent: BaseStructure
id: XenomorphEgg
name: xenomorph egg
description: A large mottled egg.
components:
- type: Sprite
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
noRot: true
layers:
- state: egg_growing
map: [ "status" ]
- type: Icon
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
state: egg_growing
- type: Appearance
- type: GenericVisualizer
visuals:
enum.XenomorphEggKey.Key:
status:
Burst: { state: egg_burst }
Bursting: { state: egg_bursting }
Grown: { state: egg_grown }
Growning: { state: egg_growing }
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: blood
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 45
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Flammable
fireSpread: false
damage:
types:
Heat: 3
- type: XenomorphEgg
- type: StepTrigger
intersectRatio: 0.2
requiredTriggeredSpeed: 0.0
- type: RequireProjectileTarget
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.05"
density: 190
layer:
- BulletImpassable
- type: entity
parent: XenomorphEgg
id: XenomorphEggGrown
suffix: Grown
components:
- type: Sprite
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
noRot: true
layers:
- state: egg_grown
map: [ "status" ]
- type: Icon
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
state: egg_grown
- type: XenomorphEgg
status: Grown
- type: entity
parent: XenomorphEgg
id: XenomorphEggBurst
suffix: Burst
components:
- type: Sprite
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
noRot: true
layers:
- state: egg_burst
map: [ "status" ]
- type: Icon
sprite: _White/Structures/Furniture/xenomorph_egg.rsi
state: egg_burst
- type: XenomorphEgg
faceHuggerPrototype: null
status: Burst

View File

@@ -0,0 +1,28 @@
- type: entity
parent: GlassBox
id: GlassBoxLamarrFilled
suffix: Lamarr, Filled
components:
- type: Sprite
sprite: Structures/Storage/glassbox.rsi
layers:
- state: base
- sprite: _White/Mobs/Aliens/Xenomorphs/old_facehugger.rsi
state: facehugger
map: ["enum.ItemCabinetVisuals.Layer"]
visible: true
- state: glass
map: ["enum.OpenableVisuals.Layer"]
- state: locked
shader: unshaded
map: ["enum.LockVisualLayers.Lock"]
- type: AccessReader
access: [["ResearchDirector"]]
- type: ItemSlots
slots:
ItemCabinet:
startingItem: MobXenomorphFaceHuggerLamarr
ejectOnInteract: true
whitelist:
components:
- FaceHugger

View File

@@ -0,0 +1,47 @@
- type: entity
parent: BaseWall
id: WallResin
name: resin wall
description: Thick resin solidified into a wall.
components:
- type: Sprite
sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi # Goobstation new sprites
- type: Icon
sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi # Goobstation new sprites
state: resin
- type: IconSmooth # Goobstation new sprites
key: walls
base: resin
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: MeleeSound
soundGroups:
Brute:
collection: blood
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 200
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: gib
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 100
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Appearance

View File

@@ -0,0 +1,48 @@
- type: entity
id: ResinMembrane
parent: WindowRCDResistant
name: resin membrane
description: Resin just thin enough to let light pass through.
components:
- type: Sprite
drawdepth: WallTops
sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi # Goobstation new sprites
- type: Icon
sprite: _RMC14/Structures/Xenos/xeno_resin_wall.rsi # Goobstation new sprites
state: membrane
- type: Damageable
damageContainer: Biological
damageModifierSet: Resin
- type: MeleeSound
soundGroups:
Brute:
collection: blood
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 95
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: gib
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 65
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 0
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: IconSmooth
key: walls
base: membrane
- type: Appearance

View File

@@ -0,0 +1,53 @@
- type: entity
parent: SurgeryBase
id: SurgeryRemoveLarvaEmbryo
name: Remove Larva Embryo
categories: [ HideSpawnMenu ]
components:
- type: Surgery
requirement: SurgeryOpenRibcage
steps:
- SurgeryStepClampInternalBleeders
- SurgeryStepRemoveOrgan
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganCondition
organ:
- type: XenomorphInfection
# - type: entity
# parent: SurgeryBase
# id: SurgeryInsertLarvaEmbryo
# name: Insert Larva
# categories: [ HideSpawnMenu ]
# components:
# - type: Surgery
# requirement: SurgeryOpenRibcage
# steps:
# - SurgeryStepSawBones
# - SurgeryStepInsertOrgan
# - SurgeryStepSealOrganWound
# - type: SurgeryPartCondition
# parts: [ Torso ]
# - type: SurgeryOrganCondition
# organ:
# - type: XenomorphInfection
# inverse: true
# reattaching: true
- type: entity
parent: SurgeryBase
id: SurgeryRemoveLarva
name: Remove Larva
categories: [ HideSpawnMenu ]
components:
- type: Surgery
requirement: SurgeryOpenRibcage
steps:
- SurgeryStepClampInternalBleeders
- SurgeryStepRemoveOrgan
- type: SurgeryPartCondition
parts: [ Chest ]
- type: SurgeryOrganCondition
organ:
- type: XenomorphLarva

View File

@@ -0,0 +1,37 @@
- type: entity
parent: BaseGameRule
id: XenomorphsInfestation
components:
- type: StationEvent
weight: 1.5 # Goobstation - was 7.5
duration: null
minimumPlayers: 50 # Goobstation - was 20
earliestStart: 30 # Goobstation
#reoccurrenceDelay: 50 # Goobstation - no longer needed
maxOccurrences: 1 # Goobstation
chaos:
Hostile: 400
Medical: 400
Death: 400
eventType: HostilesSpawn
- type: GameRule
chaosScore: 400
- type: VentSpawnRule
- type: AntagSpawner
prototype: MobXenomorphLarva
- type: XenomorphsRule
- type: AntagObjectives
objectives:
- XenomorphSurviveObjective
- type: AntagSelection
agentName: xenomorph-round-end-agent-name
definitions:
- spawnerPrototype: SpawnPointGhostXenomorph
min: 2
max: 4
pickPlayer: false
briefing:
text: xenomorph-role-greeting
color: "#8c3986"
mindRoles:
- MindRoleXenomorph

View File

@@ -0,0 +1,29 @@
- type: entity
parent: BaseGameRule
id: XenomorphsInfestationRoundstart
components:
- type: GameRule
chaosScore: 2500 # Goobstation - 1.5x blob
minPlayers: 30
- type: AntagObjectives
objectives:
- XenomorphSurviveObjective
- type: XenomorphsRule # Goobstation - Required for Evolution Logic
- type: VentSpawnRule
- type: AntagSpawner
prototype: MobXenomorphLarva
- type: AntagSelection
selectionTime: PrePlayerSpawn
agentName: xenomorph-round-end-agent-name
definitions:
- prefRoles: [ XenomorphsInfestationRoundstart ]
spawnerPrototype: SpawnPointGhostXenomorph
min: 2
max: 4
playerRatio: 15
pickPlayer: true
mindRoles:
- MindRoleXenomorph
briefing:
text: xenomorph-role-greeting
color: "#8c3986"

View File

@@ -0,0 +1,23 @@
- type: inventoryTemplate
id: xenomorph
slots:
- name: pocket1
slotTexture: pocket
fullTextureName: template_small
slotFlags: POCKET
slotGroup: SecondHotbar
stripTime: 3
uiWindowPos: 0,3
strippingWindowPos: 0,4
displayName: Pocket 1
stripHidden: true
- name: pocket2
slotTexture: pocket
fullTextureName: template_small
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 2,3
strippingWindowPos: 1,4
displayName: Pocket 2
stripHidden: true

View File

@@ -0,0 +1,12 @@
- type: language
id: XenoHivemind
speech:
requireSpeech: false
color: '#8c3986'
obfuscation:
!type:SyllableObfuscation
minSyllables: 1
maxSyllables: 8 # I was crazy once
replacement:
- s
- S

View File

@@ -0,0 +1,25 @@
- type: htnCompound
id: XenomorphCompound
branches:
- tasks:
- !type:HTNCompoundTask
task: MeleeCombatCompound
- tasks:
- !type:HTNCompoundTask
task: EscapeCompound
- tasks:
- !type:HTNCompoundTask
task: IdleCompound
- type: htnCompound
id: XenomorphRangeCompound
branches:
- tasks:
- !type:HTNCompoundTask
task: GunCombatCompound
- tasks:
- !type:HTNCompoundTask
task: EscapeCompound
- tasks:
- !type:HTNCompoundTask
task: IdleCompound

View File

@@ -0,0 +1,8 @@
# Thief Animal
- type: stealTargetGroup
id: AnimalLamarr
name: steal-target-groups-animal-lamarr
sprite:
sprite: _White/Mobs/Aliens/Xenomorphs/facehugger.rsi
state: facehugger

View File

@@ -0,0 +1,10 @@
- type: entity
parent: BaseThiefStealAnimalObjective
id: LamarrStealObjective
components:
- type: NotJobRequirement
job: ResearchDirector
- type: StealCondition
stealGroup: AnimalLamarr
- type: Objective
difficulty: 2

View File

@@ -0,0 +1,21 @@
- type: entity
abstract: true
parent: BaseObjective
id: BaseXenomorphObjective
components:
- type: Objective
difficulty: 1
issuer: objective-issuer-xenomorph-hive
- type: RoleRequirement
roles:
- XenomorphRole
- type: entity
parent: [BaseXenomorphObjective, BaseSurviveObjective]
id: XenomorphSurviveObjective
name: Survive and advance the hive.
components:
- type: Objective
icon:
sprite: _White/Mobs/Aliens/Xenomorphs/larva.rsi
state: xenomorph

View File

@@ -0,0 +1,25 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Spatison <137375981+Spatison@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: latheRecipe
id: ClothingEyesNightVisionGoggles
result: ClothingEyesNightVisionGoggles
completetime: 2
materials:
Steel: 200
Glass: 100
Silver: 100
Gold: 100
- type: latheRecipe
id: ClothingEyesThermalVisionGoggles
result: ClothingEyesThermalVisionGoggles
completetime: 2
materials:
Steel: 200
Glass: 100
Silver: 100
Gold: 100

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spatison <137375981+Spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: constructionGraph
id: EnergyDoubleSwordGraph
start: esword
graph:
- node: esword
edges:
- to: desword
steps:
- tag: EnergySword
name: construction-graph-tag-energy-sword
- node: desword
entity: EnergySwordDouble

View File

@@ -0,0 +1,42 @@
# 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 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <logkedr18@gmail.com>
# SPDX-FileCopyrightText: 2025 Spatison <137375981+Spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Tier 2
- type: technology
id: NightVisionTech
name: research-technology-night-vision
icon:
sprite: _White/Clothing/Eyes/Goggles/nightvision.rsi
state: icon
discipline: Experimental
tier: 2
cost: 10000
position: -5,-1
recipeUnlocks:
- ClothingEyesNightVisionGoggles
technologyPrerequisites:
- ModsuitsTech
- type: technology
id: ThermalVisionTech
name: research-technology-thermal-vision
icon:
sprite: _White/Clothing/Eyes/Goggles/thermal.rsi
state: icon
discipline: Experimental
tier: 2
cost: 10000
position: -6,-1
recipeUnlocks:
- ClothingEyesThermalVisionGoggles
- ClothingEyesGlassesSecurityContraDetect
technologyPrerequisites:
- ModsuitsTech

View File

@@ -0,0 +1,5 @@
- type: antag
id: Xenomorph
name: roles-antag-xenomorph-name
antagonist: true
objective: roles-antag-xenomorph-objective

View File

@@ -0,0 +1,11 @@
# Xenomorph
- type: entity
parent: BaseMindRoleAntag
id: MindRoleXenomorph
name: xenomorph role
components:
- type: MindRole
antagPrototype: Xenomorph
roleType: TeamAntagonist
exclusiveAntag: true
- type: XenomorphRole

View File

@@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Eris <eris@erisws.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 Spatison <137375981+Spatison@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: shader
id: NightVision
kind: source
path: "/Textures/_White/Shaders/nightvision.swsl"
- type: shader
id: FlickerHologram
kind: source
path: "/Textures/_White/Shaders/flickerhologram.swsl"
light_mode: unshaded
params:
jitter: 0.5
colorJitter: 0.4
alphaJitter: 0.5
hue: 0.48
- type: shader
id: FlickerHologramGlitch
kind: source
path: "/Textures/_White/Shaders/flickerhologram.swsl"
light_mode: unshaded
params:
jitter: 5
colorJitter: 0.8
alphaJitter: 1
hue: 0.48

View File

@@ -0,0 +1,4 @@
- type: soundCollection
id: XenomorphCoughs
files:
- /Audio/_White/Voice/Xenomorph/cough1.ogg

View File

@@ -0,0 +1,4 @@
- type: soundCollection
id: FootstepResin
files:
- /Audio/_White/Effects/Footsteps/resin1.ogg

View File

@@ -0,0 +1,8 @@
- type: soundCollection
id: XenomorphHiss
files:
- /Audio/_White/Voice/Xenomorph/hiss1.ogg
- /Audio/_White/Voice/Xenomorph/hiss2.ogg
- /Audio/_White/Voice/Xenomorph/hiss3.ogg
- /Audio/_White/Voice/Xenomorph/hiss4.ogg
- /Audio/_White/Voice/Xenomorph/hiss5.ogg

View File

@@ -0,0 +1,6 @@
- type: soundCollection
id: XenomorphLaugh
files:
- /Audio/_White/Voice/Xenomorph/laugh1.ogg
- /Audio/_White/Voice/Xenomorph/laugh2.ogg
- /Audio/_White/Voice/Xenomorph/laugh3.ogg

View File

@@ -0,0 +1,13 @@
- type: soundCollection
id: XenomorphScreams
files:
- /Audio/_White/Voice/Xenomorph/scream1.ogg
- /Audio/_White/Voice/Xenomorph/scream2.ogg
- /Audio/_White/Voice/Xenomorph/scream3.ogg
- /Audio/_White/Voice/Xenomorph/scream4.ogg
- /Audio/_White/Voice/Xenomorph/scream5.ogg
- /Audio/_White/Voice/Xenomorph/scream6.ogg
- /Audio/_White/Voice/Xenomorph/scream7.ogg
- /Audio/_White/Voice/Xenomorph/scream8.ogg
- /Audio/_White/Voice/Xenomorph/scream9.ogg
- /Audio/_White/Voice/Xenomorph/scream10.ogg

View File

@@ -0,0 +1,8 @@
- type: soundCollection
id: XenomorphSnores
files:
- /Audio/_White/Voice/Xenomorph/snoring1.ogg
- /Audio/_White/Voice/Xenomorph/snoring2.ogg
- /Audio/_White/Voice/Xenomorph/snoring3.ogg
- /Audio/_White/Voice/Xenomorph/snoring4.ogg
- /Audio/_White/Voice/Xenomorph/snoring5.ogg

View File

@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PuroSlavKing <103608145+PuroSlavKing@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: humanoidBaseSprite
id: MobReptilianLLegDigi
baseSprite:
sprite: _White/Mobs/Species/Reptilian/parts.rsi
state: l_leg_digi
- type: humanoidBaseSprite
id: MobReptilianLFootDigi
baseSprite:
sprite: _White/Mobs/Species/Reptilian/parts.rsi
state: l_foot_digi
- type: humanoidBaseSprite
id: MobReptilianRLegDigi
baseSprite:
sprite: _White/Mobs/Species/Reptilian/parts.rsi
state: r_leg_digi
- type: humanoidBaseSprite
id: MobReptilianRFootDigi
baseSprite:
sprite: _White/Mobs/Species/Reptilian/parts.rsi
state: r_foot_digi

View File

@@ -0,0 +1,92 @@
# Xenomorph
- type: infectionIcon
id: XenomorphInfectionIconStageZero
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_0
- type: infectionIcon
id: XenomorphInfectionIconStageOne
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_1
- type: infectionIcon
id: XenomorphInfectionIconStageTwo
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_2
- type: infectionIcon
id: XenomorphInfectionIconStageThree
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_3
- type: infectionIcon
id: XenomorphInfectionIconStageFour
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_4
- type: infectionIcon
id: XenomorphInfectionIconStageFive
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_5
- type: infectionIcon
id: XenomorphInfectionIconStageSix
priority: 0
locationPreference: Right
isShaded: true
visibleToOwner: false
showTo:
components:
- Xenomorph
icon:
sprite: /Textures/_White/Interface/Misc/infection_icons.rsi
state: xenomorph_6

View File

@@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: storeCategory
id: UplinkSales
name: store-category-uplink-sales
priority: 10

View File

@@ -0,0 +1,47 @@
- type: emoteSounds
id: Xenomorph
params:
variation: 0.125
sounds:
Scream:
collection: XenomorphScreams
params:
volume: -12
Laugh:
collection: XenomorphLaugh
params:
volume: -12
Sneeze:
collection: XenomorphCoughs
params:
volume: -12
Cough:
collection: XenomorphCoughs
params:
volume: -12
CatMeow:
collection: CatMeows
CatHisses:
collection: CatHisses
MonkeyScreeches:
collection: MonkeyScreeches
RobotBeep:
collection: RobotBeeps
Yawn:
collection: XenomorphHiss
params:
volume: -12
Snore:
collection: XenomorphSnores
params:
volume: -12
Honk:
collection: BikeHorn
Sigh:
collection: MaleSigh
Crying:
collection: MaleCry
Whistle:
collection: Whistles
Weh:
collection: Weh

View File

@@ -0,0 +1,17 @@
- type: emote
id: XenomorphQueenDeathgasp
name: chat-emote-name-deathgasp
icon: Interface/Emotes/deathgasp.png
chatMessages: ["chat-emote-msg-deathgasp"]
- type: emote
id: XenomorphDeathgasp
name: chat-emote-name-deathgasp
icon: Interface/Emotes/deathgasp.png
chatMessages: ["chat-emote-msg-deathgasp"]
- type: emote
id: LarvaDeathgasp
name: chat-emote-name-deathgasp
icon: Interface/Emotes/deathgasp.png
chatMessages: ["chat-emote-msg-deathgasp"]

View File

@@ -0,0 +1,8 @@
- type: speechSounds
id: Xenomorph
saySound:
path: /Audio/_White/Voice/Talk/xenomorph.ogg
askSound:
path: /Audio/_White/Voice/Talk/xenomorph_ask.ogg
exclaimSound:
path: /Audio/_White/Voice/Talk/xenomorph_exclaim.ogg

16
Prototypes/_White/hud.yml Normal file
View File

@@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PuroSlavKing <103608145+PuroSlavKing@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: hudTheme
id: SS14OperativeTheme
name: ui-options-hud-theme-operative
path: /Textures/_White/Interface/Operative/
order: 7
- type: hudTheme
id: SS14XenomorphTheme
name: ui-options-hud-theme-xenomorph
path: /Textures/_White/Interface/Xenomorph/
order: 9

View File

@@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spatison <137375981+Spatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: Tag
id: EnergySword
- type: Tag
id: XenomorphItem

View File

@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PuroSlavKing <103608145+PuroSlavKing@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: uiTheme
id: SS14OperativeTheme
path: /Textures/_White/Interface/Operative/
colors:
whiteText: "#FFF5EE"
slotSelectedGold: "#e6b812"
slotColor: "#0f1215"
slotOutline: "#333850"
slotText: "#333850"
nanoGold: "#A88B5E"
goodGreenFore: "#31843E"
concerningOrangeFore: "#A5762F"
dangerousRedFore: "#BB3232"
disabledFore: "#5A5A5A"
_itemstatus_content_margin_right: "#06060604"
_itemstatus_content_margin_left: "#06060604"
- type: uiTheme
id: SS14XenomorphTheme
path: /Textures/_White/Interface/Xenomorph/
colors:
whiteText: "#FFF5EE"
slotSelectedGold: "#E99613"
slotColor: "#0f1215"
slotOutline: "#333850"
slotText: "#333850"
nanoGold: "#A88B5E"
goodGreenFore: "#31843E"
concerningOrangeFore: "#A5762F"
dangerousRedFore: "#BB3232"
disabledFore: "#5A5A5A"

View File

@@ -0,0 +1,5 @@
- type: typingIndicator
id: alien_royal
typingState: alienroyal0
idleState: alienroyal0
offset: 0.64, 0.32

View File

@@ -0,0 +1,30 @@
- type: xenomorphCaste
id: Larva
name: xenomorph-caste-larva
- type: xenomorphCaste
id: Drone
name: xenomorph-caste-drone
- type: xenomorphCaste
id: Hunter
name: xenomorph-caste-hunter
- type: xenomorphCaste
id: Sentinel
name: xenomorph-caste-sentinel
- type: xenomorphCaste
id: Maid
name: xenomorph-caste-maid
- type: xenomorphCaste
id: Praetorian
name: xenomorph-caste-praetorian
needCasteDeath: Queen
maxCount: 1
- type: xenomorphCaste
id: Queen
name: xenomorph-caste-queen
maxCount: 1