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.
Cross Server Portals Continued
Valheim 1.0 continuation of lunar91's Cross Server Portals. Link servers and local worlds through portals.
| Date uploaded | 3 weeks ago |
| Version | 1.3.2 |
| Download link | jcruse03-Cross_Server_Portals_Continued-1.3.2.zip |
| Downloads | 124 |
| Dependency string | jcruse03-Cross_Server_Portals_Continued-1.3.2 |
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.2350README
Cross Server Portals Continued
Connect Valheim servers and local worlds through ordinary portals.
Community-maintained fork: This project is a Valheim 1.0-compatible continuation of lunar91/lunarbin's Cross Server Portals. The original design and implementation belong to lunar91 and contributors. This fork is distributed under the same GPL-3.0 license and is not an official lunar91 release.
Recommended companion: PortalPass
For seamless travel between password-protected servers, pair this mod with PortalPass on Thunderstore (source on GitHub). PortalPass is an optional client-only companion that supplies passwords from a private file the player controls, so cross-server portal trips do not stop at a password prompt. It never records or learns passwords automatically.
Compatibility
- Valheim 1.0 / dedicated server network version 39
- BepInExPack Valheim 5.4.2350 or newer compatible release
- Install on every client and server participating in cross-server travel
The plugin GUID and DLL name remain unchanged so existing configuration is retained when upgrading from the original mod. Remove the original DLL before installing this package; do not run both versions together.
Installation
Copy ValheimCrossServerPortals.dll into BepInEx/plugins/CrossServerPortals/ on each
client and server.
Portal tags
Use one of these formats:
SourceTag|server.example.com:2456|TargetTag
SourceTag|192.0.2.10:2456
SourceTag|[2001:db8::10]:2456|TargetTag
SourceTag|world:My Local World|TargetTag
- SourceTag identifies the departure portal.
- TargetTag is optional. On arrival, the mod looks for either that ordinary tag or a cross-server portal whose source tag matches it.
- A server address without a port uses Valheim's default port,
2456. - IPv6 addresses with a port must use brackets.
world:destinations switch to a local world by name.
Cross-server portals ignore Valheim's ordinary item teleport restrictions, matching the behavior of the original mod.
Configuration
PreserveStatusEffects— preserve effects such as rested and wet across a mod-driven transfer.RecolorPortalGlyphs/CustomPortalGlyphColor— identify cross-server portals visually.RecolorPortalEffects/CustomPortalEffectColor— customize their particle effects.PromptBeforeTeleport— request confirmation before leaving the current server.RequireAdminToRename— server-synchronized restriction for cross-server portal tags.LockAdminConfig— lock synchronized administrator configuration.
What changed in this continuation
- Restored Valheim 1.0 compatibility using the new flattened portal-list API.
- Replaced asynchronous thread-pool delays with Unity coroutines.
- Preserved the calculated safe exit position after the destination finishes loading.
- Limited periodic portal enumeration to servers and compare portals by stable ZDO ID.
- Reworked portal-tag validation for safer DNS, port, world-name, and IPv6 handling.
- Updated deprecated particle-system calls and improved null safety.
- Added repeatable Linux builds, parser tests, CI, and Thunderstore-ready packaging.
See CHANGELOG.md for release history and docs/PUBLISHING.md for maintainer release instructions.
Building
Set VALHEIM_GAME_PATH to a Valheim installation containing BepInEx, then:
dotnet test tests/CrossServerPortals.Tests.csproj
dotnet build CrossServerPortals.csproj -c Release
dotnet msbuild CrossServerPortals.csproj -t:Package -p:Configuration=Release
The Thunderstore-ready archive is written to artifacts/.
Credits and license
- lunar91 — original author and architecture
- Wacky-Mole — original admin permission work
- ServerSync — server-authoritative configuration
Licensed under GPL-3.0. Git history from the upstream repository is preserved.
CHANGELOG
Changelog
1.3.2 - 2026-09-10
- Recommend and link the optional PortalPass companion for seamless travel between password-protected servers.
- Documentation-only package update. The included plugin DLL is unchanged from the tested 1.3.1 release; there are no gameplay or configuration changes.
1.3.1 - 2026-09-09
- Replace the inherited package icon with an original two-world portal emblem.
- No gameplay or configuration changes.
1.3.0 - 2026-09-09
- Add Valheim 1.0 compatibility.
- Replace background-thread delays with Unity coroutines.
- Keep players at the calculated safe portal exit after loading.
- Restrict portal tracking to the server and compare stable ZDO identifiers.
- Improve portal-tag validation, including world names with spaces and bracketed IPv6.
- Default omitted server ports to 2456.
- Update particle APIs and improve visual-effect null safety.
- Add automated parser tests and reproducible release packaging.
Earlier releases
Versions 0.1.0 through 1.2.0 were released by lunar91. See the preserved Git history and upstream repository for their full notes.