4.2 KiB
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 toGameWorld.Pulser;pulse()returnstruewhen 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:PlayerorNPC. - 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-typesClassScannerreflectively 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
::commandchat 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 atick()method. - Self-botting — a real player automating their own account via
::script; permanently removes them from the highscores. Gated by theenable_bottingconfig flag. @PlayerCompatible— annotation marking aScriptas runnable on a real player; such scripts appear in the::scriptsmenu.- 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.mdfor 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).