# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com> # SPDX-FileCopyrightText: 2022 Moony # SPDX-FileCopyrightText: 2022 Paul Ritter # 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 # SPDX-FileCopyrightText: 2023 Skye <22365940+Skyedra@users.noreply.github.com> # SPDX-FileCopyrightText: 2023 coolmankid12345 <55817627+coolmankid12345@users.noreply.github.com> # SPDX-FileCopyrightText: 2023 coolmankid12345 # SPDX-FileCopyrightText: 2023 moonheart08 # SPDX-FileCopyrightText: 2024 AJCM # 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 # SPDX-FileCopyrightText: 2024 Aidenkrz # SPDX-FileCopyrightText: 2024 Alex Pavlenko # 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 # SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 EmoGarbage404 # SPDX-FileCopyrightText: 2024 Eoin Mcloughlin # 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 # SPDX-FileCopyrightText: 2024 Jezithyr # SPDX-FileCopyrightText: 2024 Joel Zimmerman # SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 Kara # 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 # SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 Mervill # 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 # SPDX-FileCopyrightText: 2024 PJBot # SPDX-FileCopyrightText: 2024 Pieter-Jan Briers # SPDX-FileCopyrightText: 2024 Piras314 # SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 Plykiya # 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 # SPDX-FileCopyrightText: 2024 Rainfey # 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 # SPDX-FileCopyrightText: 2024 Vasilis # 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 # SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org> # SPDX-FileCopyrightText: 2024 dffdff2423 # SPDX-FileCopyrightText: 2024 eoineoineoin # 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 # SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> # SPDX-FileCopyrightText: 2024 metalgearsloth # 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 # SPDX-FileCopyrightText: 2024 redfire1331 # 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 # 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 # 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 # 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 # SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 Ilya246 # SPDX-FileCopyrightText: 2025 IrisTheAmped # SPDX-FileCopyrightText: 2025 MilenVolf <63782763+MilenVolf@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 PunishedJoe # SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 SX-7 # SPDX-FileCopyrightText: 2025 SX_7 # SPDX-FileCopyrightText: 2025 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 Solstice # SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter # SPDX-FileCopyrightText: 2025 Southbridge <7013162+southbridge-fur@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 Tayrtahn # 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 # SPDX-FileCopyrightText: 2025 keronshb <54602815+keronshb@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 loltart <159829224+loltart@users.noreply.github.com> # SPDX-FileCopyrightText: 2025 loltart # SPDX-FileCopyrightText: 2025 pheenty # 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