Skip to content

Legacy — Phase 0

Purpose. Document what the original Garry's Mod Applejack actually did, precisely enough that any subsystem can be rebuilt without opening a .lua file.

Responsibilities. - Record observable behaviour, tuning values, and edge cases. - Record the defects so they are never faithfully reproduced. - Provide a stable citation target for the Architecture/ documents.

Dependencies. None. This folder describes the past and depends on nothing in the new design. Nothing here may be edited to match a new design decision — if the new design differs, that belongs in Architecture/ or an ADR.

Public API. N/A (documentation only).

Future improvements. Areas not yet exhaustively documented are marked > **Gap:** inline. Close them before the corresponding subsystem is implemented.


Contents

Doc Covers
00_OVERVIEW.md The legacy stack, the two source copies, load order, what to trust
01_FEATURE_INVENTORY.md Every feature, one row each, with its legacy file path
02_CHARACTER_AND_PERSISTENCE.md The character record, MySQL schema, load/save codecs
03_INVENTORY_AND_ITEMS.md Inventory maths, containers, the full ITEM vocabulary
04_ENTITIES_DOORS_PROPERTY.md Ownership, access lists, doors, padlocks, sealing
05_TEAMS_JOBS_FACTIONS.md Group/gang/team hierarchy, every job, demotion and mutiny
06_CRIME_AND_POLICE.md Warrants, arrest, jail, contraband enforcement, laws
07_ECONOMY.md Money, salary, payday, stores, taxes, contraband income
08_NEEDS_AND_STATE.md Hunger, stamina, knockout, tying, bleeding, incapacitation
09_CHAT_AND_COMMANDS.md Chat channels and the full command table with access flags
10_PLUGINS.md All 16 legacy plugins and the hooks they consume
11_NETWORKING_LEGACY.md usermessage / datastream / CSVar, and why none of it survives
12_DEFECTS_AND_LESSONS.md The do-not-reproduce list. Read this one.
13_DEPENDENCY_GRAPH.md How tightly the legacy systems are coupled, and where to cut

How to read these

Every factual claim cites a legacy file and, where useful, a line number, relative to legacy/applejack-old-final/. Values quoted as defaults come from gamemode/sh_config.lua and are configuration, not constants.

Behaviour is described in the past tense ("the server charged $150"). Where a document comments on the new design it is called out explicitly as a > **Design note:** block, so that behaviour and intent are never confused.