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.
Quads Portal Hub
Portals you can actually use: press E on a portal and pick where it goes from a list.
| Date uploaded | a day ago |
| Version | 1.2.2 |
| Download link | Quads_Lab-Quads_Portal_Hub-1.2.2.zip |
| Downloads | 45 |
| Dependency string | Quads_Lab-Quads_Portal_Hub-1.2.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.2351README
๐ Quad's Portal Hub
Portals you can actually use: press E on a portal and pick where it goes from a list.
Source code ยท Report a bug ยท Discord
โจ Features
What is in it
- The list shows every portal in the world, nearest first, with its biome and distance. Search it, sort it by name, or star the ones you use most to keep them at the top.
- One click links this portal to the one you pick, and (by default) links that one back, so there is no more matching names on both ends.
- Every portal shows on the map with its name, and the big map draws a line from each portal to where it goes (an arrow when it only goes one way). A Map button next to each portal in the menu opens the map at that spot.
- Look at a portal and it tells you where it goes.
- Rename a portal right in the menu. Portals you never choose a destination for work the old way, by matching names, so nothing you built breaks.
- Teleport rules are unchanged: you still cannot carry ores or other blocked items through a portal.
- Needs to be installed on the host's game (and on yours to use the menu). Players without it can still walk through linked portals.
๐ธ Screenshots
Pick where a portal goes from the list: names, lands, distances
๐ฎ How to use
| Key | What it does |
|---|---|
| E at a portal | Open the portal menu and choose where it goes |
- E on any portal opens the PortalHub menu instead of the game's name box (press Shift+E for the game's own name box).
- Protected areas: a portal inside someone else's switched-on ward can't be relinked or renamed by you, and "link it back" leaves such a
portal as it is (you get a one-way link). The host checks this, whatever a player's game says. With
HideWardedPortalson (the host's choice), those portals also stay out of your list and map.
๐งฉ Other mods
Known clashes
- XPortal: PortalHub stands down while it's installed (the log says so).
Found a clash with another mod? Tell us which one and what happened.
๐ฅ Multiplayer
Who needs it: The host (it keeps the portal links), and everyone who wants the portal menu.
The host keeps the portal list and the links, and checks wards before relinking or renaming. Players without the mod still travel through linked portals; they just don't get the menu.
The host decides: whether the menu is on and whether warded portals are hidden. While you play on their world their values replace yours (your file isn't changed); a host without the mod leaves everyone their own.
โ๏ธ Settings
In BepInEx/config/com.quad.portalhub.cfg, made the first time the game runs with the mod. r2modman and Thunderstore Mod Manager edit it under Config editor.
General
| Setting | Default | What it does |
|---|---|---|
Enabled |
true |
Use the portal menu when you press E on a portal. (Off: portals work like in the base game.) In multiplayer the server's value applies. |
HideWardedPortals |
false |
Leave portals inside someone else's protected area (a switched-on ward you are not on) out of each player's list and map, and refuse links to them. (Portals in such an area can never be changed by others either way.) In multiplayer the server's value applies. |
ShowDestinationOnHover |
true |
When you look at a portal, show where it goes. |
Map
| Setting | Default | What it does |
|---|---|---|
ShowPortals |
true |
Show every portal on the map with its name. |
ShowLinks |
true |
On the big map, draw a line from each portal to where it goes (an arrow if it only goes one way). |
Menu
| Setting | Default | What it does |
|---|---|---|
LinkBothWays |
true |
Picking a destination also links that portal back to this one. |
Favorites |
`` | Portals you starred (managed by the menu; you do not need to edit this). |
๐ค Made with AI
Made with the help of Claude (Anthropic), with Claude Code: designed, written and checked together, and tried in the game.
๐งช About Quads Lab
Quads Lab is where Quad H (HardHeadHackerHead) builds software with AI, of every kind: these Valheim mods are one of its projects. Each mod is designed by a player, written with Claude Code and tested in our own world, with bobisme as our tester.
- ๐ quadslab.io
- ๐งฐ All Quads Lab mods on Thunderstore
- ๐ป Source code on GitHub
- ๐ฌ Discord
- ๐ Found a bug? Open an issue on GitHub
๐ Recent changes
- 1.2.2 A clearer page: what it does, who needs it in multiplayer, how it gets on with other mods, and where to report a bug. The game itself is unchanged.
- 1.2.1 A new id, com.quad.portalhub (it was com.dhack.portalhub): your settings move over by themselves the first time it starts, and the old settings file is kept as a backup. Restart the game after this update. If an old copy is still installed beside it, this one stands down and says which file to delete, so the two never both run. The DLL now says it was made with AI, as Thunderstore asks.
- 1.2.0 Fix: anyone could relink a portal inside someone else's protected area, and "link it back" changed the other portal even in someone's base. The host now checks the wards itself and refuses to change a portal in a switched-on ward you are not on; linking to such a portal only goes one way. A new host setting, HideWardedPortals (off by default), keeps those portals out of other players' lists and maps. In multiplayer the server decides Enabled and HideWardedPortals. With XPortal installed PortalHub now stands down (the two undo each other's links). The menu uses the game's font.
Every change is on the Changelog tab.
CHANGELOG
1.4.3
- Settings: edits to the config file now apply while the game runs (a server owner no longer has to restart), and a server's admins can change the server's settings from their own game with Configuration Manager, where other players see them greyed out. Your config file always keeps your own values while you play on a server (saving it there could write the server's in). Players on an older version still get the server's settings.
1.4.2
- Its windows no longer fill the log with "The LiberationSans SDF Font Asset was not found": each text is given the game's font before it starts (it looked for TextMeshPro's default font, which the game doesn't have, every time a text was made). Nothing changes on screen.
1.4.1
- Fix: a portal could be linked one way into someone else's protected area, so anyone could walk into their base through it. The host now refuses a link to a portal in a switched-on ward you are not on, whatever HideWardedPortals says (that setting now only hides those portals from the list and map). Links that already lead into a protected area their maker may not enter (a ward built or switched on since) are dropped, and the portal goes back to pairing by name. Links made with an older version didn't record who made them, so they are left as they are. Fix: a portal renamed at the moment the host saved its link or id could lose the new name: the host now asks the game that holds the portal to save them (as the game does with its own portal links), and saves them itself only when nobody else holds it, or after a few seconds for a player with an older PortalHub. The host's portal pass every 5 seconds no longer searches the whole portal list once for each linked portal.
1.4.0
- Now in your language: English, Russian, German, Chinese (Simplified), Portuguese (Brazil), Spanish, French, Polish and Turkish, following the game's own Language setting. The game's own names are used for its things (items, creatures, lands, stations). The translations were made with AI: to correct a line, or add a language, put a file in BepInEx/config/translations/com.quad.portalhub/ named after the game's name for the language (German.json...) with only the lines you change, copied from translations/English.json on GitHub. The host's two refusals (a portal in someone's ward, a one-way link) reach each player in their own language. Players on a server should update together: a player on an older version sees those two as a key name. The narrow buttons on each portal's row shrink their words to fit.
1.3.0
- The portal menu now looks like part of the game: the crafting screen's wood panel, the game's buttons, fonts and scrollbar, and the game's own text boxes for the name and search (E and Tab type in them). Long portal lists scroll smoothly. E or Tab closes the menu as they close a chest, and the E that closes it no longer opens it again. The link lines on the big map are part of the map now: they stay under the portal icons and move and hide with it.
1.2.2
- A clearer page: what it does, who needs it in multiplayer, how it gets on with other mods, and where to report a bug. The game itself is unchanged.
1.2.1
- A new id, com.quad.portalhub (it was com.dhack.portalhub): your settings move over by themselves the first time it starts, and the old settings file is kept as a backup. Restart the game after this update. If an old copy is still installed beside it, this one stands down and says which file to delete, so the two never both run. The DLL now says it was made with AI, as Thunderstore asks.
1.2.0
- Fix: anyone could relink a portal inside someone else's protected area, and "link it back" changed the other portal even in someone's base. The host now checks the wards itself and refuses to change a portal in a switched-on ward you are not on; linking to such a portal only goes one way. A new host setting, HideWardedPortals (off by default), keeps those portals out of other players' lists and maps. In multiplayer the server decides Enabled and HideWardedPortals. With XPortal installed PortalHub now stands down (the two undo each other's links). The menu uses the game's font.
Earlier
-
Fix: away from portals, PortalHub looked for portals nearby every frame; it now looks once a second.
-
Fix: after restarting the game, linked portals sent you to a random place (the game renumbers everything when a world loads, and links were saved by number). Each portal now keeps its own id, so links and starred portals survive restarts. Links made with the old version are cleared once: link your portals again in the menu. Also: the last world's portals no longer show on a new world's map, and a newly built portal no longer lists itself as a destination.
-
Portals now show on the map with their names, and the big map draws a line (with an arrow if one-way) between linked portals. Rename a portal inside the menu. The list warns when linking back would replace another portal's link.