Confirm with your password

STU Ward

Simple, tidy, and unique ward protection with permission controls, auto-closing doors, and optional Guilds or Clan integration.

Client & Server
Changelog & versions

· Website

Stars
0
Downloads
22
Version
1.3.6
Updated
Author
sighsorry
Virus scan
✓ Scan successful
Runs on
Client & Server
Required by
3 mods

Compatibility

Required 1

Install these too — Gale pulls them in for you.
  • Jotunn ValheimModding ·2.29.0

Description

STU Ward

Simple, Tidy, and Unique Ward for Valheim servers.
It adds a clone of vanilla ward but with more server-side features such as diverse protections, permission control, Guilds/Clan integration, ward count limits, and compatibility handling for common utility mods.

Trusted players manage individual ward registration from Ward Settings.
There is blacklist config to block certain items inside ward area.


Ward Settings UI

Ward area cannot be overlapped unless the wards share an owner or an authorized Guild/Clan group.


Good old auto closing door inside ward area.

What It Does

  • Adds a placeable Ward with server-controlled protection rules
  • Lets trusted players configure alerts, range rotation, door auto-close, protected-action restrictions, and ward range when the server enables it
  • Blocks unauthorized interaction, building, terrain edits, pickup, item use, and damage inside enabled foreign wards
  • Prevents foreign ward overlap while allowing same-owner and same-Guild/Clan ward groups
  • Tracks per-account ward limits
  • Shows ward pins and active ranges on the map when allowed

How To Use

  1. Select Ward with the hammer and place it.
  2. The server assigns the largest legal radius up to its configured maximum.
  3. Look at your ward and press Alt+E to open Ward Settings.
  4. On the first page, manage registered and recent unregistered players.
  5. Add a character from the server's recent unregistered-player list.
  6. Open the second page to configure ward alerts, range rotation, door auto-close, protected actions, and ward range when enabled by the server.

Protection

Inside an enabled ward, unauthorized players are blocked from:

  • Opening or using containers, doors, carts, ships, signs, item stands, beehives, crafting stations, fermenters, sap collectors, traps, portals, and tamed creatures
  • Building, repairing, removing pieces, or modifying terrain
  • Damaging protected structures and objects
  • Picking up items, including auto-pickup when the item policy blocks it
  • Using or equipping blocked item prefabs
  • Using creature-catching items on protected tamed animals

Building pieces inside an enabled STU Ward receive extra damage protection. Player and tamed-creature damage to protected building pieces is blocked, and hostile creature damage can also be blocked depending on ward attendance settings.

Permissions

STU Ward uses one trusted-player permission level for existing wards. Trust is granted to:

  • The ward owner
  • Individually registered players
  • Players matching the ward's authorized Guild or primary Clan identity
  • Server admins using effective debug control

All trusted players can use the protected area, open and change ward settings, toggle the ward, add or remove players from its individual registration list, and dismantle the ward. Authorized changes apply immediately without confirmation popups.

The owner identity is still retained for ward limits, reporting, and group metadata; it does not grant a higher permission tier on an existing ward.

STUWard supports either Guilds or Clan 1.0.0+ (public API v4) as its group provider. Clan Leader, Officer, and Member roles are authorized through the primary Clan; Guest connections never grant automatic ward access. Individually registered, owner, and admin-debug trust continue to work independently of group membership. An older or incompatible Clan API fails closed for automatic group authorization.

Registration

Individual registration is managed by trusted players in Ward Settings:

  • The server keeps one recent-player history for the BepInEx server profile in BepInEx/config/STUWard.RecentPlayers.yml.
  • The list includes authenticated characters currently online or seen within the last twenty-eight days, with online characters first and older activity lower in the list.
  • Registered and recent-player rows show the character name, resolved Guild/Clan group, account identity, and online/last-seen status. SteamID64 values are displayed as their last ten digits to save space; other platform IDs remain unchanged, and the full account ID remains searchable. Registered characters without retained activity show that their last-seen time is unavailable.
  • Trusted players can add a recent character to the ward or remove an individually registered character.
  • Registration is character-specific because ward permissions use Valheim player IDs.
  • Disabled wards do not allow outsiders to register themselves.

Recent-player history begins when STUWard 1.3.0 is installed. Earlier visits are not imported, and extending retention from fourteen to twenty-eight days does not restore records that were already pruned. Those characters must reconnect before appearing again.

Ward Overlap

Ward overlap is strict.

  • Foreign wards cannot overlap.
  • Same-owner wards can overlap.
  • Wards with the same exact provider-qualified Guild/Clan identity can overlap.
  • Registered-player access does not bypass overlap rules.

