You are viewing a potentially older version of this package. View all versions.
mistydays-PortalLimit-0.1.0 icon

PortalLimit

Limits player-owned portals on Valheim servers and adds admin-configured discovery-locked portals.

Date uploaded 2 months ago
Version 0.1.0
Download link mistydays-PortalLimit-0.1.0.zip
Downloads 32
Dependency string mistydays-PortalLimit-0.1.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

PortalLimit

BepInEx plugins for limiting the number of Valheim portals each player can own and for adding admin-marked discovery portals.

Install

  • Server: copy PortalLimitServer.dll to the dedicated server BepInEx/plugins folder.
  • Client: copy PortalLimitClient.dll to each admin/player client BepInEx/plugins folder.

The server plugin is authoritative and deletes excess portals. The client plugin provides nicer placement blocking and the in-game admin UI.

Players can type /portals in chat to see their current counted portal total and the server limit.

Thunderstore packaging

For player modpacks, upload the Thunderstore package that contains only PortalLimitClient.dll. Dedicated servers should install PortalLimitServer.dll separately.

Run package_thunderstore.bat to build both packages:

  • dist/PortalLimit-0.1.0-Thunderstore.zip: player/modpack package for Thunderstore.
  • dist/PortalLimit-0.1.0-Server.zip: server-owner package with PortalLimitServer.dll and the matching PortalLimitClient.dll for AzuAntiCheat whitelist.

If your server uses AzuAntiCheat, copy the exact PortalLimitClient.dll from the player package to BepInEx/config/AzuAntiCheat_Whitelist/PortalLimitClient.dll on the server.

Admin UI

Use /portallimit in chat or press F10 to open the admin window. Admins can also look at a portal and press the normal interact key, E by default, to open the This Portal editor instead of Valheim's tag prompt. Only Valheim admins can edit server settings. The window has separate tabs for server-wide settings and the portal the admin is currently looking at.

Admins with the client plugin also get this window automatically after placing a portal. This can be turned off in the server settings tab with After I place a portal. The E behavior can be turned off locally in the same tab with When an admin presses E on a portal.

Discovery portals

Admins can mark existing portals as discovery-gated pairs from the admin UI:

  • Look at the spawn-side portal, open the This Portal tab, set a portal tag such as Bog Witch, choose Locked entrance, then click Apply.
  • Look at the remote portal, use the same portal tag, choose Unlock entrance, then click Apply.

Players must use the unlock entrance first. Once they do, that portal tag is saved for that player and they can use the locked entrance normally.

The This Portal tab automatically reads the portal the admin is looking at, so existing portal settings can be edited later by looking at the portal, changing the choice, and clicking Apply.

Clients with the plugin can also show a colored UNLOCK ON OTHER SIDE marker in the middle of locked entrances. The marker only appears while that entrance is still locked for that player. Each marked portal has a marker color dropdown in the This Portal tab with Red, Black, White, Green, and Orange options, and the server settings tab controls whether the marker is shown and whether the connected orange glow is hidden while locked.

Config

  • MaxPortalsPerPlayer: maximum portals per creator. 0 disables the limit.
  • AdminBypass: lets Valheim admins exceed the limit.
  • EnforceOnServer: keeps server-side deletion enabled.
  • PortalPrefabNames: comma-separated portal prefab names. Empty means all TeleportWorld pieces.
  • Discovery Portals.Enabled: enables per-player discovery-gated portals.
  • Discovery Portals.AdminBypass: lets admins use locked discovery portals without unlocking them.
  • Discovery Portals.ShowHoverText: adds discovery status text to portal hover text for clients with the plugin.
  • Discovery Portals.LockedHoverText: hover text for a locked portal before unlock.
  • Discovery Portals.RemoteHoverText: hover text for the discovery side.
  • Discovery Portals.UnlockedHoverText: hover text after unlock.
  • Discovery Portals.LockedMessage: top-left message when a player tries to use a locked portal.
  • Discovery Portals.UnlockMessage: top-left message when a player unlocks a route.
  • Discovery Portals.ShowWorldMarker: shows a colored UNLOCK ON OTHER SIDE marker on locked entrances.
  • Discovery Portals.TintPortalModel: legacy setting, currently ignored by the client UI.
  • Discovery Portals.SuppressLockedGlow: hides connected portal particle/light effects while the portal is locked.
  • Discovery Portals.LockedColor: color for locked portals before unlock.
  • Discovery Portals.RemoteColor: color for the far-side portal that unlocks the route.
  • Discovery Portals.UnlockedColor: color after the player has unlocked the route.

