
PerformanceX
Struggling with LAG??? Look no further! PX is an All-in-one server performance suite - 50 modules including item/mob despawn timers, AI throttling, lag machine detection, auto backups, Discord webhooks, Geyser support, and more. 1.8.8-26.1.x.
v1.1.70 — Fabric /px Command: Performance Module Management
The Fabric
/pxcommand now exposes performance modules alongside integrations.New subcommands:
/px status— TPS (1m/5m/15m) + heap usage, outputs to server console/log/px modules [filter]— lists all 28 performance modules with on/off state
Updated subcommands:
/px enable <id>— now checks performance modules first, falls back to integrations/px disable <id>— same priority order
This brings the Fabric command on par with the Sponge
/pxcommand added in v1.1.69.v1.1.69 — Sponge /px Command
Added the
/pxcommand handler for the Sponge platform using the native Sponge Command API.Subcommands:
/px— plugin version + active module count/px status— live TPS (1m/5m/15m), heap usage with color-coded indicators/px modules— lists all 20 modules with on/off state/px enable <id>— enable a module at runtime/px disable <id>— disable a module at runtime/px reload— reloadconfig.ymland re-apply enabled/disabled states without restarting
Permission node:
performancex.adminAlso added
SpongeModuleManager.reload()which keeps the monitor's TPS history intact and never disables the monitor itself.v1.1.68 — Sponge Platform Expansion (final batch)
Two more Sponge performance modules, completing the Sponge expansion:
item-merge— merges nearby identical ground item stacks usingKeys.ITEM_STACK_SNAPSHOTandItemTypegrouping. Reduces entity count at mob farms and quarry sites.hopper-limiter— throttles hopper transfer rates by injecting an NMScooldownTimedelay via reflection onHopperBlockEntity. Respects per-chunk caps and doubles the interval during lag.
Sponge now has 20 performance modules total, spanning entity management, world tuning, resource monitoring, and high-level lag response — all using Sponge API 12 natively.
v1.1.67 — Sponge Platform Expansion (continued)
Added 7 more performance modules for the Sponge platform:
Entity management
entity-culling— remove excess mobs from player-empty areas during lagbreeding-throttler— global baby mob count cap (usesKeys.IS_ADULT)projectile-limiter— cap in-flightProjectileentities globallyitem-frame-optimizer— capItemFrameentities per world, remove distant ones
World tuning
explosion-optimizer— capPrimedTNTentities per world (halved during lag)random-tick-optimizer— reducerandomTickSpeedgamerule during lagmob-griefing-optimizer— disablemobGriefinggamerule during lag, restore on recovery
Sponge now has 18 performance modules total. All use native Sponge API 12 (
Keys,GameRules, Sponge entity interfaces) with no reflection required.v1.1.66 — Sponge Platform Expansion
Added 11 performance modules for the Sponge platform:
Entity management
entity-limiter— per-chunk mob caps (monsters/animals/ambient)mob-clear— periodic countdown mob sweepitem-clear— periodic countdown ground item sweepmob-ai-throttler— disable AI on Creature entities far from playersvillager-optimizer— disable villager AI when no player is nearbyspawn-limiter— global per-world mob caps
Resource monitoring
ram-optimizer— heap monitoring + System.gc() hintscpu-stabilizer— system CPU load alerts
High-level response
lag-actions— tiered automatic lag response (3 TPS tiers)auto-restart— scheduled server restarts with marker file
Plus
SpongePerformanceMonitorModule(nanoTime TPS tracking, 1/5/15-min averages) that all lag-aware modules share.All modules are opt-in via
config/performancex/config.ymland individually tunable inconfig/performancex/modules/<id>.yml.added perf-display module — placeable live-updating performance holograms. use /px display place [name] to anchor a hologram showing tps, mspt, ram, players, entities, and chunks. updates every second, survives reloads and restarts, stored in module config. uses textdisplay on 1.19.4+, armorstand fallback on older versions. also: fabric now has 28 performance modules (leaf-decay-optimizer, collision-limiter added this session).
fabric: added leaf-decay-optimizer (halt doLeafDecay gamerule during lag to stop leaf cascade block updates) and collision-limiter (set noPhysics=true on item entities, item frames, and projectiles to cut block-collision overhead). fabric now has 28 performance modules, matching forge parity.
fabric: added random-tick-optimizer (reduce randomTickSpeed gamerule during lag), view-distance-adjuster (dynamically shrink view distance under load), and spawn-tick-optimizer (scan-based probabilistic mob cull during lag). fabric now has 26 performance modules.
fabric: added hopper-limiter (throttle hopper transfer rate under load), explosion-optimizer (cap active TNT entities per dimension), and mob-griefing-optimizer (toggle mob griefing gamerule during lag). fabric now has 23 performance modules.
fabric: added item-merge (merges nearby identical ground item stacks), item-frame-optimizer (caps item frames per world, removes distant ones), and auto-backup (scheduled world backups with local/ftp backends). fabric now has 20 performance modules.
fabric now has 17 performance modules (entity limiter, mob clear, item clear, mob ai throttler, entity culling, spawn limiter, breeding throttler, projectile limiter, villager optimizer, ram optimizer, cpu stabilizer, lag actions, auto restart, dynamic sim distance, tick profiler, anti lag machine, performance monitor). 3 of those are fabric-exclusive (dynamic sim distance, tick profiler, anti lag machine). all 100% reflective, no loom required.
quality pass xx — placeholderapi.yml now documents all 13 previously undocumented placeholders: tps_1m, next_mobclear, items_tracked, modules_enabled, modules_total, integrations_active, integrations_total, lag_throttle_active, packets_throttled, random_tick_speed, disk_io_deferred, holograms. also added a note for the two dynamic placeholder patterns (module_
and integration_ ) which were working but completely invisible in the docs. quality pass xix — webhooks.yml now documents all 10 previously undocumented events (disk_io_throttled, disk_io_resumed, ram_gc_threshold, ram_alert, ram_gc_scheduled, cpu_high, plugin_auto_disabled, server_hang, mythicmobs_boss_spawn, mythicmobs_boss_death) with their placeholder variables. also added all 10 as example entries in the main-discord endpoint block so you can just flip enabled: true without guessing the field names.
v1.1.57 — Quality Pass XVIII
Bug Fixes
- AutoConfig: The manual restart countdown (
repeatGlobaltask) was never cancelled before callingBukkit.getServer().shutdown(). The task continued ticking through the shutdown sequence. Now theTaskHandleis stored in a final array ref and cancelled beforeshutdown()is dispatched. - AutoConfig:
backupDir.mkdirs()return value was ignored — a silently-failed directory creation produced a confusingFileNotFoundExceptionon the next line. Now logs a clear[AutoConfig] Could not create backup directoryerror and returnsnullearly so the caller skips the config apply.
New Features
- Disk I/O Throttler: Now fires two webhook events that admins can subscribe to in
webhooks.yml:disk_io_throttled— fires when the IOPS budget is exceeded and auto-save is suppressed. Includessaves_per_second,budget, andusage_percentplaceholders.disk_io_resumed— fires when I/O pressure eases and auto-save is restored. Includessaves_per_secondandbudgetplaceholders.
- AutoConfig: The manual restart countdown (
v1.1.56 — Quality Pass XVII
Bug Fixes
- Webhooks:
fire("server_stop", ...)inonDisable()is now wrapped in a try-catch soqueue.shutdown()(the 5-second drain giving webhooks time to deliver) always runs even if the payload build throws.
Improvements
- Performance Display: Now declares a soft
requires("monitor")dependency so a warning appears at startup if the monitor module is off — holograms fall back to?for all stats without it.
New PlaceholderAPI Placeholders
%performancex_tps_1m%: Explicit 1-minute TPS alias matching the{tps_1m}hologram placeholder name for consistency.%performancex_holograms%: Number of currently placed performance-display holograms (from theperf-displaymodule).%performancex_disk_io_deferred%:true/false— whether the Disk I/O Throttler is currently deferring writes due to IOPS budget exhaustion.
- Webhooks:
v1.1.55 — Performance Display Holograms
New Features
- Performance Display (
perf-display): New module — placeable, live-updating performance holograms for server admins.- Place with
/px display place [name], remove with/px display remove <name>, list with/px display list. - Shows TPS, MSPT, RAM usage, player count, entity count, and chunk count from the live monitor snapshot.
- Color-coded TPS and MSPT (green/yellow/red) via MiniMessage
{tps_color}and{mspt_color}placeholders. - Uses a single TextDisplay entity on 1.19.4+ (native multi-line); one ArmorStand per line on older versions.
- Updates every second by default — configurable via
update_interval_ticks. - Hologram positions are persisted in
perf-display.ymland respawn automatically on reload and restart. - Folia-compatible: entity spawning and updates dispatched on the correct region thread.
- Auto-respawns holograms when their chunk reloads via
ChunkLoadEvent.
- Place with
- Performance Display (
v1.1.54 — Quality Pass XVI
Improvements
- 67 Integrations: All remaining integration files with raw unvalidated numeric config reads now use
ConfigValidator— invalid values warn and fall back to safe defaults instead of silently misbehaving. - AbstractIntegration:
getCacheTtlMs()now validates the rawgetLongresult — values ≤ 0 fall back to 5000ms with a warning instead of returning zero or negative cache TTLs. - GriefPrevention:
claim_check_radiuswas read with a rawgetLongand no validation; now usesConfigValidatorwith a safe fallback.
- 67 Integrations: All remaining integration files with raw unvalidated numeric config reads now use
v1.1.53 — Integration Config Validation
Config Validation
- Lands:
claim_cache_ttl_msnow validated — zero/negative logs a warning and falls back to 5000ms instead of silently clamping - Towny: same fix for
claim_cache_ttl_ms - Residence: same fix for
claim_cache_ttl_ms - GriefDefender: same fix for
claim_cache_ttl_ms - ASkyBlock:
island_cache_ttl_msnow validated — zero/negative logs a warning and falls back to 5000ms - IridiumSkyblock: same fix for
island_cache_ttl_ms - PlotSquared:
plot_cache_ttl_msnow validated — zero/negative logs a warning and falls back to 5000ms - ProtectionStones:
region_cache_ttl_msnow validated — zero/negative logs a warning and falls back to 5000ms - Veinminer:
context_ttl_msanddetection_radiusnow validated — zero/negative logs a warning and uses defaults - xPickup:
check_radiusnow validated — zero/negative logs a warning and falls back to 8 - AdvancedEnchantments:
min_level_to_protectnow validated — zero/negative logs a warning and falls back to 1
- Lands:
v1.1.52 — Quality Pass XIV
Config Validation
- Auto Updater:
check_interval_hours,timeout.connect_ms, andtimeout.read_msnow use ConfigValidator; removed a silentMath.maxclamp that suppressed the warning when the interval was set too low. - Benchmark:
cpu-test-seconds,ram-test-mb,disk-test-mb,network-test-bytes, andnetwork-timeout-msnow use ConfigValidator — zero values no longer produce misleading benchmark scores or cause immediate HTTP timeouts. - Block Logger:
max-query-results,max-radius,write-batch-size, andwrite-interval-secondsnow use ConfigValidator — zero values no longer silently empty all query results or spin the flush task every tick.
- Auto Updater:
v1.1.51 — Quality Pass XIII
Config Validation
- Redstone Limiter:
lag_aware.tps_thresholdnow uses ConfigValidator — it was the only value in the method skipped by the existing validator instance. - Entity Limiter:
lag_aware.tps_thresholdandlag_aware.cap_multipliernow use ConfigValidator; removed a silent clamp that replaced out-of-range multipliers with no warning. - Log Shipping:
interval_seconds,max_buffered_warnings,connect_timeout_ms, andread_timeout_msnow use ConfigValidator; removed four silentMath.maxclamps. - View Distance Adjuster:
check_interval_seconds,default_view_distance, anddefault_simulation_distancenow use ConfigValidator; removed three silentMath.maxclamps.
- Redstone Limiter:

