Skip to content

Conversation

@SnappingOpossum
Copy link
Contributor

About the PR

Changed all instances of RandomSpawner in ShuttleRoles\spawners.yml to EntityTableSpawner.

Why / Balance

Part of #42243, codebase convention.

Technical details

Groups of prototypes moved to group selectors, rare chance moved to a weight with 1 - RareChance being the weight for the other prototype groups where applicable, removed duplicate entries in favour of weights.
Single prototype spawners were moved to implicit EntSelectors
De-indented some sprite layers.
Moved around some parent/name/id fields to fit convention.

Media

Requirements

Breaking changes

Changelog

@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. Changes: No C# Changes: Requires no C# knowledge to review or fix this item. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/L Denotes a PR that changes 1000-4999 lines. labels Jan 5, 2026
@IProduceWidgets
Copy link
Contributor

IProduceWidgets commented Jan 5, 2026

For the ones that are lists and not single Ids, its a little funny to do this and not make them actual tables.

More me musing, because I dunno what maints want to do with them, but every instance of ConditionalSpawner could be done via a table selector and a nullselector within an entitytable. Probably more juice than is worth the squeeze in this case imo, but something to consider for you maints folk ig. The conditionalSpawner feels pretty vestigial, but there is a kind of simple elegance to it.

@SnappingOpossum
Copy link
Contributor Author

I didn't bother making tables since I didn't see much use for reusing sections or reducing complexity.

I'm not sure all the conditions in ConditionalSpawner are all supported by EntityTableSpawner as is, but it doesn't make a big difference for single items without conditions like here, and if needed I can replace the few conditional anyway.

@Pok27 Pok27 added P3: Standard Priority: Default priority for repository items. T: Cleanup Type: Code clean-up, without being a full refactor or feature DB: Beginner Friendly Difficulty: Great for beginners. Unambiguous in scope, and explains how to achieve the result. and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Jan 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: No C# Changes: Requires no C# knowledge to review or fix this item. DB: Beginner Friendly Difficulty: Great for beginners. Unambiguous in scope, and explains how to achieve the result. P3: Standard Priority: Default priority for repository items. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/L Denotes a PR that changes 1000-4999 lines. T: Cleanup Type: Code clean-up, without being a full refactor or feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants