A feature-rich, high-performance and fully configurable TNT plugin built for large servers. Throw TNT, watch blocks fly, see them regenerate β zero lag, total control.
HypeTnT completely transforms the vanilla TNT experience on your Paper server. Every feature is toggleable, every value is tunable, and the entire message system supports both English and Turkish out of the box.
Core Feature Set
Right-click while holding TNT to launch it as a projectile with configurable velocity.
TNT placed on the ground ignites instantly β no flint and steel needed.
Exploded blocks restore themselves with animated SEQUENTIAL or instant ALL_AT_ONCE modes.
Certain blocks (e.g. chests) drop their contents and are permanently destroyed β never restored.
Blocks physically fly through the air as FallingBlock entities, creating cinematic explosions.
Obsidian requires multiple TNT hits before breaking, with a 5-minute counter reset.
Zero damage but full knockback β perfect for jump courses and minigame servers.
English and Turkish included. Add any language by creating a simple YAML file.
Architecture Highlights
Requirements
| Requirement | Version | Note |
|---|---|---|
| Paper / Purpur | 1.21+ | Spigot is NOT supported |
| Java | 21+ | Required for modern API features |
Step-by-Step
Folder Structure
plugins/
βββ HypeTnT/
βββ config.yml # Main configuration
βββ lang/
β βββ en.yml # English messages
β βββ tr.yml # Turkish messages
Throwing
Hold TNT in your hand and right-click (air or block) to launch it as a projectile. The throw velocity is configurable. Creative mode players keep their TNT stack.
Auto-Ignite
When auto-ignite: true, placing a TNT block immediately spawns a primed TNT entity at that location without requiring a flint and steel.
Custom Fuse Timer
Set fuse-ticks to control exactly how long TNT takes to explode. 20 ticks = 1 second. Default is 80 ticks (4 seconds).
Live Countdown Display
When custom-name.enabled: true, a floating name above the TNT shows the remaining fuse time. Supports full colour codes and the %timer% placeholder.
tnt-settings: throw-enabled: true throw-velocity: 1.5 auto-ignite: true fuse-ticks: 80 custom-name: enabled: true names: - "&c%timer%s &4π£" update-interval: 10
Regen Types
Blocks restore one by one from bottom to top with configurable per-block interval. Plays sound and particle effects at each block.
Every block snaps back at exactly the same moment after the delay. Ideal for fast-paced PvP servers.
No-Regen Blocks
Add blocks to no-regen-blocks to mark them as permanently destructible. These blocks are broken by TNT and their contents drop as items, but they never regenerate.
regen-settings: min-delay: 3 max-delay: 5 type: SEQUENTIAL interval: 2 play-effects: true max-concurrent-tasks: 15 no-regen-blocks: - CHEST - TRAPPED_CHEST - BARREL
Blacklist
Blocks in the blacklist are completely immune to TNT. They will never be broken regardless of explosion strength.
Whitelist Mode
Enable whitelist.enabled: true to flip the logic β only blocks in the whitelist can be broken; everything else is protected.
Realistic Explosion
When enabled, blocks do not vanish instantly. Instead they spawn as FallingBlock entities that fly outward from the explosion centre and disappear on landing.
Caps the number of FallingBlock entities spawned per explosion. Keeps entity count safe on busy servers.
Toggle whether flying blocks deal damage to players and mobs they hit mid-air.
explosion-settings: radius: 5.0 cause-fire: false break-blocks: true max-blocks: 200 blacklist: - BEDROCK - OBSIDIAN whitelist: enabled: false realistic: enabled: false max-blocks: 40 hurt-entities: true
The Obsidian Breaker adds a multi-hit mechanic to obsidian. Instead of being permanently immune, obsidian weakens with each TNT hit and breaks after a configurable number of hits.
How It Works
obsidian-breaker: enabled: true hits: 3 notify-player: true
TNT Jump mode lets players use TNT explosions to launch themselves without taking any damage. Full knockback is always preserved.
Configuration
| Setting | Default | Description |
|---|---|---|
| player-damage | false | Set to true for normal damage. False = zero damage, full knockback. |
| tnt-damage-divisor | 1.0 | Divide TNT damage by this value. 2.0 = half damage. |
| fall-damage-divisor | 5.0 | Reduce landing damage for 8s after being launched by TNT. |
damage-settings: player-damage: false tnt-damage-divisor: 1.0 fall-damage-divisor: 5.0
All Options at a Glance
| Key | Default | Description |
|---|---|---|
| language | en | Plugin language (en / tr) |
| tnt-settings.throw-enabled | true | Enable right-click throwing |
| tnt-settings.throw-velocity | 1.5 | Projectile speed multiplier |
| tnt-settings.auto-ignite | true | Ignite TNT on placement |
| tnt-settings.fuse-ticks | 80 | Ticks until explosion (20 = 1s) |
| cooldown-settings.enabled | true | Enable per-player cooldown |
| cooldown-settings.seconds | 3.0 | Cooldown duration in seconds |
| explosion-settings.radius | 5.0 | Explosion strength |
| explosion-settings.cause-fire | false | Spawn fire on explosion |
| explosion-settings.break-blocks | true | Allow block destruction |
| explosion-settings.max-blocks | 200 | Block cap per explosion |
| explosion-settings.disable-drops | false | Suppress item drops |
| explosion-settings.realistic.enabled | false | Flying-block explosion mode |
| regen-settings.type | SEQUENTIAL | SEQUENTIAL or ALL_AT_ONCE |
| regen-settings.min-delay | 3 | Minimum regen start delay (s) |
| regen-settings.max-delay | 5 | Maximum regen start delay (s) |
| regen-settings.max-concurrent-tasks | 15 | Max simultaneous regen jobs |
| damage-settings.player-damage | false | TNT deals damage to players |
| damage-settings.fall-damage-divisor | 5.0 | Post-TNT fall damage reduction |
| obsidian-breaker.enabled | false | Multi-hit obsidian breaking |
| obsidian-breaker.hits | 3 | Hits required to break obsidian |
| minecart-tnt.enabled | true | Apply rules to TNT Minecarts |
| Command | Permission | Description |
|---|---|---|
| /hypetnt reload | hypetnt.admin | Reload config.yml and all language files live β no restart needed |
Usage Example
/hypetnt reload # Output: [HypeTnT] Configuration successfully reloaded!
| Permission | Default | Description |
|---|---|---|
| hypetnt.admin | OP | Access to /hypetnt reload command |
Supported Languages
Adding a Custom Language
HypeTnT is designed from the ground up for large servers. Here is a summary of every optimization built into the plugin.
Memory
An async task runs every 5 minutes and removes expired cooldown entries. The map never grows unbounded even with thousands of players.
All player-keyed maps use ConcurrentHashMap, safe for multi-threaded access without external synchronisation.
Each explosion is limited to max-blocks BlockState snapshots. Unlimited block capture would cause out-of-memory errors.
CPU
ConfigManager caches all values as primitives. Event handlers never call FileConfiguration β they read only local fields.
Blacklist and whitelist are stored as Set<Material>. contains() is O(1) instead of the O(n) cost of a List.
max-concurrent-tasks prevents task flooding. Regen jobs beyond the limit wait in a FIFO queue and start as slots open.
Recommended Settings for Large Servers
explosion-settings: max-blocks: 150 realistic: max-blocks: 20 regen-settings: max-concurrent-tasks: 10 interval: 3