When placing a new ward, older foreign wards keep their radius and the new ward automatically yields to the largest non-overlapping radius. Ward Range Configuration is a synchronized server setting that defaults to Off. When enabled, trusted players can explicitly shrink or re-expand a ward from Ward Settings, but the server clamps expansion to the currently available non-overlapping radius without changing neighboring wards. Removing a neighboring ward or increasing the server maximum does not silently expand it. Lowering the server maximum clamps existing wards.

In overlapping coverage, access is additive: if any enabled foreign ward denies the player, the action is denied.

Ward Settings

Each ward can store its own behavior:

  • Ward range when enabled by the synchronized server setting (from 8 m up to the server maximum and the currently available non-overlapping radius)
  • Ward alert sound
  • Ward alert visual effect
  • Ward range rotation (enabled by default at 50% of the native rotation speed; stationary when disabled)
  • Door auto-close
  • Protected-action restrictions

When auto-close is enabled, doors opened inside the active ward area close after a shared minimum delay of 5 seconds. If a slow-opening door is still animating at that point, STUWard waits up to 60 seconds and closes it as soon as the door becomes interactable.

Ward rings are visible for placement previews and enabled wards. Disabled wards remain hidden unless a placement conflict highlights the closest blocking ward ring for 1.5 seconds on the client that attempted placement. Crossing an enabled ward boundary locally raises that ward ring from its minimum brightness to full brightness for 0.5 seconds, and it remains at full brightness while the player stays within 0.75m of the boundary. The client-only Ward Boundary Brighten Mode selects trusted wards, untrusted wards, all wards (the default), or disables this boundary cue.

The first settings page is dedicated to player management, with separate scrolling lists for registered and recent unregistered players. Each list has its own local search field for character name, Guild/Clan group, account ID, or character player ID. The second page contains a two-column behavior grid and an independently scrolling restrictions grid.

Item Policy

Servers can define blocked item prefabs and pickup rules.

Blocked item prefabs cannot be used, equipped, or used to attack while the player is inside a foreign enabled ward. Pickup rules can either block everything except a whitelist or allow everything except a blacklist.

Map Pins

Ward pins can show ward locations and active ranges on the map.

Players normally see wards they are allowed to see. Admin debug control can show all managed wards.

Important Details

  • Ownership metadata is based on the ward creator player id.
  • Account identity is used for limits and reporting, not as a separate permission tier.
  • A ward's provider-qualified group identity is projected from its owner's authoritative Guilds or Clan membership. Clan Guest membership is excluded.
  • Clan authorization is revalidated by the server for access, overlap, placement, minimap visibility, and presence checks. Stored Clan display metadata is not trusted as server authorization.
  • Existing Guilds ward metadata remains compatible and is upgraded to the provider-qualified representation when observed.
  • If both Guilds and Clan are installed unexpectedly, automatic group authorization fails closed until only one provider remains.
  • Servers and clients must run the same STUWard version.

Github

https://github.com/sighsorry1029/STUWard

Changelog

1.3.6 Latest
  • Added optional Clan 1.0.0 public API v4 integration. Primary Clan Leaders, Officers, and Members receive group-based ward access, overlap, placement, minimap visibility, and player-list metadata; Guests never grant automatic ward access.
  • Generalized group identities so Guilds and Clan remain distinct while preserving existing Guilds ward metadata. If both providers are installed, automatic group authorization fails closed until only one remains.
  • Added the synchronized Ward Range Configuration server setting, defaulting to Off. When disabled, the per-ward radius slider is hidden and the second settings page reclaims the space while preserving stored radii; enabling it restores trusted-player radius adjustment.
  • Shortened valid SteamID64 values in registered and recent-player rows to their final ten digits. Full IDs remain unchanged internally and searchable, while non-Steam account IDs remain fully displayed.
1.3.5
  • Restored a server-authoritative per-ward range slider on the second settings page. New wards still start at the largest legal radius; later expansion is clamped against the server maximum and current foreign wards without resizing neighboring wards.
  • Consolidated recent-player history into one server-profile-wide BepInEx/config/STUWard.RecentPlayers.yml file. Existing ward registrations remain stored on their wards and are unchanged.
  • Former per-world recent-player files are not migrated automatically or modified. To retain one history, stop the server before its first startup with STUWard 1.3.5 and copy the complete contents of the desired STUWard.RecentPlayers.<worldUID>.yml into STUWard.RecentPlayers.yml. Do not combine multiple files; entries older than twenty-eight days are pruned normally.
1.3.4
  • Fixed door auto-close for slow-opening modded doors such as OdinsKingdom's GB_Large_Portcullis. After the shared five-second delay, STUWard now waits up to sixty seconds for the door to become interactable before issuing one close request.
