Skip to content

Vision

The success criterion for this project is unusual, so it is worth stating precisely:

A player who spent a thousand hours on Applejack in 2012 should sit down, join a server, and recognise it — while a developer opening the source should find nothing familiar at all.

This document defines the first half of that sentence. It describes what "feels like Applejack" actually means, in specifics rather than nostalgia, so that a designer can make correct judgement calls without having played the original.


1. What Applejack is

Applejack (originally Cider) is a serious, scarcity-driven city roleplay framework. It is not a jobs-and-printers moneymaker. Three properties define its character:

1.1 Scarcity is the engine

Almost every design decision in the original pushes toward not having enough.

  • You start with $0 and no job beyond Citizen.
  • Your inventory has 40 units of space and everything meaningful consumes it. Carrying a rifle means not carrying something else.
  • You may carry one large weapon and two small weapons. That is the whole holster.
  • You may own five doors, at $150 each, and you are taxed $50 per door you hold.
  • Selling anything refunds roughly half. Mistakes are permanent and expensive.

The result is that trivial actions carry weight. Deciding what to leave behind is the gameplay. Any change that makes the player comfortable is probably wrong.

1.2 Authority is granted by other players, not by the server

Applejack's institutions are staffed by people, not scripts.

  • Jobs are organised Group → Gang → Team (Officials / Civilians / Underground), with a numeric rank inside each.
  • A leader with the boss flag can demote subordinates — but only once the gang has at least 5 players.
  • A gang with 4+ players can mutiny against its leader, and it succeeds at 75% approval.
  • The Mayor writes the city's ten laws by hand, and may change them at most once every 120 seconds.
  • Police need warrants — search warrants expire after 5 minutes, arrest warrants after 1 hour — and arrest is a 5 minute timeout, not a kill.

Nothing here is enforced by code beyond the mechanism. Whether the police are a legitimate force or a protection racket is decided nightly by whoever logged in. Preserve the mechanisms; never encode the morality.

1.3 Violence is slow, reversible and consequential

The original consistently prefers non-lethal, recoverable outcomes over deathmatch.

  • Knock out (30 seconds), tie up (5 seconds to apply, struggle to escape), incapacitate, and bleed (5 seconds) all exist as distinct states.
  • Being arrested persists across disconnect — you cannot log out of jail.
  • Death costs money and time (30 second respawn wait), it does not reset you.
  • Guns are loud, expensive, illegal in most categories, and take a conditional timer to equip during which you must stand still.

A firefight is a failure state that both parties usually wanted to avoid. That is the tone.

1.4 Ambient systems that never stop

  • Hunger fills over 30 minutes and then deals 5 damage/second; you can starve to death.
  • Stamina drains while sprinting and slowly refills.
  • Contraband pays out every 5 minutes, so illegal enterprise is a standing risk you have chosen to keep running.
  • Salaries arrive on a payday cycle tied to your team.

The world does not wait for you to be interested in it.


2. The texture

Details that are individually minor and collectively the whole atmosphere:

  • Proximity everything. Voice and IC chat are limited to a 256 unit radius. There is /y to yell, /w to whisper, /me to emote. OOC is deliberately awkward to use (60 second cooldown) and advertising costs $60 with a 150 second cooldown. Talking to someone means going to them.
  • Doors are property. They can be owned by a player, a team, or a gang; they have access lists, names, master/slave linking for double doors, padlocks, and can be sealed or jammed open for 60 seconds. A door is a social object, not a prop.
  • Containers are the world's storage. Ordinary map props — filing cabinets, drawers, lockers — are searchable containers with real capacities (a filing cabinet holds 20, a bank of lockers holds 100). Storage is found, not spawned.
  • Pockets add capacity. Some items have negative size and increase what you can carry. This is a lovely mechanic and it survives.
  • Everything is logged. The original logged every meaningful event by category and could dump it to disk. Server operators need this.
  • Money is a number, not an item. You cannot drop your wallet by accident — but you can deliberately drop money as a physical object with /dropmoney.

3. What we deliberately change

Preserving the feel does not mean preserving the frustrations. These are known weaknesses of the original and we fix them:

Original New
Two identical items are literally indistinguishable — no per-item state, so no durability, no partial ammo, no unique items Item instances with identity and state (ADR-0006)
Character inventories and world containers are two separate, subtly different systems One inventory model used by both
Items are Lua files; adding a sandwich needs a developer Items are assets; adding a sandwich needs nobody (ADR-0004)
No thirst, despite a whole drinks category Needs are a general framework; thirst is configuration, not code
Inventory desyncs until relog if one network message is lost Reconcilable, authoritative state (Architecture/07)
Balance numbers are scattered across a 25 KB Lua config and hardcoded call sites Configuration is data, editable and validated
Crafting is /manufacture: pay cost × batch, receive item A real crafting framework — stations, recipes, skills, quality
Medical is "eat food to heal" Injuries, bleeding and treatment as first-class systems

Every number quoted in section 1 is a default, not a constant. They are the original's tuning, preserved as the starting point precisely so that a server operator can change them — which in the original often required editing source.


4. The test

When a design decision is genuinely unclear, apply these in order:

  1. Does it increase or decrease scarcity? Applejack decreases comfort. Prefer the option that makes the player choose.
  2. Does it move a decision from a player to the server? If so, reject it. The framework provides mechanisms; players provide meaning.
  3. Is it recoverable? Prefer states a player can be talked out of over states that end their session.
  4. Would it work in a room with two people or two hundred? The original scales down badly in some places (mutiny needs 4 players) and that is acceptable, but new systems should degrade gracefully.
  5. Can a server operator change it without a compiler? If not, it is not finished.

5. Non-goals

  • Not a Garry's Mod port. Compatibility with legacy addons, saves, or content is not a goal and will never be.
  • Not a DarkRP. No printers-as-content-treadmill, no job-spam, no kill-on-sight economy.
  • Not a single-server product. This is a framework. Someone else's Applejack server should be able to be substantially different from ours using only assets and configuration.
  • Not feature-complete at v1. The roadmap deliberately ends milestones with a working, tested, documented subset rather than a broad, broken whole.