Creating Your First Project
Bootstrap a new s&box game project from scratch. Understand the project structure and build pipeline.
Creating a game project in s&box is just a few clicks: pick a template from the welcome screen, give it a folder, and the editor generates a fully-working scene plus a C# project you can immediately run, edit, and (when ready) export to a standalone executable. Everything in your project lives next to a .sbproj manifest file, which is the entry point for the editor.
Start from a template
Launch sbox-dev and on the welcome screen click 'New Project'. The Minimal Game template is the right starting point for a jam — it gives you an empty scene, a default camera, and a small amount of scaffolding without forcing a particular genre on you. Pick a folder outside of your Steam install (somewhere you'll source-control) and the editor creates the project there. The .sbproj file it writes is just JSON metadata: title, type, identifier, package settings.
Understand the project files
After creation you'll see a tree like Code/, Assets/, and the .sbproj at the root. Code/ is where your .cs and .razor files live and is the C# project the editor compiles. Assets/ contains scenes (.scene), prefabs (.prefab), models (.vmdl), materials (.vmat), sounds (.sound/.vsnd), and any other content. The editor also generates a .sln so Visual Studio or Rider can open the project. The .sbproj also declares your project type — Game, Addon, or Tool — and Game is what you want for a jam entry.
Add a GameObject and a Component
Right-click in the scene tree (left panel) and create an empty GameObject, then in the Inspector click 'Add Component' and either pick a built-in one (ModelRenderer, BoxCollider, Camera, etc.) or type a new name to scaffold a custom one — the editor will create the .cs file and open it in your IDE. Save the file and the engine hotloads your component into the running scene immediately.
using Sandbox;
public sealed class Spinner : Component
{
[Property] public float DegreesPerSecond { get; set; } = 90f;
protected override void OnUpdate()
{
WorldRotation *= Rotation.FromYaw( DegreesPerSecond * Time.Delta );
}
}Press Play, iterate, repeat
Hit the Play button at the top of the editor to enter Play mode in the same window. While playing you can keep editing C# in your IDE — saves hotload into the running game. You can also pause, step, and inspect any GameObject in the Scene panel. To stop, press the Stop button or escape the play session. Iteration is the whole point: small change, save, see the result.
Export when you're ready
When the jam ends, you have two ways to ship: publish to the s&box platform via Edit → Publish (the player jumps into your game from sbox.game), or export a standalone .exe via Project → Export. The Export Wizard asks for an icon, splash image, and a Steam App ID, then writes a self-contained build to a folder you choose. Standalone exports are royalty-free and have no whitelist, but at the time of writing distribution still requires Valve approval — for a jam, publishing to the platform is the easiest route.