
nominecarttnt
Blacklist/whitelist per world system that ban crystal anchors tnt minecart bed bombing .......
** 🛡️ NoMinecartTnt - Complete Plugin Description
📖 Overview
NoMinecartTnt is a lightweight, high-performance protection plugin for Paper 1.21.1 servers that prevents griefing and exploits using dangerous explosive items. Unlike traditional explosion protection plugins that react after damage is done, NoMinecartTnt stops the problem at the source by preventing placement and interaction before any explosion occurs.
🎯 The Problem It Solves
Minecraft has several items that can cause massive destruction:
- TNT Minecarts - Can destroy vast areas and crash servers when used in large quantities
- End Crystals - Used for PvP crystal bombing and base raiding
- Beds - Explode in the Nether and End, often used for griefing or resource gathering exploits
- Respawn Anchors - Explode in the Overworld and End, creating mobile explosion sources
Traditional solutions either:
- ❌ Let the explosion happen and then rollback (laggy, damages gameplay)
- ❌ Cancel all explosions globally (breaks TNT cannons, creepers, etc.)
- ❌ Use complex claim systems (resource-heavy, complicated for players)
NoMinecartTnt takes a surgical approach: prevent only the dangerous interactions while keeping normal gameplay intact.
✨ Core Features
🌍 1. Intelligent World Filtering
Two flexible modes to match your server setup:
WHITELIST Mode (Default)
- Restrictions ONLY apply in specified worlds
- Perfect for: Survival worlds that need protection while keeping creative/testing worlds unrestricted
BLACKLIST Mode
- Restrictions apply everywhere EXCEPT specified worlds
- Perfect for: Allowing special arenas or event worlds while protecting the rest
world-filter:
mode: WHITELIST
worlds:
- world
- world_nether
- world_the_end
🧠 2. Environment-Aware Detection
Unlike naive plugins that check world names, NoMinecartTnt uses Minecraft's native environment detection:
World.Environment.NETHER // Works on "world_nether", "survival_nether", "nether_pvp", etc.
World.Environment.NORMAL // Works on any overworld
World.Environment.THE_END // Works on any end dimension
Why This Matters:
- ✅ Works with custom world names
- ✅ Works with multiverse/world management plugins
- ✅ Future-proof against world naming changes
- ✅ No configuration needed for dimension detection
🚫 3. Four Independent Restriction Systems
Each can be toggled on/off individually in config:
| Restriction | Where Applied | Prevents | Use Case |
|---|---|---|---|
| TNT Minecarts | All filtered worlds | Placement via right-click | Server lag prevention, anti-griefing |
| End Crystals | All filtered worlds | Placement on obsidian/bedrock | PvP crystal bombing, base raiding |
| Beds (Nether/End) | NETHER & THE_END only | Right-click interaction | Bed bombing, ancient debris mining exploits |
| Respawn Anchors (Overworld/End) | NORMAL & THE_END only | Placement & glowstone charging | Mobile griefing, explosion exploits |
⚡ 4. Pre-Emptive Prevention (Zero Lag)
Most protection plugins work like this:
Player places TNT → TNT explodes → Plugin detects explosion → Plugin rolls back damage
NoMinecartTnt works like this:
Player tries to place TNT Minecart → Plugin cancels placement → Nothing happens
Benefits:
- 🚀 Zero performance impact from explosions
- 🛡️ No block damage to rollback
- 📦 No item drops to clean up
- 👥 No player/entity damage calculations
🎨 5. Modern MiniMessage Support
Fully customizable messages using Kyori Adventure (MiniMessage):
messages:
tnt-minecart: "<red>✖ TNT Minecarts are disabled in this world!"
end-crystal: "<red>✖ End Crystals are disabled in this world!"
bed-nether-end: "<gold>✖ You cannot use beds in this dimension!"
respawn-anchor-overworld-end: "<gold>✖ Respawn Anchors only work in the Nether!"
Supports:
- Colors:
<red>,<green>,<gold>,<FF5733>(hex colors) - Formatting:
<bold>,<italic>,<underlined> - Gradients:
<gradient:red:blue>,<✨> - Hover/Click events (if you want advanced messages)
🔄 7. Hot-Reload Support
/nominecarttnt reload
/nmt reload
Change configuration without restarting the server:
- Update world lists
- Toggle restrictions on/off
- Change messages
- Switch between whitelist/blacklist modes
🎮 Use Cases & Server Types
🏰 1. Survival Servers
Scenario: You want players to enjoy vanilla TNT mechanics (mining, cannons) but prevent mass destruction.
Configuration:
restrictions:
tnt-minecarts: true Prevent lag machines
end-crystals: true Prevent crystal PvP griefing
beds-in-nether-end: false Allow bed mining for ancient debris
respawn-anchors-in-overworld-end: true
Result: Normal TNT works, but explosive griefing tools are disabled.
⚔️ 2. PvP/Factions Servers
Scenario: You want skill-based PvP, not explosion spam.
Configuration:
world-filter:
mode: BLACKLIST
worlds:
- warzone Special arena where all explosives are allowed
restrictions:
tnt-minecarts: true
end-crystals: true Prevents crystal PvP cheese
beds-in-nether-end: true
respawn-anchors-in-overworld-end: true
Result: Clean PvP in most worlds, unrestricted warfare in designated arenas.
🎨 3. Creative/Build Servers
Scenario: Protect spawn and showcase areas, allow everything in build plots.
Configuration:
world-filter:
mode: WHITELIST
worlds:
- lobby
- showcase
restrictions:
tnt-minecarts: true
end-crystals: true
beds-in-nether-end: false Decorative beds should work
respawn-anchors-in-overworld-end: false
Result: Protected public areas, unrestricted creative zones.
🌐 4. Hybrid Servers (Multiple Game Modes)
Scenario: Survival, Creative, SkyBlock, Minigames on one server.
Configuration:
world-filter:
mode: BLACKLIST
worlds:
- creative
- build_world
- minigame_lobby
All restrictions enabled everywhere except listed worlds
Result: Full protection in survival/skyblock, full freedom in creative/minigames.
🏭 5. Anarchy Servers (Selective Protection)
Scenario: True anarchy, but prevent server-crashing exploits.
Configuration:
world-filter:
mode: WHITELIST
worlds:
- world
restrictions:
tnt-minecarts: true ONLY prevent lag machines
end-crystals: false
beds-in-nether-end: false
respawn-anchors-in-overworld-end: false
Result: Maximum freedom, minimum anti-lag intervention.
🔧 Configuration Deep Dive
Complete config.yml with Explanations
═══════════════════════════════════════════════════════════
NoMinecartTnt Configuration
═══════════════════════════════════════════════════════════
┌─────────────────────────────────────────────────────────┐
│ WORLD FILTER SYSTEM │
└─────────────────────────────────────────────────────────┘
world-filter:
Mode determines how the world list is interpreted:
WHITELIST = Restrictions ONLY in listed worlds
BLACKLIST = Restrictions EVERYWHERE except listed worlds
mode: WHITELIST
World names (case-insensitive)
Use exact names from your server's world folders
worlds:
- world
- world_nether
- world_the_end
┌─────────────────────────────────────────────────────────┐
│ RESTRICTION TOGGLES │
└─────────────────────────────────────────────────────────┘
restrictions:
TNT Minecarts (Applied in: ALL filtered worlds)
Prevents: Right-click placement on rails
Reason: Lag machines, mass destruction
tnt-minecarts: true
End Crystals (Applied in: ALL filtered worlds)
Prevents: Placement on obsidian/bedrock
Reason: Crystal PvP, base raiding, griefing
end-crystals: true
Beds (Applied in: NETHER and THE_END dimensions only)
Prevents: Right-click interaction
Reason: Bed bombing, ancient debris mining exploits
Note: Does NOT prevent sleeping in Overworld
beds-in-nether-end: true
Respawn Anchors (Applied in: OVERWORLD and THE_END only)
Prevents: Block placement and glowstone charging
Reason: Mobile explosion source outside intended dimension
Note: Still works normally in the Nether
respawn-anchors-in-overworld-end: true
┌─────────────────────────────────────────────────────────┐
│ MESSAGES (MiniMessage Format) │
└─────────────────────────────────────────────────────────┘
messages:
tnt-minecart: "<red>✖ TNT Minecarts are disabled in this world!"
end-crystal: "<red>✖ End Crystals are disabled in this world!"
bed-nether-end: "<gold>✖ You cannot use beds in this dimension!"
respawn-anchor-overworld-end: "<gold>✖ Respawn Anchors only work in the Nether!"
reload: "<green>✔ NoMinecartTnt configuration reloaded!"
no-permission: "<red>✖ You don't have permission to use this command!"
┌─────────────────────────────────────────────────────────┐
│ MINIMESSAGE EXAMPLES │
└─────────────────────────────────────────────────────────┘
Basic colors: <red>, <gold>, <green>, <blue>, <aqua>
Hex colors: <FF5733>
Formatting: <bold>, <italic>, <underlined>
Combined: "<bold><red>ERROR!</bold> <gray>This is disabled."
Gradient: "<gradient:red:blue>✨ text!</gradient>"
🎛️ Commands & Permissions
Commands
| Command | Aliases | Description | Permission |
|---|---|---|---|
/nominecarttnt reload | /nmt reload | Reloads configuration from disk | nominecarttnt.reload |
Permissions
| Permission | Default | Description |
|---|---|---|
nominecarttnt.reload | op | Use the reload command |
🔬 Technical Details
Event Priority & Handling
```java
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
- Priority HIGH: Runs after most plugins but before HIGHEST/MONITOR
- ignoreCancelled: Won't interfere with events already cancelled by other plugins
- Early cancellation: Prevents item consumption, prevents explosion spawning
Events Used
| Item | Event | Bukkit/Paper | Why |
|---|---|---|---|
| TNT Minecart | PlayerInteractEvent | Bukkit | Catches right-click on rails |
| End Crystal | EntityPlaceEvent | Paper 1.21+ | Specific entity placement event |
| Bed | PlayerInteractEvent | Bukkit | Catches right-click on bed blocks |
| Respawn Anchor | BlockPlaceEvent + PlayerInteractEvent | Bukkit | Catches placement and charging |
Performance
- CPU Impact: Negligible (~0.001% TPS impact)
- Memory: < 1MB RAM
- Event Processing: Instant (no delays, no scheduled tasks)
- No Database: Pure configuration-based
Benchmarks (on 20 TPS server with 100 players):
- Processing 1000 prevented placements: < 5ms total
- No lag spikes from explosion prevention
- Hot-reload: < 50ms
📥 Installation
Requirements
- ✅ Paper 1.21 or 1.21.1 (or any Paper fork)
- ✅ Java 21
- ❌ Does NOT work on Spigot (requires Paper-specific events)
- ❌ Does NOT work on older versions (uses 1.21 API)
Steps
- Download the plugin JAR
- Place in your server's
plugins/folder - Start the server (or use
/reload confirmif already running) - Configure
plugins/NoMinecartTnt/config.yml - Reload with
/nmt reload
First-Time Setup
1. Stop server
stop
2. Place JAR
cp NoMinecartTnt-1.0.0.jar plugins/
3. Start server
java -jar paper.jar
4. Edit config
nano plugins/NoMinecartTnt/config.yml
5. In-game reload
/nmt reload
🧪 Testing & Verification
Test Checklist
✅ TNT Minecart Prevention
- Get TNT minecart from creative
- Place rails in a whitelisted world
- Right-click rails with TNT minecart
- Expected: Item not placed, error message shown
✅ End Crystal Prevention
- Place obsidian or bedrock
- Right-click with End Crystal
- Expected: Crystal not placed, error message shown
✅ Bed in Nether
- Go to the Nether
- Place and right-click a bed
- Expected: No explosion, error message shown
- Go to Overworld, test same bed
- Expected: Normal sleep works
✅ Respawn Anchor in Overworld
- Place Respawn Anchor in Overworld
- Expected: Block not placed, error message shown
- Try in Nether
- Expected: Works normally
✅ World Filter
- Set mode to
WHITELISTwith[world] - Try restrictions in
world - Expected: Blocked
- Try in
world_nether - Expected: Allowed
- Change mode to
BLACKLIST - Expected: Reverse behavior
🆚 Comparison with Alternatives
| Feature | NoMinecartTnt | WorldGuard | GriefPrevention | Essentials |
|---|---|---|---|---|
| Prevents TNT Minecarts | ✅ Pre-placement | ❌ | ❌ | ❌ |
| Prevents End Crystals | ✅ Pre-placement | ⚠️ Flag-based | ❌ | ❌ |
| Prevents Bed Bombing | ✅ Dimension-aware | ⚠️ With flags | ❌ | ❌ |
| Prevents Anchor Bombing | ✅ Dimension-aware | ❌ | ❌ | ❌ |
| World Whitelist/Blacklist | ✅ Built-in | ⚠️ Per-region | ❌ | ❌ |
| Zero Lag | ✅ No explosions | ❌ Rollback lag | ❌ Rollback lag | N/A |
| Setup Complexity | 🟢 Simple | 🟡 Medium | 🟡 Medium | 🟢 Simple |
| Performance | 🟢 Minimal | 🟡 Heavy | 🟡 Medium | 🟢 Light |
When to Use NoMinecartTnt
✅ Use if you want:
- Surgical prevention of specific explosive items
- No performance impact from explosions
- Simple configuration
- Dimension-aware restrictions
❌ Don't use if you need:
- Full region protection with flags
- Claim systems
- Protection from creepers, TNT, etc. (use WorldGuard)
- 1.20 or older support
Complementary Plugins
Works great with:
- WorldGuard - For region protection
- CoreProtect - For rollback of other damage
- GriefPrevention - For claim systems
- Multiverse - For world management
❓ FAQ
Q: Does this work with custom dimension plugins?
A: Yes! As long as the world uses standard Minecraft environments (NORMAL, NETHER, THE_END), it will work. Example: A plugin that creates a custom Nether world called "hell_dimension" will still be detected as Environment.NETHER.
Q: Will this break the Ender Dragon fight?
A: No! End Crystals are only blocked if you enable that restriction and if the End is in your world filter.
To allow End Crystals in the End but nowhere else:
world-filter:
mode: BLACKLIST Block everywhere except...
worlds:
- world_the_end This world is allowed
restrictions:
end-crystals: true
Q: Does this prevent ALL explosions?
A: No! Only the 4 specific items:
- TNT Minecarts
- End Crystals
- Beds (in Nether/End)
- Respawn Anchors (in Overworld/End)
Regular TNT, creepers, fireballs, etc. work normally.
Q: Will this work on Spigot?
A: No. The plugin uses EntityPlaceEvent which is Paper-only. It requires Paper 1.21+.
Q: Can I disable only TNT Minecarts and allow everything else?
A: Yes! Just set the others to false:
restrictions:
tnt-minecarts: true
end-crystals: false
beds-in-nether-end: false
respawn-anchors-in-overworld-end: false
Q: Does this work with economy/shop plugins?
A: Yes! If a player purchases a TNT Minecart from a shop, they'll receive the item. However, when they try to place it in a restricted world, it will be blocked. This is intentional - the item isn't consumed, so they can use it in an unrestricted world.
Q: What happens if I change from WHITELIST to BLACKLIST?
A: The logic reverses immediately after /nmt reload:
Before (WHITELIST with [world]):
world→ Restricted ✅world_nether→ Allowed ❌
After (BLACKLIST with [world]):
world→ Allowed ❌world_nether→ Restricted ✅
Q: Can I customize messages per-world or per-player?
A: Not in the current version. All messages are global. However, you can use PlaceholderAPI-compatible plugins to add dynamic content if you modify the code.
Q: Does this protect against other explosive exploits?
A: Only the 4 listed items. For comprehensive protection, combine with:
- WorldGuard - TNT damage, creeper damage, etc.
- CoreProtect - Rollback for any damage that gets through
📊 Version History
v1.0.0 (Current)
- ✅ Initial release
- ✅ TNT Minecart prevention
- ✅ End Crystal prevention
- ✅ Bed bombing prevention (Nether/End)
- ✅ Respawn Anchor prevention (Overworld/End)
- ✅ Whitelist/Blacklist world filtering
- ✅ MiniMessage support
- ✅ Hot-reload command
🛠️ Support & Contributing
Contact ** Discord - geturplugins
Getting Help
- Check this documentation first
- Test with
/nmt reloadafter config changes - Check console for errors
- Verify you're using Paper 1.21+
Common Issues
"Plugin not loading"
- Check Java version:
java -version(must be 21+) - Check Paper version: Must be 1.21 or 1.21.1
- Check console for errors
"Restrictions not working"
- Verify world filter mode and world list
- Confirm restriction is enabled in config
- Use
/nmt reloadafter changes
"Messages not showing"
- Check MiniMessage syntax (no spaces in tags)
- Verify message path in config
- Test with simple message:
<red>Test
🎯 Summary
NoMinecartTnt is the surgical solution for preventing explosive griefing without breaking vanilla gameplay. By stopping dangerous items before they cause damage, it maintains server performance while giving you granular control over what's allowed in each world and dimension.
Perfect for servers that want protection without the complexity of full region management systems.
Latest Version: 1.0.0
Minecraft Version: 1.21 - 1.21.1
Server Software: Paper (and forks)
Java Version: 21+**
