Мяу!
Find a file
portfiend b9b794deef
Microwave Refactor and Prediction (#43129)
* adjust fields of meal recipe prototype

* document microwave recipe datafields

* use file scoped namespace for microwave recipes

* more of this

* localize every microwave recipe

* make microwave system shared

* refactor recipe reagent contents

* refactor recipe solids + add material ingredient datafield

* im making this a bit less silly

* awa

* move this shit out

* move this shit out also

* refactor Wzhzhzh

* im gonna shorten this parameter by 1 actually

* move this into recipes

* make processcontents a little better(?)

* clean imports

* rename a struct

* use cooking ingredients struct

* comment

* use whitelist for this

* unused dependency

* rearranged the parameters of get recipe portions

* rearrange some stuff

* clean up more imports

* move container related functions into separate file

* move this function out of ProcessContents

* prevent microwaves from having items inserted while active

* use IsPowered in microwave system

* use byref syntax and Entity<>

* moving the override up
sorry i like it being up here

* refactor microwave updating

* clean up recipe finish logic

* im renaming this function actually

* move some functions around

* move more stuff around

* some comments

* fix compiler error

* fix the yml of all microwave recipes

* use materials instead of solids for this stuff

* oops

* fix this

* turn microwave sparks into datafield

* move activelymicrowaved events into separate folder

* make UpdateUserInterfaceState use entity only

* rearrange some functions

* move UI functions out

* comment microwave UI stuff

* more comments

* comment recipe functions

* refactor GetTotalIngredients to use an operator

* give CookingIngredients addition methods

* comment the rest of CookingIngredients

* make subtraction functions clearer?

* remove redundant comment

* handle zero/negative ingredient cases

* simplify subtract contents logic

* fix these comments

* typo

* add microwave recipe test

* move active microwave methods

* comment active microwave methods

* comment cooking methods

* comment microwave methods

* change setappearance to use entity<>

* add some public api decorators

* comment all of MicrowaveComponent

* use file-scoped namespace for MicrowaveComponent

* comment

* fix baguette sword

* maybe...?

* oh oops

* document the rest of the owl

* kill the massive YML breaking change

* fix protoman dependency

* move shared microwave stuff to SharedMicrowaveSystem

* fix usings

* move microwave components to shared

* fix up microwave datafields

* move APIs to shared

* move activemicrowave methods to shared

* initialize on shared

* move ui functions to shared

* add actor here

* stuff

* predict microwave update loop

* make clientside microwave system

* adjust the update loop for microwaves

* clean up

* add field deltas to microwaves

* dirty fields instead of whole component

* move this to the partial

* move GetRecipesForMicrowave to shared

* comments

* predict microwave BUI

* oops

* refactor microwave bui update

* move UI messages to shared

* move messages to UI file

* move init to shared

* move container methosd to shared

* oops my using

* move cooking functions into partial

* move cooking methods to shared

* move microwave recipe methods to shared

* move the rest of the microwave events to shared

* update imports

* remove custom type serializer

* better (?) microwave UI prediction

* fix list notations

* OK IT WAS THE DATAFIELDS

* add IOC inject

* dont use IOC for htis

* sealed

* prediction fixes pt1

* make microwave cooking updates more consistent

* datafield tweaks

* test for multiple portions in microwave recipes

* test for multiple recipe portions

* better(?) prediction for malfunctions

* remove redundant comment

* prevent solution reactions in microwave

* cleanup some microwave stuff

* eh i think this should be container actually

* this can be API i think

* reduce system redundancy

* this has to be public

* use resolve pattern for explode

* use GetMicrowaveContents in microwave system

* this can be an API too

* add conversion script for unlocalized recipes

* use EnsureComp instead of AddComp

* suffering

* fix recipe prediction

* fix the audio

* reduce redundant networking

* i think this should be autopaused?

* nevermind we use dynamic portions in the test

* oops i wrote the test wrong

* make lemoon cake take 2 lemoons again
sorry test fail

* rename "materials" to "stacks"
realized theyre different

* add stack guidebook quantities

* Kill audio

* fix lemoon cake recipe for real?

* mark PortionedRecipe as a datadefinition

* fix the microwave timer

* review

* cleanup

* Update SharedMicrowaveSystem.Recipes.cs

* update

* add audio params

* review: inject microwavesystem

* review: named variable

* review: move dependencies

* review: use gametest for recipe test

* review: make access attributes standalone

* rename prototypes and datafields

* review: rename this var

* review: move this function down

* review: remove these scripts

* actually this should stay

* refactor cook time buttons

* review: use a color name for this

* fix timer reset

* Dirty

* review: make ActivelyMicrowavedComponent networked

* review: slarti comments part 1

* review: remove serializable attribute from CookingIngredients

* rename file

* review: more microwave audio boilerplate. yippee!

* review: use resolve pattern for TryGetStackId
i dont like the way this makes the rest of the code look but we ball maybe. i dont know what else to do here

* review: move ui update to constructor

* review: kill LastCookUpdated

* actually i do this instead

* fixed up the PR

* cleanup

* ///

* Update microwave.yml

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-04 23:38:48 +00:00
.github Add a link to the failing run in heisendetector issues (#46257) 2026-09-30 16:55:13 +00:00
.run Move grenade components to shared (#22691) 2024-02-02 00:29:01 +11:00
.vscode Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10: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
Content.Benchmarks Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.Client Microwave Refactor and Prediction (#43129) 2026-10-04 23:38:48 +00:00
Content.Docfx Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.IntegrationTests Microwave Refactor and Prediction (#43129) 2026-10-04 23:38:48 +00:00
Content.MapRenderer Fix MapRenderer decal and offset issues (#45866) 2026-10-02 19:51:10 +00:00
Content.Packaging Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.PatreonParser Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.Replay Standardize UI separators (#45820) 2026-09-19 20:16:18 +00:00
Content.Server Microwave Refactor and Prediction (#43129) 2026-10-04 23:38:48 +00:00
Content.Server.Database Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.Shared Microwave Refactor and Prediction (#43129) 2026-10-04 23:38:48 +00:00
Content.Shared.Database Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.Tests Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Content.Tools Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10: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 Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Resources Microwave Refactor and Prediction (#43129) 2026-10-04 23:38:48 +00:00
RobustToolbox@3708c7a310 v291.0.1 2026-09-29 17:50:59 -07:00
Tools refactor: extract get previous publish run into separate script, run it and reuse by discord/rss/changelog steps (#45690) 2026-09-21 20:20:11 +00:00
.editorconfig .editorconfig: prefer case block braces on same level as case (#45478) 2026-08-20 13:45:44 +00:00
.envrc Update nix flake for .NET 9 (#34480) 2025-01-17 18:26:04 +01:00
.gitattributes
.gitignore Try to fix changelog bot (#44359) 2026-07-18 02:04:52 +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 Change nix flake branch (#44718) 2026-07-17 02:19:01 -04:00
flake.nix Change nix flake branch (#44718) 2026-07-17 02:19:01 -04: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
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 Update nix flake (#44417) 2026-07-16 15:30:34 +00:00
SpaceStation14.slnx Add EntitySystemSubscriptionsGenerator project to Content solution. (#44454) 2026-07-02 01:21:42 +00:00
SpaceStation14.slnx.DotSettings Make every EntitySystem partial (#45220) 2026-08-14 18:24:47 +00: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.