Skip to content

Agility discovery and jump XP

The Agility skill combines repeatable distance XP with small, one-time exploration awards and a rate-limited jump award. Values live in skills.yml under skills.agility.activities; the same settings are included in the Open, Progressive, and Long-form presets.

Existing installations keep their edited skills.yml on upgrade. To activate new Agility activities on an existing server, merge the desired activity entries from the selected preset into plugins/McProgression/skills.yml; updating the jar alone does not replace that file.

Activity Progressive starting value Eligibility and deduplication
Foot, boat, horse, pig 2 XP per 100 blocks Existing modes. Creative flight and elytra gliding do not count; large movement steps are discarded.
Sprint 1 XP per 100 blocks Sprinting on the ground; does not also award foot-travel XP.
Swim, climb, minecart 1 XP per 100 blocks One mode per movement segment. Swim and climb measure 3D distance; other travel modes use horizontal distance.
Strider 2 XP per 100 blocks Only while riding a strider.
Happy ghast, nautilus 1 XP per 100 blocks Only on server versions that provide the entity; unsupported enabled activities appear in the startup audit.
Chunk discovery 0.5 XP First eligible player movement into each chunk, once per player per world UUID and chunk coordinates.
Biome discovery 5 XP First eligible movement into each biome type, once per player per world UUID and biome key. Re-entering an already discovered biome gives no discovery award.
Jump 0.1 XP Server JUMP statistic increments, at most once per configured cooldown (2 seconds by default).

Why these rates

The existing travel rate is 2 XP per 100 blocks. Chunk discovery at 0.5 XP is a modest bonus rather than a replacement for travel; biome discovery at 5 XP makes a new biome meaningful without making biome-hopping the primary progression loop. Jumping is repeatable and easy to spam, so its base award is deliberately tiny and additionally limited by a per-activity cooldown. These are initial playtest values, not a promise of final balance. Operators can change the XP and cooldown in each skill profile, or disable an activity with enabled: false.

Example:

skills:
  agility:
    activities:
      chunk-discovery:
        enabled: true
        xp: 0.5
      biome-discovery:
        enabled: true
        xp: 5.0
      jump:
        enabled: true
        xp: 0.1
        cooldown-seconds: 2

Discovery keys are stored in the same native progression state as XP, independent of CoreProtect. YAML and configured SQL backends therefore retain them across plugin restarts and CoreProtect installation/removal. The activity and XP are applied together in the in-memory state snapshot; as with ordinary awards, SQL persistence is queued asynchronously. The current deployment model supports one active server writer per progression database; sharing a database between concurrently writing servers is not supported.

Discoveries are scoped per player and world UUID, while the existing skill XP is global and mirrored into the world where it was earned. Thus the first discovery contributes to that world's totals and to boards that include that world. Global and overlapping world-group boards are projections of those totals; they do not create separate discovery ledgers. World resets that create a new UUID count as a new world. Biome discovery is by biome type, not by each separate region of the same biome.

The listener observes player movement across chunk and biome boundaries rather than awarding when the client merely receives a chunk. This avoids attributing a chunk to every player whose view distance happens to load it. It ignores teleports, cross-world movement, creative flight, spectator movement, elytra gliding, and movement steps beyond the configured Agility maximum-step distance. Ordinary walking and supported vehicle travel can discover chunks and biomes.

Jump XP uses Paper's dedicated PlayerJumpEvent when present and falls back to the JUMP statistic increment event otherwise. Only one adapter is registered, and startup identifies which one. On the 1.21.0 fallback, a missing statistic event may mean jumps do not award XP; verify on the actual server build. The configured cooldown is per player and jump activity, and the general daily skill XP cap still applies. PlayerJumpEvent, 1.21.1, Statistic event API.

/mcp help agility lists discovery and jump activities with their configured per-action XP. Operators should verify that display and award rules agree after editing a preset, then playtest the pacing in Survival. Validate persistence by discovering a chunk and biome, restarting with the selected backend, and revisiting them; no repeat award should occur.