Перейти к содержимому
Mineforgian

ArcadiaGuard

Standalone zone protection mod with in-game GUI, wand tool, 60+ configurable flags, 3D zone rendering, and third-party mod integration

203 загрузок0 подписчиковMITneoforge

Обновлён 4 июля 2026 г. · опубликован 26 апреля 2026 г.

Wabbanode Partner

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_leads
  • arcadiaguard:banned_spawn_eggs
  • arcadiaguard:spawn_banned_books

Installation

  1. Download the .jar from the Files tab
  2. Place it in the mods/ folder (server AND client)
  3. Start the server to generate config
  4. Give yourself the wand: /give @s arcadiaguard:zone_editor
  5. 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

  1. Telecharger le .jar depuis l'onglet Files
  2. Placer dans le dossier mods/ (serveur ET client)
  3. Lancer le serveur pour generer la config
  4. Se donner le wand : /give @s arcadiaguard:zone_editor
  5. 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 версий
  • Релиз525 КБ
  • Релиз520 КБ
  • Релиз504 КБ

Ченджлог

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-overlay flag 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 = false automatically 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-interact blocks item rotation and item insertion/removal
  • block-break blocks 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-spawn
  • monster-spawn
  • animal-spawn
  • villager-spawn
  • mob-spawn-list
  • mob-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:

  • /kill
  • entity.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.zoneName is now capped consistently
  • oversized GuiActionPayload.arg2 values are rejected for actions that do not need long payloads
  • public API checkFlag now 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 already warning 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.jar on both server and clients.
  • No database or zone file migration is required.
  • Existing configs are compatible.
  • The new debug option is added automatically by NeoForge.
  • If you use protected mob arenas, review the new mob-spawn-allowlist flag; 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 reload recharge désormais aussi dimension-flags.json du disque (permet d'éditer le fichier à la main et de recharger sans redémarrer)
  • /ag reload invalide le cache interne des fréquences désactivées
  • Tag banned_spawn_eggs pointait 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_FLAG valide désormais que la dim key correspond à une dimension réelle avant d'écrire. Bloque la pollution de dimension-flags.json par packets malveillants avec des dims fantômes.
  • MigrateCommands utilise getProfilePermissions() au lieu de hasPermissions() 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



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 reload now also reloads dimension-flags.json from disk (allows editing the file manually and reloading without restarting)
  • /ag reload invalidates the internal disabled-frequencies cache
  • The banned_spawn_eggs tag 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_FLAG now validates that the dim key corresponds to a real loaded dimension before writing. Prevents pollution of dimension-flags.json via malicious packets with phantom dims.
  • MigrateCommands uses getProfilePermissions() instead of hasPermissions() 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

Комментарии

Загружаем…