EasyRandomJump – Setup & Configuration
This document is a practical guide for server owners configuring the plugin. It covers installation, commands/permissions, storage, and the key config sections (difficulties and jump weights).
1) Installation
- Drop the jar into your server’s plugins/ folder.
- Start the server once to generate config.yml.
- Adjust settings (storage, difficulties, messages). Reload with /erj reloadconfig or restart.
2) Commands overview
- Start a run: /erj start <easy|medium|timedrun|night|hard|expert|onelife|slippy|explosive|sky>
- Leave/return: /erj leave
- Stats GUIs: /erj stats, /erj times, /erj leaderboard <runcount|time|score> [difficulty]
- Spectate (optional): /erj spectate <player>
- Check player: /erj check <player>
- Admin TP to generator: /erj tp
- Admin queue cleanup (safety GUI): /erj queuecleanup
- Reload configuration: /erj reloadconfig
3) Permissions
- Admin bundle: erj.admin
- Individual: erj.reset, erj.spectate, erj.tp, erj.queuecleanup, erj.reload
4) Storage backends
The plugin ships with a small storage framework and supports:
- YAML (default, local files)
- MySQL (via MariaDB driver included in plugin.yml)
Switch via the mysql.enabled flag in config.yml. If true, the MySQL section is used; otherwise local YAML is used.
Example:
mysql:
enabled: false # true to use MySQL
host: localhost
port: 3306
username: root
password: password
useSSL: false
connectionProperties: ""
5) Other global settings
- spectateCommandEnabled – Toggle /erj spectate. Default: false.
- retainVoidWorldBetweenRestarts – Keep the void world across restarts. Can improve startup times; leave false if unsure.
6) XP rewards
Per-difficulty XP for completions:
xpRewards:
easy: 25
medium: 40
timedrun: 50
night: 55
sky: 60
hard: 75
expert: 90
slippy: 100
onelife: 125
explosive: 110
7) Enabling/disabling difficulties
Prevent players from starting specific modes by listing them here:
disabledJumpTypes: [] # e.g.: [hard, sky]
Valid values (case-insensitive): easy, medium, timedrun, night, sky, hard, expert, slippy, onelife, explosive.
8) Difficulty tuning
Every difficulty can override the default generator parameters. Leave a field out to use the plugin default.
- platformCount: number of platforms per course.
- platformRadiusBlocks: radius of start/checkpoint/end disks (1–5 typical).
- minForwardGap / maxForwardGap: forward spacing between platforms.
- maxVerticalStep: max up/down step per jump.
- lateralShiftMultiplier: sideways offset scale.
- upStepChance: chance of generating upward steps within patterns.
- checkpointCount: how many checkpoints to place.
Example snippet:
difficulties:
easy:
platformCount: 40
platformRadiusBlocks: 3
minForwardGap: 2
maxForwardGap: 4
maxVerticalStep: 1
lateralShiftMultiplier: 0.5
upStepChance: 0.25
checkpointCount: 4
9) Jump weights and what they mean
Weights let you influence how often different jump “templates” appear for each difficulty. Values are relative; they don’t need to sum to 1.0. If a key is omitted, its weight defaults to 0 (i.e., it rarely appears).
Common keys include (non-exhaustive):
- straightJumps – Simple forward jumps.
- gentleChallenges – Mild variations in spacing/height.
- upwardSteps, diagonalClimbs, diagonalDrops – Elevation changes.
- sidewaysHops, zigZagJumps, diagonalJumps – Direction changes and diagonals.
- gapJumps, riskyGaps – Wider gaps/commitment.
- neoPillars, precisionJumps – Tighter, more precise jumps.
- ladderClimbs – Ladders mixed into the layout.
- comboUpLateral, comboDownLateral – Combined step + sideways patterns.
- cloudDiagonals, windLateralBridges, airBridges, thermalSteps – Airy/bridge-like segments, more common in Sky mode.
Example (partial):
courseGeneration:
jumpWeights:
EASY:
straightJumps: 0.35
gentleChallenges: 0.30
upwardSteps: 0.15
sidewaysHops: 0.10
diagonalJumps: 0.05
zigZagJumps: 0.05
HARD:
diagonalClimbs: 0.17
diagonalDrops: 0.14
comboUpLateral: 0.17
comboDownLateral: 0.14
riskyGaps: 0.08
neoPillars: 0.17
precisionJumps: 0.09
10) Special modes explained briefly
- Timed Run: Player first chooses a time limit, then picks a difficulty. The scoreboard shows remaining time.
- Night: Player time is set to night; phantoms can spawn that knock players back (no lethal damage from them by design).
- Slippy: Slight speed boost; movement control is more demanding.
- OneLife: Dying ends the run immediately.
- Explosive: Certain pads trigger knock/explosive effects. Keep momentum and awareness.
- Sky: Emphasizes airy bridges and diagonals; more lateral bridging templates.
11) Messages and GUI
All messages, scoreboard titles and GUI labels live under messages: in config.yml. You can adjust texts, colors and formatting codes. If you customize heavily, keep placeholders like {time}, {difficulty}, {deaths}, etc.
12) Admin safety and maintenance
- Use /erj queuecleanup only when no one is actively running. It provides a confirmation GUI and will destroy all generated arenas and drain pending block edits.
- You can disable specific difficulties temporarily via disabledJumpTypes.
- Use /erj reloadconfig to apply config changes at runtime.
13) Troubleshooting tips
- If MySQL fails to connect, check host/port/firewall and credentials. See console for stack traces.
- If worlds don’t load or players can’t teleport, verify your server’s world management and that the plugin is enabled cleanly at startup.
- If spectators cause issues on your server, set spectateCommandEnabled: false.
This should be enough to tune generation, pick a storage backend, and keep your server’s parkour runs fresh and fair. If you have questions or requests, feel free to reach out on the resource discussion thread.