You are viewing a potentially older version of this package. View all versions.
sighsorry-PortalRules-1.1.2 icon

PortalRules

Adds secure portal travel with a map for choosing destinations, Personal, Public, Invite, Clan and Tagged access modes, portal limits, Admin portals, GlobalKey gates, favorites, cooldowns, and optional cargo-weight Coin fares.

Date uploaded a week ago
Version 1.1.2
Download link sighsorry-PortalRules-1.1.2.zip
Downloads 1790
Dependency string sighsorry-PortalRules-1.1.2

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 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.2351

README

PortalRules

Choose a destination on the map, save your favorite routes, and control who can use each portal. PortalRules adds access modes, portal limits, Admin portals, progression gates, and optional Coins fares to Valheim.

User guide · Server guide

Showcase

Click any image or animation to view the original.

Portal map and favorites

Portal destination map with available routes and favorites

Enter a portal to browse destinations available to you. The server checks access before allowing travel.

Choose a destination Read the portal pin
Selecting a destination on the portal map Portal pin with fare, ownership, access mode, and travel indicators

Pins show portal names, ownership and quota labels, travel restrictions, and any Coins fare.

Hovering a favorite portal to focus the map on its destination

Keep up to 10 favorites. Hover a row to find it on the map, left-click to travel while choosing a destination, or right-click to remove it. The header arrow folds the list away.

Choose who can travel

Cycling a portal's access mode

Use Left Shift + Interact to cycle available modes when you have permission. Changing the mode does not transfer ownership.

Public Tagged
Public portal hover text Tagged portal hover text with connection status

Public opens a player-built portal to visitors for 15 minutes by default, then returns it to Personal. Tagged uses matching tags for direct connected travel instead of destination selection.

Clan access Invite access
Clan portal hover details and Clan quota Invite portal hover details and account quota

Clan portals welcome the Builder and the bound Clan's members, including Guests. Invite portals stay open to everyone without Public expiry, with separate departure and arrival cooldowns.

Clan map pin Invite map pin
Clan portal map pin with quota label Invite portal map pin with quota label

Invite portal showing its remaining travel cooldown

Quota labels help you track portals, and Invite cooldown indicators show when a route becomes available again.

Admin and location portals

Admin building pieces A progression requirement
Admin portal pieces in the Hammer menu while using administrator debug mode A location Admin portal with a Required GlobalKey

Admin Wood and Stone portals appear under Hammer → Misc for server administrators in debug mode. Their placed frames are invisible and non-solid, with a whirling marker when a player approaches.

An Admin portal enforcing its Required GlobalKey

Set a progression requirement with Alt + Interact. Without YouAreNotWorthy, it checks world GlobalKeys; with a compatible YNW installation, ordinary progression keys can be checked per character.

Using an Admin portal placed inside a world location

Expand World Data can add Admin portals to locations. Add these objects to expand_locations.yml, then reset the affected location instances to apply the changes:

- prefab: BogWitch_Camp
  objects:
  - admin_portal_stone, 0,15,0.5, 180,0,0

- prefab: Hildir_camp
  objects:
  - admin_portal_stone, -0.5,14,-0.5, 180,0,0

- prefab: Vendor_BlackForest
  objects:
  - admin_portal_stone, -7,7,-0.5, 135,0,0

Adjust positions and rotations to suit each location. Editing the YAML alone does not change existing instances. After zones_reset, the area must be generated again or visited before its portals exist. Location and blueprint setup.

Quick start

Install PortalRules on the server and clients, then enter an accessible non-Tagged portal and select a destination on the map. Tagged portals use their connected destination directly.

These are the default controls; Interact is normally E.

To… Do this
Set a portal tag Press Interact.
Change its access mode Hold Left Shift + Interact.
Show or hide available portal pins Press P on the large map.
Add or remove a favorite Right-click a portal pin.
Use a favorite Left-click its row while selecting a destination.
Find or remove a favorite Hover its row to focus the map; right-click to remove it.
Edit an Admin portal's GlobalKey Press Alt + Interact with administrator debug access.

Portal fares are Off by default, so normal item teleport restrictions apply. A server can enable Pay to let ordinary restricted cargo travel for a Coins fare based on weight and distance. Items, fares, and wallets.

Access modes

Mode Who can use it
Personal The Builder's authenticated account.
Clan The Builder and the bound Clan's Primary and Guest members.
Public Everyone; eligible player portals later return to Personal.
Invite Everyone, without Public expiry. Disabled by default; servers can enable it with account limits and travel cooldowns.
Tagged Direct travel between matching tags. Ordinary portals are restricted to the Builder and the bound Clan, including Guests.
Admin Server-approved administrators; the Builder also retains access on existing ordinary Admin-mode portals.

