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.
PortalPreview
See where a portal leads: a 3D view of the destination inside the frame, lit for its time of day, with true parallax, a spiral reveal and smoke along the edge. Wooden and stone portals. Client-side.
By Ivvty
| Date uploaded | 3 days ago |
| Version | 1.2.0 |
| Download link | Ivvty-PortalPreview-1.2.0.zip |
| Downloads | 1761 |
| Dependency string | Ivvty-PortalPreview-1.2.0 |
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
PortalPreview
Shows the place a wooden or stone portal leads to inside its frame. The destination is captured once as a frozen 3D scene and kept on disk, and the frame becomes a window onto it: the view has true parallax as you move, opens in a spiral as you approach, blends into the frame with a rippling edge and has smoke drifting along the seam.
The view follows the time of day and the weather at the destination: at night the far side is dark under the stars, in the morning the sun rises there too. The scene itself stays frozen (no moving creatures or particles). Between image updates the view is reconstructed from cached colour and depth instead of rendering the scene again. Steady test frames took around a millisecond on an RTX 4070 SUPER; frames that refresh the images cost more, and performance depends on the scene, resolution, movement and hardware.
Requirements
- Valheim with BepInEx 5 on Windows.
Recommended (optional)
- FastLoading: faster portal travel and dungeon entrances, so stepping through a portal takes a moment rather than a loading screen.
- ValheimVisuals: water, reflections, materials and ambient occlusion turned up within the game's own ranges, for a better picture everywhere.
Install
- Close Valheim.
- Put
PortalPreview.dllintoValheim/BepInEx/plugins/.
Updating to 1.2.0
Replace the existing DLL while the game is closed. Keep your configuration and saved scenes: settings carry over
(Capture mode becomes Snapshot updates; Resolution, Max visible portals and Max resident snapshots are kept if you
used the Custom profile and follow the profile otherwise), and each saved view is captured once more on your next
trip through its portal, or right away with frozenportal refresh next to it. The new water and ambient occlusion
apply to saved views at once; Mistlands trees near a portal appear once its view has been captured again.
Closing portals retain their slot until the spiral completes. Expensive image updates are scheduled across frames. The newest physically matching archive wins even if a restored world changes portal IDs. Portable texture copies keep their full resolution; uncompressed HD packs can consume substantially more disk and video memory. Nearby water has its own surface and depth, using an isolated material rather than live-world screen-space effects.
How it captures
When a portal first shows its view: a portal shows the place at its other end, so that place has to be captured first, and only a place you are at can be.
- A new pair of portals: travel through it once. The portal you leave and the one you arrive at are both captured under that loading screen, and from then on both show their views.
- Two linked portals standing next to each other (a hub): both views appear a moment after linking, no trip needed.
- Portals built before installing the mod, or after a game update: the same as a new pair, one trip through each.
- A capture freezes the game for up to about a second, so it runs under the loading screen of a teleport through the
portal: when you leave through it, or arrive at a portal that has no scene yet (the loading screen then stays up for
at most four more seconds). Linked portals standing next to each other (a hub) are captured at once, so their views
appear straight away;
frozenportal refreshcaptures the portals next to you at once. Snapshot updatesdecides when an existing scene is replaced: WhenChanged (default) when you leave through the portal and something around it was built, removed, grown or dug since its last capture; EveryTrip on every departure (not again within two minutes); Once never, untilfrozenportal refresh.- A capture waits for a fully black frame and may extend the transition. If it cannot start within three seconds, travel continues with the previous snapshot. A capture already in progress can take longer.
- Wooden and stone portals work in any pairing; the game links them to each other by tag.
- Saved scenes live in
BepInEx/cache/PortalPreview/PortalSnapshots. Scenes and data nothing uses any more (a portal torn down, an older game version, what a recapture left behind) are removed automatically once per session.
Settings
BepInEx/config/ru.ivest.portalpreview.cfg, all live with Configuration Manager. The main ones:
| Section | Setting | Default | Meaning |
|---|---|---|---|
| General | Enabled | true | Show portal views. |
| General | Hardware profile | Auto | Resolution, number of views and snapshots kept, from your video memory, RAM and CPU (Auto/Low/Medium/High/Ultra). Resolution, Max visible portals and Max resident snapshots follow it at 0 and override it for that setting alone when set above 0. |
| Portal preview | Preview quality | High | How often a visible portal renders its destination again as you move, its main cost; the image stays sharp. High: every 0.3 m. Medium: every 0.6 m. Both once more where you stop. Low: never (less exact parallax up close). Auto: Medium on the Low hardware profile. |
| Portal preview | Snapshot updates | WhenChanged | When a saved scene is replaced: when its surroundings changed (WhenChanged), on every departure (EveryTrip) or never (Once). Replaces Capture mode: DuringTeleport becomes EveryTrip, OnFirstLink WhenChanged. |
| Portal preview | Approach radius | 15 | How close to a portal its view opens, in metres. |
| Portal preview | Always visible | false | Show views at any distance while in sight. |
| Portal preview | One-sided view | false | Show the view only from the front, the side travellers come out of; from behind the portal looks as without the preview. |
| Portal preview | Spiral duration | 1.2 | Seconds the spiral takes to open or close. |
| Portal preview | Edge style | Ripple | How the picture meets the frame: Ripple, Vortex, Glow, Smoke or None. |
| Portal preview | Edge smoke | true | Smoke puffs along the seam between the view and the frame. |
| Portal preview | Panorama resolution | 0 | Sharpness of the distant landscape and clouds behind the scene: 0 by hardware profile (512 for Low and Medium, 1024 for High and Ultra), or 512, 1024, 2048. 2048 is about as sharp as the screen at 1440p, for about a second more per capture and about 100 MB more video memory per visible portal. |
| Portal preview | Follow time of day | true | Light the view for the time of day and the weather at its destination now. False keeps it as captured. |
| Portal preview | Hide game flames and fog | false | Hide the flames and dark swirling fog of the game's own connected-portal effect; its sparks, runes, light and sound stay. The picture then also sits at the front of the opening. |
Console (F5): frozenportal status, on, off, refresh (recapture nearby portals), cleanup (remove stale
saved scenes now), lighting (compare the lighting the mod computes where you stand with the game's own).
Errors and rate-limited warnings about preview work over 50 ms reach the log. For detailed captures, loads and frame
costs, use frozenportal log on in the console (off with frozenportal log off), or launch with -portalpreview-log.
Limits
- Wooden and stone portals of the base game. Portals added by other mods keep their normal look.
- A destination nobody has visited in this installation has no view yet.
- The scene is frozen: no moving creatures or particles inside the frame.
- Views reconstructed between image updates can show small errors around thin objects or newly revealed edges.
- Frozen water does not reproduce all of the game's reflection, refraction and wave effects.
- Capturing and saving a new scene still requires synchronous work and can hitch; a render scheduler is not a frame-time guarantee. Full-resolution uncompressed texture packs cost more memory and disk than vanilla assets.
- Native Linux/Vulkan stability after repeated portal travel is not verified; this release does not claim to fix the reported Linux crashes.
- Time of day: the distant landscape and clouds were captured as pictures and are only brightened or darkened; falling rain or snow stays as captured; dungeon interiors keep their captured lighting; raids are not shown. Each lighting step redraws a visible portal's capture over a few frames, at most once per 10 seconds.
Multiplayer
Client-side. Each player captures the portals they use; nothing is sent over the network.
Problems and feedback
Write to me on Discord: https://discord.com/users/683075123816824940. Attach BepInEx/LogOutput.log from the game folder, or from the profile folder with a mod manager (r2modman: Settings → Browse profile folder), and say what you did when it happened. If a portal shows no view, add the output of frozenportal status
typed in the F5 console next to it (the console needs the -console launch option), and start the game with
-portalpreview-log so the log says what the preview did.
CHANGELOG
Changelog
1.3.2
- HD texture packs: teleporting could freeze the game for minutes and get you disconnected from the server. Saved scenes are also several times smaller.
1.3.1
- Download is about a megabyte smaller: unused shader variants removed. Nothing else changes.
1.3.0
New
- Portals of other mods show their view too; the mod measures each one's opening from its frame.
- Portal atmosphere: a little of the far side's mist, snow, embers or dust drifts out of an open portal.
- Moving weather: rain and snow move inside outdoor views.
- Dry under roofs: floors inside houses no longer look wet in rain.
- Sharper at an angle: better texture detail in oblique views.
Smoother
- Torch and fire shadows in a view are drawn once instead of on every update: up to 41% faster near bases.
- Optionally, what the portal's opening cannot show is not captured (Hidden geometry; on for Low and Medium).
- Cheaper reconstruction, better capture coverage and smarter refresh order at the same quality.
Settings
- Sorted into sections: General, Portal views, Effects, Quality, Snapshots. Your values are moved automatically.
- Portal atmosphere, Moving weather and Hide game flames and fog are on by default; the latter now also hides the sparks drawn into the opening.
- New: Portal atmosphere density, Hidden geometry, Limit archive blob size.
Fixed
- HD texture packs (8K textures): portals showing one got no view.
- Some repeated objects gained shadows they should not have.
Updating
- Replace the DLL with the game closed. Each view is captured once more on your next trip through its portal.
1.2.0
Views look more like the real place
- Water now looks like the game's water: its own colours from the shore to deep sea, reflections of the trees, shore and sky around it, and lighting for the time of day. It used to be a pale grey sheet.
- Ambient occlusion: views get the game's soft shading in corners and under foliage (with SSAO on), so they no longer look brighter and flatter than the place itself.
- Mistlands: trees, Yggdrasil roots and logs, and anything built of Yggdrasil wood near a portal now appear in the view instead of as a flat picture far behind.
- Stepping out of a portal: it already shows its view when the loading screen lifts, instead of opening a few seconds later.
Smoother
- Much less stutter: views are captured under the teleport loading screen instead of while you walk around, and captures are about twice as fast. The first visit to a portal can keep the loading screen up a little longer.
- Lighter on the GPU: less work and video memory while you move near portals, especially on the Low and Medium hardware profiles.
New settings
- Snapshot updates (replaces Capture mode): WhenChanged (default) updates a view when you leave through the portal
and something around it was built, removed, grown or dug; EveryTrip updates it on every trip; Once keeps it until
frozenportal refresh. Your old choice is carried over. - Preview quality (High / Medium / Low / Auto): how often a view is redrawn as you move. Medium and Low cost less on weaker graphics cards; the picture stays sharp.
- One-sided view: show the view only from the side travellers come out of.
- Portal hubs: hardware profiles show more views at once (Low 2, Medium 4, High 6, Ultra 8).
- Resolution, Max visible portals and Max resident snapshots can now be set one by one on top of any hardware profile (0 follows the profile). Custom is no longer needed; if you used it, your values are kept.
Fixed
- The barrier of a shield generator at your base showed inside portal views.
- A wooden portal seen from behind had a gap between the view and the frame.
- The inside of ships in a view was filled with the colour of water, and the sea bottom looked dark.
- Walking through a portal while its saved view was still loading could leave the old view in place.
- Portals that lead to a portal with another name work with XPortal and XPortalNetworks.
- Safer after game updates: a change in the game no longer stops every capture or leaves the mod half-working.
Updating
- Replace the DLL while the game is closed. Settings and saved views carry over; each view is captured once more on
your next trip through it (or right away with
frozenportal refreshnext to the portal). - A new pair of portals shows its views after your first trip through it; two linked portals standing next to each other show them right after linking.
1.1.4
- Fixed: textures and surface lighting in portal views could look flat or wrong after restarting the game.
- Fixed: portals near each other could flicker between which one shows its view.
- Fixed: a closing portal view could disappear before its spiral finished.
- Nearby water is now part of the portal view instead of being hidden behind the terrain.
- Full-resolution textures are kept, including texture packs (these can use more disk space).
- New console command
frozenportal log on|offfor detailed timings. - Saved scenes from this version cannot be read by older versions of the mod. No cache reset is needed.
1.1.3
- Fixed: building ghosts and your own lights no longer appear in portal views.
- Fixed: texture-pack changes are picked up correctly by new captures.
- Fixed: some flickering and mismatched lighting while a portal view was being rebuilt.
- Lower memory use while saving a capture.
- Capturing during teleport waits for a fully black screen and gives up after three seconds, keeping the old view.
- Use
frozenportal refreshnext to a portal to remove ghosts or lights already baked into an older view.
1.1.2
- The distant landscape and clouds behind a portal view are twice as sharp on the High and Ultra hardware profiles and no longer shimmer from afar.
- New setting
Panorama resolution(0 = by hardware profile, 512, 1024 or 2048). Higher values are sharper but make each capture longer and use more video memory. - Existing views keep their panorama until the portal is captured again.