Language

Living Patina

Living Patina

Modrinth

The world ages as you use it. Walked routes wear grass into dirt paths, stone beside lava chars to blackstone, logs by water grow moss. A TPS-friendly aging system for Paper, Spigot, Bukkit, and Purpur 1.21+.

13 downloads updated 18d ago
Modrinth
Bukkit Paper Purpur Spigot 1.21.1 – 26.1.2 Game-mechanics

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-path set 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 (plus max-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.

Versions

No version history available. Use the Download button to get the latest from the source.

Comments 0

No comments yet. Be the first to share your thoughts.

Download Living Patina

Files are served directly from the original source. Modgrid does not host or modify them.