Files
2009scape/docs/GLOSSARY.md
T
2026-07-05 18:14:54 -04:00

4.2 KiB

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 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).