* Add CryoPodWindow (placeholder) * Change HealthAnalyzerWindow: split off reusable HealthAnalyzerControl for cryo pod UI * Improve CryoPodWindow: add health analyzer * Improve CryoPodWindow: add eject button This wasn't requested in the issue but I implemented it as practice with the UI system. * Rewrote GasAnalyzerWindow, split off reusable gas mix viewer for cryo pod * Change GasAnalyzerWindow: change back to three columns With two rows you get a layouting bug when there's a lot of different gases, which looks somewhat bad. I didn't feel like fixing the layouting bug (it's an engine issue) so we're going back to three columns. That way you don't ever get two rows in practice. * Change GasAnalyzerWindow: simplify by disabling Resizable I added a lot of complexity to make resizable work nicely with a derived max & min size, but it's not necessary. * Change GasAnalyzerWindow: file-wide namespace * Change GasAnalyzerSystem: add GenerateGasMixEntry * Split HealthAnalyzerUiState from HealthAnalyzerScannedUserMessage * Rewrote CryoPodWindow, add atmos info * Improve CryoPodWindow: add loading placeholder * Improve CryoPodWindow: add internationalization support * Fix GasAnalyzerControl: add missing translation * Improve CryoPodWindow: add beaker info, high temperature warning * Improve CryoPodWindow/System: inject button in window + necessary system changes * Fix CryoPodWindow: Entering cryopod now closes window This way you can't heal yourself with a cryopod. * Change CryoPodWindow: add & update comments * Change HealthAnalyzerComponent: remove `uiKey` property (no longer necessary) * Tiny fixes * Improve CryoPodUiMessage: replace string with enum * Change GasAnalyzerWindow: simplify Measure code * Change CryoPodComponent: rename Injecting to InjectionBuffer * Change CryoPodBUI: tiny code simplification * Fix HealthAnalyzerComponent: Removed stray import * Improve CryoPodWindow: Prettier, concise atmos * Improve CryoPodWindow: Chemicals bar chart * Improve CryoPodWindow: Add Ruler to reagents * Change CryoPodWindow: More horizontal layout * Improve CryoPodWindow: Reduce height jiggling The health analyzer's height changes a lot, which can be annoying with the buttons (for example when the oxygen damage label is popping in and out) * Improve CryoPodWindow: Add setup checklist This is mostly here to fill vertical space in the new horizontal layout. * Improve CryoPodWindow: Eject beaker button * Improve CryoPodWindow: Localization * Improve CryoPodWindow: Add BeakerBarChart An animated version of the chemicals chart * Fix CryoPodSystem: Ejecting beaker no longer clears injection buffer * Improve BeakerBarChart: Not animated on first frame * Fix CryoPodWindow: Fix broken translation * Improve CryoPodWindow: Reorder sections * Fix BeakerBarChart: Tooltips now show up * Change BeakerBarChart: Reorder functions * Change CryoPodWindow: Reorder sections, change margins * Change CryoPodWindow: Edit flavor text * Revert changes to GasAnalyzerWindow Since GasAnalyzerControl is no longer used in CryoPodWindow, these changes are no longer relevant to this PR. * Tidy CryoPodWindow: Remove old workarounds These are old layouting bug workarounds from the older version of CryoPodWindow that had a ScrollContainer in it. They're no longer necessary. Less ScrollContainers less problems. * Tidy up: Remove unused imports * Remove LabelledSplitBar It was replaced by BeakerBarChart, which is a lot fancier. * Tidy up: Tiny code style fix * Change CryoPodSystem: Move code from server to shared This is still without adding UI prediction * move a ton of stuff to shared. * one last thing * Improve BeakerBarChart: Keep visual entry width when swapping beakers * Improve BeakerBarChart: Respect beaker order of reagents * Improve CryoPodWindow: Ensure space for injection buffer We need to keep space on the chart for the injection buffer after swapping to a full beaker. * Improve CryoPodWindow: Prettier ejection error * Improve CryoPodWindow: Add "Cooling patient" status * BeakerBarChart: Fix UI scale bug * BeakerBarChart: Fix bluespace beaker ugliness * BeakerBarChart: Add more pod status strings * HealthAnalyzerControl: Filewide namespace, sort imports * Style fix: Replace `bool x = y` with `var x = y` * CryoPodUiMessage: Split off separate class for inject * SharedCryoPodSystem: Move message-related code into Subs.BuiEvents --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
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.
Links
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
- Clone this repo:
git clone https://github.com/space-wizards/space-station-14.git
- Go to the project folder and run
RUN_THIS.pyto initialize the submodules and load the engine:
cd space-station-14
python RUN_THIS.py
- 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.