Nobody starts as a parkour master. With ParCool Progression, every ParCool movement is locked behind Agility and Strength levels that you earn by playing: sprinting, mining, fighting, and training on real gym equipment with its own minigame.
⚠️ Requires ParCool and GeckoLib. See Dependencies.
🚧 Not compatible with ParCool 4 yet. Please use ParCool 3.x (3.4.x) for now. ParCool 4 support is planned.
Press H at any time to open your Character Sheet: current levels, XP progress, how each activity pays out, and a roadmap of every move you will unlock.


Right-click the treadmill, choose your speed (1-10) and incline (0-5), then run. Right-click when the cursor is inside the target zone: 🟩 green = +2 points, 🟨 yellow = +1 point. Reach 50 points for a perfect session, or Shift to cash out early. Higher speed and incline give up to x3 XP, but the cursor gets faster and the zone smaller. A miss fails the run.
Reward: up to 150 Agility XP per session.

Right-click the barbell, pick a weight level (1-3), then click rapidly to lift. The bar keeps dropping while you are not clicking, and heavier weights give more XP but weaker clicks. Watch out for the random "Press SPACE!" skill check, miss it and you drop the bar. Shift to leave. Built-in anti-autoclicker.
Reward: 10 / 15 / 20 Strength XP per rep at weight 1 / 2 / 3, up to 600 XP per session.

Hold it, right-click to start, then right-click again while the cursor is in the zone. Shift + Right-click cashes out your points as Strength XP, and so does switching to another item. A miss resets your score and slows you down for a moment. Your score stays on the item between workouts.
Reward: up to 50 Strength XP per workout.
| Activity | Skill | Default XP |
|---|---|---|
| Breaking blocks (survival) | Strength | 1 XP per block |
| Melee hits on living mobs | Strength | 2 XP per hit |
| Sprinting | Agility | 1 XP per 10 blocks |
Anti-farm cooldowns apply, and everything is configurable.
Default level cap: 20. Everything is editable in the requirements file.
| Agility | Level | Strength | Level |
|---|---|---|---|
| Crawl | 1 | Climb Poles | 2 |
| Vault | 3 | Hang Down | 4 |
| Hide in Block | 5 | Cling to Cliff | 6 |
| Slide | 7 | Wall Slide | 8 |
| Dodge | 9 | Fast Swim | 10 |
| Fast Run | 11 | Dive | 12 |
| Quick Turn | 13 | Cat Leap | 15 |
| Roll | 15 | Charge Jump | 17 |
| Breakfall / Tap | 17 | Vertical Wall Run | 19 |
| Wall Jump | 19 | Horizontal Wall Run | 20 |
| Flipping, Sky Dive | 20 |
Creative mode players are never restricted.
All recipes can be changed or disabled in the config.
Treadmill

Deadlift

Tactical Dumbbell

