
EasyRandomJump - Random Jump&Run 0.1
Let your users try uniquely on-the-fly generated jump & runs, very easily!
EasyRandomJump
A lightweight jump-and-run generator that creates a fresh parkour course for every run in its own world (all runs are in one specific world). Pick a difficulty, get a short cinematic preview, and start jumping. Checkpoints, scoreboards and small QoL tools keep the experience smooth. Stats are tracked so you can view your times and compare with others.
What it does
- Generates a unique parkour course on demand in a temporary void world
- Provides multiple difficulties (Easy → Expert) plus special modes: Timed Run, Night, Slippy, OneLife, Explosive, Sky
- Adds checkpoints, start/end platforms, and an optional cinematic flyover preview
- Tracks completions, times, deaths and XP rewards per difficulty
- Offers simple GUIs for stats, best times and leaderboards
- Optional spectate command to watch another player’s run (server-toggleable)
Why use it
- Minimal setup, quick to get started
- Courses feel varied thanks to weighted jump templates
- Clear feedback: titles, chat messages, and a clean scoreboard
- Stores progress locally (YAML) or in MySQL for servers that need scale
Core features
- Difficulties: Easy, Medium, Hard, Expert, plus special modes:
- Timed Run: choose a time limit, then pick any difficulty
- Night: night atmosphere and phantoms that push you back
- Slippy: speed and ice, move faster but control your footing
- OneLife: one death ends the run
- Explosive: explosive pads keep you on your toes
- Sky: airy layouts with small levitation effects
- Checkpoints: return to the last checkpoint or the start via hotbar items
- Cinematic preview: optional short flyover before you begin
- Scoreboard: live time, checkpoints and difficulty
- Stats: view personal stats, best times, and leaderboards via GUIs
- Admin tools: queue cleanup safety GUI, disable specific difficulties, reload config
Commands
- Start a run: /erj start
- Leave/return: /erj leave
- Stats GUIs: /erj stats, /erj times, /erj leaderboard [difficulty]
- Spectate (optional): /erj spectate
- Check player: /erj check
- Admin TP to generator: /erj tp
- Admin queue cleanup (safety GUI): /erj queuecleanup
- Reload configuration: /erj reloadconfig
Permissions
- Admin bundle: erj.admin (includes reset, spectate, tp, queuecleanup, reload)
- Or use single nodes: erj.reset, erj.spectate, erj.tp, erj.queuecleanup, erj.reload
Storage
- Local YAML (default) or MySQL. Switch in config.yml.
Notes
- Spectate can be disabled in config if you prefer stricter separation
- All messages, scoreboard titles and GUIs are configurable
If you want a plug-and-play parkour experience that stays flexible and honest about what it does, EasyRandomJump is a good fit. It doesn’t try to be an all-in-one minigame suite—just a clean, configurable parkour generator with useful quality-of-life features.
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
- Leave/return: /erj leave
- Stats GUIs: /erj stats, /erj times, /erj leaderboard [difficulty]
- Spectate (optional): /erj spectate
- Check player: /erj check
- 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 your resource discussion thread.