Setting Up a Development Environment
Wayfarer follows the same general SS14 development workflow. This guide covers everything needed to set up a local development environment for our server!
Unlike a normal game installation, a development environment contains everything needed to build, modify, test, and debug the game from its source code.
This guide is written specifically for Wayfarer 14 and is intended to be self-contained. While Wayfarer shares much of its architecture with other Space Station 14 servers, our setup process, repository structure, and development workflow are documented here so you won't need to search through multiple sources to get started.
Repository: https://github.com/project-wayfarer/wayfarer-14
Discord: https://discord.gg/QpVfma2eApNeed help? Join the Discord server and ask questions in #mentorship-and-contributing. Everyone starts somewhere, and we're always happy to help new contributors.
Required Software
Contributing to Wayfarer requires a few tools that work together to compile and run the game.
Don't worry if you've never programmed for Space Station 14 before. As long as you're comfortable following instructions and willing to learn, you'll be able to get everything running in less than an hour.
Each tool serves a different purpose, and all of them are required for a functioning development environment. Before cloning the repository, we will see how to install each of the following applications.
| Software | Recommended Version | Purpose |
|---|---|---|
| Git | Latest | Downloads and updates the source code |
| Python | 3.7+ | Runs the Toolbox setup script |
| .NET SDK | 9.0.x | Builds and runs the project |
| IDE / Editor | Latest | Writing, debugging, and testing code |
Tip for Windows users: The easiest way to install everything on Windows is through winget, Microsoft's package manager.
Open Windows Terminal or PowerShell and run the following commands.
winget install Git.Git winget install Python.Python.3.13 winget install Microsoft.DotNet.SDK.9Next, choose an IDE.
JetBrains Rider
winget install JetBrains.RiderVisual Studio Community
winget install Microsoft.VisualStudio.2022.CommunityVisual Studio Code
winget install Microsoft.VisualStudioCode
Git
Git is a distributed version control system used by millions of software projects around the world. Every change made to Wayfarer is tracked through Git, allowing developers to collaborate without overwriting each other's work.
You'll primarily use Git to clone the repository, download updates, create feature branches, commit your changes and submit pull requests!
Even if you've never used Git before, don't worry. Most of the commands you'll need are covered later, and if you're confused, you can always ask for help!
You can download the current Git version from here.
Python
Wayfarer includes an automated setup script named RUN_THIS.py.
Instead of manually downloading the game engine, configuring dependencies, and initializing submodules, this script performs those tasks automatically.
Python is not used to build the game itself. It simply runs the setup utility that prepares the repository for development.
If you're wondering why Python is required for a C# project, this setup script is the reason.
You can download Python (3.7+) from here.
.NET SDK 9.0
Wayfarer is written almost entirely in C#, Microsoft's modern object-oriented programming language.
To transform the source code into a playable game, you'll need the .NET SDK. Specifically .NET 9.
The .NET SDK includes everything needed to develop and build Wayfarer. It provides the C# compiler that converts the project's source code into executable applications, along with the build tools used to compile and package the project. It also includes package management through NuGet for downloading and managing project dependencies, integrated debugging support for diagnosing and fixing issues, and a collection of command-line utilities that allow you to build, run, test, and manage the project directly from a terminal.
Without the SDK, the project cannot be compiled or run.
You can download the .NET SDK from here.
Note: Installing the .NET Runtime alone is not enough. Be sure to install the SDK, which includes everything needed for development.
Recommended IDEs
The development environment is different for everyone! Thankfully, there are plenty of choices for you to choose from.
JetBrains Rider
JetBrains Rider is the preferred IDE for many developers working on RobustToolbox and Space Station 14 projects, thanks to its excellent C# tooling and seamless support for large, multi-project solutions.
Rider offers a polished development experience with fast project indexing, intelligent code completion, a powerful built-in debugger, Git integration, and cross-platform support for Windows, Linux, and macOS.
The primary downside is that Rider consumes more system resources than lightweight editors like VS Code and is commercial software. However, it is free for many students and for non-commercial use, making it an good choice for many contributors.
The website for JetBrains can be found by clicking here.
Visual Studio Community
Visual Studio Community is Microsoft's flagship integrated development environment and remains one of the best choices for Windows users developing .NET applications. It offers great integration with .NET projects and provides a familiar, feature-rich environment for building, debugging, and testing Wayfarer.
During installation, be sure to select the .NET Desktop Development workload (it has a large file size of over 10GB). This installs the C# compiler, debugger, and the additional development tools required to compile and run the project.
You can find more information about Visuall Studio Community by clicking here.
Visual Studio Code
Visual Studio Code is a lightweight, source code editor that provides a streamlined alternative to full-featured IDEs. While it doesn't include all of the advanced features found in Rider or Visual Studio out of the box, installing a few extensions transforms it into a capable environment.
To get the best experience, we suggest you install the following extensions:
- C#
- C# Dev Kit
- Robust YAML
- EditorConfig
VS Code is particularly popular among Linux users and developers who prefer a faster, more lightweight editor. Although some advanced refactoring and debugging features may require additional configuration, its flexibility, performance, and extensive extension ecosystem make it an excellent choice for contributors who value simplicity and customization.
If you're unsure which editor to use, VS Code is our recommended starting point.
You can download Visual Studio Code from here.
Forking the Repository
Before you can contribute to Wayfarer, you'll need your own copy of the repository on GitHub. This process is called forking. A fork creates a copy of the repository under your GitHub account, allowing you to freely make changes without affecting the official project.
When you're ready to contribute, your changes will be submitted back to the main repository as a Pull Request, where they can be reviewed before being merged.
To create a fork:
- Navigate to the Wayfarer repository on GitHub.
- Click the Fork button in the upper-right corner.
- Select your personal GitHub account as the destination.
- Wait for GitHub to create your copy of the repository.
You should now have a repository that looks something like:
https://github.com/<your-username>/wayfarer-14
This is the repository you'll clone to your computer and push changes to.
Cloning Your Fork
Rather than cloning the official repository, clone your fork.
If you're using Git:
git clone https://github.com/<your-username>/wayfarer-14.git
cd wayfarer-14
If you're new to Git, we recommend using GitHub Desktop. It provides a simple graphical interface for cloning repositories, creating branches, committing changes, and syncing with GitHub, allowing you to focus on development instead of memorizing Git commands.
You can get GitHub Desktop here.
In GitHub Desktop:
- Select File → Clone Repository.
- Choose the GitHub.com tab.
- Select your fork of
wayfarer-14. - Click Clone.
After cloning, you'll have a complete local copy of your fork that's ready to be configured.
Creating a Development Branch
Although you own your fork, it's still considered best practice to avoid working directly on its master (or main) branch. Instead, create a separate development branch for every feature, bug fix, or documentation change you make.
This keeps your fork organized and makes it easier to work on multiple changes at once.
For example:
git checkout -b dev
Or, for larger projects, you may prefer feature-specific branch names:
git checkout -b feature/new-antagonist
git checkout -b fix/shuttle-console
git checkout -b docs/setup-guide
Once the branch has been created, all of your work should be committed there. When you're ready, push the branch to your fork and open a Pull Request against the official Wayfarer repository.
Tip: If you're using GitHub Desktop, creating a branch is simple. Just click Current Branch → New Branch. GitHub Desktop will automatically switch you to the new branch and offer to publish it to your fork when you're ready.
Building the Project
Before the game can be run, the source code must be compiled into executable applications. While most IDEs include a Build Solution button, we recommend building the project from the command line.
On Windows, holding shift and right clicking in the work folder will bring up a menu where you can open PowerShell in the directory.
From the root of the repository, run:
dotnet build
The .NET SDK will automatically restore any missing packages, compile the project, and report any build errors. If the build completes successfully, you're ready to launch the game.
Tip: If you've made significant changes or encounter unusual build issues, you can perform a clean rebuild by running:
dotnet clean dotnet build
Starting the Client & Server
Space Station 14's repository is split into two applications that work together during development.
| Project | Purpose |
|---|---|
| Content.Server | Runs the game world, gameplay logic, networking, and all server-side systems. |
| Content.Client | Renders the game, handles player input, and connects to the server. |
For normal development, you'll usually have both applications running simultaneously.
After ensuring your build completed successfully, you're ready so start up the game. Looking inside your local repository, you can see several batch (.bat) files within. These can be used to start the server and client without needing to use PowerShell or your terminal.
Run the files:
runclient.bat
runserver.bat
Tip: There are also batch files with "tools" added to the end. These can be run instead of the normal batch files to run a less "load-heavy" version of the environment. This can be used to put less stress on your local host when doing things like mapping.
If you prefer using the terminal instead, you can also launch the client and server with:
dotnet run --project Content.Client
dotnet run --project Content.Server
Both methods start the applications, so you're free to use whichever best fits your workflow.
Next Page: Repository Structure→
Last updated 3 weeks ago