Skip to content

The End of Antag Scaling - #5278

Merged
walksanatora merged 236 commits into
ss14Starlight:starlight-devfrom
wonderfulnewworld:antags/the-luminescent-surface-beyond-the-high-waters-outside-the-boundaries-of-hell
Jul 31, 2026
Merged

The End of Antag Scaling#5278
walksanatora merged 236 commits into
ss14Starlight:starlight-devfrom
wonderfulnewworld:antags/the-luminescent-surface-beyond-the-high-waters-outside-the-boundaries-of-hell

Conversation

@wonderfulnewworld

@wonderfulnewworld wonderfulnewworld commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Short description

"It was a long journey, but now it is time."

image

On Starlight, merge with #4958. Our downstreams are free to not take this PR, since it's pretty catered for SL.

Implements the new features from the Antag Selection rewrite and tweaks Antag Scaling.

Why we need to add this

Six months ago, I made this pr, addressing an oversight in Wizden's antag scaling; namely, that it was hard capped to stop scaling at 80 players, matching their servers' player cap.

In the half year since, a lot of things have happened. I've adjusted the scaling, tweaked secret, added new game presets, and generally did my best to observe how my changes impacted Starlight. I saw Security mains get fatigued and quit the server, I saw Alpha's culture fundamentally change, and I bore witness to many, many arguments over antag scaling. I myself was harassed to the point I considered quitting SS14 all together. The weight and stress of all of this is debilitating at times.

Say what you will about Alpha being conversational, situational, MRP, LRP, NRP, PVP. Say what you will about Starlight changing.

At the end of the day, no matter what you do, you'll always make someone upset. You'll have the players who desperately want this game to be non-stop action, but you'll also have the players who will diametrically oppose anything that gets in the way of their roleplay.

And personally, I don't think catering to either of those is healthy for the server. We've seen the extremes of both, with 30 antags rolling sometimes and turning the station into their playground, but also, on the flip side, when antags rolled in such small numbers that Security outnumbered all of them and they were too scared to take any actions at all, in turn leading to people getting bored and resorting to... less than savory things. Neither side is right, and both have some ground they need to give, so that they can at the very least find peace somewhere in the middle.

Neither side will ever find peace unless they agree to compromise.

This is my attempt at finding that compromise. I only ask that people remain respectful and collected in their discussions of it.

Please.

Controversial changes

This section's mainly here to address the biggest points of contention with this PR.

Mining Specialists

Vampires are pretty cut and dry for them; they die in space. It's quite possibly the worst pairing you can get.

Changeling, on the other hand, is a bit more nuanced. Yes, you can "technically" play Changeling well as a Mining Specialist, but in reality, one of three things will happen.

  • You will never go mining. It's very risky, being all the way out there without a food source; and in doing so, you effectively starve the station of 1 of the 3 miners. Miners of other antags don't have this problem to this extent; Traitors, Thieves, and SELF can use it to stash stuff, Revs and Cultists can set up an off station base, Devils can at the very least offer deals to the other miners, and Initial Infecteds can harvest corpses there from the mobs, to infect later. Changelings can do none of these things.
  • You will kill the rest of Mining, and will bring their bodies back. At this point, the damage is done, as you've effectively starved the station of resources for half an hour, if not more.
  • You will kill the rest of Mining, and will not bring their bodies back. This is a rulebreak, but one that's incredibly easy for newer players to do. It's essentially a trap for new player Changelings who don't know they can't hide bodies, as they're likely to come off of it with a note. On top of this, it starves the station more permanently, which is even worse than the prior case.

Roboticists

This one's pretty straight forward; nobody else on the station save for RD and the Captain has as unrestricted access to Cyborgs as Roboticists. Hell, they can even pre-FREEmag the chassis, although I don't think this actually "erases" the laws due to how borg chassis selection works. Still, they're unequivocally trusted by borgs, and are also in a position to just outright arm them with guns due to them having access to the exofab too. It's both too easy and too likely to lead to a debate on a cyborg being armed with guns.

Chemists

Easiest decision of the bunch; as a Chem II, you dump all the nitrogen out, dump anything useful out, then destroy the machines, and Zombies have essentially won unless they all get killed quickly.

The Devil

The second most controversial change in this PR, already toned down twice from what I originally wanted it to be. Now, Paramedic's whatever, it's a mostly harmless role that can't use guns, and is encouraged to talk to people. But that's not the one you care about, right?

