Мяу!
Find a file
Falcon 9805fe3956
Refactor voice to separate it from sex (#40593)
* feat: separate sex from voice

* wip: tried to make it use voice collection directly

* fix: yaml

* fix: migrations

* fix: ensure valid now validates correctly

* fix: unisex mobs wouldn't have voice

* chore: fix RT version

* refactor: clean up code into subfunctions

* refactor: swap name and protoId in voice

also rename sounds to voice

* chore: add comment

* fix: fallback sounds for non-humanoid characters

* fix: tests

* fix: tests

* refactor: change requests

* refactor: convert sheepers

* refactor: move Voice to SpeciesPrototype

* chore: add tests

* fix: test IoC error

* refactor: use null coalesing in ConvertProfiles

* refactor: move vocal sex association to speciesPrototype

* style: remove space from new()

* refactor: use name from emoteSoundsPrototype for UI

* refactor: no more null Voice on profile

* refactor: make DefaultVoice a static readonly property

* fix: add default voice to HumanoidProfileComponent

* chore: remove repeated vocal component from species yaml

It's inherited from BaseSpeciesMob

* style: correct comments for refactor

* fix: add missing locale for FemaleVulpkanin

* refactor: simplify logic based off surounding code

* test: add test to make sure that sexes are properly enumerated for the voices

* fix: add back urist sounds

* style: clarify comments again

* style: last thing im changing before I sleep

* refactor: battling programming semantics

* refactor: Name on EmoteSoundsPrototype.cs to VoiceSelectorName for clarity

* revert: isDirty change

* Fix HumanoidProfileTest.EnsureValidLoading.
    The profile's voice wasnt being updated, thus the voiceChanged event was never raised and that meant that the voice component had old EmoteSounds

* oops

* refactor: do the easy change requests

* refactor: use an array for indexing sex conversion for performance

* fix master

* mistakes were made

* chore: redo migrations

---------

Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
2026-06-30 23:46:27 -04:00
.github Set time limit on test runner (#44430) 2026-06-30 18:44:38 +00:00
.run Move grenade components to shared (#22691) 2024-02-02 00:29:01 +11:00
.vscode Revert " build task configuration fix " (#44393) 2026-06-29 05:29:44 +00:00
BuildChecker Fix illegible FileNotFoundError occurrences when git isn't in path. (#6) 2026-06-17 22:14:54 -04:00
BuildFiles/Mac/Space Station 14.app/Contents Updated Mac Icon (#1058) 2020-06-02 13:29:33 +02:00
Content.Benchmarks Microoptimize Vector2i.Offset (#103) 2026-06-19 07:38:27 +00:00
Content.Client Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
Content.Docfx Docfx Remove Interfacemembers div 2022-03-21 18:04:01 -06:00
Content.IntegrationTests Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
Content.MapRenderer Gametest Part 2: Preliminary refactor every test to use GameTest as the framework. (#43207) 2026-04-01 16:06:26 +00:00
Content.Packaging Content.Packaging can now emit binlogs for the build (#42659) 2026-01-27 00:39:00 +00:00
Content.PatreonParser v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
Content.Replay IoC source gen compatibility (#43863) 2026-05-09 03:29:58 +00:00
Content.Server Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
Content.Server.Database Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
Content.Shared Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
Content.Shared.Database Stable to master (#42599) 2026-01-23 15:34:23 +01:00
Content.Tests Microoptimize Vector2i.Offset (#103) 2026-06-19 07:38:27 +00:00
Content.Tools v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
Content.YAMLLinter Add test result archiving to our test actions + Test fixes (#43175) 2026-03-17 17:17:22 +00:00
MSBuild Add NU1900 to WarningsNotAsErrors (#171) 2026-06-23 11:56:50 +00:00
Pow3r v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
Resources Refactor voice to separate it from sex (#40593) 2026-06-30 23:46:27 -04:00
RobustToolbox@13730c9203 Update submodule to 278.0.0 (#44354) 2026-06-27 19:48:55 +10:00
Tools Revert "Update README.md with new links. (#2)" 2026-06-28 13:14:00 +02:00
.editorconfig v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
.envrc Update nix flake for .NET 9 (#34480) 2025-01-17 18:26:04 +01:00
.gitattributes Mapping merge driver: continued (#2803) 2021-02-06 23:56:40 +01:00
.gitignore Revert " build task configuration fix " (#44393) 2026-06-29 05:29:44 +00:00
.gitmodules Revert "Switch RT submodule to new repo (#19)" 2026-06-28 13:15:50 +02:00
.noai Add .noai file (#44323) 2026-06-21 15:54:51 +00:00
CODE_OF_CONDUCT.md update support email (#41166) 2025-10-28 10:27:07 +00:00
CONTRIBUTING.md Mirror contrib guidelines to GitHub (#41896) 2025-12-18 09:36:23 +00:00
Directory.Packages.props fix(Content.Server): Bump database packages for sec update. (#43601) 2026-04-16 01:01:55 +00:00
flake.lock Update nix dev env (#41886) 2025-12-17 22:00:57 +00:00
flake.nix Update nix dev env (#41886) 2025-12-17 22:00:57 +00:00
global.json v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
LICENSE.TXT Happy 2026 (#42186) 2025-12-31 10:59:47 +00:00
nuget.config Dependency update / fixes / skrungle bungle (#23745) 2024-01-12 23:22:01 +01:00
omnisharp.json Adds formatting issue analyzing in Omnisharp (VSCode) (#15809) 2023-04-30 02:26:13 +10:00
README.md Revert "Update README.md with new links. (#2)" 2026-06-28 13:14:00 +02:00
RUN_THIS.py Fix RUN_THIS.py so it would be cross-platform and it would be possible to use it from cmd on Windows (#26017) 2024-03-12 01:02:41 +01:00
runclient-Tools.bat Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runclient-Tools.sh Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runclient.bat Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runclient.sh Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runserver-Tools.bat Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runserver-Tools.sh Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runserver.bat Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
runserver.sh Revert "new shell scripts for running client and server" (#44433) 2026-06-30 03:53:22 +00:00
SECURITY.md Revert "Update README.md with new links. (#2)" 2026-06-28 13:14:00 +02:00
shell.nix Add fontconfig and pipewire to shell.nix (#42700) 2026-01-29 13:34:07 +00:00
SpaceStation14.slnx v269.0.0 RT update - .NET 10 (#41855) 2025-12-22 01:24:24 +00:00
SpaceStation14.slnx.DotSettings BUI template (#57) 2026-06-18 20:53:55 -04:00

Space Station 14

Space Station 14 is a remake of SS13 that runs on Robust Toolbox, our homegrown engine written in C#.

This is the primary repo for Space Station 14. To prevent people forking RobustToolbox, a "content" pack is loaded by the client and server. This content pack contains everything needed to play the game on one specific server.

If you want to host or create content for SS14, this is the repo you need. It contains both RobustToolbox and the content pack for development of new content packs.

Documentation/Wiki

Our docs site has documentation on SS14's content, engine, game design, and more.
Additionally, see these resources for license and attribution information:

We also have lots of resources for new contributors to the project.

Contributing

We are happy to accept contributions from anybody. Get in Discord if you want to help. We've got a list of issues that need to be done and anybody can pick them up. Don't be afraid to ask for help either!
Just make sure your changes and pull requests are in accordance with the contribution guidelines.

We are not currently accepting translations of the game on our main repository. If you would like to translate the game into another language, consider creating a fork or contributing to a fork.

AI-generated contributions disclaimer

This project does not accept low-effort or wholesale AI-generated contributions. Examples include, but are not limited to:

  • Any code (including yaml) generated by tools like GitHub Copilot, ChatGPT, or similar.
  • AI-created artwork, sound files, or other assets.
  • Auto-generated documentation, issue reports or pull request descriptions.

Exceptions to this are simple tools like Rider's single-line completion feature.

Building

  1. Clone this repo:
git clone https://github.com/space-wizards/space-station-14.git
  1. Go to the project folder and run RUN_THIS.py to initialize the submodules and load the engine:
cd space-station-14
python RUN_THIS.py
  1. Compile the solution:

Build the server using dotnet build.

More detailed instructions on building the project.

License

All code for the content repository is licensed under the MIT license.

Most assets are licensed under CC-BY-SA 3.0 unless stated otherwise. Assets have their license and copyright specified in the metadata file. For example, see the metadata for a crowbar.

Note

Some assets are licensed under the non-commercial CC-BY-NC-SA 3.0 or similar non-commercial licenses and will need to be removed if you wish to use this project commercially.