Guild Structures
Guild-based access for doors, gates & storage, plus password chests. Per-piece Guild stamps instead of ward-radius protection. Features a PvP-only Guild Ballista that exclusively targets enemy players
About this mod Author’s original text
Guild Structures
Protect doors, gates, and storage with Guild identity — no wards required.
Each listed piece is stamped once with the placer’s Guild. Opening, using, and de-hammering then check the player’s current Guild against that stamp. Built for dedicated and listen (Steam host) servers, with server-synced settings so clients can’t widen the rules locally.
Features
Guild protection
- Stamp configured doors / gates / chests with the placer’s Guild
- Only that Guild’s members can open or use them
- Only that Guild’s members can de-hammer them (switching Guilds does not keep remove rights)
- Denied pieces show vanilla-style No access hover text
- Make a single piece public with WEC / ZDO: GS_GuildCheckEnabled = false
Password-protected storage (optional)
- Separate prefab list — no Guild check
- Owner sets or clears a password with SHIFT+E
- Owner always opens with normal E
- Others enter the password once; enforcement is server-side (salted hash)
- While locked, only the owner can de-hammer
Faction ballistas (optional)
- Separate CFG list for WackyDB / faction ballista clones
- Guild-stamped on place; same guild id+batch only may de-hammer
- Aims at enemy-guild / guildless players in one pass (never locks allies)
- Unknown membership: holds fire on that player until known
- Optional players-only mode (no mobs / AI)
- GS_GuildCheckEnabled = false on a piece → vanilla targeting for that ballista
Server-friendly
- Dedicated + listen-host compatible
- Access settings synced from the server
- CFG live-reload on dedicated / listen host (edit + save, no restart)
- Server-authoritative guild generation (safe against Guild id reuse after disband)
Requirements
| Mod | Required |
|-----|----------|
| BepInEx | Yes |
| Guilds (Smoothbrain) | Yes — hard dependency |
| World Edit Commands | Optional — readable GS_* field names in ZDO dumps |
Installation
- Install via r2modman, or place GuildStructures.dll in BepInEx/plugins/
- Install on the server and every client
- Launch once to create BepInEx/config/com.rdmods.guildstructures.cfg
- Fill in the prefab lists, then restart or save the CFG on the server (live reload)
Until you list prefabs, the mod does nothing.
Configuration
File: BepInEx/config/com.rdmods.guildstructures.cfg
Guild protection — 2 - Access Control
- Protected Prefabs (Exact Names) — e.g. wood_door,wood_gate,piece_chest_wood
- Protected Prefabs (Name Contains) — e.g. gate to catch many variants
- Deny Access If Player Has No Guild — usually true
- Allow Access If Piece Has No Recorded Owner — keep true while testing
Password storage — 4 - Protected Storage
- Separate exact / contains lists for password-lockable chests only
- Do not put the same prefab on both Guild and password lists
Faction ballistas — 5 - Faction Turrets
Faction Ballista Prefabs (Exact Names) = piece_turret_shadowborn,piece_turret_bloodfire
Faction Ballista Prefabs (Name Contains) =
Target Creatures / Mobs / AI = false
- Exact / Contains lists for your faction ballista prefabs (leave empty to disable)
- Target Creatures / Mobs / AI — true = may still shoot creatures; false = enemy / guildless players only
- Do not put the same prefab on Access Control or password lists unless you intend those rules too
Finding prefab names
Enable Debug Logging, place one of each piece, then read:
[Prefab Discovery] You just placed '…'
Turn debug logging off again when done.
Public override (one piece)
bool, GS_GuildCheckEnabled, false
Guild stamp fields (WEC data dump)
| Field | Meaning |
|-------|---------|
| GS_Locked | Piece has a guild stamp |
| GS_GuildId | Owning guild numeric id |
| GS_BatchNo | Batch / generation at stamp time (id-reuse safety) |
| GS_GuildName | Guild display name (always stamped) |
| GS_GuildCheckEnabled | Enforce guild check; default true (set false to make public) |
| GS_OwnerPlayerName | Placer display name (always stamped) |
Notes
- Controls interaction and hammer-remove for listed pieces only — not separat
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: