
ArcadiaGuard
Standalone zone protection mod with in-game GUI, wand tool, 60+ configurable flags, 3D zone rendering, and third-party mod integration
Обновлён 4 июля 2026 г. · опубликован 26 апреля 2026 г.
ArcadiaGuard
Standalone zone protection mod for NeoForge 1.21.1 — define protected zones with an in-game GUI, a wand selection tool, 60+ configurable flags, and 3D zone boundary rendering.
Features
Full In-Game GUI
Everything is managed from the GUI — no commands needed for daily use:
- Zone List — tabular view with dimension filters, search, pagination, and live preview
- Zone Detail — configure flags, manage members, edit coordinates, view audit logs
- Flag Picker — add/remove flags with search, toggle booleans, edit int/list values
- Dimension Editor — set default flags per dimension
- Zone Creation — form with real-time stats (surface, volume, chunks)
Wand Selection Tool
- Edit Mode: left click = corner A, right click = corner B
- View Mode: passive 3D wireframe rendering of zone boundaries
- HUD display of selected positions above the XP bar
60+ Protection Flags
Granular control over:
- Block interactions (break, place, interact, containers)
- PvP, entity damage, mob spawning
- Spells and magic abilities (per mod)
- Item usage (leads, spawn eggs, books, dynamic blocking)
- Fluid/fire/explosion propagation
- And more — extensible via the public API
Sub-Zones & Inheritance
- Create child zones inside parent zones
- Flags inherit from parent to child automatically
- Dimension-level flag defaults
- Conflict resolution: priority > volume > name
Mod Compatibility
Each integration is independent and toggleable:
| Mod | What's Blocked |
|---|---|
| Iron's Spells 'n Spellbooks | Spell casting |
| Ars Nouveau | Spells, warp scroll teleportation, portals |
| Simply Swords | Special weapon abilities |
| Occultism | Rituals and magic |
| Supplementaries | Throwable items |
| Apotheosis | Tunneling, Enlightened affix |
| Better Archeology | Tunneling enchantment |
All mods are optional — ArcadiaGuard works regardless of which mods are installed.
Dynamic Item Blocking
Block any item in protected zones at runtime via command — no restart needed:
/arcadiaguard item block <item>
/arcadiaguard item unblock <item>
Audit Logging
Every blocked action is logged with player name, action type, zone, and position. Daily log rotation with configurable retention.
LuckPerms Integration
Zone roles (MEMBER, MODERATOR, OWNER) can be assigned via LuckPerms permission nodes — no in-game whitelist management required.
Public API
Third-party mods can register custom flags and query zone permissions:
ArcadiaGuardAPI.get().registerFlag(
new BooleanFlag("mymod:teleport", true, "Allow teleportation"));
ZoneCheckResult result = ArcadiaGuardAPI.get()
.checkFlag(player, pos, MY_FLAG);
Full API guide: docs/api-guide.md
Datapack Extensibility
Item lists are driven by overridable tags — no recompilation needed:
arcadiaguard:banned_leadsarcadiaguard:banned_spawn_eggsarcadiaguard:spawn_banned_books
Installation
- Download the
.jarfrom the Files tab - Place it in the
mods/folder (server AND client) - Start the server to generate config
- Give yourself the wand:
/give @s arcadiaguard:zone_editor - Select two corners and open the GUI to create your first zone
Requires: NeoForge 1.21.1 (any 21.1.x version) — Java 21
Commands
Most actions are available directly from the GUI. Commands remain available for automation and console use.
/arcadiaguard gui
/arcadiaguard zone add <name> <x1> <y1> <z1> <x2> <y2> <z2>
/arcadiaguard zone remove <name>
/arcadiaguard flag set <zone> <flag> <value>
/arcadiaguard flag list
/arcadiaguard item block <item>
/arcadiaguard reload
/arcadiaguard debug
Links
ArcadiaGuard
Mod de protection de zones standalone pour NeoForge 1.21.1 — definissez des zones protegees avec une interface graphique en jeu, un outil de selection (wand), plus de 60 flags configurables et un rendu 3D des limites de zones.
Fonctionnalites
Interface graphique complete
Tout se gere depuis le GUI — aucune commande necessaire pour l'utilisation courante :
- Liste des zones — vue tabulaire avec filtres par dimension, recherche, pagination et apercu
- Detail de zone — configuration des flags, gestion des membres, edition des coordonnees, consultation des logs
- Flag picker — ajout/suppression de flags avec recherche, toggle des booleens, editeur int/liste
- Editeur de dimension — flags par defaut par dimension
- Creation de zone — formulaire avec stats en temps reel (surface, volume, chunks)
Wand de selection
- Mode Edit : clic gauche = coin A, clic droit = coin B
- Mode View : rendu 3D passif des limites de zones en wireframe
- Affichage HUD des positions au-dessus de la barre d'XP
60+ flags de protection
Controle granulaire sur :
- Interactions blocs (casse, pose, interaction, conteneurs)
- PvP, degats d'entites, spawn de mobs
- Sorts et capacites magiques (par mod)
- Utilisation d'items (laisses, oeufs de spawn, livres, blocage dynamique)
- Propagation de fluides, feu, explosions
- Et plus encore — extensible via l'API publique
Sous-zones et heritage
- Creez des zones enfants a l'interieur de zones parentes
- Heritage automatique des flags parent vers enfant
- Flags par defaut au niveau dimension
- Resolution des conflits : priorite > volume > nom
Compatibilite mods
Chaque integration est independante et desactivable :
| Mod | Ce qui est bloque |
|---|---|
| Iron's Spells 'n Spellbooks | Lancement de sorts |
| Ars Nouveau | Sorts, teleportation warp scroll, portails |
| Simply Swords | Capacites speciales des armes |
| Occultism | Rituels et magie |
| Supplementaries | Lancer d'objets |
| Apotheosis | Tunneling, affix Enlightened |
| Better Archeology | Enchantement Tunneling |
Tous les mods sont optionnels — ArcadiaGuard fonctionne quel que soit l'environnement.
Blocage dynamique d'items
Bloquez n'importe quel item en zone protegee en temps reel via commande — sans redemarrage :
/arcadiaguard item block <item>
/arcadiaguard item unblock <item>
Logs d'audit
Chaque action bloquee est enregistree avec le nom du joueur, le type d'action, la zone et la position. Rotation journaliere des logs.
Integration LuckPerms
Les roles de zone (MEMBER, MODERATOR, OWNER) peuvent etre attribues via les noeuds de permission LuckPerms.
API publique
Les mods tiers peuvent enregistrer des flags custom et verifier les permissions de zone :
ArcadiaGuardAPI.get().registerFlag(
new BooleanFlag("mymod:teleport", true, "Autorise la teleportation"));
ZoneCheckResult result = ArcadiaGuardAPI.get()
.checkFlag(player, pos, MY_FLAG);
Guide complet : docs/api-guide.md
Installation
- Telecharger le
.jardepuis l'onglet Files - Placer dans le dossier
mods/(serveur ET client) - Lancer le serveur pour generer la config
- Se donner le wand :
/give @s arcadiaguard:zone_editor - Selectionner deux coins et ouvrir le GUI pour creer une zone
Requis : NeoForge 1.21.1 (toutes versions 21.1.x) — Java 21
Liens
Центр версий
3 версийЧенджлог
1.5.8Релиз1.21.1 · 4 июля 2026 г.
ArcadiaGuard 1.5.8
- Removed Rechiseled/Chisel compatibility, which could cause a client crash.
- Fixed dimension list flag persistence, especially for
mob-spawn-allowlist. - Added the
jade-overlayflag to hide the Jade overlay in specific zones. - Added/improved autocomplete for list flags.
- Fixed display issues in some GUI screens with popups.
1.5.7Релиз1.21.1 · 19 мая 2026 г.
Upgrade notes for players updating from 1.5.2 to 1.5.7.
ArcadiaGuard 1.5.7 is a cumulative stability, protection and compatibility update. It includes all fixes from 1.5.3, 1.5.4, 1.5.5, 1.5.6 and 1.5.7.
Compatibility
- Minecraft: 1.21.1
- Loader: NeoForge 21.1.x
- Java: 21
- Environment: Client + Server
- Data migration: no manual migration required
- Config: 1.5.6 adds
[general] debug = falseautomatically on next boot
Both client and server should be updated to the same ArcadiaGuard version.
Highlights
Fixed protected container duplication
Containers broken through non-standard block removal paths are now protected correctly.
This fixes a duplication issue where a hopper, chest or other inventory block could drop its contents while also being restored by zone protection, notably with Create wrench-style interactions.
When block-break is denied in a protected zone, ArcadiaGuard now also blocks container inventory drops and block drops from these paths.
Carry On and CarryOn-Patched support
ArcadiaGuard now supports both the regular Carry On pickup flow and the patched unofficial CarryOn fork.
Entity pickup checks now use the actual target entity position, so protected animals and players cannot be picked up from protected zones. The mixin is injected only at the real pickup point to avoid false Carry On messages when simply interacting with NPCs or other entities.
Item frame protection
Item frames are now covered by zone protection:
block-interactblocks item rotation and item insertion/removalblock-breakblocks breaking/removing item frames
This closes a protection gap where players could modify item frames in protected zones.
Random tick performance improvement
High-frequency random tick checks now use a per-dimension fast-path cache before doing full zone flag resolution.
This reduces unnecessary isDenied cost for common world ticks such as grass spread, leaves, vines, saplings, fluids, ice, snow and sculk spread when no zone/dimension rule can deny that flag.
Fixes Included Since 1.5.2
1.5.3 - Spawn protection for third-party mods
mob-spawn-list now also covers mobs added through EntityJoinLevelEvent, including mods that spawn entities directly with addFreshEntity().
This fixes bypasses from:
- mods replacing vanilla mobs at spawn time
/summon- custom minion or helper spawns
- Hominid-like entity replacement flows
1.5.4 - Removed-entity warning spam
Entities blocked by the spawn protection safety net are now discarded cleanly.
This prevents server console spam such as:
Tried to add entity X but it was marked as removed already
1.5.5 - Deep audit fixes and new flags
New flag: mob-attack-player
Blocks only mob damage against players.
This is separate from player-damage, so players can still take environmental damage while being protected from hostile mobs.
New flag: mob-spawn-allowlist
Whitelist mode for mob spawning.
If this list is not empty, only listed mobs can spawn in the zone. It overrides mob-spawn and mob-spawn-list.
Supported syntax matches mob-spawn-list, including namespace wildcards such as:
hominid:*
Fixed blocked item list data loss
Per-zone blocked item lists were not preserved in async save snapshots.
Changing another zone property could wipe blockedItems on disk, causing dynamic item blocks to disappear after restart. The snapshot now preserves these lists correctly.
Fixed rain/weather spawn bypass
The 1.5.3 spawn safety net originally covered mob-spawn-list, but not all boolean spawn flags.
It now covers:
mob-spawnmonster-spawnanimal-spawnvillager-spawnmob-spawn-listmob-spawn-allowlist
This fixes cases where mods replacing mobs during weather events could bypass protected zone spawn rules.
Fixed invincibility bypasses
INVINCIBLE and ANIMAL_INVINCIBLE now also protect against direct death paths such as:
/killentity.kill()setHealth(0)- modded direct death calls
ArcadiaGuard cancels the death event and restores the entity to 1 HP when the relevant flag denies the kill.
Fixed disabled parent zone inheritance
Disabled parent zones no longer pass their flags to child zones.
If a parent zone is disabled, children now correctly fall back to the next valid parent or dimension flags.
Fixed false fall damage audit logs
If another mod already cancels fall damage, ArcadiaGuard no longer logs a false fall_damage denial.
Network and threading hardening
ZoneLogsPayload.zoneNameis now capped consistently- oversized
GuiActionPayload.arg2values are rejected for actions that do not need long payloads - public API
checkFlagnow falls back to dimension flags outside zones - dimension flag saves now go through async persistence instead of blocking the tick thread
- log reading and log rotation are guarded to avoid Windows file move races
1.5.6 - Quieter console and third-party anti-spam
Added a new config option:
[general]
debug = false
Default behavior:
- ArcadiaGuard INFO boot and registration logs are silenced
- known third-party
marked as removed alreadywarning spam is suppressed
When debug = true:
- ArcadiaGuard diagnostic INFO logs are visible
- third-party warnings are allowed through for debugging
No manual config reset is required.
1.5.7 - Protection and compatibility patch
Create wrench/container duplication fix
Protected containers no longer drop their inventory when a denied break is triggered through special block removal mechanics.
CarryOn-Patched-Unofficial support
ArcadiaGuard now blocks entity pickup from protected zones with both Carry On variants while avoiding false messages on normal interactions.
Item frames
Item frame modification and removal are now protected by the matching block flags.
Dynamic item message localization
Blocked dynamic item messages now use the correct translation key, so English clients receive the English message instead of a French fallback.
Random tick fast-path
Random tick mixins now avoid expensive zone checks when a flag cannot be denied in the current dimension.
The production jar was also checked to ensure runtime test classes and GameTest resources are not included.
Notes for Server Owners
- Recommended upgrade path: replace the old jar with
arcadiaguard-1.5.7.jaron both server and clients. - No database or zone file migration is required.
- Existing configs are compatible.
- The new
debugoption is added automatically by NeoForge. - If you use protected mob arenas, review the new
mob-spawn-allowlistflag; it may simplify your configuration. - If you use dynamic item blocking, this update is strongly recommended because it fixes blocked-item persistence.
1.5.1Релиз1.21.1 · 26 апреля 2026 г.
1.5.1 — Bug fixes
Patch correctif sur la 1.5.0. La moitié des flags de dimension ne s'appliquaient pas correctement hors zone, plusieurs bugs GUI de scroll et de recherche, un tag mal référencé spammait la console au démarrage.
🐛 Corrections
Dim flags hors zone — ~20 flags impactés
Beaucoup de flags définis au niveau dimension n'étaient évalués que si le joueur se trouvait déjà dans une zone. Résultat : un dim flag activé n'avait aucun effet pour un joueur se baladant en espace ouvert.
Flags désormais respectés hors zone :
- Combat :
pvp,player-damage,mob-damage,fall-damage,invincible,animal-invincible - Mouvement :
fly,use-elytra,use-portal - Communication :
send-chat,exec-command - Gameplay :
till-farmland,strip-wood,shovel-path,scoop-fluids,place-fluids - Items :
spawn-egg,mob-bucket,leash,npc-interact,ars-additions-scroll - Mods compat :
carryon,charm-use,parcool-actions,waystone-use,ars-spell-cast,irons-spell-cast,simplyswords-ability,occultism-use,emote-use,supplementaries-throw,container-access(Sophisticated Storage), tunneling (Better Archeology)
Mixins tick étendus
Les flags water-spread, lava-spread, leaf-decay, grass-spread, snow-melt, ice-melt, sculk-spread, vine-growth, pressure-plate, crop-growth fonctionnent désormais sur dimension même sans aucune zone dans cette dim.
Panel GUI
- Scroll de la liste des flags ne descendait pas jusqu'au dernier élément (clamp basé sur la mauvaise liste filtrée)
- Recherche de flags ne remettait pas le scroll en haut au filtrage → page blanche sur petits résultats
- Dernier flag : le toggle ON/OFF/INH débordait visuellement sur la barre "Hover over a flag..."
- Counts sidebar (300, 100…) débordaient sur le séparateur vertical quand à 3 chiffres
- Mêmes bugs corrigés sur l'écran "Flags de dimension"
Core
/ag reloadrecharge désormais aussidimension-flags.jsondu disque (permet d'éditer le fichier à la main et de recharger sans redémarrer)/ag reloadinvalide le cache interne des fréquences désactivées- Tag
banned_spawn_eggspointait vers#minecraft:spawn_eggs(tag inexistant en vanilla) → spam GSON parse error à chaque chargement de datapack. Remplacé par#c:spawn_eggs(convention NeoForge commune, auto-agrège tous les spawn eggs).
LuckPerms hot refresh
Nouveau hook sur l'event UserDataRecalculateEvent :
- Invalide automatiquement le cache bypass du joueur affecté
- Resync son arbre de commandes côté client
Concrètement : donner arcadiaguard.view ou arcadiaguard.zone.bypass à un joueur connecté est désormais effectif immédiatement, sans reconnexion. Complète le TTL 5 s de la 1.5.0.
✨ Nouveautés
Flag mob-spawn-list (ListFlag)
87 flags au total. Blacklist de mobs par ResourceLocation avec support wildcards :
| Entrée | Effet |
|---|---|
minecraft:zombie |
Bloque exactement ce mob |
zombie |
Alias de minecraft:zombie |
minecraft:* |
Tout un namespace |
*:creeper |
Tous les creeper (toutes origines) |
*:* |
Équivalent à mob-spawn = deny |
Autocomplete intégré dans l'éditeur de liste : tape le nom, le dropdown propose tous les entity types chargés (vanilla + mods). Même flow que les listes de sorts Ars/Irons.
Fonctionne en zone et en dim flag avec fallback parent → dim.
🔒 Sécurité
SET_DIM_FLAGvalide désormais que la dim key correspond à une dimension réelle avant d'écrire. Bloque la pollution dedimension-flags.jsonpar packets malveillants avec des dims fantômes.MigrateCommandsutilisegetProfilePermissions()au lieu dehasPermissions()pour éviter qu'un mod tiers intercepte le check et déclenche un refresh GUI involontaire (même convention que le fix bypass de la 1.5.0).
📦 Compatibilité
- NeoForge 1.21.1 (toutes versions 21.1.x)
- Java 21
- Client + Serveur (les deux doivent être à jour — la 1.5.1 ajoute une validation de packet
SET_DIM_FLAG) - Tous les mods compat restent optionnels
- Aucun changement de format de données : upgrade direct depuis 1.5.0, rien à migrer
🔗 Liens
- Repo + issues : github.com/Team-Arcadia/ArcadiaGuard
- Release GitHub : v1.5.1
1.5.1 — Bug fixes (English)
Patch release on top of 1.5.0. Half of the dimension-level flags were not applied outside of zones, several GUI scroll and search bugs, and a mis-referenced tag was spamming the console on startup.
🐛 Fixes
Dimension flags outside of zones — ~20 flags affected
Many flags configured at the dimension level were only evaluated when the player was already inside a zone. As a result, dim flags had no effect on players in open space.
Flags now respected outside of zones:
- Combat:
pvp,player-damage,mob-damage,fall-damage,invincible,animal-invincible - Movement:
fly,use-elytra,use-portal - Communication:
send-chat,exec-command - Gameplay:
till-farmland,strip-wood,shovel-path,scoop-fluids,place-fluids - Items:
spawn-egg,mob-bucket,leash,npc-interact,ars-additions-scroll - Mod integrations:
carryon,charm-use,parcool-actions,waystone-use,ars-spell-cast,irons-spell-cast,simplyswords-ability,occultism-use,emote-use,supplementaries-throw,container-access(Sophisticated Storage), tunneling (Better Archeology)
Extended tick mixins
The flags water-spread, lava-spread, leaf-decay, grass-spread, snow-melt, ice-melt, sculk-spread, vine-growth, pressure-plate, crop-growth now work at the dimension level even without any zone in that dimension.
GUI panel
- Scroll in the flag list couldn't reach the last entry (clamp was based on the wrong filtered list)
- Flag search didn't reset the scroll when filtering → blank page for small result sets
- Last flag: the ON/OFF/INH toggle visually overflowed into the "Hover over a flag…" footer
- Sidebar counts (300, 100…) overflowed onto the vertical divider for 3-digit values
- Same bugs fixed on the "Dimension Flags" screen
Core
/ag reloadnow also reloadsdimension-flags.jsonfrom disk (allows editing the file manually and reloading without restarting)/ag reloadinvalidates the internal disabled-frequencies cache- The
banned_spawn_eggstag pointed at#minecraft:spawn_eggs(a non-existent vanilla tag), causing GSON parse error spam on every datapack load. Replaced with#c:spawn_eggs(common NeoForge convention, auto-aggregates all spawn eggs).
LuckPerms hot refresh
New hook on the UserDataRecalculateEvent:
- Automatically invalidates the affected player's bypass cache
- Re-sends their command tree on the client
In practice: granting arcadiaguard.view or arcadiaguard.zone.bypass to a connected player now takes effect immediately, without reconnection. Complements the 5 s TTL from 1.5.0.
✨ New
mob-spawn-list flag (ListFlag)
87 flags total. Blacklist mobs by ResourceLocation with wildcard support:
| Entry | Effect |
|---|---|
minecraft:zombie |
Blocks exactly this mob |
zombie |
Alias for minecraft:zombie |
minecraft:* |
Whole namespace |
*:creeper |
Any creeper from any mod |
*:* |
Equivalent to mob-spawn = deny |
Built-in autocomplete in the list editor: type the name, the dropdown proposes all registered entity types (vanilla + mods). Same flow as the Ars/Irons spell lists.
Works both at zone level and as a dim flag with parent → dim fallback.
🔒 Security
SET_DIM_FLAGnow validates that the dim key corresponds to a real loaded dimension before writing. Prevents pollution ofdimension-flags.jsonvia malicious packets with phantom dims.MigrateCommandsusesgetProfilePermissions()instead ofhasPermissions()to avoid third-party mods intercepting the check and triggering an unintended GUI refresh (same convention as the 1.5.0 bypass fix).
📦 Compatibility
- NeoForge 1.21.1 (all 21.1.x versions)
- Java 21
- Client + Server (both must be updated — 1.5.1 adds a new packet validation for
SET_DIM_FLAG) - All mod integrations remain optional
- No data format change: direct upgrade from 1.5.0, nothing to migrate
🔗 Links
- Repo + issues: github.com/Team-Arcadia/ArcadiaGuard
- GitHub release: v1.5.1
Комментарии
Загружаем…