1.3.3
  • Fixed dedicated-server admin+debug ward access when another client owns the ward or container ZDO. Server-validated admin+debug state is now projected to every peer, including late-join snapshots and revocation when debug mode, admin access, or the session ends.
  • Made same-guild ward access recover quickly when Guilds or remote-player identity arrives after a client enters an already loaded zone, without turning a transient no-guild result into a thirty-second denial.
  • Removed legacy ward and Guilds recovery paths. STUWard now recognizes only the current piece_stuward prefab and current Guilds Steam_<id>/name schema, and no longer backfills missing permitted snapshots or repairs malformed stored radii.
  • Removed obsolete ServerSync template, old BepInEx binding redirect, and unstripped-corelib build fallbacks. Servers and all clients must update to STUWard 1.3.3 together.
1.3.2
  • Extended the per-world unregistered-player history from fourteen to twenty-eight days. The change is not retroactive: records already pruned under the fourteen-day policy return only after those characters reconnect.
  • Fixed dedicated-server player tracking by reconciling delayed character identities periodically and immediately before building the unregistered-player list.
  • Renamed the individual-registration list heading to Registered players.
1.3.1
  • Simplified ward-ring visibility: placement previews and enabled wards show their ring, while disabled wards remain hidden unless highlighted as the closest placement blocker.
  • Removed the unused per-ward marker-visibility state and the settings-response overlap-feedback flag from the exact-version settings protocol while retaining authoritative radius clamping and the normal placement-conflict warning/highlight path.
  • Preserved registered-player identity snapshots when offline lookups are unavailable and removed quadratic recent-player filtering.
  • Rejected oversized or invalid server YAML safely, bounded report and minimap payloads, and preserved the last valid client minimap snapshot when the server exceeds the supported ward count.
  • Simplified runtime RPC ownership, player-list UI construction, and local deployment while making release packaging stage the manifest without modifying the tracked source file.
  • This wire format is not backward compatible; servers and all clients must update to STUWard 1.3.1 together.
1.3.0
  • Expanded the second-page behavior labels and arranged ward alert sound, ward alert visual effect, ward-range rotation, and door auto-close in a two-column grid. Range rotation defaults to on at 50% of the native marker speed.
  • Added a server-authoritative, per-world list of characters seen within the last fourteen days so trusted players can add them directly to a ward. Records previously pruned by the shorter retention policy cannot be recovered retroactively.
  • Restored the two-page Ward Settings layout: player management on the first page, behavior toggles and restrictions on the second, with independent scrolling lists.
  • Removed confirmation popups from ward dismantling, trusted-player removal, and ward activation changes; authorized actions now apply immediately.
  • Removed disabled-ward outsider self-registration and its stale vanilla opt-in/opt-out hover prompts. Trusted players now manage individual ward registration from Ward Settings.
  • Recent-player history starts with this release and is not imported from logs or older STUWard data.
  • Added a local full-brightness ward-ring cue that pulses for 0.5 seconds when crossing and remains active while standing within 0.75m of the boundary.
  • Added a client-only boundary brightness scope setting for trusted wards, untrusted wards, all wards, or off; placement conflicts independently highlight the closest blocking ward ring for 1.5 seconds.
  • Added guild, public platform account IDs, and online/last-seen status to player rows, plus independent local search fields for the registered and unregistered lists.
  • Made generated STUWard.yml ward-limit examples directly uncommentable under the active ward_limit_overrides mapping.
1.2.9
  • Unified existing-ward permissions for owners, individually trusted players, same-guild members, and admin+debug users.
  • Added confirmation prompts before removing an individually trusted player, dismantling a ward, or deactivating a ward.
  • Made new wards automatically use the largest legal radius up to the server maximum, yielding to older foreign wards.
  • Fixed ward marker speed and brightness at their minimum settings and removed all three marker sliders.
  • Simplified door auto-close to a per-ward on/off switch with one shared fixed delay of 5 seconds.
  • Fixed the one-page restrictions grid failing to build because its ScrollView still had Jotunn's default vertical layout component.
  • Removed the legacy ward-settings payload and door-delay migration path; servers and clients must update together.
  • Combined warning toggles, individually trusted players, and the two-column restrictions grid on one page with independent scrolling blocks.
1.2.8
  • Fixed revoked admin+debug access remaining cached and stopped treating cross-platform accounts with the same numeric suffix as the same administrator.
  • Fixed Guilds membership and ward projection refreshes, including stale join/leave data and prefixed or bare Steam account IDs, while keeping other platform identities distinct.
  • Fixed host-only and temporarily deferred ward minimap refreshes so local pins update without remote peers and queued server refreshes retry after index preparation.
  • Reworked automatic pickup protection to run the vanilla AutoPickup method while temporarily excluding denied drops, with exception-safe item-state restoration.
  • Made temporary interaction, portal, and pickup restriction scopes exception-safe so failed calls cannot affect later ward access checks.
  • Fixed valid empty permitted-player snapshots being treated as invalid and bounded snapshot backfill work for stale or malformed entries.
  • Hardened managed-ward placement and minimap snapshot RPCs with malformed-packet checks, request throttling, and bounded pending queues.
  • Changed newly generated STUWard.yml files to use empty ward_limit_overrides; sample Steam account entries are now comments instead of active mappings.
