s&box

C#C++Source 2Game PlatformTools
s&box

What

s&box is a game creation platform built on Valve's Source 2 engine, developed by Facepunch Studios. It's the spiritual successor to Garry's Mod: letting players play, create, and share games using powerful modern tooling. I've been working here as a programmer since 2022.

My Responsibilities

  • Creating features: designing and implementing new engine and platform features across C# and C++
  • Fixing bugs: investigating and resolving issues across the engine, tooling, and game layer
  • Code reviews: reviewing team contributions to maintain quality, consistency, and correctness
  • Dev blog leadership: writing and coordinating developer blog posts to communicate progress to the community
  • Patch deployment: preparing and shipping regular platform updates
  • Hotfixes: diagnosing and deploying rapid fixes for critical live issues
  • Self management: independently identified and assigned my own tasks, managed my time, and prioritised work without day-to-day direction

Systems I worked on

UI Drag & Drop

Added UI drag and drop support, enabling games and tools to implement draggable UI elements with full event callbacks.

C#UIEngine

Steam Workshop

Added support for publishing cosmetics to the Steam Workshop, allowing creators to submit items for approval and sale through Steam's marketplace.

C#SteamEngine

Serverside Code

Secure server-critical code execution. Game logic that must run authoritatively on the server is isolated and protected, preventing client-side tampering.

C#NetworkingSecurityEngine

Battlefield 2 Mount

Made a Battlefield 2 mount that streams original BF2 models, textures, and maps directly into s&box.

C#C++EngineAssets

Json Upgraders

Added the ability to attach upgraders to serialized JSON, allowing saved data to be migrated forward across schema changes without breaking existing files.

C#EngineSerialization

Input Action System

Abstraction layer for inputs across keyboard, mouse, and all gamepads. Game code binds to named actions rather than raw input: making remapping and multi-device support trivial.

C#InputEngine

Embedded Resources

Embed entire asset resources inside other resources: runtime textures, primitives, sounds and more: without needing separate files. Inspired by Godot's sub-resource system.

C#AssetsEngine

Editor Splash Screen

Added a new splash screen for the editor in s&box, enhancing the user experience during startup.

C#QtEditor

Dedicated Server Console

Added an overlay for the dedicated server console for measuring server performance at a glance.

C#ToolsEngine

Game Controllers

Added support for game controllers in s&box, including input mapping and UI navigation.

C++C#IO

Games