Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
PortalLimit
Portal Limit and Discovery: server-enforced portal limits, global portal counts, and discovery-locked portals for Valheim.
By mistydays
| Date uploaded | 2 months ago |
| Version | 0.1.3 |
| Download link | mistydays-PortalLimit-0.1.3.zip |
| Downloads | 42 |
| Dependency string | mistydays-PortalLimit-0.1.3 |
This mod requires the following mods to function
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.2333README
Portal Limit and Discovery
Portal Limit and Discovery is a Valheim server mod for communities that want portals to stay useful without letting every player cover the world in unlimited fast travel.
The mod enforces a server-side portal limit per player, counts portals across the whole saved world including unloaded zones, and gives players a simple /portals command so they can check their own count. Admins can also create discovery-locked portal pairs where one entrance stays locked until each player finds and uses the matching unlock side first.
Portal Limit and Discovery is built for public dedicated servers. The server DLL handles enforcement and saved-world counting. The client DLL adds player feedback, portal visuals, the /portals command, and the admin UI.
All Portal Limit and Discovery commands are typed into regular in-game chat, not the F5/dev command panel.
Main Features
- Server-enforced per-player portal limits.
- Strict global counts across loaded and unloaded world zones.
- Player
/portalscommand to check current portal count. - Admin-only in-game settings UI.
- Discovery-locked portal pairs for progression, exploration gates, events, and custom routes.
- Admin-readable portal count export for server review.
- AzuAntiCheat-friendly package layout.
Discovery Portals
Discovery portals let admins create a pair where one side is locked until a player discovers the other side first.
Example use cases:
- Lock a shortcut until players find the far-side entrance.
- Create dungeon, boss, biome, or event progression routes.
- Add travel rewards without permanently disabling normal portals.
- Make exploration portals feel earned instead of immediately available.
To create a discovery-locked portal pair:
- Look at the locked-side portal.
- Open the Portal Limit and Discovery admin UI.
- Set a shared portal tag, for example
Bog Witch. - Mark that portal as
LOCKED ENTRANCE. - Choose the marker color and marker text.
- Apply the settings.
Then configure the unlock-side portal:
- Look at the other portal.
- Use the same portal tag.
- Mark it as
UNLOCKED ENTRANCE. - Apply the settings.
Each player unlocks the route individually after using the unlocked entrance.
Player Commands
Players can type this into regular in-game chat:
/portals
This shows their current counted portal total and the server limit.
Admin Usage
Admins can type this into regular in-game chat to open the Portal Limit and Discovery UI:
/portallimit
Admins can also press F10, or look at a portal and press E if that option is enabled.
Non-admin players cannot open or use the admin editor.
Install
Install the Thunderstore package on both the dedicated server and players.
The package includes:
PortalLimitServer.dll: runs only on dedicated servers.PortalLimitClient.dll: runs only on player clients.BepInEx/config/AzuAntiCheat_Whitelist/PortalLimitClient.dll: convenience copy for servers using AzuAntiCheat.
If your server uses AzuAntiCheat, whitelist the exact PortalLimitClient.dll that players install. The Thunderstore package already includes a matching copy at:
BepInEx/config/AzuAntiCheat_Whitelist/PortalLimitClient.dll
Existing Servers
Back up your world before installing.
Existing portals are not automatically deleted just because a player is already over the limit. The global limit applies when new portals are placed. Players who are already over the limit will need to remove portals before they can place more.
For a live server, consider installing with a high temporary limit first, confirming everything works, warning players, and then lowering the limit.
More Information
The downloaded package includes FULL_README.md with config settings, server storage paths, manual install notes, and admin audit file details.
Thunderstore Package Contents
This Thunderstore package contains the files needed by both public dedicated servers and players:
manifest.json
README.md
FULL_README.md
CHANGELOG.md
icon.png
BepInEx/plugins/PortalLimitClient.dll
BepInEx/plugins/PortalLimitServer.dll
BepInEx/config/AzuAntiCheat_Whitelist/PortalLimitClient.dll
Contact
Join the Discord for questions, bug reports, balance feedback, or suggestions:
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
/portalsregular-chat command for players to check their current portal count. - Added
/portallimitregular-chat command for admins to open the admin UI. - Added admin F5 commands for counts, portal lists, and server exports.
- Added configurable admin hold-
Eportal editing. TappingEstill opens Valheim's normal Set Tag prompt. - Added discovery-locked portals with
LOCKED ENTRANCE,UNLOCKED ENTRANCE, andNORMAL PORTALroles. - 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
/portalsand/portallimitmust 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.mdfor downloaded config and server-owner details. - Added contact information for questions and suggestions.
- Kept the Thunderstore package ID as
PortalLimitso 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.tsvfor 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
/portalschat 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 SIDEmarker with per-portal color choices. - Added marker text choices for
UNLOCK ON OTHER SIDE,LOCKED, andX. - Added optional locked-portal glow suppression for clients with the plugin.