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,300 @@
# SPDX-FileCopyrightText: 2023 Tom Leys <tom@crump-leys.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AJCM <AJCM@tutanota.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ShadeAware <57020074+ShadeAware@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Tables -- Add your new event to this Table if you want it to happen via the basic/ramping schedulers.
- type: entityTable
id: CargoGiftsTable
table: !type:GroupSelector # ~~we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp~~ But we arent doing that shit yet, it picks a random one StationEventComp be damned.
children:
- id: GiftsEngineering
- id: GiftsFireProtection
- id: GiftsJanitor
- id: GiftsMedical
- id: GiftsPizzaPartyLarge
- id: GiftsPizzaPartySmall
- id: GiftsSecurityGuns
- id: GiftsSecurityRiot
- id: GiftsSpacingSupplies
- id: GiftsVendingRestock
# Game Rules
- type: entity
id: CargoGiftsBase
parent: BaseGameRule
abstract: true
components:
- type: GameRule
delay:
min: 10
max: 10
- type: StationEvent
startColor: "#18abf5"
startAudio:
path: /Audio/Announcements/announce.ogg
- type: CargoGiftsRule
sender: cargo-gift-default-sender
- type: entity
id: GiftsPizzaPartySmall
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 5
duration: 120
earliestStart: 20
chaos: # Goobstation
Hunger: -80
Thirst: -40
eventType: FreeStuff # Goobstation
# Goobstation
- type: GameRule
chaosScore: -15
- type: CargoGiftsRule
description: cargo-gift-pizza-small
dest: cargo-gift-dest-bar
gifts:
FoodPizza: 2 # 8 pizzas
FoodBarSupply: 1
FoodSoftdrinks: 2
CrateVendingMachineRestockRobustSoftdrinks: 1
- type: entity
id: GiftsPizzaPartyLarge
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 2
duration: 240
earliestStart: 20
minimumPlayers: 40
chaos: # Goobstation
Hunger: -300
Thirst: -120
eventType: FreeStuff # Goobstation
# Goobstation
- type: GameRule
chaosScore: -30
- type: CargoGiftsRule
description: cargo-gift-pizza-large
dest: cargo-gift-dest-bar
gifts:
FoodPizzaLarge: 1 # 16 pizzas
FoodBarSupply: 1
FoodSoftdrinksLarge: 1
- type: entity
id: GiftsEngineering
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 5
duration: 240
earliestStart: 30
minimumPlayers: 10
chaos: # Goobstation
Atmos: -300
Power: -100
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -40
- type: CargoGiftsRule
description: cargo-gift-eng
dest: cargo-gift-dest-eng
gifts:
EngineeringCableBulk: 1
AirlockKit: 1
MaterialSteel: 1
MaterialPlasteel: 1
MaterialGlass: 1
CrateVendingMachineRestockEngineering: 1
- type: entity
id: GiftsVendingRestock
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 4
duration: 120
minimumPlayers: 40
earliestStart: 30
chaos: # Goobstation
Hunger: -100
Thirst: -100
eventType: FreeStuff # Goobstation
# Goobstation
- type: GameRule
chaosScore: -20
- type: CargoGiftsRule
description: cargo-gift-vending
dest: cargo-gift-dest-supp
gifts:
CrateVendingMachineRestockHotDrinks: 3
CrateVendingMachineRestockBooze: 1
CrateVendingMachineRestockNutriMax: 1
CrateVendingMachineRestockRobustSoftdrinks: 2
CrateVendingMachineRestockVendomat: 1
CrateVendingMachineRestockGetmoreChocolateCorp: 1
- type: entity
id: GiftsJanitor
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 6
duration: 120
minimumPlayers: 30
earliestStart: 20
chaos: # Goobstation
Mess: -200
eventType: FreeStuff # Goobstation
# Goobstation
- type: GameRule
chaosScore: -20
- type: CargoGiftsRule
description: cargo-gift-cleaning
dest: cargo-gift-dest-janitor
gifts:
ServiceJanitorial: 2
ServiceLightsReplacement: 2
ServiceJanitorBiosuit: 1
- type: entity
id: GiftsMedical
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 8
duration: 120
earliestStart: 20
minimumPlayers: 30
chaos: #Goobstation
Medical: -200
Friend: 10
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -40
- type: CargoGiftsRule
description: cargo-gift-medical-supply
dest: cargo-gift-dest-med
gifts:
MedicalSupplies: 1
MedicalChemistrySupplies: 1
EmergencyBruteKit: 1
EmergencyAdvancedKit: 1
MedicalBiosuit: 1
- type: entity
id: GiftsSpacingSupplies
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 4
duration: 120
earliestStart: 10
minimumPlayers: 40
chaos: # Goobstation
Atmos: -300
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -40
- type: CargoGiftsRule
description: cargo-gift-space-protection
dest: cargo-gift-dest-supp
gifts:
EmergencyInternalsLarge: 2
EmergencyInflatablewall: 1
EmergencyAdvancedKit: 1
MedicalBiosuit: 1
EmergencyO2Kit: 1
- type: entity
id: GiftsFireProtection
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 4
duration: 120
earliestStart: 20
minimumPlayers: 40
chaos: # Goobstation
Atmos: -200
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -35
- type: CargoGiftsRule
description: cargo-gift-fire-protection
dest: cargo-gift-dest-supp
gifts:
EmergencyFire: 2
EmergencyBurnKit: 1
EmergencyBruteKit: 1
- type: entity
id: GiftsSecurityGuns
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 3
duration: 120
earliestStart: 20
minimumPlayers: 50
chaos: # Goobstation
Hostile: -100
Combat: -100
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -90
- type: CargoGiftsRule
description: cargo-gift-security-guns
dest: cargo-gift-dest-sec
gifts:
SecurityArmor: 3
ArmorySmg: 1
ArmoryShotgun: 1
ArmoryLaser: 1
ArmoryRifle: 1
- type: entity
id: GiftsSecurityRiot
parent: CargoGiftsBase
components:
- type: StationEvent
weight: 4
duration: 120
earliestStart: 20
minimumPlayers: 50
chaos: # Goobstation
Hostile: -30
Combat: -30
eventType: FreeStuffUseful # Goobstation
# Goobstation
- type: GameRule
chaosScore: -80
- type: CargoGiftsRule
description: cargo-gift-security-riot
dest: cargo-gift-dest-sec
gifts:
SecurityRiot: 2
SecurityRestraints: 2
SecurityNonLethal: 2
SecurityNonlethalThrowables: 1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,328 @@
# SPDX-FileCopyrightText: 2024 12rabbits <53499656+12rabbits@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 August Sun <45527070+august-sun@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AutoOtter <joshuademorris@gmail.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DieselMohawk <gavin.drinka@gmail.com>
# SPDX-FileCopyrightText: 2024 Dimastra <65184747+Dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dimastra <dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <51352440+JIPDawg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <JIPDawg93@gmail.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 MisterMecky <mrmecky@hotmail.com>
# SPDX-FileCopyrightText: 2024 Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Partmedia <kevinz5000@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers@gmail.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PopGamer46 <yt1popgamer@gmail.com>
# SPDX-FileCopyrightText: 2024 PursuitInAshes <pursuitinashes@gmail.com>
# SPDX-FileCopyrightText: 2024 QueerNB <176353696+QueerNB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RumiTiger <154005209+RumiTiger@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Saphire Lattice <lattice@saphi.re>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spessmann <156740760+Spessmann@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Unisol <1929445+Unisol@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 august-sun <45527070+august-sun@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 august-sun <45527070+august.sun@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 coolboy911 <85909253+coolboy911@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lunarcomets <140772713+lunarcomets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 osjarw <oskariwjarvinen@gmail.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stellar-novas <stellar_novas@riseup.net>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 yglop <95057024+yglop@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Comet.Void <80859724+CometVoid@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 CometVoid <cometsstrile@gmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
## Event Tables
- type: entityTable
id: MeteorSwarmDustEventsTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: GameRuleSpaceDustMinor
- id: GameRuleSpaceDustMajor
- type: entityTable
id: MeteorSwarmSmallChanceEventsTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: GameRuleMeteorSwarmSmall
prob: 0.15
- type: entityTable
id: MeteorSwarmMildTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector
tableId: MeteorSwarmDustEventsTable
- !type:NestedSelector
tableId: MeteorSwarmSmallChanceEventsTable
- type: entityTable
id: BasicMeteorSwarmEventsTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector
tableId: MeteorSwarmDustEventsTable
- id: GameRuleMeteorSwarmSmall
- id: GameRuleMeteorSwarmMedium
- id: GameRuleMeteorSwarmLarge
- id: GameRuleUristSwarm
- id: ImmovableRodSpawn
- type: weightedRandomEntity
id: MeteorSpawnAsteroidWallTable
weights:
MeteorRock: 10
MeteorRockCoal: 5
MeteorRockQuartz: 5
MeteorRockTin: 5
MeteorRockSilver: 2
MeteorRockGold: 2
MeteorRockPlasma: 2
MeteorRockDiamond: 2
MeteorRockUranium: 0.5
MeteorRockBananium: 0.5
MeteorRockBSCrystal: 0.5 # Goobstation
## Event Schedulers
- type: entity
parent: BaseGameRule
id: MeteorSwarmScheduler
components:
- type: GameRule
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 600 # 10 min
minMaxEventTiming:
min: 300 # 5 min - Goob Edit
max: 5400 # 90 min - Goob Edit
scheduledGameRules: !type:NestedSelector
tableId: BasicMeteorSwarmEventsTable
- type: entity
parent: BaseGameRule
id: MeteorSwarmMildScheduler
components:
- type: GameRule
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 600 # 10 min
minMaxEventTiming:
min: 300 # 5 min - Goob Edit
max: 5400 # 90 min - Goob Edit
scheduledGameRules: !type:NestedSelector
tableId: MeteorSwarmMildTable
- type: entity
parent: BaseGameRule
id: KesslerSyndromeScheduler
components:
- type: GameRule
- type: RampingStationEventScheduler
scheduledGameRules: !type:NestedSelector
tableId: BasicMeteorSwarmEventsTable
## Game Rules
- type: entity
parent: BaseGameRule
id: GameRuleMeteorSwarm
abstract: true
components:
- type: GameRule
- type: StationEvent
reoccurrenceDelay: 1
earliestStart: 12
minimumPlayers: 25
- type: MeteorSwarm
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleSpaceDustMinor
components:
- type: StationEvent
weight: 44
earliestStart: 2
minimumPlayers: 0
chaos: # Goobstation
Power: 10
Atmos: 10
- type: MeteorSwarm
announcement: null
announcementSound: null
nonDirectional: true
meteors:
MeteorSpaceDust: 1
waves:
min: 2
max: 3
meteorsPerWave:
min: 3
max: 5
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleSpaceDustMajor
components:
- type: StationEvent
weight: 22
minimumPlayers: 0
chaos: # Goobstation
Power: 25
Atmos: 25
- type: MeteorSwarm
announcement: station-event-space-dust-start-announcement
announcementSound: /Audio/Announcements/attention.ogg
nonDirectional: true
meteors:
MeteorSpaceDust: 1
waves:
min: 2
max: 3
meteorsPerWave:
min: 8
max: 12
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleMeteorSwarmSmall
components:
- type: StationEvent
weight: 18
minimumPlayers: 15
chaos: # Goobstation
Power: 40
Atmos: 40
- type: MeteorSwarm
meteors:
MeteorSmall: 7
MeteorMedium: 3
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleMeteorSwarmMedium
components:
- type: StationEvent
weight: 10
chaos: # Goobstation
Power: 50
Atmos: 50
- type: MeteorSwarm
meteors:
MeteorSmall: 3
MeteorMedium: 6
MeteorLarge: 1
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleMeteorSwarmLarge
components:
- type: StationEvent
weight: 5
chaos: # Goobstation
Power: 60
Atmos: 60
- type: MeteorSwarm
meteors:
MeteorSmall: 2
MeteorMedium: 4
MeteorLarge: 4
- type: entity
parent: GameRuleMeteorSwarm
id: GameRuleUristSwarm
components:
- type: StationEvent
weight: 0.05
- type: MeteorSwarm
announcement: station-event-meteor-urist-start-announcement
announcementSound: /Audio/Announcements/attention.ogg
meteors:
MeteorUrist: 1
waves:
min: 3
max: 3
meteorsPerWave:
min: 10
max: 10
- type: entity
id: ImmovableRodSpawn
parent: BaseGameRule
components:
- type: StationEvent
startAnnouncement: station-event-immovable-rod-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
weight: 3.5
reoccurrenceDelay: 1
duration: 1
earliestStart: 30
minimumPlayers: 25
chaos: # Goobstation
Power: 100
Atmos: 100
- type: ImmovableRodRule
rodPrototypes:
- id: ImmovableRodKeepTiles
prob: 0.94
orGroup: rodProto
- id: ImmovableRodMop
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodShark
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodClown
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodBanana
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodHammer
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodThrongler
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodGibstick
prob: 0.0075
orGroup: rodProto
- id: ImmovableRodWeh
prob: 0.0075
orGroup: rodProto