1.2.7
  • Fixed ward activation and deactivation VFX/SFX on dedicated servers by assigning the single networked effect spawn to the requesting client after server authorization.
1.2.6
  • Added a server-side prefab fallback for ward toggle effects when no live ward instance was loaded.
1.2.5
  • Fixed networked ward activation and deactivation effects multiplying by the number of nearby players.
  • Simplified blocked-action warnings to flash only the nearest denying ward and coalesced each ward's warning effects into a 0.5-second client cooldown.
1.2.4
  • Simplified authoritative ward-limit counting to scan only STUWard prefabs.
  • Removed redundant global ZDO placement tracking and diagnostic logging configuration.
  • Reduced diagnostic-only state and synchronization plumbing while preserving ward access behavior.
1.2.3
  • Fixed ward owner and admin+debug controls on dedicated servers when another peer owns the ward ZDO.
  • Restored authoritative per-account ward limit enforcement across world and zone loading.
  • Routed managed ward settings, enabled state, and permitted-player changes through the server.
1.2.2
  • Fixed automatic pickup and ward removal checks to follow each ward's effective restriction and owner-control rules.
  • Hardened server-authoritative guild, RPC, map-state, and permitted-player synchronization.
  • Made core Harmony patch startup transactional and simplified duplicated config, map-state, registry, and snapshot code.
1.2.1
  • Added per-ward restriction toggles with server-side forced/not-forced controls.
  • Separated hammer-placed consumable and feast consumption from normal item pickup.
  • Simplified hostile creature structure protection config surface.
  • Cleaned up ConfigManager ordering, patch safety, UI layout, and diagnostic logging.
1.2.0
  • Refactoring and optimizations.
1.1.9
  • Fixed errors that could happen with floating itemdrops within the ward area.
1.1.8
  • Refactored some codes.
1.1.7
  • Added config option for hostile creature to not damage warded pieces always.
1.1.6
  • Fixed ward icons sometimes not showing on map on dedi.
1.1.5
  • TSV file is no longer needed, and YAML files are integrated into one STUWard.yml.
  • Organized configs.
  • Refactored some codes for better performance.
1.1.4
  • Fixed wards not being able to place close enough to each other.
  • Fixed ward range not showing on map.
  • Fixed some guild related bugs.
1.1.3
  • Fixed guild members not having authorities on guild wards on dedi.
  • Updated README with more specific info.
1.1.2
  • Fixed some errors that would happen when placing ward.
  • Resolved framedrop while holding preview of the ward.
  • Players can view ward icons even though they didn't load the zone after server reboot.
  • Ward circle projection segment count was reduced to 36 from 80.
  • Refactored some per-check codes.
1.1.1
  • Admin+debug mode has the same authority as the ward owner.
  • Added ward icon and range on map and minimap for guild members, registered players, and owners.
1.1.0
  • Added server-synced BepInEx/config/STUWard.ItemPrefabs.yml for item prefab policy.
  • Added Pickup Block Mode config: BlockAllExceptWhitelist and AllowAllExceptBlacklist.
1.0.9
  • Fixed some guild related behaviors.
1.0.8
  • Reduced some excessive logs that could happen on dedi.
1.0.7
  • Fixed the E button not working on dedi.
  • Fixed guild related behaviors on dedi.
1.0.6
  • Improved overall performance.
1.0.5
  • Changed the method of E button appearing on players.
1.0.4
  • Fixed the E button not working on server.
1.0.3
  • Pieces within active area don't get damage from mobs when no trusted player is near ward area.
1.0.2
  • Fixed guild players not having authorities on guild wards on dedi.
  • Fixed debug mode not working for the ward on dedi.
  • Made it so that players and tamed animals won't damage pieces within the protected area.
  • Feasts are no longer consumable within the ward area.
1.0.1
  • Only the owner and debug admin can remove the ward.
  • The ward itself is invulnerable to damage.
1.0.0
  • Initial release.

Full version history & older downloads →

Manual download
Just this mod One .zip — STU Ward 1.3.6
Files you'll get 2
  • STU Ward 1.3.6 sighsorry this mod Get
  • Jotunn 2.29.2 ValheimModding asked for 2.29.0 Get

Your browser may ask permission to download several files at once. How to install these manually

Manual installation instructions
1

Install BepInExPack Valheim

BepInExPack Valheim is required to run mods in Valheim.

Download BepInExPack Valheim 5.4.2333 · View mod page

Check out the mod page for detailed installation instructions.

2

Install STU Ward

This mod must be installed on both the client and the server.

Download STU Ward 1.3.6

Extract the ZIP and place the file(s) into the BepInEx/plugins/ folder inside your Valheim game folder.