Player unlocks are stored on the server in BepInEx/config/PortalLimit/discovery_unlocks.txt.

CHANGELOG

Changelog

0.1.4

  • Set the default player portal limit to 10.
  • Kept normal tagged portals close to vanilla Valheim behavior, including the orange connected swirl and normal teleport feel.
  • Stopped blank-tag portals from connecting or teleporting players.
  • Added live portal placement feedback such as Portals placed: 2 / 10.
  • Added /portals regular-chat command for players to check their current portal count.
  • Added /portallimit regular-chat command for admins to open the admin UI.
  • Added admin F5 commands for counts, portal lists, and server exports.
  • Added configurable admin hold-E portal editing. Tapping E still opens Valheim's normal Set Tag prompt.
  • Added discovery-locked portals with LOCKED ENTRANCE, UNLOCKED ENTRANCE, and NORMAL PORTAL roles.
  • Prevented multiple locked discovery endpoints from using the same portal tag.
  • Prevented multiple unlocked discovery endpoints from using the same portal tag.
  • Added per-portal marker text options, including custom marker text.
  • Added per-portal marker color presets and custom hex colors.
  • Added per-portal player-facing hover text overrides.
  • Added per-portal locked-glow behavior.
  • Added a Portal Information tab with builder, built date, last-used info, unlock history, and world portal counts.
  • Added server audit files for portal counts, placements, and discovery unlock history.
  • Restricted portal removal so only the builder or an admin can remove a counted portal.
  • Clarified that player chat commands go into regular in-game chat, not the F5/dev command panel.
  • Updated contact information to the Discord invite.

0.1.3

  • Added a first pass at restoring portal particles and lights when a locked portal becomes unlocked or is reset to normal.
  • Prevented multiple locked or unlocked discovery endpoints from using the same portal tag.
  • Clarified that /portals and /portallimit must be typed into regular in-game chat, not the F5/dev command panel.
  • Replaced the README email contact with the Discord invite link.

0.1.2

  • Updated the public README title and description to Portal Limit and Discovery.
  • Moved discovery portal information closer to the top of the Thunderstore page.
  • Added FULL_README.md for downloaded config and server-owner details.
  • Added contact information for questions and suggestions.
  • Kept the Thunderstore package ID as PortalLimit so this uploads as an update to the existing package.

0.1.1

  • Changed the default locked discovery portal text color to orange.
  • Added the packaged icon image.
  • Included both client and server DLLs in the Thunderstore package for public dedicated servers.
  • Added server-side global portal counting across unloaded zones.
  • Added portal_counts.tsv for admin-readable portal ownership/count review.
  • Hardened server RPC permissions for public servers.
  • Fixed admin UI saving for locked/unlock popup message fields.

0.1.0

  • Added server-authoritative portal limits per player.
  • Added /portals chat command so players can check their current portal count.
  • Added admin UI for changing server settings in game.
  • Added admin-marked discovery portals with locked and unlock entrances.
  • Added UNLOCK ON OTHER SIDE marker with per-portal color choices.
  • Added marker text choices for UNLOCK ON OTHER SIDE, LOCKED, and X.
  • Added optional locked-portal glow suppression for clients with the plugin.