View File

@@ -0,0 +1,69 @@
# SPDX-FileCopyrightText: 2023 Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# 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-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 keronshb <54602815+keronshb@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 loltart <159829224+loltart@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 loltart <lo1tartyt@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
parent: BaseGameRule
id: Thief
components:
- type: ThiefRule
- type: AntagObjectives
objectives:
- EscapeThiefShuttleObjective
- type: AntagRandomObjectives
sets:
- groups: ThiefBigObjectiveGroups
prob: 0.7
maxPicks: 1
- groups: ThiefObjectiveGroups
maxPicks: 10
maxDifficulty: 2.5
- type: AntagSelection
selectionTime: IntraPlayerSpawn # Goobstation
agentName: thief-round-end-agent-name
definitions:
- prefRoles: [ Thief ]
max: 3
playerRatio: 15
chaosScore: 100 # Goobstation
lateJoinAdditional: true
allowNonHumans: true
multiAntagSetting: NotExclusive
startingGear: ThiefGear
jobBlacklist: [ Chaplain ] # GOOBSTATION
blacklist:
components:
- CommandStaff
components:
- type: Pacified
- type: Thieving
stripTimeReduction: 2
stealthy: true
mindRoles:
- MindRoleThief
briefing:
sound: "/Audio/Misc/thief_greeting.ogg"

