Билд проекта Fish Station (Рыбья Станция) в игре Space Station 14.
Find a file
Pieter-Jan Briers 0c97520276
Fix usages of TryIndex() (#39124)
* Fix usages of TryIndex()

Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)

This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)

This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.

Fixes #39115

Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.

* fix tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-09-09 18:17:56 +02:00
.github Add a space in osx-arm64 to fix arm64 osx builds (#40137) 2025-09-05 20:41:08 +02:00
.run
.vscode Adds Test & Integration Test commands to the Visual Studio Code configuration (#32705) 2025-04-18 13:49:36 +10:00
BuildChecker Make git hooks work in git worktrees (#40038) 2025-09-03 01:01:43 +02:00
BuildFiles/Mac/Space Station 14.app/Contents
Content.Benchmarks Atmos Delta-Pressure Window Shattering (#39238) 2025-09-03 16:58:48 -07:00
Content.Client Fix usages of TryIndex() (#39124) 2025-09-09 18:17:56 +02:00
Content.Docfx
Content.IntegrationTests Fix usages of TryIndex() (#39124) 2025-09-09 18:17:56 +02:00
Content.MapRenderer MapRenderer code fixes (#38357) 2025-06-26 14:47:39 +02:00
Content.Packaging Skip MapImages folder in packaging (#38928) 2025-09-04 22:50:46 +02:00
Content.PatreonParser Update submodule, .NET 9 (#34320) 2025-01-11 21:22:47 +01:00
Content.Replay Treat duplicate dependency warnings as errors (#38480) 2025-06-22 00:25:20 +02:00
Content.Server Fix usages of TryIndex() (#39124) 2025-09-09 18:17:56 +02:00
Content.Server.Database Revert "Admin Log Browser Improvements (#39130)" 2025-08-31 17:50:37 +02:00
Content.Shared Fix usages of TryIndex() (#39124) 2025-09-09 18:17:56 +02:00
Content.Shared.Database Revert "Added button and manager for in game bug reports (Part 1)" (#39872) 2025-08-28 01:46:24 -07:00
Content.Tests Validate ProtoIds in tests (#38745) 2025-07-04 22:48:55 +02:00
Content.Tools
Content.YAMLLinter Fix yaml linter and misc errors (#37444) 2025-07-10 00:25:36 -04:00
Pow3r
Resources Automatic changelog update 2025-09-09 02:48:53 +00:00
RobustToolbox@a1cdd60602 Update RT to 266.0.0 2025-08-06 16:17:15 +02:00
Tools Updated Aseprite Tools (#39358) 2025-08-28 17:44:50 -04:00
.editorconfig Prefer file-scoped namespaces in .editorconfig (#38879) 2025-07-09 11:33:18 -07:00
.envrc Update nix flake for .NET 9 (#34480) 2025-01-17 18:26:04 +01:00
.gitattributes
.gitignore
.gitmodules
bors.toml
CODE_OF_CONDUCT.md MINOR SPELLING ERROR!!1!!1! (#38510) 2025-06-22 21:37:25 +02:00
Directory.Packages.props Update OpenTK to latest (#39227) 2025-08-17 21:24:42 +02:00
flake.lock Update nix flake for .NET 9 (#34480) 2025-01-17 18:26:04 +01:00
flake.nix Update nix flake for .NET 9 (#34480) 2025-01-17 18:26:04 +01:00
global.json Update submodule, .NET 9 (#34320) 2025-01-11 21:22:47 +01:00
LICENSE.TXT Happy New Year (#34288) 2025-01-08 03:50:46 +01:00
nuget.config
omnisharp.json
README.md Update README.md (#33528) 2025-04-18 12:14:23 +10: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 Add pause to runclient (#37748) 2025-05-26 13:50:05 +02:00
runclient-Tools.sh Add bash equivalents run*.bat scripts for linux devs (#31195) 2024-08-20 00:36:08 +02:00
runclient.bat Add pause to runclient (#37748) 2025-05-26 13:50:05 +02:00
runclient.sh Add bash equivalents run*.bat scripts for linux devs (#31195) 2024-08-20 00:36:08 +02:00
runserver-Tools.bat Tools batch files (#29179) 2024-06-19 21:33:02 +02:00
runserver-Tools.sh Add bash equivalents run*.bat scripts for linux devs (#31195) 2024-08-20 00:36:08 +02:00
runserver.bat Use dotnet run for the run batch files instead of directly calling the exe (#27698) 2024-05-05 22:18:26 +02:00
runserver.sh Add bash equivalents run*.bat scripts for linux devs (#31195) 2024-08-20 00:36:08 +02:00
SECURITY.md
shell.nix Add libicu to shell.nix (#35540) 2025-02-26 19:54:33 +01:00
SpaceStation14.sln Add Robust.Xaml.csproj to the solution (#31573) 2024-08-28 15:08:35 +02:00
SpaceStation14.sln.DotSettings "LV" is an acronym (#31402) 2024-08-24 23:22:19 +02: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.

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.