Player portals cycle Personal → Clan → Public → Invite → Tagged; unavailable modes are skipped. Admin prefabs start Public and cycle Admin → Public → Tagged. Their Tagged connections are public, but their Tagged map pins are visible only to administrators in debug mode.

Mode changes require the Builder, an eligible Clan member, or administrator debug access. Only the Builder may enter or leave Invite. Required GlobalKeys still apply. Full access rules.

Installation and compatibility

Use a Valheim mod manager, or place PortalRules.dll in BepInEx/plugins. Install the same PortalRules version on the server and all clients. Requires BepInExPack Valheim 5.4.2351; PortalRules itself does not require Jotunn.

  • Do not combine with TargetPortal. PortalRules declares it incompatible.
  • Clan: requires a compatible Clan API v4 for Clan access.
  • YouAreNotWorthy: optional character progression checks and localized missing-key messages. If installed with an unavailable API, key-gated portals stay blocked.
  • Coin wallets: supports CurrencyPocket 1.0.15 or EndosCoinPurse 1.0.5. Use one wallet mod at a time.
  • Crossplay: overall account portal limits are inactive on PlayFab; Invite limits and cooldowns remain active. Server and Crossplay details.

Guides and support

Launch once to generate BepInEx/config/sighsorry.PortalRules.cfg. Server gameplay settings are synchronized; map shortcuts, wheel zoom, and other client preferences stay local.

Guide Covers
User guide Access rules, mode changes, maps, favorites, cooldowns, item restrictions, and Coins fares.
Server guide Defaults, account and Clan limits, Crossplay, YAML files, Admin portals, and world-editing setup.

GitHub · Report an issue · Discord · Changelog

CHANGELOG

Changelog

1.1.6

  • Added the server-synchronized Enable Portal Protection setting, disabled by default. Outside active STUWard areas, protected player portals block player and tamed-creature attacks; dismantling requires the original Builder's account, trusted Clan membership, or administrator debug access.
  • Protected portals resist hostile-creature attacks while unattended and allow unsupported collapse only while a living trusted player is nearby. Combat uses a 40-metre presence range and 10-second departure grace; collapse has no departure grace. Actual support values and other environmental wear remain unchanged.
  • Added optional STUWard 1.3.18 integration. Inside an active ward, portal damage and dismantling follow STUWard's rules and unsupported collapse works normally. PortalRules protection resumes outside active coverage; unavailable or failed integration keeps PortalRules protection in place.
  • Fixed Invite cooldown commits when a portal is destroyed during an in-flight journey. The destroyed portal's history stays deleted, while a surviving Invite endpoint still records its cooldown without releasing the pending journey early.
  • Added protection, ward-transition, removal-authority and Invite-destruction regression checks. Update PortalRules on the host/server and clients together, and update STUWard too when using the integration. Portal travel permissions and fares are unchanged.

1.1.5

  • Increased the portal-map click radius by one third, making both destination selection and favorite toggling easier while still choosing the nearest portal.
  • Enlarged favorite stars by about 15% and increased their text area while keeping them centered on portal pins.
  • Update the host/server and clients together.

1.1.4

  • Updated the Thunderstore package icon to the new portal artwork.
  • Fixed remote clients blocking Shift+E mode-change requests for portals built by another clan member. Clan permissions are now checked by the server instead of an unavailable client-side Clan lookup. Update the host/server and clients together.
  • Kept server authorization, Invite restrictions, and Admin portal rules unchanged. Personal ownership and Clan selection continue to use the original builder.
  • Added regression checks for remote requests, server rejection of unauthorized changes, and builder-based mode cycling.

1.1.2

  • Fixed Required GlobalKey portal access and requirement editing with YouAreNotWorthy 1.0.8 (API v2), while retaining API v1 support.
  • Existing personal progression keys are recognized without defeating bosses again or migrating saved data. Install the update on the host/server and clients.
  • Added regression checks for both API versions, existing local and remote personal keys, and denied access when the API or key data is unavailable. Unsupported API versions still block key-gated travel.

1.1.1

  • Changed the default Invite portal limit to 0 for new configurations. Existing saved settings and per-account overrides are preserved.
  • Reworked the README showcase with resized static images, full-size GIFs, and separate player and server guides.

1.1.0

  • Added optional EndosCoinPurse support for portal fares, using wallet Coins before inventory Coins without counting the wallet twice.
  • Added source-aware EndosCoinPurse refunds, including empty-wallet refunds above the normal stack limit, partial-payment rollback, immediate save/HUD updates, and duplicate-refund protection.
  • Retained CurrencyPocket 1.0.15 support and documented using one wallet mod at a time. Added focused wallet regression tests.
  • Updated the required BepInExPack Valheim dependency to 5.4.2351.

1.0.11

  • Fixed Crossplay portal placement being cancelled with Crossplay identity verification failed in mod combinations that wrap the PlayFab connection through ServerSync. Authenticated PlayFab identity and portal ownership checks remain enforced.

