Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
What it does
SiegeCannon is a ridable TNT siege cannon designed for cooperative PvE servers.
Unlike most cannon plugins which lean on redstone build kits and multi-player loading crews, SiegeCannon takes the opposite stance: one player, one cannon, one trigger, with a fan-shaped firing arc that rewards positioning over aimbots. Right-click to mount, sneak to dismount, left-click to fire.
Features
- Mount-and-fire — right-click to ride, left-click to shoot, sneak to dismount
- ±45° fan arc — turn your body to aim, the cannon doesn't pivot for you
- Breakable durability — cannons take damage from explosions and mobs; destroyed cannons explode dramatically
- Two-stage ignition — left-click triggers a fuse window; TNT actually launches after a configurable delay (default 1s)
- Block partitioning — explosion blocks split into "fly as falling block / vanilla destroy / preserve" buckets for battlefield rubble feel
- Mob-only AoE damage — friendly fire is suppressed by default
- Recoil feedback — view kick + cannon-body kickback on every shot
- TPS-aware — global FallingBlock spawn cap protects servers from many-cannon volleys
- Resource pack optional — works with vanilla TNT model out of the box; custom model auto-loaded if your pack provides
siegecannon:cannon_tnt - Bilingual —
zh_CN/en_USshipped, auto-resolves by player client locale - Public API —
CannonFireEvent(cancellable) +CannonDestroyEventfor third-party hooks
Installation
- Drop
siegecannon-1.0.0.jarinto your server'splugins/folder - Start the server.
plugins/SiegeCannon/config.ymlandlang/{zh_CN,en_US}.ymlare generated - Run
/cannon spawn(any player has it by default)
⚠️ Cannons are in-memory only in 1.0.0. Server restart wipes spawned cannons. Persistence is on the roadmap.
Commands
| Command | Permission | Description |
|---|---|---|
/cannon spawn |
siegecannon.use (default true) |
Spawn a cannon at your feet |
/cannon spawn <x> <y> <z> [world] |
siegecannon.admin |
Spawn at explicit coordinates |
/cannon remove |
siegecannon.use |
Remove the nearest cannon (within 6 blocks) |
/cannon list |
siegecannon.admin |
List all spawned cannons |
/cannon removeall |
siegecannon.admin |
Remove every cannon in the world |
/cannon reload |
siegecannon.admin |
Reload config.yml |
Aliases: /sc, /siegecannon.
Configuration
Most servers only need to tune four "core" parameters:
cannon:
tnt:
cooldown-seconds: 2.5 # fire cooldown
yaw-limit-deg: 45.0 # fan arc half-angle
damage-multiplier: 1.0 # vs mobs
hp: 100.0 # cannon durability
protect-blocks: false # true = explosions don't damage map
model:
use-custom: true # false = vanilla TNT model only
language:
default: en_US
Out-of-range values are clamped to safe bounds at load time and logged as warnings — the plugin won't crash your server because of a config typo.
API
// Cancel firing inside a no-fire zone
@EventHandler
public void onFire(CannonFireEvent event) {
if (isInsideSafeZone(event.getMuzzle())) {
event.setCancelled(true);
}
}
// Tally destroyed cannons
@EventHandler
public void onDestroy(CannonDestroyEvent event) {
statsService.recordCannonLoss(event.getLocation());
}
Resource pack
The plugin uses the vanilla TNT model by default. To use a custom model: ship a resource pack with a model at assets/siegecannon/models/item/cannon_tnt.json and set cannon.model.use-custom: true. Clients without the pack fall back to vanilla TNT seamlessly. A community resource pack is on the roadmap.
Metrics
This plugin uses bStats for anonymous install / version statistics. Opt-out via plugins/bStats/config.yml.
Roadmap
- Bundled resource pack with custom cannon model
- Persistence: cannons survive server restart
- Demo GIF / video
CannonRegistry: third-party plugins register custom cannon types- PlaceholderAPI integration
- WorldGuard region flag (
siegecannon-allowed) - Multi-cannon variants (heavy / light / piercing)
- More languages (community translations welcome)
License
MIT — fork, modify, redistribute. Attribution appreciated but not required.
Source code
github.com/Yangzhiganlu7/siegecannon — issues / PRs welcome.


