Applejack (S&box) — Documentation¶
Applejack is a roleplay framework for S&box. It is a reimagining of the Garry's Mod roleplay gamemode of the same name (originally Cider), rebuilt from scratch in C# on Source 2.
It is not a port. No line of the original Lua is translated. The original codebase is
preserved in legacy/ and is treated strictly as a behavioural specification — it
answers "how did this feature behave?" and never "how should this be implemented?"
Start here¶
| If you are… | Read |
|---|---|
| New to the project | 00_CONSTITUTION.md → 01_VISION.md → Architecture/00_OVERVIEW.md |
| Playing, or wondering what's actually usable | Player/ — chat, commands, needs, jobs, property, crime, the UI |
| Running a server | Guides/00_GETTING_STARTED.md → Guides/04_SERVER_ADMIN_GUIDE.md |
| About to write code | Standards/ in full, then the Architecture/ doc for your subsystem |
| Adding content (items, jobs) | Guides/02_ADDING_AN_ITEM.md, Guides/05_ADDING_A_JOB.md — no C# required |
| Building an extension | Guides/03_EXTENDING_THE_FRAMEWORK.md |
| Wondering why something is the way it is | ADR/ |
| Curious what the original did | Legacy/ |
Layout¶
Documentation/
├── 00_CONSTITUTION.md Principles, authority, and the Definition of Done.
├── 01_VISION.md What "feels like Applejack" means, concretely.
├── ROADMAP.md Milestones and their exit criteria.
│
├── Player/ For players: chat, commands, needs, jobs, property, crime, the UI.
│ What's actually built, not what the original game had.
│
├── Legacy/ PHASE 0 — What the original Applejack actually did.
│ Behavioural spec + the defects we refuse to reproduce.
│
├── Architecture/ PHASE 1 — How the new framework is designed.
│ Real C# signatures, not policy statements.
│
├── Standards/ How code, docs, tests and commits must look.
│
├── ADR/ Architecture Decision Records. Superseded, never deleted.
│
└── Guides/ Task-oriented, worked examples — admin, content, and dev.
The reading rule¶
Legacy/ describes what was. Architecture/ describes what will be. Where the two
differ — and they differ a great deal — the departure is justified by an entry in
ADR/ or in Legacy/12_DEFECTS_AND_LESSONS.md.
If you find a design decision that departs from legacy behaviour with neither citation,
that is a documentation bug — please raise it.
Project status¶
Milestone 6 — first playable. Code/, Assets/, UnitTests/ and Applejack.sbproj
all exist; Milestones 1–5's build items and the whole of Milestone 6's are written and on
main. Eleven modules boot through
ApplejackBootstrap.
None of it has been compiled or run. Read ROADMAP.md § Verification debt before trusting any part of this tree as a description of working software — these documents describe a design that the code is written to, verified by review rather than by execution.
That distinction matters for how you read the rest of this folder: where a document and the code disagree, the code is not automatically right. Neither has been run. Per 00_CONSTITUTION.md §4 the design is the source of truth, and a disagreement is a bug in one of them to be resolved deliberately — not a licence to quietly rewrite the doc to match whatever was typed.
Engine baseline¶
All documentation is written against S&box as of July 2026. Older S&box builds differed substantially (there was no scene system, and networking used entirely different APIs), so any tutorial or memory predating the scene system is actively misleading. Every engine API named in these documents is verified against the official documentation — see Architecture/00_OVERVIEW.md for the verified API surface we rely on.