View File

@@ -0,0 +1,174 @@
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 yglop <95057024+yglop@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Tim <timfalken@hotmail.com>
# SPDX-FileCopyrightText: 2025 Timfa <timfalken@hotmail.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# tables
- type: entityTable
id: CalmPestEventsTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: SnailMigrationLowPop
- id: CockroachMigration
- id: MouseMigration
- type: entityTable
id: SpicyPestEventsTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: KingRatMigration
- id: SnailMigration
# events
- type: entity
id: MouseMigration
parent: BaseStationEventShortDelay
components:
- type: StationEvent
startAnnouncement: station-event-vent-creatures-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
earliestStart: 15
weight: 6
duration: 30 # DeltaV: was 50, used as a delay now
chaos: # Goobstation
Mess: 10 # there's 15 morbillion mice usually and they're easy to kill
eventType: Neutral # Goobstation
# Goobstation
- type: GameRule
chaosScore: 20
- type: VentCrittersRule
table: !type:GroupSelector # DeltaV: EntityTable instead of spawn entries
children:
- id: SpawnMobMouse
- id: MobMouseCancer
weight: 0.02
# Events always spawn a critter regardless of Probability https://github.com/space-wizards/space-station-14/issues/28480 I added the Rat King to their own event with a player cap.
- type: entity
id: KingRatMigration
parent: BaseStationEventShortDelay
components:
- type: StationEvent
startAnnouncement: station-event-vent-creatures-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
earliestStart: 15
weight: 6
duration: 30 # DeltaV: was 50, used as a delay now
minimumPlayers: 30 # Hopefully this is enough for the Rat King's potential Army (it was not, raised from 15 -> 30)
chaos: # Goobstation
Mess: 10
Hostile: 1 # low chance to spawn rat king
eventType: HostilesSpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: 25
- type: VentCrittersRule
table: !type:GroupSelector # DeltaV: EntityTable instead of spawn entries
children:
# Goobstation
- id: SpawnMobMouse
- id: MobMouseCancer
weight: 0.02
- id: MobLootbug # Goobstation
weight: 0.08
specialEntries:
- id: SpawnPointGhostRatKing
prob: 0.001
- type: entity
id: CockroachMigration
parent: BaseStationEventShortDelay
components:
- type: StationEvent
startAnnouncement: station-event-vent-creatures-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
weight: 6
duration: 30 # DeltaV: was 50, used as a delay now
chaos: # Goobstation
Mess: 15
Hostile: 2
eventType: Neutral # Goobstation
# Goobstation
- type: GameRule
chaosScore: 20
- type: VentCrittersRule
table: !type:GroupSelector # DeltaV: EntityTable instead of spawn entries
children:
- id: MobCockroach
weight: 0.79
- id: MobMothroach
weight: 0.20
- id: MobSquackroach # Goobstation
weight: 0.1
- id: MobLootbug # Goobstation
weight: 0.3
- id: MobMoproach
weight: 0.01
- type: entity
id: SnailMigrationLowPop
parent: BaseStationEventShortDelay
components:
- type: StationEvent
startAnnouncement: station-event-vent-creatures-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
weight: 6
duration: 30 # DeltaV: was 50, used as a delay now
chaos: # Goobstation
Friend: -5
Mess: 5
eventType: Neutral # Goobstation
# Goobstation
- type: GameRule
chaosScore: 20
- type: VentCrittersRule
table: !type:GroupSelector # DeltaV: EntityTable instead of spawn entries
children:
- id: MobSnail
- id: MobSnailSpeed
- id: MobSnailMoth
- type: entity
id: SnailMigration
parent: BaseStationEventShortDelay
components:
- type: StationEvent
startAnnouncement: station-event-vent-creatures-start-announcement
startAudio:
path: /Audio/Announcements/attention.ogg
earliestStart: 15
weight: 6
duration: 30 # DeltaV: was 50, used as a delay now
minimumPlayers: 30
chaos: # Goobstation
Mess: 5
Hostile: 1 # the very low gib snail prob
eventType: Chaotic # Goobstation
# Goobstation
- type: GameRule
chaosScore: 30
- type: VentCrittersRule
table: !type:GroupSelector # DeltaV: EntityTable instead of spawn entries
children:
- id: MobSnail
weight: 0.84
- id: MobSnailSpeed
weight: 0.08
- id: MobSnailMoth
weight: 0.08
# Goobstation
- id: MobSnailInstantDeath
weight: 0.0004

