Contributing to s&box covers everything from filing a detailed bug report to opening a pull request with a code fix. This page explains the guidelines for each type of contribution so your changes are easy to review and merge.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/facepunch/sbox-public/llms.txt
Use this file to discover all available pages before exploring further.
Reporting bugs
Use the sbox-public issues tracker to report bugs and crashes in the engine. Follow these guidelines when filing a bug report:- Be thorough. Include your OS, engine version, and any relevant log output.
- Include reproduction steps. If you can reproduce the bug, provide a clear step-by-step sequence.
- Check for duplicates. Search existing issues before opening a new one.
Proton compatibility issues
For Linux compatibility issues running through Proton, refer to the upstream Proton issue rather than filing a new report here.Requesting features
Open a feature request on the issues tracker and include:- Why you need it — describe the problem the feature solves.
- What it adds — explain the expected behavior.
- What you’ve tried — include any workarounds you’ve already explored.
- Check for duplicates — search existing requests before posting.
Security vulnerabilities
Making changes
Adding new features
Before implementing a new feature, confirm it is something the community wants. Open a proposal issue first and let the discussion reach a conclusion before writing code.Fixing bugs
When fixing a bug:- Reference the relevant issue number(s) in your pull request.
- Explain what the root cause was and how your fix addresses it.
- Add unit tests where applicable.
Pull request guidelines
Keep these points in mind to make review as smooth as possible:Scope
Scope
Keep pull requests focused. Avoid bundling unrelated changes together — each PR should address one thing.
Commits
Commits
- Group related changes into a single commit when it makes sense.
- Write a concise commit message that explains what the commit does.
- Add a longer body if additional context is needed.
- Remove unnecessary commits and squash where appropriate before opening the PR.
Formatting
Formatting
Your code must match the style defined in
.editorconfig. Key rules for C# files:- Indentation: tabs, size 4
- Line endings: CRLF
- Files must end with a newline
- PascalCase for types, methods, properties, and public fields
- camelCase for local variables and parameters
_camelCaseprefix for private instance fieldss_camelCaseprefix for private static fields- Interfaces prefixed with
I(e.g.,IMyInterface)
dotnet format to auto-apply formatting before committing:Next steps
Building from source
Set up a local build of s&box to test your changes.
Scripting basics
Understand how C# components work before making engine-level changes.