Links
Tags
Creators
Details
Licensed MIT
Published 6 months ago
Updated 6 months ago
All versions
1.0.0
Release
SiegeCannon 1.0.06 months ago 76
Compatibility
Minecraft: Java Edition
1.21.x
Platform
Paper
Changes
[1.0.0] — 2026-05-01
Initial public release. Spun out of an in-development cooperative PvE defense plugin.
Added
- Mount-and-fire siege cannon: right-click an
ArmorStandcannon to ride, left-click to fire, sneak to dismount. - ±45° fan firing arc with action-bar feedback when the player tries to fire outside the arc.
- Two-stage ignition: left-click triggers a configurable fuse window (default 1s) before TNT actually launches.
- Block partitioning on cannon-shell explosions: each block is independently rolled into one of three buckets — fly as
FallingBlock, vanilla destroy, or preserve in place. protect-blocksswitch for arena servers that want damage and visuals without map damage.damage-multiplierfor tuning cannon-shell DPS independently of vanilla TNT.- Mob-only AoE damage: friendly fire is suppressed by default for the cannon-fired TNT.
- Custom HP and dramatic destruction sequence when a cannon takes lethal damage (event broadcast + particle / sound theatre +
CannonDestroyEvent). - Recoil feedback on fire (view pitch kick + cannon-body kickback). The kickback uses incremental
ArmorStandteleport; anItemDisplay-based smooth interpolation was explored during 1.0.0 development but reverted because per-modeldisplay.headanchors differ fromItemDisplay's entity anchor (sinking / floating). Tracked for 1.1. - Global TPS-aware
FallingBlockspawn cap (60 entities/tick) so multi-cannon volleys don't tank server performance. /cannon list,/cannon removeall, and/cannon spawn <x> <y> <z> [world]admin commands in addition to/cannon spawn,/cannon remove,/cannon reload.- Public API: cancellable
CannonFireEvent(fired before ignition) and informationalCannonDestroyEvent(fired during destruction sequence). - Bilingual (
zh_CN/en_US)lang/files; auto-resolves by player client locale. - bStats anonymous metrics integration (opt-out via
plugins/bStats/config.yml). - Resource pack hook:
cannon.model.use-custom: truesetsminecraft:item_modeltosiegecannon:cannon_tnt; clients without the pack fall back to the vanilla TNT model. - Config sanity clamps: every numeric config value has documented bounds; out-of-range values are clamped at load time and logged as warnings.
Notes
siegecannon.usedefaults totrueso any player can spawn / remove cannons.siegecannon.admin(defaultop) gateslist,removeall,reload, and the explicit-coordinate spawn form.- Cannons are in-memory only in 1.0.0. Restarting the server wipes all spawned cannons. Persistence is on the roadmap.
- The
Cannonabstract base class is exposed but the registry that lets third parties plug in custom cannon types is not yet wired up; onlyTntCannonis used internally. See README "API" section. - Cooldown is tracked in server ticks, not wall-clock milliseconds, so heavy lag doesn't make cooldown "teleport" forward.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:LPWmYMeg:m4orIIvd"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LPWmYMeg:m4orIIvd"
}