View File

@@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: RandomSentience
parent: BaseGameRule
components:
- type: StationEvent
weight: 6
duration: 1
maxOccurrences: 1 # this event has diminishing returns on interesting-ness, so we cap it
startAudio:
path: /Audio/Announcements/attention.ogg
chaos: # Goobstation
Mess: 5
Friend: -5
eventType: Neutral # Goobstation
# Goobstation
- type: GameRule
chaosScore: 20
- type: RandomSentienceRule
minSentiences: 2
maxSentiences: 5
- type: localizedDataset
id: RandomSentienceEventData
values:
prefix: random-sentience-event-data-
count: 6
- type: localizedDataset
id: RandomSentienceEventStrength
values:
prefix: random-sentience-event-strength-
count: 8

View File

@@ -0,0 +1,673 @@
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Moony <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2022 TekuNut <13456422+TekuNut@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Moony <moony@hellomouse.net>
# SPDX-FileCopyrightText: 2023 Skye <22365940+Skyedra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 coolmankid12345 <55817627+coolmankid12345@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 coolmankid12345 <coolmankid12345@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 moonheart08 <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AJCM <AJCM@tutanota.com>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Adrian16199 <144424013+Adrian16199@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Alex Pavlenko <diraven@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alice "Arimah" Heurlin <30327355+arimah@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 CaasGit <87243814+CaasGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ian <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2024 Jezithyr <jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2024 Joel Zimmerman <JoelZimmerman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Lye <128915833+Lyroth001@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MACMAN2003 <macman2003c@gmail.com>
# SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MureixloI <132683811+MureixloI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 NakataRin <45946146+NakataRin@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 OrangeMoronage9622 <whyteterry0092@gmail.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 PoTeletubby <108604614+PoTeletubby@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rainfall <rainfey0+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Rainfey <rainfey0+github@gmail.com>
# SPDX-FileCopyrightText: 2024 Redfire1331 <125223432+Redfire1331@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Repo <47093363+Titian3@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Stalen <33173619+stalengd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TakoDragon <69509841+BackeTako@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Truoizys <153248924+Truoizys@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Vigers Ray <60344369+VigersRay@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 dffdff2423 <dffdff2423@gmail.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 foboscheshir <156405958+foboscheshir@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lanse12 <cloudability.ez@gmail.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 neutrino <67447925+neutrino-laser@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 redfire1331 <Redfire1331@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 shamp <140359015+shampunj@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 strO0pwafel <153459934+strO0pwafel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stroopwafel <j.o.luijkx@student.tudelft.nl>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 to4no_fix <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 voidnull000 <18663194+voidnull000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# SPDX-FileCopyrightText: 2024 Арт <123451459+JustArt1m@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 August Eymann <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 IrisTheAmped <iristheamped@gmail.com>
# SPDX-FileCopyrightText: 2025 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 SX_7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Southbridge <7013162+southbridge-fur@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 keronshb <54602815+keronshb@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 loltart <159829224+loltart@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 loltart <lo1tartyt@gmail.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
# SPDX-FileCopyrightText: 2025 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
- type: entity
id: BaseGameRule
abstract: true
components:
- type: GameRule
- type: entity
parent: BaseGameRule
id: RespawnDeadRule
components:
- type: RespawnDeadRule
alwaysRespawnDead: true
- type: RespawnTracker
respawnDelay: 10
deleteBody: false
- type: entity
parent: BaseGameRule
id: SubGamemodesRule
components:
- type: SubGamemodes
rules:
- id: Thief
prob: 0.5
- id: Heretic # goob edit
prob: 0.2
- id: Devil # Goob
prob: 0.02
- id: Shadowling # Goob
prob: 0.02
- type: entity
parent: BaseGameRule
id: DummyNonAntagChance
components:
- type: SubGamemodes
rules:
- id: DummyNonAntag
prob: 0.3
- type: entity
id: DeathMatch31
parent: BaseGameRule
components:
- type: DeathMatchRule
rewardSpawns:
- id: HealingToolbox
- id: ClothingOuterArmorBasicSlim
orGroup: loot
- id: ClothingHeadHelmetBasic
orGroup: loot
- id: SoapNT
orGroup: loot
- id: Bola
orGroup: loot
- id: Spear
orGroup: loot
- id: ClothingShoesGaloshes
orGroup: loot
- id: FoodPieBananaCream
orGroup: loot
- id: Stimpack
orGroup: loot
- type: KillCalloutRule
- type: PointManager
- type: RespawnDeadRule
- type: RespawnTracker
respawnDelay: 5
- type: entity
id: InactivityTimeRestart
parent: BaseGameRule
components:
- type: InactivityRule
inactivityMaxTime: 600
roundEndDelay: 10
- type: entity
id: MaxTimeRestart
parent: BaseGameRule
components:
- type: MaxTimeRestartRule
roundMaxTime: 300
roundEndDelay: 10
- type: entity
abstract: true
parent: BaseGameRule
id: BaseNukeopsRule
components:
- type: RandomMetadata #this generates the random operation name cuz it's cool.
nameSegments:
- NamesOperationPrefix
- NamesOperationSuffix
nameFormat: name-format-nuclear-operation
- type: NukeopsRule
- type: RuleGrids
- type: AntagSelection
agentName: nukeops-roundend-name # Goobstation
- type: AntagLoadProfileRule
speciesOverride: Human
speciesOverrideBlacklist:
#Species that do not work with nukies should be included in this list.
#Once the issues are fixed the species should be removed from this list to be enabled.
#Balance concerns are not a valid reason to disable a species, except for high-impact Nukie-specific exploits.
#- Vox
- Yowie # Goobstation
- Plasmaman # EE
- type: AntagObjectives # Goobstation
objectives:
- NukeopsDetonateObjective
- type: entity
parent: BaseNukeopsRule
id: Nukeops
components:
- type: GameRule
minPlayers: 20
- type: LoadMapRule
mapPath: /Maps/_Goobstation/Nonstations/nukieplanet.yml # goob edit
- type: AntagSelection
selectionTime: PrePlayerSpawn
definitions:
- prefRoles: [ NukeopsCommander ]
fallbackRoles: [ Nukeops, NukeopsMedic ]
spawnerPrototype: SpawnPointNukeopsCommander
startingGear: SyndicateCommanderGearFull
unequipOldGear: true
chaosScore: 300 # Goobstation
roleLoadout:
- RoleSurvivalNukie
components:
- type: NukeOperative
- type: RandomMetadata
nameSegments:
- NamesSyndicateElite
nameFormat: name-format-nukie-commander
- type: NpcFactionMember
factions:
- Syndicate
mindRoles:
- MindRoleNukeopsCommander
- prefRoles: [ NukeopsMedic ]
fallbackRoles: [ Nukeops, NukeopsCommander ]
spawnerPrototype: SpawnPointNukeopsMedic
startingGear: SyndicateOperativeMedicFull
unequipOldGear: true
chaosScore: 300 # Goobstation
roleLoadout:
- RoleSurvivalNukie
components:
- type: NukeOperative
- type: RandomMetadata
nameSegments:
- NamesSyndicateNormal
nameFormat: name-format-nukie-agent
- type: NpcFactionMember
factions:
- Syndicate
- type: SurgerySpeedModifier # shitmed
speedModifier: 2
mindRoles:
- MindRoleNukeopsMedic
- prefRoles: [ Nukeops ]
fallbackRoles: [ NukeopsCommander, NukeopsMedic ]
spawnerPrototype: SpawnPointNukeopsOperative
max: 10 # Goobstation / 古布空间站 - 没有限制的核特工
playerRatio: 16 # Goobstation
chaosScore: 300 # Goobstation
startingGear: SyndicateOperativeGearFull
unequipOldGear: true
roleLoadout:
- RoleSurvivalNukie
components:
- type: NukeOperative
- type: RandomMetadata
nameSegments:
- NamesSyndicateNormal
nameFormat: name-format-nukie-operator
- type: NpcFactionMember
factions:
- Syndicate
mindRoles:
- MindRoleNukeops
# Goobstation
- type: entity
abstract: true
parent: BaseGameRule
id: BaseTraitorRuleNoObjectives
components:
- type: TraitorRule
# TODO: codewords in yml
# TODO: uplink in yml
- type: AntagSelection
agentName: traitor-round-end-agent-name
- type: entity
abstract: true
parent: BaseTraitorRuleNoObjectives
id: BaseTraitorRule
components:
- type: AntagRandomObjectives
sets:
- groups: TraitorObjectiveGroups
maxDifficulty: 5
# Goobstation - order swapped since admin verbs use .Last() for some reason
# TODO: Fix that
- type: entity
id: TraitorReinforcement
parent: BaseTraitorRuleNoObjectives # Goobstation
components:
- type: TraitorRule
giveUplink: false
giveCodewords: false # It would actually give them a different set of codewords than the regular traitors, anyway
giveBriefing: false
- type: AntagSelection
selectionTime: PostPlayerSpawn # Goobstation
definitions:
- prefRoles: [ Traitor ]
blacklist: # Goobstation
components:
- CommandStaff
mindRoles:
- MindRoleTraitorReinforcement
- type: entity
parent: BaseTraitorRule
id: Traitor
components:
- type: GameRule
minPlayers: 5
- type: AntagSelection
selectionTime: IntraPlayerSpawn # Goobstation
definitions:
- prefRoles: [ Traitor ]
max: 8
playerRatio: 10
chaosScore: 150 # Goobstation
blacklist:
components:
- CommandStaff # Goobstation
- AntagImmune
- Changeling # Goobstation
lateJoinAdditional: true
mindRoles:
- MindRoleTraitor
- type: entity
id: Revolutionary
parent: BaseGameRule
components:
- type: GameRule
minPlayers: 15
chaosScore: 1000 # Goobstation - intentionally not per-antag
- type: RevolutionaryRule
- type: AntagSelection
selectionTime: IntraPlayerSpawn # Goobstation
definitions:
- prefRoles: [ HeadRev ]
max: 3
playerRatio: 15
blacklist:
components:
- CommandStaff # Goobstation
jobBlacklist: [ Mime ] # Goobstation
briefing:
text: head-rev-role-greeting
color: CornflowerBlue
sound: "/Audio/Ambience/Antag/headrev_start.ogg"
startingGear: HeadRevGear
components:
- type: Revolutionary
- type: HeadRevolutionary
mindRoles:
- MindRoleHeadRevolutionary
- type: entity
id: Sandbox
parent: BaseGameRule
components:
- type: SandboxRule
- type: entity
id: Secret
parent: BaseGameRule
components:
- type: SecretRule
# TODO: merg goob and upstream wizards
#- type: entity
# abstract: true
# parent: BaseGameRule
# id: BaseWizardRule
# components:
# - type: AntagObjectives
# objectives:
# - WizardSurviveObjective
# - WizardDemonstrateObjective
# - type: LoadMapRule
# gridPath: /Maps/Shuttles/wizard.yml
# - type: RuleGrids
# - type: AntagSelection
# - type: AntagLoadProfileRule
# speciesOverride: Human
#- type: entity
# parent: BaseWizardRule
# id: Wizard
# components:
# - type: GameRule
# minPlayers: 10
# - type: AntagSelection
# agentName: wizard-round-end-name
# selectionTime: PrePlayerSpawn
# definitions:
# - prefRoles: [ Wizard ]
# max: 1
# playerRatio: 1
# spawnerPrototype: SpawnPointGhostWizard
# roleLoadout:
# - RoleSurvivalExtended
# briefing:
# text: wizard-role-greeting
# color: Turquoise
# # TODO: Need Wizard Start sound
# #sound: "/Audio/Ambience/Antag/wizard_start.ogg"
# startingGear: WizardBlueGear
# # TODO: WizardComp as needed
# components:
# - type: NpcFactionMember
# factions:
# - Wizard
# - type: RandomMetadata
# nameSegments:
# - names_wizard_first
# - names_wizard_last
# mindRoles:
# - MindRoleWizard
- type: entity
id: Zombie
parent: BaseGameRule
components:
- type: GameRule
minPlayers: 20
delay:
min: 600
max: 900
# Goobstation
chaosScore: 1200
# Goobstation
- type: Tag
tags:
- LoneRunRule
- type: ZombieRule
- type: AntagSelection
definitions:
- prefRoles: [ InitialInfected ]
max: 4
playerRatio: 15
jobBlacklist: [ Chaplain ] # Goobstation
blacklist:
components:
- CommandStaff # Goobstation
- ZombieImmune
- AntagImmune
briefing:
text: zombie-patientzero-role-greeting
color: Plum
sound: "/Audio/Ambience/Antag/zombie_start.ogg"
components:
- type: PendingZombie
- type: ZombifyOnDeath
- type: IncurableZombie
- type: InitialInfected
mindRoles:
- MindRoleInitialInfected
# This rule makes the chosen players unable to get other antag rules, as a way to prevent metagaming job rolls.
# Put this before antags assigned to station jobs, but after non-job antags (NukeOps/Wiz).
- type: entity
id: DummyNonAntag
parent: BaseGameRule
components:
- type: GameRule
minPlayers: 5
- type: AntagSelection
selectionTime: IntraPlayerSpawn # Pre-selection before jobs; assignment doesn't really matter though, we only care about the pre-selection to block other antags.
removeUponFailedSpawn: false
definitions:
- prefRoles: [ InitialInfected, Traitor, Thief, HeadRev ]
max: 2
playerRatio: 30
# event schedulers
# goob edit - separate event schedulers
- type: entityTable
id: BasicGameRulesTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector
tableId: BasicCalmEventsTable
- !type:NestedSelector
tableId: BasicAntagEventsTable
- !type:NestedSelector
tableId: CargoGiftsTable
- !type:NestedSelector
tableId: CalmPestEventsTable
- !type:NestedSelector
tableId: SpicyPestEventsTable
- type: entityTable
id: BasicGameRulesTableNoAntag
table: !type:AllSelector
children:
- !type:NestedSelector
tableId: BasicCalmEventsTable
- !type:NestedSelector
tableId: CargoGiftsTable
- !type:NestedSelector
tableId: CalmPestEventsTable
- !type:NestedSelector
tableId: SpicyPestEventsTable
- type: entityTable
id: AllGameRulesTable
table: !type:AllSelector
children:
- !type:NestedSelector
tableId: BasicGameRulesTableNoAntag
- !type:NestedSelector
tableId: BasicAntagEventsTable
- type: entityTable
id: SpaceTrafficControlTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector
tableId: UnknownShuttlesFriendlyTable
- !type:NestedSelector
tableId: UnknownShuttlesFreelanceTable
- !type:NestedSelector
tableId: UnknownShuttlesHostileTable
- type: entity
id: BasicStationEventScheduler
parent: BaseGameRule
components:
- type: BasicStationEventScheduler
scheduledGameRules: !type:NestedSelector
tableId: BasicGameRulesTable
- type: entity
id: AntagStationEventScheduler
parent: BaseGameRule
components:
- type: BasicStationEventScheduler
scheduledGameRules: !type:NestedSelector
tableId: BasicAntagEventsTable
minMaxEventTiming:
min: 600
max: 900
- type: entity
id: RampingStationEventScheduler
parent: BaseGameRule
components:
- type: RampingStationEventScheduler
scheduledGameRules: !type:NestedSelector
tableId: BasicGameRulesTable
- type: entity
id: BasicStationEventSchedulerNoAntag
parent: BaseGameRule
components:
- type: BasicStationEventScheduler
scheduledGameRules: !type:NestedSelector
tableId: BasicGameRulesTableNoAntag
# goob edit end
- type: entity
id: SpaceTrafficControlEventScheduler # iff we make a selector for EntityTables that can respect StationEventComp restrictions, or somehow impliment them otherwise in said tables,
parent: BaseGameRule # we can remerge this with the other schedulers, but it will silently fail due to that limitation without a separate scheduler to balance atm.
components:
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 2700 # 45 mins #shows up like half way through shift.
minMaxEventTiming:
min: 1200 # 20 mins
max: 7200 # 120 mins # you probably arent getting a second visitor shuttle in one round, but it is possible.
scheduledGameRules: !type:NestedSelector
tableId: SpaceTrafficControlTable
- type: entity
id: SpaceTrafficControlFriendlyEventScheduler
parent: BaseGameRule
components:
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 1200 # 20 mins
minMaxEventTiming:
min: 600 # 10 mins
max: 1800 # 30 mins
scheduledGameRules: !type:NestedSelector
tableId: UnknownShuttlesFriendlyTable
# variation passes
- type: entity
id: BasicRoundstartVariation
parent: BaseGameRule
components:
- type: RoundstartStationVariationRule
rules:
- id: BasicPoweredLightVariationPass
- id: BasicTrashVariationPass
- id: SolidWallRustingVariationPass
- id: ReinforcedWallRustingVariationPass
- id: BasicPuddleMessVariationPass
prob: 0.99
orGroup: puddleMess
- id: BloodbathPuddleMessVariationPass
prob: 0.01
orGroup: puddleMess
- id: SmugglerStashVariationPass
prob: 0.90
- id: SolarPanelDamageVariationPass
- id: SolarPanelEmptyVariationPass
- id: BasicDecalDirtVariationPass
- id: BasicDecalGraffitiVariationPass
- id: BasicDecalBrunsVariationPass
prob: 0.50
orGroup: monospaceDecals
- id: BasicDecalDirtMonospaceVariationPass
prob: 0.50
orGroup: monospaceDecals