1.0.10

  • Respect Valheim's final modded item-teleportability result before PortalRules blocks travel or calculates a fare. Items explicitly allowed by another mod, including absolute-restriction items, can travel without a PortalRules Coin fare while the existing vanilla and fare rules remain unchanged otherwise.
  • Show unlimited own-portal map labels as My portal n instead of My portal n/∞; finite account limits retain the n/limit format.

1.0.9

  • Added the server-synchronized Default Portal Mode setting for newly placed ordinary player portals, with Personal, Clan, and Public choices. Clan safely falls back to Personal when membership or quota cannot be confirmed, while Public follows the existing expiration rule.
  • Changed ordinary portal mode cycling to Personal → Clan → Public → Invite → Tagged → Personal; Admin remains available only to Admin portal prefabs, while an existing ordinary Admin-mode portal can still cycle out to Public.
  • Clarified insufficient-fare messages so players know Coins are required because they are carrying items that cannot normally be teleported.
  • Centralized network-session travel cleanup and simplified positive-fare UI rendering without changing authorization, transaction, refund, or display behavior.

1.0.8

  • Added Crossplay portal ownership based on the authenticated PlayFab entity, covering placement, Builder editing, Personal access, Invite limits and cooldowns, and travel authorization. Steam and PlayFab ownership remain separate.
  • Automatically disables the overall account portal limit during Crossplay without changing its saved setting, while keeping Invite and Clan rules independent.
  • Added a second-line Crossplay diagnostic when portal placement identity verification fails, and a separate PlayFab character identity registry for safe persistence across reconnects.
  • Kept the mouse cursor visible and unlocked when the portal destination map opens after remote server approval.

1.0.7

  • Changed the account portal limit default to Off for new configurations while preserving existing saved values.
  • Added a specific two-line placement message when account portal limits are enabled with Crossplay/PlayFab, explaining that Steamworks is required and that players can disable Crossplay or the account portal limit.

1.0.6

  • Debounced local configuration saves and external-file reloads, preventing repeated writes caused by clustered setting and file-watcher events while keeping live configuration updates.
  • Cleaned up configuration callbacks and file watching during shutdown or reinitialization so handlers do not accumulate in the same game process.
  • Reorganized configuration ownership and portal lifecycle Harmony wiring to reduce maintenance and verification cost without changing settings, network messages, access rules, or travel behavior.

1.0.5

  • Simplified fare options to (distance)*(weight of non teleportable items)*k

1.0.4

  • Updated PortalRules for Valheim 1.0.7, including portal registration, portal-list access, map pointer/right-click handling, hover status formatting, and changed game method signatures.
  • Removed the hard Jotunn dependency. Admin portal cloning, network-scene and Hammer registration, cleanup, and UI font selection are now owned by PortalRules while preserving the existing admin portal prefab names and hashes.
  • Preserved portal authority changes in Valheim's separate portal save chunk, including admin creator metadata, and made server-world readiness idempotent across the new load path.
  • Applied Valheim's absolute item restrictions to all-items portals and prevented refund overflow from creating world drops before CurrencyPocket fallback, reducing item loss or duplication risk.
  • Updated the bundled ServerSync to the reviewed valheim-1.0.7-r1 build, preserving configuration/version contracts while fixing 1.0.7 API access and connection-initialization message ordering.
  • Updated the required BepInExPack Valheim dependency to 5.4.2350 and added client/dedicated static compatibility and focused behavior checks.

1.0.3

  • Show CONNECTED only for Tagged portals with a reciprocal connection; hide connection status in other access modes.
  • Check restricted items before opening the portal map and again after server approval, showing Valheim's item restriction message when travel is blocked.
  • Add an All Items Teleportable header above portal hover details, with English and Korean translations.
  • Remove restricted-item icons from map pins and favorites, and reduce the favorites panel width from 320 to 292. Travel validation, fares, and Invite cooldown indicators remain in place.
  • Reduce redundant portal checks, repeated UI lookups, and allocations in idle travel-ticket and reservation cleanup paths.
  • Support automatic local Debug DLL deployment through DeployToGame=true after assembly merging.

1.0.2

  • Fixed dedicated-server character verification blocking portal use and access-mode changes.
  • Fixed authenticated server admins being unable to place Admin portals on dedicated servers.
  • Added safe Public handling for creatorless server and location portals.

1.0.1

  • Fixed portal catalog updates occasionally being missed after portal changes.
  • Enforced Tagged portal connection scopes even when Portal Map is disabled.
  • Improved compatibility and payment handling for CurrencyPocket.
  • Reduced unnecessary server synchronization traffic and improved state-file write safety.
  • Improved resilience to Valheim UI and portal connection API changes.

1.0.0

  • Initial release.