Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
WorldPulse
A world that reacts to what your players actually do.
WorldPulse is a Paper plugin built around a simple loop: player activity → world state → world reaction → new player activity. Instead of firing random events on a timer regardless of what's happening on your server, WorldPulse continuously measures real player behavior in each world and will, over time, let that measurement drive how the world responds. No two servers — and no two worlds on the same server — will ever pulse the same way, because the number is generated by your players, not a dice roll.
This page covers the v0.1 release, which implements the measurement layer that every future feature will be built on.
Concept
Every world tracked by WorldPulse has a Pulse: a 0–100 value per activity channel that represents how active that world currently is in that category. The Pulse is calculated from a rolling time window (15 minutes by default) — recent activity pushes it up, and as activity fades from the window, the Pulse naturally comes back down. There's no manual reset and no fixed "event timer"; it's a continuous, organic measurement.
Features in v0.1
Activity Tracking
Four independent Pulse channels, each fed by real gameplay:
- ⛏ Mining — breaking stone, deepslate, and ores (including nether variants and ancient debris). Blocks a player placed themselves are automatically excluded, so silk-touch "place and re-mine" loops don't inflate the number.
- ⚔ Combat — killing hostile mobs and raid mobs (zombies, skeletons, creepers, endermen, blazes, pillagers, ravagers, and more).
- 🌾 Farming — harvesting fully grown crops (wheat, carrots, potatoes, beetroot), breaking pumpkins/melons, and breeding animals.
- 🧭 Exploration — discovering new chunks, with bonus credit for entering the Nether or the End.
World Statistics
Each world's Pulse is recalculated on a configurable interval (10 seconds by default) purely from an in-memory rolling window — no database access happens on the hot path, so per-block or per-kill events have effectively zero performance cost.
SQLite History
Periodic snapshots (every 5 minutes by default) of each world's Pulse are written to a local SQLite database (worldpulse.db), asynchronously so the main thread is never blocked. This lays the groundwork for the history and analytics features planned for later versions.
Commands
| Command | Description | Permission |
|---|---|---|
/worldpulse status [world] |
Shows the current Pulse for a world (defaults to your current world) | worldpulse.status |
/worldpulse reload |
Reloads config.yml without a restart |
worldpulse.admin |
Configuration
Everything is controllable per world:
worlds:
world:
enabled: true
statistics:
mining: true
combat: true
farming: true
exploration: true
Disable WorldPulse entirely in a world, or disable individual statistics (for example, turning off Farming tracking in the Nether). Pulse window length, update frequency, per-statistic thresholds, exploration point values, and the database snapshot interval are all configurable in config.yml.
How the Pulse Number Is Calculated
- Every tracked action (an ore mined, a mob killed, a crop harvested, a new chunk entered) adds points to that world's in-memory counter for the current minute.
- On each update tick, WorldPulse sums the points inside the configured time window and discards anything older.
- That sum is compared against a configurable threshold and normalized to 0–100.
The result is a number that always reflects recent activity, not a lifetime total — a world that was busy an hour ago but is empty now will show a low Pulse, exactly as you'd expect from something meant to represent what's happening right now.
Roadmap
WorldPulse is being developed in stages, and each version is built on a fully working previous stage:
- v0.1 (current) — Activity tracking, World Statistics, SQLite,
/worldpulse status, configuration - v0.2 — World State layer: Threat, Stability, Ecology, and Civilization scores, plus natural decay over time
- v0.3 — Dynamic Events that respond to World State, an Event GUI, boss bars, titles, sounds, and rewards
- v0.4 — Player Influence tracking, player profiles, achievements, and Pulse history
- v1.0 — Full GUI, PlaceholderAPI support, DiscordSRV integration, a public API, and complete documentation
Requirements
- Server software: Paper (or a Paper fork) — Spigot/CraftBukkit are not supported
- Minecraft version: 1.21.1
- Java: 21+
- No other plugin dependencies
Notes
WorldPulse bundles its own SQLite driver — no external database setup is required, and no other plugin dependencies are needed to run v0.1.
Feedback on v0.1's tracking accuracy and default thresholds is especially welcome, since those defaults will carry forward into how World State is tuned in v0.2.