The Head of Personnel sits in one room the entire shift. Their entire game is paperwork and talking to people. They're in charge of a department that realistically never calls on them. In that sense, they are simultaneously the most "free" member of Command, but also the most "restricted", in that they're always expected to be in one room. So why let HoP roll devil?

I think it makes for a very interesting roleplay opportunity. Someone who nobody will immediately question discussing paperwork with others, and somebody who the rest of Command doesn't really pay attention to. I think they're in a perfect spot to slip under the radar, and they're not encouraged to blow their cover either; the Devil just wants souls; they don't want to kill people, that's bad for business. In that sense, their goals align quite well with the station's...

As for IAA, they're mostly powerless. They already have very little to do on the average shift, and given their role as a Lawyer sometimes, I find them being able to roll Devil quite fitting. They can't force security to free a prisoner, security doesn't even have to listen to them, and since Devils can't use guns, having security access really doesn't offer them much either. Compare this to the Paramedic, who'll get security access anyways, and it's honestly even weaker than them. But they're also in a very unassuming spot to make a great deal with someone...

Closing thoughts

It took me four weeks to finish porting the Antag Selection rewrite from Wizden. It was a gargantuan task that I sacrificed so much of my time for, time that I could've used to apply for jobs, or enjoy my free time. But I chose to give it up, because I know that my antag changes all those months ago affected a lot of people, for better, or for worse.

And if my changes impacted you negatively, then, from the bottom of my heart, I sincerely apologize to you. I'm sorry I made the game worse in your eyes, I'm sorry I made it unplayable for you. I'm sorry I ruined your old home, and made all your friends leave. I'm sorry I ruined Starlight. I'm sorry, for everything.

I only want people to enjoy this game, as I have, and for it to be a place where others can relax after a long day of work or school. A place they can call, not necessarily a home, but, a place of respite.

I know a lot of people won't like these changes, but I urge you to look at it from the other side, and see if you can at least understand their way of thinking.

Don't insult and harass each other, please. Everyone just wants a game they can play and enjoy at the end of the day, and all of this bitterness and resentment only polarizes people further.

Please, be nice to each other.

Please.

Checks

  • I do not require assistance to complete the PR.
  • Before posting/requesting review of a PR, I have verified that the changes work.
  • I have added screenshots/videos of the changes, or this PR does not change in-game mechanics.
  • I affirm that my changes are licensed under the MIT License and grant permission for use in this repository under its conditions.

Changelog
🆑 wonderfulnewworld

  • add: Added Dynamic and DynamicLP to Alpha and Beta's Secret pools respectively.
  • add: The Head of Personnel, Internal Affairs Agents, and Paramedics can now roll Devil.
  • add: Initial Infecteds now scale based on player ratio, meaning there should be less of them on Beta. Alpha is always above the number where 6 would spawn anyways, so this doesn't affect Alpha.
  • remove: Mining Specialists can no longer roll Vampire and Changeling.
  • remove: Roboticists can no longer roll SELF.
  • remove: Chemists can no longer roll Initial Infected.
  • tweak: Reduced scaling for Traitors, Vampires, Changelings, Thieves, SELF, Head Revolutionaries, and Devils by ~20% across the board, dependent on their specific gamemodes/subgamemodes.
  • tweak: Reduced TraitorLess, Nukeops, Revolutionary, and Cosmic Cult chance in Dynamic, giving it to Vampire instead.
  • tweak: Slightly increased VampireLess and SLChangelingLess's Dynamic Cost.
  • tweak: Slightly lowered SLDynamic's variant budget threshold.
  • tweak: Dynamic gets budget slighly less quickly.
  • tweak: Slightly decreased Dynamic's maximum budget.
  • tweak: Ninjas are slightly less common in Dynamic.
  • tweak: Slightly decreased spawn chance of midrounds (both types) in dynamic.
  • tweak: There can now be 1 more Devil.

