76 lines
4.2 KiB
Markdown
76 lines
4.2 KiB
Markdown
# Glossary
|
|
|
|
RuneScape, RSPS, and codebase-specific terms that show up throughout 2009scape.
|
|
|
|
## Project / RuneScape terms
|
|
|
|
- **RS2 / build 530** — the version of RuneScape 2 this project emulates, targeting
|
|
content as it existed around **January 2009**.
|
|
- **RSPS** — RuneScape Private Server; a third-party server emulating the game.
|
|
- **Authenticity** — a core value: behavior should match the real ~Jan-2009 game, not
|
|
invented mechanics.
|
|
- **Cache** — the RuneScape game data archive (maps, models, item/NPC/object definitions).
|
|
Read by `core.cache`. Edited with external tools (`Tools/`, Thanos, RSDataSuite).
|
|
- **Client** — the game client that connects to this server; lives in a separate repo.
|
|
- **World** — a running game instance. Multiple worlds can run with different ids; the
|
|
websocket port defaults to `53594 + world_id`.
|
|
|
|
## Engine concepts
|
|
|
|
- **Tick** — the fundamental time unit of the game loop (canonically 600 ms). Almost all
|
|
timed logic is expressed in ticks.
|
|
- **Pulse** — a unit of scheduled/repeating work (`core.game.system.task.Pulse`) submitted
|
|
to `GameWorld.Pulser`; `pulse()` returns `true` when done. Movement, combat, skilling,
|
|
and bot scripts are pulses.
|
|
- **Node** — base type for anything in the world (`core.game.node`): entities, items,
|
|
ground items, scenery.
|
|
- **Entity** — a living `Node`: `Player` or `NPC`.
|
|
- **AIPlayer** — a server-controlled fake player used to populate the world / for bots.
|
|
- **Scenery** — a world object (tree, door, altar, etc.).
|
|
- **Container** — an item collection (`inventory`, `equipment`, `bank`).
|
|
- **Varp / Varbit** — RuneScape client state variables ("player variables" / bit-packed
|
|
variables) used to drive interface and world state. Accessed via `getVarp`/`setVarp`,
|
|
`VarbitDefinition`.
|
|
- **Component / Interface / Widget** — an on-screen UI panel (ids from `Components`).
|
|
- **Attribute** — arbitrary key/value state stored on a `Player`; prefix a key with
|
|
`/save:` to persist it across logins.
|
|
|
|
## Content system
|
|
|
|
- **ContentInterface** — the marker interface (`core.api.ContentInterface`) whose
|
|
sub-types `ClassScanner` reflectively instantiates at startup. Implementing one is how
|
|
content self-registers.
|
|
- **ClassScanner** — startup component (`core.plugin.ClassScanner`) that uses **classgraph**
|
|
to discover and load all content/plugins.
|
|
- **InteractionListener** — content interface for reacting to player interactions with
|
|
NPCs / scenery / items / ground items.
|
|
- **InterfaceListener** — content interface for handling UI/widget button events.
|
|
- **Commands** — content interface for registering `::command` chat commands, gated by
|
|
**Privilege**.
|
|
- **CommandSet** — engine-side grouping of commands, marked `@Initializable`.
|
|
- **NPCBehavior** — per-NPC-id AI/combat behavior class.
|
|
- **Plugin** — historically any auto-loaded content class; in legacy Java code see
|
|
`core.plugin.Plugin` / `PluginManifest` / `@Initializable`.
|
|
- **ConstLib** — external dependency (`org.rs09.consts.*`) providing named id constants
|
|
(`Items`, `NPCs`, `Scenery`, `Animations`, `Components`, `Sounds`).
|
|
|
|
## Bots / self-botting
|
|
|
|
- **Script** (`core.game.bots.Script`) — a bot automation routine with a `tick()` method.
|
|
- **Self-botting** — a real player automating their own account via `::script`; permanently
|
|
removes them from the highscores. Gated by the `enable_botting` config flag.
|
|
- **`@PlayerCompatible`** — annotation marking a `Script` as runnable on a real player;
|
|
such scripts appear in the `::scripts` menu.
|
|
- **ScriptAPI** — automation helper API (`scriptAPI`) exposing movement, interaction,
|
|
banking, GE, and overlay helpers to scripts.
|
|
- **BottingOverlay** — the small progress panel a running script shows the player.
|
|
- See [`BOT_SCRIPTING.md`](BOT_SCRIPTING.md) for the full system.
|
|
|
|
## Tooling / infra
|
|
|
|
- **Thanos tool** — the required editor for the JSON game-data files; runs on **Java 11**.
|
|
- **RSDataSuite** — cache/data tool bundled in `Tools/`.
|
|
- **detekt** — Kotlin static analyzer run in `mvn verify` / CI (`Server/detekt.yml`).
|
|
- **mvnw** — the Maven wrapper; source of truth for building.
|
|
- **Thanos / Zaros jar** — same tool family for JSON editing (see README).
|