PacketRateLimiter

PacketRateLimiter — simple Anti-Dupe & Anti-Lag for your server. It blocks common dupe tricks and reduces lag by limiting spammy inventory packets at the network level, before the server even processes them.

Why servers use it

  • Stops dupes: Limits the fast inventory actions dupers use (click, drag, drop, swap).
  • Reduces lag: Smooths player packet bursts to protect TPS without hurting normal play.
  • Configurable: You control refill speed and how many actions are allowed in a burst.
  • Creative exempt: Players in creative mode are never rate-limited.

Actions limited

  • Inventory clicks (including shift-click and number-key swaps)
  • Inventory drag (cost scales with how many slots are dragged)
  • Item drops (Q)
  • Offhand swap (F)

Default config

limiter.refill_per_sec: 12.0
limiter.burst_capacity: 20.0
costs.click: 1.0
costs.drag_base: 1.0
costs.drag_per_4_slots: 1.0
costs.drop: 1.0
costs.swap: 1.5
messages.enabled: true
messages.deny: &cSlow down—inventory actions limited.
messages.cooldown_ms: 1500
bypass_permission: packetratelimiter.bypass

Commands & perms
/prlreload — reload config (admin permission in plugin.yml)
Bypass: packetratelimiter.bypass

Under the hood
Uses PacketEvents to intercept packets on the Netty I/O thread before they reach the server, eliminating the client-side desync (phantom item moves) that occurs when cancelling Bukkit events after the fact. Per-player token buckets in a concurrent map; cleanup on PlayerQuit; cooldown messages debounced to avoid spam.

PacketRateLimiter • Fair play, zero fuss — built for Anti-Dupe & Anti-Lag.

About This Project

  • Project ID
    1358318
  • Created
    Oct 3, 2025
  • Last Released File
    Mar 26, 2026
  • Total Downloads
    232
  • License

Categories

Members

Recent Files