View File

@@ -0,0 +1,313 @@
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 LankLTE <135308300+LankLTE@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 fishbait <gnesse@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Shuttle Game Rule Tables -- If you dont add your rules to these they wont be used by the games schedulers.
- type: entityTable
id: UnknownShuttlesFriendlyTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: UnknownShuttleCargoLost
- id: UnknownShuttleTravelingCuisine
- id: UnknownShuttleDisasterEvacPod
- id: UnknownShuttleHonki
- id: UnknownShuttleFrontierProspector #Goobstation - Salvage shuttle event
- id: UnknownShuttleNTQuark
- id: UnknownShuttleCruiser
- id: UnknownShuttleCryptid
- id: UnknownShuttleEternal
- id: UnknownShuttleFlatline
- id: UnknownShuttleGym
- id: UnknownShuttleNTIncorporation
- id: UnknownShuttleJoe
- id: UnknownShuttleLambordeere
- id: UnknownShuttleMeatZone
- id: UnknownShuttleMicroshuttle
- id: UnknownShuttleSpacebus
- id: UnknownShuttleAlienTourist # Goobstation
- type: entityTable
id: UnknownShuttlesFreelanceTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: UnknownShuttleSyndieEvacPod
- type: entityTable
id: UnknownShuttlesHostileTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: LoneOpsSpawn
#- id: UnknownShuttleManOWar # Goob - Nuke the man-o-war
- id: UnknownShuttleInstigator
# Shuttle Game Rules
- type: entity
abstract: true
parent: BaseGameRule
id: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
startAudio:
path: /Audio/Announcements/attention.ogg
weight: 4 #Common, but not every round
reoccurrenceDelay: 30
earliestStart: 20 # Goobstation
duration: 1
maxOccurrences: 1 # should be the same as [copies] in shuttle_incoming_event.yml
chaos: # Goobstation
Friend: -20
Power: -10 # can be salvaged for power
eventType: FriendlySpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: -140
- type: RuleGrids
- type: LoadMapRule
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleCargoLost
components:
- type: StationEvent
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: ShuttleCargoLost
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleTravelingCuisine
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: TravelingCuisine
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleDisasterEvacPod
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 3 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: DisasterEvacPod
# The power of 3 clowns proved too strong for the players and may need to be 1984'ed. Replace this with a more engaging clown shuttle.
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleHonki
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2
chaos: # Goobstation
Friend: -10
Mess: 20
eventType: Chaotic # Goobstation
# Goobstation
- type: GameRule
chaosScore: -80
- type: LoadMapRule
preloadedGrid: Honki
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleSyndieEvacPod
components:
- type: StationEvent
startAnnouncement: null # It should be silent.
weight: 4 # lower because weird freelance roles
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: SyndieEvacPod
- type: entity
id: UnknownShuttleNTQuark
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null # It should be silent.
weight: .5 # Hopefully this is uncommon enough, it needs to be uncommon enough that people wont waste time metaknowledging it.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly.
minimumPlayers: 25
- type: LoadMapRule
preloadedGrid: NTQuark
- type: entity
id: UnknownShuttleCruiser
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
chaos: # Goobstation
Friend: -60
eventType: FriendlySpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: -150
- type: LoadMapRule
preloadedGrid: Cruiser
- type: entity
id: UnknownShuttleCryptid
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Cryptid
- type: entity
id: UnknownShuttleEternal
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Eternal
- type: entity
id: UnknownShuttleFlatline
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
chaos: # Goobstation
Friend: -20
Medical: -20
eventType: FriendlySpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: -140
- type: LoadMapRule
preloadedGrid: Flatline
- type: entity
id: UnknownShuttleGym
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 3 # Its just a big ship, so it needs to be rarer to be interesting.
- type: LoadMapRule
preloadedGrid: Gym
- type: entity
id: UnknownShuttleNTIncorporation
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly. (5-6)
chaos: # Goobstation
Friend: -50
eventType: FriendlySpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: -150
- type: LoadMapRule
preloadedGrid: NTIncorporation
- type: entity
id: UnknownShuttleInstigator
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags
weight: 1 # lower because antags.
earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly (3) and because antags
chaos: # Goobstation
# holy mini-nukies
Hostile: 80
Death: 100
Medical: 100
eventType: HostilesSpawn # Goobstation
# Goobstation
- type: GameRule
chaosScore: 900
- type: LoadMapRule
preloadedGrid: Instigator
- type: entity
id: UnknownShuttleJoe
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Joe
- type: entity
id: UnknownShuttleLambordeere
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Lambordeere
# Goob - Nuke the man-o-war
#- type: entity
# id: UnknownShuttleManOWar
# parent: BaseUnknownShuttleRule
# components:
# - type: StationEvent
# startAnnouncement: station-event-unknown-shuttle-incoming #Leaving this one because theyre like primitives and its funnier
# weight: 1 # lower because antags
# earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly. (4) & antags
# chaos: # Goobstation
# # it's 4 free agent barely-equipped dudes
# Hostile: 60
# Medical: 20
# Death: 20
# - type: LoadMapRule
# preloadedGrid: ManOWar
- type: entity
id: UnknownShuttleMeatZone
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Meatzone
- type: entity
id: UnknownShuttleMicroshuttle
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 4
maxOccurrences: 4
- type: LoadMapRule
preloadedGrid: Microshuttle
- type: entity
id: UnknownShuttleSpacebus
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Spacebus

View File

@@ -0,0 +1,194 @@
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Base
- type: entity
id: BaseVariationPass
parent: BaseGameRule
abstract: true
components:
- type: StationVariationPassRule
# Actual rules
- type: entity
id: BasicPoweredLightVariationPass
parent: BaseVariationPass
components:
- type: PoweredLightVariationPass
- type: entity
id: SolidWallRustingVariationPass
parent: BaseVariationPass
components:
- type: WallReplaceVariationPass
- type: EntityReplaceVariationPass
entitiesPerReplacementAverage: 50
entitiesPerReplacementStdDev: 10
replacements:
- id: WallSolidRust
- type: entity
id: ReinforcedWallRustingVariationPass
parent: BaseVariationPass
components:
- type: ReinforcedWallReplaceVariationPass
- type: EntityReplaceVariationPass
entitiesPerReplacementAverage: 50
entitiesPerReplacementStdDev: 10
replacements:
- id: WallReinforcedRust
- type: entity
id: BasicTrashVariationPass
parent: BaseVariationPass
components:
- type: EntitySpawnVariationPass
tilesPerEntityAverage: 35
tilesPerEntityStdDev: 4
entities:
- id: RandomSpawner
- type: entity
id: BasicDecalDirtVariationPass
parent: BaseVariationPass
components:
- type: EntitySpawnVariationPass
tilesPerEntityAverage: 80
tilesPerEntityStdDev: 5
entities:
- id: DecalSpawnerDirtWide
- type: entity
id: BasicDecalGraffitiVariationPass
parent: BaseVariationPass
components:
- type: EntitySpawnVariationPass
tilesPerEntityAverage: 120
tilesPerEntityStdDev: 5
entities:
- id: DecalSpawnerGraffiti
- type: entity
id: BasicDecalBrunsVariationPass
parent: BaseVariationPass
components:
- type: EntitySpawnVariationPass
tilesPerEntityAverage: 120
tilesPerEntityStdDev: 10
entities:
- id: DecalSpawnerBurns
- type: entity
id: BasicDecalDirtMonospaceVariationPass
parent: BaseVariationPass
components:
- type: EntitySpawnVariationPass
tilesPerEntityAverage: 80
tilesPerEntityStdDev: 10
entities:
- id: DecalSpawnerDirtMonospace
- type: weightedRandomFillSolution
id: RandomFillTrashPuddle
fills:
- quantity: 80
weight: 5
reagents:
- Vomit
- InsectBlood
- WeldingFuel
- Mold
- quantity: 55
weight: 4
reagents:
- PlantBGone
- Potassium # :trollface:
- VentCrud
- Carbon
- Hydrogen
- Fat
- SpaceGlue
- Sulfur
- Acetone
- Bleach
- quantity: 40
weight: 3
reagents:
- Blood
- CopperBlood
- Slime
- quantity: 25
weight: 1
reagents:
- Omnizine
- Desoxyephedrine
- Napalm
- Radium
- Gold
- Silver
- Sodium
- JuiceThatMakesYouWeh
- type: weightedRandomFillSolution
id: RandomFillTrashPuddleBloodbath
fills:
- quantity: 80
weight: 1
reagents:
- Blood
- type: entity
id: BasicPuddleMessVariationPass
parent: BaseVariationPass
components:
- type: PuddleMessVariationPass
randomPuddleSolutionFill: RandomFillTrashPuddle
- type: entity
id: BloodbathPuddleMessVariationPass
parent: BaseVariationPass
components:
- type: PuddleMessVariationPass
tilesPerSpillAverage: 150
tilesPerSpillStdDev: 10
randomPuddleSolutionFill: RandomFillTrashPuddleBloodbath
- type: entity
id: CutWireVariationPass
parent: BaseVariationPass
components:
- type: CutWireVariationPass
wireCutChance: 0.01
maxWiresCut: 20
blacklist:
components:
- ParticleAcceleratorControlBox
- type: entity
id: SolarPanelDamageVariationPass
parent: BaseVariationPass
components:
- type: SolarPanelReplaceVariationPass
- type: EntityReplaceVariationPass
entitiesPerReplacementAverage: 30
entitiesPerReplacementStdDev: 5
replacements:
- id: SolarPanelBroken
- type: entity
id: SolarPanelEmptyVariationPass
parent: BaseVariationPass
components:
- type: SolarPanelReplaceVariationPass
- type: EntityReplaceVariationPass
entitiesPerReplacementAverage: 30
entitiesPerReplacementStdDev: 5
replacements:
- id: SolarAssembly