Configurable game systems

Erethon / Papyrus

The main technical work here is QuestsXL, a configurable scripting and content-authoring system for quests, events, world interactions, and instanced world state. Papyrus is the custom server foundation underneath it, including RPG systems and Paper fork work.

  • Java
  • Data-driven systems
  • Designer tooling
  • Scripting
  • Game design
  • RPG systems
  • Economy design
Large Minecraft city landscape used in Erethon
A hub city in the persistent RPG world.

Project

Project
Erethon / Papyrus
Role
Developer, game designer, and project lead
Status
Closed alpha

Details

Timeframe
2021-present
Team
Around 10 volunteers
Stack
Java, Paper, custom plugins
Role
Developer, game designer, and project lead

Project note

The important part is the authoring model: much of Erethon is built as configurable systems first, so content can be changed by designers instead of requiring developer intervention for every quest, mob, event, interaction, or economy tweak.

Process timeline

Process

  1. Content systems

    Designer-facing scripting

    QuestsXL grew into a composable scripting system for quests and world events. Designers build content from actions, conditions, and objectives, with stages, callbacks, macros, runtime variables, math expressions, branching, and reusable snippets.

    Quest and event content can be authored, adjusted, and extended through YAML while core behavior stays centralized and maintainable.

    YAML quest definition for QuestsXL
    A compact YAML quest definition.
  2. QXL events

    Events as scripted world systems

    QXL events use the same stage/action/objective model as quests, but are bound to the world instead of one player. They can auto-start from conditions, update while active, track participation, give tiered rewards, chain into other events, and act as building blocks for larger meta-events.

    Designers can build repeatable world activity without each event needing custom plugin code.

    Erethon event combat with bomb objective, enemy NPC, and objective tracker
    A scripted event encounter with combat objectives and world state.
  3. Authoring workflow

    World content tools

    QXL also covers the surrounding world-content workflow: world interactions, daily and weekly quest rotations, regions, points of interest, instanced areas, and client-side block-state changes through Instanced Block Collections.

    The tooling is not only for individual quests; it gives designers a broader content-authoring layer for the live world.

    Erethon dialogue and quest UI
    QXL content can trigger dialogues, quests, events, world interactions, and staged world-state changes.
  4. QXL authoring

    Reusable content patterns

    The scripting layer supports macros, reusable reward snippets, runtime variables, score counters, optional objectives, manual stage progression, and command-triggered objectives. That makes it possible to build more complex content while keeping quest files readable.

    QXL is less a quest plugin and more a small content scripting platform for the server.

    Reusable QuestsXL YAML scripting example
    Reusable YAML patterns keep complex content maintainable.
  5. Server engineering

    Papyrus and the Paper fork

    Papyrus is built on Paper, but maintaining a server fork is its own engineering problem: working with Git patch workflows, reading deobfuscated Minecraft and Paper source, understanding undocumented internals, and keeping custom behavior compatible with upstream changes.

    This work built a better understanding of large unfamiliar codebases, Git patch maintenance, and server internals.

    Java code for a Spellbook skill
    Papyrus and Spellbook required working across custom plugin code, Paper internals, and Minecraft server behavior.
  6. Server performance

    NPC load testing

    Papyrus also had to handle large numbers of custom NPCs without eating the server tick budget. The test here shows roughly 300 attacking NPCs while the server stayed around 3ms per tick in the measured window.

    This kind of test is important because RPG systems only matter if the server can still run them under real encounter load.

    Minecraft performance test with roughly 300 attacking NPCs and server tick timing overlay
    NPC combat load test: around 300 attacking NPCs at roughly 3ms per tick.
  7. Runtime systems

    Combat and skill scheduling

    Spellbook schedules skill activations across server ticks to keep combat responsive while distributing load across many entities.

    Combat remains understandable and fair even when many players and NPCs use abilities.

    Graph representation of the Spellbook spell queue
    The Spellbook queue smooths skill execution under load.
  8. RPG systems

    Item stats and RPG data

    Items, stats, rarity, levels, and generated modifiers are part of the configurable RPG layer. The goal is the same as with quests and events: keep the game rules data-driven so balance changes do not require rewriting core code.

    The item layer gives the RPG economy and progression systems more room to be tuned through data.

    Minecraft item tooltip showing an RPG sword with level, rarity, and generated stats
    A basic generated item tooltip with RPG stats.
  9. Game design

    Combat and economy design

    Designed parts of the combat model, faction economy, progression structure, and PvP territory loop so the RPG systems had clear player-facing goals.

    The design work connected custom systems to concrete reasons for players to build, fight, trade, and cooperate.

    Erethon minimap showing territory and world context
    World and territory context for faction gameplay.
  10. Game design systems

    Configurable world rules

    Mobs, faction buildings, economy outputs, events, and balance values are exposed through configuration so designers can iterate on the world without rebuilding the server.

    Designers can tune economy and world behavior through data while players still get the freedom of sandbox construction.

    Faction building configuration
    A building configuration that produces grain and affects nearby farmland.