XP rates, cooldowns, minigame difficulty, sounds, level-up effects and crafting recipes. Apply changes without restarting with /parcoolprogression reload.
["General Settings"]
#Amount of XP required to level up Strength and Agility (multiplied by current level).
#Range: > 1
xpPerLevel = 100
#Seconds a player must rest after a treadmill session before starting another (0 = no cooldown).
#Range: 0 ~ 3600
treadmillCooldownSeconds = 30
#Minimum food level (0-20) required to start a treadmill session.
#Range: 0 ~ 20
treadmillMinFood = 6
#Seconds a player must rest after a deadlift session before starting another (0 = no cooldown).
#Range: 0 ~ 3600
deadliftCooldownSeconds = 30
#Minimum food level (0-20) required to start a deadlift session.
#Range: 0 ~ 20
deadliftMinFood = 6
["XP Rewards"]
#Strength XP per block broken (survival only).
#Range: 0 ~ 1000
blockBreakStrengthXp = 1
#Strength XP per melee hit on an entity (survival only).
#Range: 0 ~ 1000
meleeHitStrengthXp = 2
#Anti XP-farm: minimum ticks between two block breaks that give Strength XP, per player (20 ticks = 1 second, 0 = no limit). Blocks with hardness 0 or less (grass, flowers, torches, ...) and unbreakable blocks never give XP, regardless of this value.
#Range: 0 ~ 1200
blockBreakCooldownTicks = 5
#Anti XP-farm: minimum ticks between two melee hits on the SAME target that give Strength XP, per player (20 ticks = 1 second, 0 = no limit). Only living targets give XP; armor stands never do.
#Range: 0 ~ 1200
meleeHitCooldownTicks = 10
#How many blocks of sprinting are needed to earn sprintAgilityXp.
#Range: 0.5 ~ 100000.0
sprintBlocksPerXp = 10.0
#Agility XP granted every sprintBlocksPerXp blocks of sprinting.
#Range: 0 ~ 1000
sprintAgilityXp = 1
#Multiplier on dumbbell workout score (score is 1-50) to get Strength XP.
#Range: 0.0 ~ 1000.0
dumbbellXpMultiplier = 1.0
#Extra multiplier on treadmill Agility XP (on top of the speed/incline multiplier, which is up to x3).
#Range: 0.0 ~ 1000.0
treadmillXpMultiplier = 1.0
#Extra multiplier on deadlift Strength XP.
#Range: 0.0 ~ 1000.0
deadliftXpMultiplier = 1.0
[Sounds]
#Play sound effects in the dumbbell, treadmill and deadlift minigames.
soundsEnabled = true
#Master volume of the minigame sounds (0.0 - 1.0).
#Range: 0.0 ~ 1.0
soundVolume = 1.0
["Level Up"]
#Show the level-up title, the unlocked-move action bar message and the particles when a skill levels up. (The PlayerSkillLevelUpEvent for other mods / KubeJS is always fired.)
levelUpNotifications = true
#Play the level-up sound (also needs soundsEnabled in the Sounds section; soundVolume applies).
levelUpSoundEnabled = true
["Dumbbell Recipe"]
#Enable the dumbbell crafting recipe.
enabled = true
#Amount crafted.
#Range: 1 ~ 64
count = 1
#Shaped pattern rows. Pattern: 1-3 rows, all rows same length, '_' = empty slot. Keys: 'X=modid:item' or 'X=#modid:tag' (modded items and tags work). Applies on world load or /reload. Invalid recipe falls back to the default.
pattern = ["BIB"]
#Ingredient keys.
keys = ["B=minecraft:iron_block", "I=minecraft:iron_ingot"]
["Treadmill Recipe"]
#Enable the treadmill crafting recipe.
enabled = true
#Amount crafted.
#Range: 1 ~ 64
count = 1
#Shaped pattern rows. Pattern: 1-3 rows, all rows same length, '_' = empty slot. Keys: 'X=modid:item' or 'X=#modid:tag' (modded items and tags work). Applies on world load or /reload. Invalid recipe falls back to the default.
pattern = ["_L_", "WWW", "BRB"]
#Ingredient keys.
keys = ["L=minecraft:lever", "W=minecraft:black_wool", "B=minecraft:iron_block", "R=minecraft:redstone_block"]
["Deadlift Settings"]
#Enable the deadlift crafting recipe.
enabled = true
#Amount crafted.
#Range: 1 ~ 64
count = 1
#Shaped pattern rows. Pattern: 1-3 rows, all rows same length, '_' = empty slot. Keys: 'X=modid:item' or 'X=#modid:tag' (modded items and tags work). Applies on world load or /reload. Invalid recipe falls back to the default.
pattern = ["BIB", "BIB", "BIB"]
#Ingredient keys.
keys = ["B=minecraft:iron_block", "I=minecraft:iron_ingot"]
["Deadlift Minigame"]
#Rep progress gained per accepted left click at weight level 1 (1.0 = one full rep, 0.06 = about 17 clicks).
#Range: 0.001 ~ 1.0
clickGain = 0.06
#Rep progress lost per tick while you are not clicking enough (0.004 = 0.08 per second, about 1.5 clicks per second needed just to hold still).
#Range: 0.0 ~ 0.5
decayPerTick = 0.004
#Fraction each click gets weaker per weight level above 1 (0.06 = 6%).
#Range: 0.0 ~ 0.45
weightClickPenalty = 0.06
#Fraction the progress decay grows per weight level above 1 (0.10 = 10%).
#Range: 0.0 ~ 5.0
weightDecayBonus = 0.1
#Minimum ticks between two counted clicks (anti auto-clicker; 2 = max 10 clicks per second, 0 = no limit).
#Range: 0 ~ 20
clickCooldownTicks = 2
#Base Strength XP for each completed rep (multiplied by deadliftXpMultiplier).
#Range: 0 ~ 1000
xpPerRep = 10
#Extra XP multiplier per weight level above 1 (xp = base * (1 + bonus * (level - 1)); the max level gives x(1 + 2 * bonus)).
#Range: 0.0 ~ 10.0
weightXpBonus = 0.5
#Food exhaustion added per completed rep (multiplied by the weight level multiplier).
#Range: 0.0 ~ 40.0
exhaustionPerRep = 1.0
#Reps after which the session ends automatically (0 = unlimited; not recommended, it allows AFK farming).
#Range: 0 ~ 1000
maxReps = 30
#Maximum length of one session in seconds (0 = unlimited; not recommended, it allows AFK farming).
#Range: 0 ~ 3600
maxDurationSeconds = 120
["Deadlift Anti-Macro"]
#Macro detection: the server measures the time (in milliseconds) between the last 40 counted clicks. If their standard deviation is below this value the clicking is too regular for a human and the session is ended. Higher = stricter. Humans clicking at a steady pace are normally at 10 ms or more; fixed-rate auto clickers are usually under 4 ms. Values above ~8 may hit very steady human clicking. 0 = detection off.
#Range: 0.0 ~ 1000.0
macroMinIntervalStdDevMs = 5.0
#Enable the random skill check: the player must press SPACE shortly after a 'Press SPACE!' prompt appears, otherwise the bar is dropped and the set ends.
skillCheckEnabled = true
#Shortest time in seconds between two skill checks.
#Range: 1 ~ 3600
skillCheckMinSeconds = 10
#Longest time in seconds between two skill checks (if lower than skillCheckMinSeconds, the minimum is used).
#Range: 1 ~ 3600
skillCheckMaxSeconds = 25
#Ticks the player has to press SPACE after the prompt (20 ticks = 1 second).
#Range: 5 ~ 400
skillCheckReactionTicks = 40
Set the level cap and decide which level each ParCool action needs. Set a level to 1 to remove a requirement. Actions you do not list keep their default. Invalid entries fall back to the default and are reported in latest.log.
{
"_help": "Movement requirements. 'maxLevel' is the level cap of both skills. Each entry under 'requirements' is a ParCool action (simple class name) -> skill ('agility' or 'strength') and the level needed. Actions not listed keep their default; set level 1 to remove a requirement. 'announce': false hides the action from the level-up message. Invalid values fall back to the default (see latest.log). Apply changes with /parcoolprogression reload. Keys starting with '_' are comments.",
"maxLevel": 20,
"requirements": {
"Crawl": { "skill": "agility", "level": 1 },
"Vault": { "skill": "agility", "level": 3 },
"HideInBlock": { "skill": "agility", "level": 5 },
"Slide": { "skill": "agility", "level": 7 },
"Dodge": { "skill": "agility", "level": 9 },
"FastRun": { "skill": "agility", "level": 11 },
"QuickTurn": { "skill": "agility", "level": 13 },
"Roll": { "skill": "agility", "level": 15 },
"Breakfall": { "skill": "agility", "level": 17, "announce": false },
"BreakfallReady": { "skill": "agility", "level": 17 },
"SafetyTap": { "skill": "agility", "level": 17, "announce": false },
"Tap": { "skill": "agility", "level": 17 },
"WallJump": { "skill": "agility", "level": 19 },
"Flipping": { "skill": "agility", "level": 20 },
"SkyDive": { "skill": "agility", "level": 20 },
"ClimbPoles": { "skill": "strength", "level": 2 },
"HangDown": { "skill": "strength", "level": 4 },
"ClingToCliff": { "skill": "strength", "level": 6 },
"WallSlide": { "skill": "strength", "level": 8 },
"FastSwim": { "skill": "strength", "level": 10 },
"Dive": { "skill": "strength", "level": 12 },
"CatLeap": { "skill": "strength", "level": 15 },
"ChargeJump": { "skill": "strength", "level": 17 },
"VerticalWallRun": { "skill": "strength", "level": 19 },
"HorizontalWallRun": { "skill": "strength", "level": 20 }
}
}
You can also see the full list on the Dependencies page.
| Mod | Version | Needed on |
|---|---|---|
| Minecraft Forge | 47+ (Minecraft 1.20.1) | Client and server |
| ParCool | 3.4.x (ParCool 4 is not supported yet) | Client and server |
| GeckoLib | 4.4.7+ | Client and server |
Everything works without these. They only make the Deadlift look better.
| Mod | What it adds |
|---|---|
| Player Animation Library | 🎥 Third-person camera and a full lifter pose: your character bends down and pulls the bar. You also see other players lifting. |
| BendyLib | 🦵 Natural knee bending during the lift pose (needs Player Animation Library). |
Optional mods are not needed on the server. Players can mix and match: someone without them simply sees a standing lifter, and nothing breaks.
Commands (permission level 2)
| Command | Description |
|---|---|
/parcoolprogression addxp <strength|agility> <amount> | Give yourself XP |
/parcoolprogression setlevel <strength|agility> <level> | Set your level |
/parcoolprogression reload | Reload both config files and sync all players |
Developers and modpack makers
PlayerSkillLevelUpEvent is fired on the Forge event bus whenever a player's Strength or Agility goes up. It works from KubeJS too:
ForgeEvents.onEvent('com.deadhorizon.parcoolprogression.event.PlayerSkillLevelUpEvent', e => {
// e.getEntity(), e.getSkill(), e.getOldLevel(), e.getNewLevel()
})
Can I use this in a modpack?
Yes, feel free. Credit is appreciated.
Does it work with ParCool's own settings?
Yes. ParCool Progression adds a level requirement on top of ParCool's normal rules.
A player cannot do a move they should have unlocked.
Check their level in the Character Sheet (H) and compare it with parcoolprogression-requirements.json on the server.
Can I make leveling faster or slower?
Yes. Change xpPerLevel, the XP multipliers, or maxLevel.
Where do I report bugs?
Join our Discord server or leave a comment on this page. Please include your latest.log.

Made by yagizomerk