Princess-Cheeseballs and others added 30 commits June 28, 2026 10:57
…thout breaking the game. Add Test For All Game Presets. (#43191)

* "fixes" it but the logic just needs to be rewritten.

* init commit

* almost there

* commit

* Scrounger

* actually spawn the ghost roles, and better assertion behavior!

* update the warning because I know someone is gonna touch it

* hhng

* fix Traitor assignment

* Prune the list and ignore dummy antags

* game test

* skip dummy antag

* crisaskjfshj

* It's time, it's fucking time

* fixing the secret gamemode bug once and for all.

* docs

* burger

* dssdgdsgds

* so hungry for test fails

* job whitelist

* review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
# Conflicts:
#	Content.IntegrationTests/Tests/GameRules/AntagPreferenceTest.cs
#	Content.IntegrationTests/Tests/Station/StationJobsTest.cs
#	Content.Server/Administration/Managers/BanManager.cs
#	Content.Server/Antag/AntagMultipleRoleSpawnerSystem.cs
#	Content.Server/Antag/AntagSelectionSystem.API.cs
#	Content.Server/Antag/AntagSelectionSystem.cs
#	Content.Server/Antag/Components/AntagSelectionComponent.cs
#	Content.Server/GameTicking/Rules/AntagLoadProfileRuleSystem.cs
#	Content.Server/GameTicking/Rules/GameRuleSystem.cs
#	Content.Server/Objectives/ObjectivesSystem.cs
#	Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs
#	Content.Shared/Roles/Jobs/SharedJobSystem.cs
#	Resources/Prototypes/GameRules/events.yml
#	Resources/Prototypes/GameRules/roundstart.yml
#	Resources/Prototypes/GameRules/subgamemodes.yml
#	Resources/Prototypes/Roles/Antags/changeling.yml
#	Resources/Prototypes/Roles/Antags/dragon.yml
#	Resources/Prototypes/Roles/Antags/silicon.yml
#	Resources/Prototypes/Roles/Antags/xenoborgs.yml
#	Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml
#	Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml
#	Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml
#	Resources/Prototypes/Roles/Jobs/Science/borg.yml
* init

* stuff

* to

* BeforeEvents

* comment

* docs

* Update Content.Shared/Mind/Components/MindContainerComponent.cs

Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>

---------

Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
@wonderfulnewworld

Copy link
Copy Markdown
Contributor Author

time to resolve all this

@Conflee

Conflee commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

the final push to victory

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jul 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

…n-14 into antags/the-luminescent-surface-beyond-the-high-waters-outside-the-boundaries-of-hell

# Conflicts:
#	Resources/Prototypes/GameRules/roundstart.yml
#	Resources/Prototypes/GameRules/subgamemodes.yml
#	Resources/Prototypes/Roles/Antags/changeling.yml
#	Resources/Prototypes/Roles/Antags/zombie.yml
#	Resources/Prototypes/_Starlight/CosmicCult/antagonists.yml
#	Resources/Prototypes/_Starlight/CosmicCult/game_presets.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/abductor.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/changeling.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/devil.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/self.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/thief.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/traitor.yml
#	Resources/Prototypes/_Starlight/GameRules/Antags/vampire.yml
#	Resources/Prototypes/_Starlight/GameRules/dynamic_rules.yml
#	Resources/Prototypes/_Starlight/Roles/Antags/base.yml
#	Resources/Prototypes/_Starlight/Roles/Antags/devil.yml
#	Resources/Prototypes/_Starlight/Roles/Antags/self.yml
#	Resources/Prototypes/_Starlight/Roles/Antags/slchangeling.yml
#	Resources/Prototypes/_Starlight/Roles/Antags/vampire.yml
wonderfulnewworld added a commit to wonderfulnewworld/luminous-skylight-station that referenced this pull request Jul 31, 2026
## Short description
_"The fact that you've arrived here-rather, to this save point- at this
moment in your life, is nothing short of a miracle. It delights me to no
end."_

<img width="2560" height="1147" alt="image"
src="https://github.com/user-attachments/assets/46eb49fa-e051-4417-9e7d-36b4403c84eb"
/>

Ported Wizden
[#43191](space-wizards/space-station-14#43191),
completely rewriting antag selection system to stop it from spawning
entities in nullspace.

There'll be a [part
2](ss14Starlight#5278) to this
PR, and on Starlight, they should be merged together, but our
downstreams are free to not take the second one, since it features
balance changes.

A port of Wizden
[#43191](space-wizards/space-station-14#43191),
[#43912](space-wizards/space-station-14#43912),
[#43692](space-wizards/space-station-14#43962),
[#43757](space-wizards/space-station-14#43757),
and
[#44115](space-wizards/space-station-14#44115).

Other necessary PRs ported for this:
- Wizden
[#43020](space-wizards/space-station-14#43020)
- Wizden
[#43033](space-wizards/space-station-14#43033)
- Wizden
[#43735](space-wizards/space-station-14#43735)
- Wizden
[#43737](space-wizards/space-station-14#43737)
- Wizden
[#43774](space-wizards/space-station-14#43774)
- Wizden
[#43890](space-wizards/space-station-14#43890)
- Moff Station
[ss14Starlight#1404](moff-station/moff-station-14#1404)
(Wizard Duel port to the new selection system)

I'll admit that I used AI to help me with this, because I have no shot
of understanding the C# of this on my own.

## Why we need to add this
Pretty much every reason Cheeseballs says in the original PR,
space-wizards/space-station-14#43191. Antag
selection system's hard to read, harder to tweak, and led to a ton of
redundant duplicates.

It has been severely cleaned up.

This took 4 weeks to port, had to clean up a lot of tests.

## Checks
- [ ] I do not require assistance to complete the PR.
- [ ] Before posting/requesting review of a PR, I have verified that the
changes work.
- [X] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [X] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

**Changelog**
:cl: wonderfulnewworld, Princess-Cheeseball, DIMMoon1, Velken, ScarKy0,
psykana, KeTuFaisPiKiNut, neomoth, Tayrtahn, Sparlight
- tweak: You can now late join as Traitors, Head Revs, Cosmic Cultists,
Devils, and Initial Infected.
- tweak: Thieves, Vampires, Changelings, SELF Agents, Head Revs, Cosmic
Cultists, and Devils now roll 4-8 minutes after round start, like
Traitors.
- tweak: Reinforcement Traitors now get codewords.
- tweak: Brighteyes now use different events for roundstart and midround
spawns.
- tweak: When there are at least 30 players online, 60% of unreadied
players are now counted towards GameRule minPlayers and 25% of
unreadied/spectator players are now counted towards antag playerRatios.
- tweak: Late join antag odds have been lowered to a fixed 50%.
- tweak: You will now follow ghost roles when they spawn in if you were
following them before they spawned.
- tweak: Survival and Kessler Syndrome now have a minimum player count
of 15.
- tweak: Non-humanoids with hands can now be Vampires and Wizard
Duelists.
- tweak: ERT Chaplains will use their shuttle now.
- fix: Antags should no longer roll less than they're supposed to.
- fix: Terror Spiders now actually spawn in vents.
- fix: Xenos will no longer roll antags.

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Dmitry <57028746+DIMMoon1@users.noreply.github.com>
Co-authored-by: KeTuFaisPiKiNut <85769816+ketufaispikinut@users.noreply.github.com>
Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: psykana <36602558+psykana@users.noreply.github.com>
Co-authored-by: neomoth <69372252+neomoth@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
@github-actions github-actions Bot added Changes: No C# size/M and removed S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted size/L labels Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@wonderfulnewworld, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 25 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 9a051a49-9d7f-4bde-8645-bb70708759ad

📥 Commits

Reviewing files that changed from the base of the PR and between 52eb3a6 and 6e2e21d.

📒 Files selected for processing (23)
  • Resources/Prototypes/GameRules/roundstart.yml
  • Resources/Prototypes/GameRules/subgamemodes.yml
  • Resources/Prototypes/Roles/Antags/changeling.yml
  • Resources/Prototypes/Roles/Antags/zombie.yml
  • Resources/Prototypes/_Starlight/CosmicCult/antagonists.yml
  • Resources/Prototypes/_Starlight/CosmicCult/game_presets.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/abductor.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/changeling.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/devil.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/self.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/thief.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/traitor.yml
  • Resources/Prototypes/_Starlight/GameRules/Antags/vampire.yml
  • Resources/Prototypes/_Starlight/GameRules/dynamic_rules.yml
  • Resources/Prototypes/_Starlight/GameRules/roundstart.yml
  • Resources/Prototypes/_Starlight/GameRules/secure_terminal.yml
  • Resources/Prototypes/_Starlight/Roles/Antags/base.yml
  • Resources/Prototypes/_Starlight/Roles/Antags/devil.yml
  • Resources/Prototypes/_Starlight/Roles/Antags/self.yml
  • Resources/Prototypes/_Starlight/Roles/Antags/slchangeling.yml
  • Resources/Prototypes/_Starlight/Roles/Antags/vampire.yml
  • Resources/Prototypes/game_presets.yml
  • Resources/Prototypes/secret_weights.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@walksanatora walksanatora left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@starlightgithub starlightgithub Bot added the S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. label Jul 31, 2026
@walksanatora
walksanatora added this pull request to the merge queue Jul 31, 2026
@walksanatora
walksanatora removed this pull request from the merge queue due to a manual request Jul 31, 2026
@walksanatora

Copy link
Copy Markdown
Collaborator

Wait why donotmerge?

@wonderfulnewworld

wonderfulnewworld commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

it was just there from the other one to show that they were supposed to be merged together, i added it myself

@wonderfulnewworld

Copy link
Copy Markdown
Contributor Author

removed dnm

@walksanatora
walksanatora added this pull request to the merge queue Jul 31, 2026
Merged via the queue into ss14Starlight:starlight-dev with commit 953237d Jul 31, 2026
23 checks passed
starlightgithub Bot added a commit that referenced this pull request Jul 31, 2026
Limerent-Sun pushed a commit to Blimpuf-Station/BlimpufStation that referenced this pull request Aug 5, 2026
## Short description
_"The fact that you've arrived here-rather, to this save point- at this
moment in your life, is nothing short of a miracle. It delights me to no
end."_

<img width="2560" height="1147" alt="image"
src="https://github.com/user-attachments/assets/46eb49fa-e051-4417-9e7d-36b4403c84eb"
/>

Ported Wizden
[#43191](space-wizards/space-station-14#43191),
completely rewriting antag selection system to stop it from spawning
entities in nullspace.

There'll be a [part
2](ss14Starlight#5278) to this
PR, and on Starlight, they should be merged together, but our
downstreams are free to not take the second one, since it features
balance changes.

A port of Wizden
[#43191](space-wizards/space-station-14#43191),
[#43912](space-wizards/space-station-14#43912),
[#43692](space-wizards/space-station-14#43962),
[#43757](space-wizards/space-station-14#43757),
and
[#44115](space-wizards/space-station-14#44115).

Other necessary PRs ported for this:
- Wizden
[#43020](space-wizards/space-station-14#43020)
- Wizden
[#43033](space-wizards/space-station-14#43033)
- Wizden
[#43735](space-wizards/space-station-14#43735)
- Wizden
[#43737](space-wizards/space-station-14#43737)
- Wizden
[#43774](space-wizards/space-station-14#43774)
- Wizden
[#43890](space-wizards/space-station-14#43890)
- Moff Station
[ss14Starlight#1404](moff-station/moff-station-14#1404)
(Wizard Duel port to the new selection system)

I'll admit that I used AI to help me with this, because I have no shot
of understanding the C# of this on my own.

## Why we need to add this
Pretty much every reason Cheeseballs says in the original PR,
space-wizards/space-station-14#43191. Antag
selection system's hard to read, harder to tweak, and led to a ton of
redundant duplicates.

It has been severely cleaned up.

This took 4 weeks to port, had to clean up a lot of tests.

## Checks
- [ ] I do not require assistance to complete the PR.
- [ ] Before posting/requesting review of a PR, I have verified that the
changes work.
- [X] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [X] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

**Changelog**
:cl: wonderfulnewworld, Princess-Cheeseball, DIMMoon1, Velken, ScarKy0,
psykana, KeTuFaisPiKiNut, neomoth, Tayrtahn, Sparlight
- tweak: You can now late join as Traitors, Head Revs, Cosmic Cultists,
Devils, and Initial Infected.
- tweak: Thieves, Vampires, Changelings, SELF Agents, Head Revs, Cosmic
Cultists, and Devils now roll 4-8 minutes after round start, like
Traitors.
- tweak: Reinforcement Traitors now get codewords.
- tweak: Brighteyes now use different events for roundstart and midround
spawns.
- tweak: When there are at least 30 players online, 60% of unreadied
players are now counted towards GameRule minPlayers and 25% of
unreadied/spectator players are now counted towards antag playerRatios.
- tweak: Late join antag odds have been lowered to a fixed 50%.
- tweak: You will now follow ghost roles when they spawn in if you were
following them before they spawned.
- tweak: Survival and Kessler Syndrome now have a minimum player count
of 15.
- tweak: Non-humanoids with hands can now be Vampires and Wizard
Duelists.
- tweak: ERT Chaplains will use their shuttle now.
- fix: Antags should no longer roll less than they're supposed to.
- fix: Terror Spiders now actually spawn in vents.
- fix: Xenos will no longer roll antags.

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Dmitry <57028746+DIMMoon1@users.noreply.github.com>
Co-authored-by: KeTuFaisPiKiNut <85769816+ketufaispikinut@users.noreply.github.com>
Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: psykana <36602558+psykana@users.noreply.github.com>
Co-authored-by: neomoth <69372252+neomoth@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Limerent-Sun pushed a commit to Blimpuf-Station/BlimpufStation that referenced this pull request Aug 5, 2026
## Short description
_"It was a long journey, but now it is time."_

<img width="1281" height="538" alt="image"
src="https://github.com/user-attachments/assets/299455f4-cc47-420b-9cc6-1c117cbd7940"
/>

On Starlight, merge with
ss14Starlight#4958. Our
downstreams are free to not take this PR, since it's pretty catered for
SL.

Implements the new features from the Antag Selection rewrite and tweaks
Antag Scaling.

## Why we need to add this
Six months ago, I made [this
pr](ss14Starlight#3047),
addressing an oversight in Wizden's antag scaling; namely, that it was
hard capped to stop scaling at 80 players, matching their servers'
player cap.

In the half year since, a lot of things have happened. I've adjusted the
scaling, tweaked secret, added new game presets, and generally did my
best to observe how my changes impacted Starlight. I saw Security mains
get fatigued and quit the server, I saw Alpha's culture fundamentally
change, and I bore witness to many, many arguments over antag scaling. I
myself was harassed to the point I considered quitting SS14 all
together. The weight and stress of all of this is debilitating at times.

Say what you will about Alpha being conversational, situational, MRP,
LRP, NRP, PVP. Say what you will about Starlight changing.

At the end of the day, no matter what you do, you'll always make someone
upset. You'll have the players who desperately want this game to be
non-stop action, but you'll also have the players who will diametrically
oppose anything that gets in the way of _their_ roleplay.

And personally, I don't think catering to either of those is healthy for
the server. We've seen the extremes of both, with 30 antags rolling
sometimes and turning the station into their playground, but also, on
the flip side, when antags rolled in such small numbers that Security
outnumbered all of them and they were too scared to take any actions at
all, in turn leading to people getting bored and resorting to... less
than savory things. Neither side is right, and both have some ground
they need to give, so that they can at the very least find peace
somewhere in the middle.

Neither side will ever find peace unless they agree to compromise.

This is my attempt at finding that compromise. I only ask that people
remain respectful and collected in their discussions of it.

Please.

## Controversial changes
This section's mainly here to address the biggest points of contention
with this PR.

### Mining Specialists
Vampires are pretty cut and dry for them; they die in space. It's quite
possibly the worst pairing you can get.

Changeling, on the other hand, is a bit more nuanced. Yes, you can
"technically" play Changeling well as a Mining Specialist, but in
reality, one of three things will happen.
- You will never go mining. It's very risky, being all the way out there
without a food source; and in doing so, you effectively starve the
station of 1 of the 3 miners. Miners of other antags don't have this
problem to this extent; Traitors, Thieves, and SELF can use it to stash
stuff, Revs and Cultists can set up an off station base, Devils can at
the very least offer deals to the other miners, and Initial Infecteds
can harvest corpses there from the mobs, to infect later. Changelings
can do none of these things.
- You will kill the rest of Mining, and will bring their bodies back. At
this point, the damage is done, as you've effectively starved the
station of resources for half an hour, if not more.
- You will kill the rest of Mining, and will not bring their bodies
back. This is a rulebreak, but one that's incredibly easy for newer
players to do. It's essentially a trap for new player Changelings who
don't know they can't hide bodies, as they're likely to come off of it
with a note. On top of this, it starves the station more permanently,
which is even worse than the prior case.

### Roboticists
This one's pretty straight forward; nobody else on the station save for
RD and the Captain has as unrestricted access to Cyborgs as Roboticists.
Hell, they can even pre-FREEmag the chassis, although I don't think this
actually "erases" the laws due to how borg chassis selection works.
Still, they're unequivocally trusted by borgs, and are also in a
position to just outright arm them with guns due to them having access
to the exofab too. It's both too easy and too likely to lead to a debate
on a cyborg being armed with guns.

### Chemists
Easiest decision of the bunch; as a Chem II, you dump all the nitrogen
out, dump anything useful out, then destroy the machines, and Zombies
have essentially won unless they all get killed quickly.

### The Devil
The second most controversial change in this PR, already toned down
twice from what I originally wanted it to be. Now, Paramedic's whatever,
it's a mostly harmless role that can't use guns, and is encouraged to
talk to people. But that's not the one you care about, right?

The Head of Personnel sits in one room the entire shift. Their entire
game is paperwork and talking to people. They're in charge of a
department that realistically never calls on them. In that sense, they
are simultaneously the most "free" member of Command, but also the most
"restricted", in that they're always expected to be in one room. So why
let HoP roll devil?

I think it makes for a very interesting roleplay opportunity. Someone
who nobody will immediately question discussing paperwork with others,
and somebody who the rest of Command doesn't really pay attention to. I
think they're in a perfect spot to slip under the radar, and they're not
encouraged to blow their cover either; the Devil just wants souls; they
don't want to kill people, that's bad for business. In that sense, their
goals align quite well with the station's...

As for IAA, they're mostly powerless. They already have very little to
do on the average shift, and given their role as a Lawyer sometimes, I
find them being able to roll Devil quite fitting. They can't force
security to free a prisoner, security doesn't even have to listen to
them, and since Devils can't use guns, having security access really
doesn't offer them much either. Compare this to the Paramedic, who'll
get security access anyways, and it's honestly even weaker than them.
But they're also in a very unassuming spot to make a great deal with
someone...

## Closing thoughts
It took me four weeks to finish porting the Antag Selection rewrite from
Wizden. It was a gargantuan task that I sacrificed so much of my time
for, time that I could've used to apply for jobs, or enjoy my free time.
But I chose to give it up, because I know that my antag changes all
those months ago affected a lot of people, for better, or for worse.

And if my changes impacted you negatively, then, from the bottom of my
heart, I sincerely apologize to you. I'm sorry I made the game worse in
your eyes, I'm sorry I made it unplayable for you. I'm sorry I ruined
your old home, and made all your friends leave. I'm sorry I ruined
Starlight. I'm sorry, for everything.

I only want people to enjoy this game, as I have, and for it to be a
place where others can relax after a long day of work or school. A place
they can call, not necessarily a home, but, a place of respite.

I know a lot of people won't like these changes, but I urge you to look
at it from the other side, and see if you can at least understand their
way of thinking.

Don't insult and harass each other, please. Everyone just wants a game
they can play and enjoy at the end of the day, and all of this
bitterness and resentment only polarizes people further.

Please, be nice to each other.

Please.

## Checks
- [X] I do not require assistance to complete the PR.
- [X] Before posting/requesting review of a PR, I have verified that the
changes work.
- [X] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [X] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.

**Changelog**
:cl: wonderfulnewworld
- add: Added Dynamic and DynamicLP to Alpha and Beta's Secret pools
respectively.
- add: The Head of Personnel, Internal Affairs Agents, and Paramedics
can now roll Devil.
- add: Initial Infecteds now scale based on player ratio, meaning there
should be less of them on Beta. Alpha is always above the number where 6
would spawn anyways, so this doesn't affect Alpha.
- remove: Mining Specialists can no longer roll Vampire and Changeling.
- remove: Roboticists can no longer roll SELF.
- remove: Chemists can no longer roll Initial Infected.
- tweak: Reduced scaling for Traitors, Vampires, Changelings, Thieves,
SELF, Head Revolutionaries, and Devils by ~20% across the board,
dependent on their specific gamemodes/subgamemodes.
- tweak: Reduced TraitorLess, Nukeops, Revolutionary, and Cosmic Cult
chance in Dynamic, giving it to Vampire instead.
- tweak: Slightly increased VampireLess and SLChangelingLess's Dynamic
Cost.
- tweak: Slightly lowered SLDynamic's variant budget threshold.
- tweak: Dynamic gets budget slighly less quickly.
- tweak: Slightly decreased Dynamic's maximum budget.
- tweak: Ninjas are slightly less common in Dynamic.
- tweak: Slightly decreased spawn chance of midrounds (both types) in
dynamic.
- tweak: There can now be 1 more Devil.

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Dmitry <57028746+DIMMoon1@users.noreply.github.com>
Co-authored-by: KeTuFaisPiKiNut <85769816+ketufaispikinut@users.noreply.github.com>
Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: psykana <36602558+psykana@users.noreply.github.com>
Co-authored-by: neomoth <69372252+neomoth@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: No C# Changes: Prototypes S: Approved Status: Reviewed and approved by at least one maintainer or dev; a PR may require another approval. size/M T: Balance Changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants