CurseForge · Minecraft mod
WN Siege
Adds Warring Nations claim/grief protection, with a wartime siege exception, to Create, Create Big Cannons, CBC Military Supplement, TaCZ, Create Nuclear, Steam 'n' Rails cannons, guns, machines, and More!
Quick answer
Which WN Siege release should I use?
WN Siege wn-siege-1.12.1.jar targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. All 5 required mods have matching files.
Where it goes
Is WN Siege required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does WN Siege wn-siege-1.12.1.jar need?
wn-siege-1.12.1.jar. Change the file and its required mods may change too.
Install Warring Nations, FTB Library (NeoForge), FTB Teams (NeoForge), FTB Chunks (NeoForge) and 1 more first. We found matching files for this game-version and loader setup. 9 come through another mod in the chain.
9 extra mods were pulled in by other dependencies. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add WN Siege without breaking your instance.
Built for WN Siege wn-siege-1.12.1.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use wn-siege-1.12.1.jar. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Warring Nations, FTB Library (NeoForge), FTB Teams (NeoForge), FTB Chunks (NeoForge) and 1 more first. We found matching files for this game-version and loader setup. 9 come through another mod in the chain.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside wn-siege-1.12.1.jar. It opens that exact file at the source.
About this project
What does WN Siege add?
Warring Nations: Siege
Warring Nations: Siege (WN Siege) is a server-side-only addon that extends Warring Nations' claim/war protection to 25 combat, weapons, and automation mods whose block-mutating code routes around vanilla's own break/place/explosion events entirely (mixins, raw Level#setBlock/destroyBlock calls, self-driven Explosion subclasses, or client-triggerable network packets). Nothing here touches the client; do not install it there.
Without Siege, any of these mods can grief a claimed nation's territory in full peacetime with zero permission check, because they never reach the vanilla block-break/explosion event chain Warring Nations itself listens to. This addon closes that gap and layers WN's own peace/war rules on top, so covered actions become a real siege mechanic instead of a hole.
Your land is yours. Allied land is accessible. Enemy land can be attacked during a declared war. Foreign land remains protected during peace.
Territorial rules
Every world-altering action from a supported mod runs through one decision function (WnSiegeDecision#mayAlter) before it's allowed to touch a block:
| Target chunk | Result |
|---|---|
| Unclaimed | Allowed |
| Your own nation's claim | Allowed |
| An allied nation's claim | Allowed |
| A nation you are at war with | Allowed, this is the siege |
| A foreign nation at peace | Denied |
| Actor can't be attributed to any nation | Denied |
A denied action is cancelled or skipped outright, the block reads as unbreakable, the placement never happens, no partial effect leaks through.
Explosions: filtered per block, not all-or-nothing
Every covered explosion (Create Big Cannons shells, TNT-variant blasts, reactor meltdowns, vehicle rockets, whatever) is walked block-by-block against the decision above, exactly how Warring Nations' own vanilla ExplosionEvent handling already works, extended to every mod-specific explosion path that bypasses that event. A blast that clips three different nations' claims strips only the blocks it isn't at war with; everything else in its radius still goes off normally. This applies identically whether the explosion is a real vanilla Explosion object (generic filter) or a mod's own hand-rolled destroy loop (per-mod mixin).
Attack attribution
Siege resolves who an action belongs to before deciding whether it's allowed:
- Direct player action → the player's own nation.
- Projectile (shell, bullet, torpedo, rocket, thrown grenade) → its shooter's nation, walked recursively through the owner chain (vehicle gunner → vehicle → driver, etc.) via vanilla's Projectile#getOwner().
- Train-mounted or contraption-mounted weapon → the train's or contraption's controlling player where one exists.
- Unmanned machine with no owner reference at all (a moving contraption breaker, a falling unguided bomb, a reactor meltdown) → best-effort fallback to whichever nation owns the chunk the action is physically occurring in.
- Genuinely unattributable (e.g. Create: Gunsmithing's Copper Backtank detonation, which has no shooter reference to chain back to) → fails closed: still protected against at peace, but not currently breachable by a legitimate wartime attacker either, rather than guessing an owner.
Supported mods
If a mod isn't listed here, either it already routes through vanilla's own block/explosion events (already covered for free by Warring Nations' core protection) or it hasn't been audited yet.
| Mod | Config section | What Siege covers |
|---|---|---|
| Create | create | Drills, saws (including whole-tree felling via both the Saw and the vanilla tree cutter), Mechanical Rollers (breaking + track paving), harvesters, ploughs, dispensers/droppers/deployers, and contraption disassembly/placement, attributed to the controlling player, the containing train's owner, or the contraption's own chunk, in that priority order. Two sub-toggles (below) let you disable contraption-placement or roller-paving guarding independently. |
| Create (packet protection) | create_packet_protection | Eight remote-interaction network packets that reach their server-side handler with zero positional permission check if crafted or replayed directly (Create only gates the client-side right-click UI, not the packet itself): clipboard edit, super glue attach/detach, toolbox equip/dispose, wrench radial menu, block-entity configuration, and curved train-track removal. The curved-track case gets its own extra check since a track connection's far end can sit on a different claim than its near end. |
| Create Big Cannons | create_big_cannons | Cannon and autocannon shell/bullet penetration, shrapnel bursts, and shell explosions, all filtered per affected block. Also gates the cannon-welder network packet, which carries two client-supplied block positions and no distance check of its own, so a crafted packet could otherwise weld or tamper with cannon segments anywhere in the loaded world. Covers the CC:CBC ComputerCraft compat for free (it only fires existing, already-gated CBC cannons). |
| CBC Military Supplement | cbc_more_shells | Dual-cannon shells, racked rockets/bombs, torpedoes (all three shrapnel-torpedo variants), the anti-air machine gun, and incendiary fire spread. These munitions reimplement block penetration themselves and never call CBC's own canDamageTerrain hook, so each is checked at its own destruction site. |
| CBC Neo Warfare | cbc_neo_warfare | Its Big Cannon shells and autocannon rounds extend CBC's own already-gated classes for free. Its Medium Cannon shell is a sibling class that reimplements block penetration with a raw setBlock call bypassing CBC's canDamageTerrain gate, and is checked at that call. Its unmanned munitions-carrying Create contraption takes the same raw-setBlock path, attributed via controller/train/chunk-owner resolution since it carries no projectile owner of its own. |
| Create: Warnautics | warnautics | Aerial bombs and land mines, filtered per affected block. Its blast lifecycle drives its own explosion directly instead of routing through CBC's shared canDamageTerrain choke point, so the check sits in that lifecycle, at Warnautics' own named applyBlastToEntities method. Its small-shrapnel mine variant routes through CBC's own explosion handler and is covered by the create_big_cannons module instead. |
| Create Nuclear | explosions (generic) | Reactor meltdown blast damage, via the shared vanilla-explosion filter (see below) since it routes through a real Level.explode. |
| Create: Steam 'n' Rails | railways | Its own Roller extension (track-laying / track-material replacement), which diverts around Create's normal Roller-paving path that the create module already gates. |
| Create Aeronautics | aeronautics | Its Levitite Blend catalyzer packet, which carries a client-supplied block position and no distance check of its own, converts fluid into a solid crystal block and, by the mod's own default config, destroys every adjacent breakable block around it. Everything else Aeronautics adds (balloons, propellers, hot-air burner, mounted potato cannon) mutates no blocks and needs nothing. Ship/sub-level interaction is covered separately by the sable module, since Aeronautics ships are built on Sable's sub-level engine. |
| Create: Gunsmithing (cgs) | cgs | Blaze-round weapons plant a Soul Fire block directly on hit, checked against claim ownership rather than only the mobGriefing gamerule. Hitting a sufficiently-full Create Copper Backtank with any gun projectile detonates it via a raw Level#destroyBlock call, checked at that call. The Backtank case has no shooter reference to attribute, so it fails closed (protected at peace, not breachable at war) the same way Warnautics' land mines do. |
| NTGL ("NukaTeam's Gun Lib", cgs's required shared library) | ntgl | Any explosive round drives its own Explosion subclass directly instead of calling Level#explode, so it is filtered at that subclass rather than by the shared explosion filter. Every projectile hit from any weapon built on this library also rolls a chance to break "fragile" (glass-like) blocks via a raw Level#destroyBlock call, checked at that call. |
| TaCZ | tacz | Fire-starting incendiary ammo (raw fire-block placement with no event) and glass-shattering rounds. Explosive ammo/grenades are covered separately by the generic vanilla-explosion filter (explosions). |
| Superb Warfare | superb_warfare | Rockets, cannon shells, mines, and C4. Several projectile/mine classes call Level#destroyBlock directly for single- or multi-block impact damage outside any explosion. Its shared full-radius CustomExplosion.explode(), the blast every rocket, cannon shell, C4, and aerial/melon bomb goes through, also destroys blocks via its own raw call in a manual radius loop and never populates the vanilla blow-list, so it is filtered inside that loop rather than by the generic filter. Vehicle-fired shots already attribute correctly via vanilla's own Projectile#getOwner(). |
| WarBorn Explosives | warborn_explosives | A Superb Warfare add-on. Its shrapnel entity shatters glass blocks/panes directly (the same pattern as TaCZ/Immersive Weapons/Point Blank), and its Tm62M mine adds a second manual block-destroy pass on top of its already-covered explosion blast. Its regular grenades and other mine types need nothing further: they attempt no block damage of their own, or route through the covered Superb Warfare explosion. |
| Point Blank | point_blank | Its own CustomExplosion class, which fires no real NeoForge explosion event and keeps a private toBlow field that never delegates to vanilla's blow-list machinery, filtered per affected block; plus its hitscan guns, which destroy thin blocks (glass, etc.) directly on impact. |
| Just Enough Guns | just_enough_guns | Its shared SpecialExplosion utility (payload drones, C4 vests, placed explosives, faction bomber fire) threads a real shooter/owner through the whole call chain but passes null at the block-destroying blast itself, so the module carries the real owner through to the check. Also covers explosive-ammo bullets, penetrating rounds, flaming arrows, and molotov/grenade fire spread, each gated by the real shooter or thrower. |
| ScorchedGuns | scorched_guns | Fragile-block (glass) breaking on the base projectile class, inherited by nearly every bullet type. The Krahg Round, Osborne Slug, and Fire Round's sculk-clear effect each have their own separate raw block-break call. The Scamp Tank and Scamp Rocket hostile mobs terrain-break with no owner. The Penetrator block's tunnel reaches past its own placement point. The mod's mining laser gun fires block-breaking beams against whatever the firing player's raycast hits; each beam-broken block is checked against claim ownership like every other action, attributed to that player. |
| Immersive Weapons | immersive_weapons | Bullet glass-shattering on impact (the TaCZ pattern). Its mortar, meteor staff, and landmine already route through real vanilla explosions and need nothing further. |
| Ballistix | ballistix (requires Voltaic) | Its shared canBreakBlockState choke point (used by 10 of its ~25 blast types) is gated directly, since Ballistix's own check there consults GriefDefender only. Also covers BlastRejuvination, which regenerates an entire target chunk from fresh world-gen data, and BlastAntigravity's raw block-launching, which bypasses the shared choke point its own sibling blast types use. Known limitation: Ballistix's missile system tracks no owner anywhere in its own data model from launch to impact, so missiles are not attributable; covering them would require new persistent state in Ballistix's own save schema. |
| BMNW (Bunkers, Machines & Nuclear Weapons) | bmnw | All 5 nuke types (Caseoh, Dropped Soulfire Bomb, Little Boy, Nuclear Charge, Tsar Bomba) funnel through one shared crater-carving handler that carves chunk-radius blasts with no vanilla events, checked per block at that handler. Attributed via the chunk owner at the point of impact, since the falling bomb tracks no owner and can drift before detonating. |
| Insane TNT | insane_tnt | Seven of its ~36 TNT/nuke block variants (Ice, Glitch, Magic Slime, Slime, Sponge, Subzero, Transformation) dispatch raw permission-level-4 /fill commands across areas up to 63 blocks wide with no vanilla explosion event at all, bypassing the generic explosion handler entirely. Each is gated at its command-dispatch call site, checked per chunk across the whole affected area. The remaining ~29 variants already route through a real vanilla explosion and are covered by the generic filter, the same way Create Nuclear's reactor meltdown is. |
| Pyrotechnics | pyrotechnics | The thrown Sticky Grenade plants a live primed-grenade block on impact with no event, ahead of its own already-covered delayed detonation. Every other explosive in this mod already routes through a real vanilla explosion and needs nothing further. |
| Weapons And Tools | weapons_and_tools | The Magic Wand's laser mode places raw fire/soul-fire with no event at all, letting vanilla fire spread do ungated damage from there. Melee weapons and the wand's ball mode need nothing (effect-only, or already an event-firing vanilla explosion). |
| Sable | sable | Right-click, left-click, and block-break aimed at a block on a moving ship's own detached sub-level never resolve to the world position that block actually occupies unless something explicitly translates it, by default, flying a ship over a claim lets a player interact with or break its blocks completely unprotected. Ported from the reference implementation in the CurseForge addon "FTB Chunks: Sable Aerospace." Does not cover ship movement into a claim or ship-borne weapon fire, no reference implementation exists to port from either, so both remain an open, known gap. Known limitation: no concept of ship ownership independent of land ownership, so a player's own ship is denied the same as a stranger's while parked on neutral foreign territory specifically; every other case (unclaimed, allied, wartime enemy) already works correctly. |
| Eshan's Missile Mod | mol | Every warhead detonation (direct hit, cluster/incendiary sub-munitions, an intercepted missile's self-destruct) already routes through the mod's own real, cancellable WarheadDetonateEvent.Pre, fired before its vanilla explosion, its own multi-tick crater carving, and its scorch-mark pass all run, a single listener covers all three with no mixin needed. Two incendiary fire-spread call sites (the Incendiary Warhead's area ignition, and the cluster warhead's incendiary sub-munition) run unconditionally regardless of that event's outcome and are gated separately, at their own method head. |
| WariumCE | wariumce | A large MCreator-generated military/artillery mod. Every weapon and explosion procedure's block writes are checked through the mod's own WariumBlockAlterEvent, attributed to the firing entity where one is tracked and falling back to the target chunk's owner otherwise. Experimental: this event only exists on a WariumCE build carrying an unmerged upstream patch; against any public WariumCE release, Siege detects the missing event and disables just this module with a log warning rather than crashing or silently failing to protect. |
Configuration
config/warring-nations/wn-siege-server.toml (an existing config from the old flat config/ location is migrated automatically on first boot).
| Key | Default | Effect |
|---|---|---|
| general.enabled | true | Master switch. When false, no module does anything, regardless of its own toggle. |
| <section>.enabled | true | Every mod section above has its own enabled key, on by default. Fully optional per target mod, Siege works with any subset of these mods installed. |
| create.guard_contraption_placement | true | Also guards blocks a Create contraption drops into the world on disassembly. Best-effort attribution by the contraption's current chunk; disable if it interferes with legitimate parking near a border. |
| create.guard_roller_paving | true | Also guards blocks a moving Mechanical Roller paves into the world ahead of it. Separate from guard_contraption_placement, which only covers disassembly placement; disable if it interferes with legitimate roller use across your own claim boundary. |
| explosions.enabled | true | Per-block filter for vanilla-routed explosions (Create Nuclear's reactor meltdown, any mod that calls Level.explode normally, and the ~29 already-vanilla-routed Insane TNT variants). Does not touch Create Big Cannons' own explosions, those are handled by the create_big_cannons module. |
Staff tools
Startup log
On boot, the server log prints exactly which target-mod modules were found active this session, so staff can confirm what's actually being enforced without reading the config file.
Recent denials
Siege keeps an in-memory ring buffer of the last 25 denied actions (time, dimension, chunk, acting nation, claim owner), deduplicating repeat denials of the same action in the same tick. It's queryable via the /siege recent Discord command below; there is no in-game slash command for it.
Discord integration (optional)
If WN Discord is also installed, Siege registers a /siege command with three subcommands, no hard dependency either way, and nothing changes if WN Discord is absent:
| Command | Description |
|---|---|
| /siege status | Which target-mod modules are currently active. |
| /siege check <x> <z> [dimension] [nation] | Simulates whether a given nation (or an unattributed actor) could alter a specific chunk right now. |
| /siege recent | The last 15 denials as an embed, plus a bar chart of denials grouped by claim owner. Staff-only. |
Self-healing against target-mod updates
Every injection-style mixin (77 of them, covering every @Redirect/@Inject-at-INVOKE in this addon) is verified against the real, installed target-mod bytecode before Mixin ever attempts to apply it, bypassing Mixin's own transforming classloader to check first. This exists because Sponge Mixin's own failure path isn't a safe fallback: once any mixin fails to apply, Mixin permanently stops applying mixins from any mod for the rest of that session, required: false or not.
If a future target-mod update ever changes a covered method's shape enough to break one of these mixins, that module switches itself off automatically (bypassing the config file, which nobody's watching live), staff online at permission level 2+ get a red chat warning naming the mod and the reason, and a log line is written, instead of the server crashing or silently losing protection with no notice.
Lightweight
Siege adds no items, blocks, recipes, or gameplay systems of its own. Only the actions listed above are checked, and it costs nothing for target mods that aren't installed, their modules simply never engage.
Requirements
| Requirement | Value |
|---|---|
| Minecraft | 1.21.1 |
| Loader | NeoForge 21.1.225+ |
| Required | Warring Nations 3.4.0+ |
| Required | FTB Chunks 2101.0.0+ (backs Warring Nations' claims) |
| Optional | WN Discord, for the /siege Discord commands above |
| Side | Server only. Do not install on the client. |
Install alongside Warring Nations on the server. Every target mod above is optional, install any subset and Siege enforces protection for whichever ones it finds.
Project description from CurseForge.
Pick your setup
WN Siege by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.1
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
WN Siege versions and loaders
wn-siege-1.12.1.jar
22 Aug 2026
wn-siege-1.8.1.jar
16 Aug 2026
wn-siege-1.8.0.jar
16 Aug 2026
wn-siege-1.2.0.jar
22 Jul 2026
Looking for an older file? The official CurseForge project page is in Resources.