1.0
Compatibility
Changes
๐ Overview
wParkour is a lightweight, feature-packed procedural parkour plugin built from the ground up for high-performance Paper and Purpur 1.21+ servers.
Unlike traditional static parkour plugins where every jump is pre-built, wParkour generates infinite, intelligent jump sequences dynamically in real-time inside your custom-defined arena regions. Players never jump on the same route twice!
โจ Features
- ๐ Dynamic Procedural Generation: Infinite, non-repetitive jumps generated dynamically ahead of the player. The generator intelligently avoids walls, corners, and other active players.
- ๐ฏ Adjustable Difficulties: Support for
EASY,NORMAL, andHARDmodes with physics-accurate gap and height calculations. - ๐ฆ Exploit-Proof Reward Storage (
/parkour storage):- If a player's inventory is full when they fall, earned items and item-giving commands are automatically routed into their personal Storage GUI.
- Packet-Proof & Anti-UiUtils: Hardened with strict server-side cursor sanitization, synchronous row deletion verification, and click-type filtering to prevent window desyncs and dupe exploits.
- Configurable Expiration: Storage items automatically expire after a set time (default: 24h) with real-time countdown lore in the GUI.
- ๐ Unified Milestone Loot Pool:
- Add item rewards via an intuitive drag-and-drop GUI or command rewards (e.g.
/eco give %player% 100). - Configurable win chances (%) and milestone intervals (e.g. every 10 or 50 jumps).
- Consolidated rolling ensures strictly one reward per milestoneโno unfair double rewards!
- Add item rewards via an intuitive drag-and-drop GUI or command rewards (e.g.
- ๐จ Personal Cosmetic Blocks:
- Players receive an interactive block selector chest item while parkouring to customize the look of their own generated blocks.
- ๐ Interactive Toplist Holograms:
- Automatically spawned floating
TextDisplayholograms above activator pressure plates showcasing the arena's top parkour runners. - Chunk-safe and auto-recovering across server restarts and unloads.
- Automatically spawned floating
- ๐พ Robust SQLite Engine:
- Uses high-performance SQLite in WAL (Write-Ahead Logging) mode with busy timeout handling.
- Includes crash and restart inventory recovery (
saved_inventories).
- โก Zero-Flicker Hitbox Detection:
- Uses accurate Axis-Aligned Bounding Box (AABB) edge detectionโplayers don't need to land dead-center on blocks for jumps to register.
๐ฎ Player Commands
| Command | Permission | Description |
|---|---|---|
/parkour storage |
None | Opens your personal unclaimed rewards storage GUI. |
/wparkour start <arena> |
wparkour.play |
Starts parkour in the specified arena. |
/wparkour list |
wparkour.play |
Lists all available parkour arenas. |
/wparkour leave |
wparkour.play |
Leaves your current parkour run and restores your inventory. |
๐ ๏ธ Admin Commands
| Command | Permission | Description |
|---|---|---|
/wparkour pos1 |
wparkour.admin |
Sets the first corner point for a new arena. |
/wparkour pos2 |
wparkour.admin |
Sets the second corner point for a new arena. |
/wparkour create <name> |
wparkour.admin |
Creates a new arena within the selected region. |
/wparkour item <name> |
wparkour.admin |
Gives you an activator pressure plate for the arena. |
/wparkour setspawn <name> |
wparkour.admin |
Sets the respawn/teleport location for the arena. |
/wparkour difficulty <name> <easy|normal|hard> |
wparkour.admin |
Changes the jump generation difficulty. |
/wparkour config <name> reward-interval <number> |
wparkour.admin |
Sets the default reward frequency (e.g. every 10 jumps). |
/wparkour rewards [name] |
wparkour.admin |
Opens the GUI to configure items, chances, and commands. |
/wparkour start <name> [player] |
wparkour.admin |
Forces a parkour start for yourself or another player. |
/wparkour resetstats <player | *> |
wparkour.admin |
Clears high scores for a specific player or everyone (*). |
/wparkour delete <name> |
wparkour.admin |
Deletes an arena and cleans up its data. |
/wparkour reload |
wparkour.admin |
Reloads config.yml, messages.yml, and rewards without restarting. |
๐ Permissions
| Permission | Default | Description |
|---|---|---|
wparkour.play |
true |
Allows players to use parkour arenas and start runs. |
wparkour.admin |
op |
Grants access to all admin setup and management commands. |
wparkour.toplist.bypass |
false |
Players with this permission will not appear on toplist holograms. |
๐ Quick Setup Guide
- Select Arena Boundaries:
- Stand at corner 1 and type
/wparkour pos1. - Stand at corner 2 and type
/wparkour pos2.
- Stand at corner 1 and type
- Create Arena:
- Type
/wparkour create MyArena.
- Type
- Set Return Spawn:
- Stand where players should spawn when falling or leaving and type
/wparkour setspawn MyArena.
- Stand where players should spawn when falling or leaving and type
- Place Start Pressure Plate:
- Type
/wparkour item MyArenato get the activator pressure plate. - Place it on any solid block (a toplist hologram will automatically appear above it!).
- Type
- Configure Rewards:
- Type
/wparkour rewards MyArena. - Click items from your own inventory into the GUI to add item rewards.
- Use the command block button to add command rewards (e.g.
eco give %player% 50). - Use Shift + Right Click on any item or command to toggle whether it should route to
/parkour storageif a player's inventory is full.
- Type
โ๏ธ Configuration (config.yml)
# Gameplay settings
gameplay:
fall-y-threshold: 2.2 # Blocks below lowest active block before trigger fall
chest-slot: 4 # Inventory slot for the cosmetic block selector chest
# Reward Storage (/parkour storage)
storage:
# How long unclaimed rewards are stored in hours (default: 24h, 0 = never expires)
expiration-hours: 24
# Toplist settings
toplista:
# Permission to exclude staff/admins from holograms
bypass-permission: "wparkour.toplist.bypass"
# Refresh interval in seconds for top scores
frissitesi-ido: 300
๐งฉ Placeholders
In command rewards, you can use the following dynamic placeholders:
%player%or<player>- The player's name%player_uuid%- The player's UUID%score%- The jump score reached when the reward was triggered
๐ Compatibility & Requirements
- Server Software: Paper, Purpur, or Folia compatible fork (1.21.x+)
- Java: Java 21 or newer
- Dependencies: None! (SQLite database is embedded and auto-configured)
- Soft Dependencies: PlaceholderAPI (optional)
๐ฌ Support & Community
Need help configuring wParkour, have questions, or want to suggest new features? Join our official community Discord!
- ๐ Discord Server: dc.coolnw.eu
- ๐ Website: coolnw.eu
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:IVZTJEV9:EDp1gtVs"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:IVZTJEV9:EDp1gtVs"
}
