Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Living Patina
The world ages as you use it. Walk the same route enough times and the grass wears down to dirt, then to a packed dirt path. Stone left next to lava chars to blackstone. Water sitting against logs grows moss, and cobblestone in a dark, damp corner turns mossy over time.
What it does
Trodden paths
A block counts your steps only when you actually move onto it from another block. Grass blocks (plus configurable soft ground like mycelium, podzol, coarse dirt, and rooted dirt) wear to dirt, and dirt wears into a dirt path. Sprinting wears the ground faster. You can set sneaking to leave no trail.
Environmental aging
A periodic sweeper runs near players and ages blocks in place:
- Stone-family blocks touching lava char toward blackstone.
- Logs and leaves touching water grow a moss carpet on top.
- Cobblestone and stone bricks in dark, damp spots turn into their mossy versions.
Every change runs on the main thread, only in loaded chunks, and is capped per sweep so your TPS stays protected.
Note for server owners
Environmental aging does not tell the difference between player builds and naturally placed blocks.
Stone near a lava feature will char, and cobble in a dark, damp base can go mossy, whether or not you
placed it. If that is not what you want, you can turn environmental aging off
(environment.enabled: false) and keep only the trodden paths, or tune the sweep settings. The
footstep map is kept in memory, so accumulated paths reset when the server restarts.
Commands
/patina (aliases: /livingpatina, /lp)
| Subcommand | Permission | Description |
|---|---|---|
/patina info |
patina.use |
Plugin info and live totals (entries tracked, blocks aged). |
/patina stats |
patina.use |
Step count recorded for the block directly under you. |
/patina reload |
patina.admin |
Reload config.yml and restart the timers. |
/patina sweep |
patina.admin |
Force one environmental sweep right now. |
/patina clear |
patina.admin |
Clear the in-memory step map. |
Permissions
| Node | Default | Grants |
|---|---|---|
patina.use |
true |
The informational subcommands. |
patina.admin |
op |
reload, sweep, clear (plus patina.use). |
Configuration (config.yml)
Key tunables (see the file for the full annotated set):
paths.steps-to-dirt,paths.steps-to-pathset the wear thresholds.paths.sprint-multiplier,paths.wear-while-sneaking,paths.also-wear-to-dirt.environment.sweep-interval-ticks,environment.chunk-radius,environment.max-changes-per-sweep,environment.samples-per-chunk,environment.vertical-radius.environment.lava-charring,environment.water-moss,environment.damp-dark-moss(plusmax-light).maintenance.prune-interval-ticks,maintenance.prune-entry-age-ms.
Either system can be turned off on its own with paths.enabled and environment.enabled.
Compatibility
Paper, Spigot, Bukkit, and Purpur 1.21.1 through 1.21.11, plus the 26.1.x line (verified on 26.1.2). Java 21, compiled to class version 65, Bukkit API only.


