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.
TeleportCreatures
Official OdinPlus Module of Teleport Everything! Bring your tamed allies or enemies along! Transport Creatures nearby: Wolves, Boars, Lox, custom creatures and more through portals, dungeons, and basements. Compatible with Valheim 1.0 (Deep North).
| Date uploaded | 3 days ago |
| Version | 0.3.0 |
| Download link | OdinPlus-TeleportCreatures-0.3.0.zip |
| Downloads | 8664 |
| Dependency string | OdinPlus-TeleportCreatures-0.3.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.2350README
TeleportCreatures
Teleport Creatures is the creature transport module of the modularized TeleportEverything 3 pack. It safely brings nearby eligible tamed allies and, when separately enabled, alerted hostile untamed enemies through Valheim's normal portal, dungeon, and Basements transitions. It waits for Valheim's native player arrival and never changes teleport timing, fade, readiness, or the selected destination. It is compatible with Valheim 1.0 (Deep North).
Want to configure in game? Install TeleportEverything for a unified panel with TeleportCreatures settings.
New Feature!

Switch modes hotkey: press Shift + ← or Shift + → to cycle between modes. (configurable)
Installation
Recommended: install with Gale. Gale can use both the Hexium and Thunderstore catalogs and imports existing profiles on startup. Install TeleportCreatures in the same profile used for Valheim, on the server and every participating client.
Manual: install BepInExPack for Valheim, then extract TeleportCreatures.dll from this package into Valheim/BepInEx/plugins/. Install the same version on the server and every participating client.
Server policy and player preferences
The source-of-truth server generates and synchronizes BepInEx/config/odinplus.TeleportCreatures.server.yml.
Each player gets odinplus.TeleportCreatures.yml, which is local-only and restrictive. A malformed file is rejected while the last valid policy remains active.
In-game editor
Open ConfigurationManager, expand Advanced Configuration, and click Teleport Rules → Open YAML Configuration Editor. You can edit your player preferences there; the server policy can be edited on the server host and read on clients. The editor checks YAML before saving. Invalid YAML leaves the last valid settings active. Your player file is BepInEx/config/odinplus.TeleportCreatures.yml; the server file is BepInEx/config/odinplus.TeleportCreatures.server.yml. You can edit either file with a text editor as well.
Local diagnostic logging is controlled by the Diagnostics settings in ConfigurationManager's Advanced settings.
Server policy YAML
# Server policy: synchronized and authoritative.
# Filters accept all/*, none, exact prefab names, and * / ? globs. Deny always wins.
# Lower Priority wins (1 is strongest; omitted is 100). Tags are portal link text.
SchemaVersion: 2
Allies:
# Disable all allied-creature transport for every player.
Enabled: true
# Hard limits for each player's local SearchRadius and SearchHeightRadius.
MaximumSearchRadius: 20
MaximumSearchHeightRadius: 8
# Global server creature ceiling; portal rules can only narrow it.
Allow: ["all"]
Deny: []
Teleport:
Portals:
# Disable creature transport through every normal portal.
Enabled: true
Rules:
# Neutral defaults for Wood and Stone portals.
- Id: "wood-portals"
Source:
Prefabs: ["portal_wood"]
Allow: ["all"]
Deny: []
- Id: "stone-portals"
Source:
Prefabs: ["portal_stone"]
Allow: ["all"]
Deny: []
# Add a source-specific override with Priority: 1..99, for example:
# - Id: "farm-stone-portal"
# Priority: 1
# Source:
# Tags: ["FarmToPlains"]
# Prefabs: ["portal_stone"]
# Allow: ["Lox", "Wolf", "Boar"]
# Deny: []
Dungeons:
# Covers both dungeon entrances and exits.
Enabled: true
Basements:
# Requires the Basements mod on the server.
Enabled: true
Placement:
Radius: 10
MaximumHeightDifference: 3
DistanceFromPlayer: 3
Spacing: 2.5
Water: Allow
Dungeons:
Radius: 12
RequireNaturalGroundOnExit: true
Basements:
Radius: 8
RequireClearance: true
Enemies:
# Enemy policy is server-controlled; the player YAML cannot override it.
Enabled: false
# TakeThemWithYou transports eligible enemies; VikingsDontRun blocks nearby-enemy portal use.
Mode: TakeThemWithYou
MaximumSearchRadius: 20
MaximumSearchHeightRadius: 8
Allow: ["all"]
Deny: []
Teleport:
Portals:
Enabled: true
Rules:
# Defaults allow server-allowed enemies through Wood and Stone portals.
- Id: "wood-enemy-portals"
Source:
Prefabs: ["portal_wood"]
Allow: ["all"]
Deny: []
- Id: "stone-enemy-portals"
Source:
Prefabs: ["portal_stone"]
Allow: ["all"]
Deny: []
Dungeons: { Enabled: true }
Basements: { Enabled: false }
Placement:
Radius: 12
MaximumHeightDifference: 3
DistanceFromPlayer: 6
Spacing: 2.5
Water: Allow
Dungeons:
Radius: 12
RequireNaturalGroundOnExit: true
Basements:
Radius: 8
RequireClearance: true
Player preference YAML
# Local player preference: never synchronized; it can only restrict server policy.
# Filters accept all/*, none, exact prefab names, and * / ? globs. Deny always wins.
SchemaVersion: 1
Allies:
# Disable allied-creature transport only for this player.
Enabled: true
# None, AllTamed, OnlyFollow, OnlyNamed, or AllTamedExceptNamed.
Mode: AllTamed
# Personal search limits; the server clamps them to its configured maximums.
SearchRadius: 10
SearchHeightRadius: 3
# Personal restrictions, applied in addition to server filters.
Allow: ["all"]
Deny: []
Teleport:
Portals:
# Disable normal portal transport only for this player.
Enabled: true
# Optional personal rules; they can narrow, never expand, server policy.
Rules: []
Dungeons:
# Disable dungeon entrance and exit transport only for this player.
Enabled: true
Basements:
# Disable Basements transport only for this player.
Enabled: true
Server global Allow is the hard creature ceiling. A selected server portal rule can narrow it but never expand it. A selected player portal rule may replace the player's global preference only; it cannot bypass server policy. Any matching Deny wins. Player search values are clamped to the server maxima.
Enemy behavior is separately opt-in and fully controlled by the server. Enemies.Enabled is the master switch and defaults to false; Enemies.Mode accepts TakeThemWithYou (default) or VikingsDontRun. With the master switch enabled, TakeThemWithYou transports eligible enemies and shows “Taking X enemies with you” beside a usable portal when eligible enemies are present. VikingsDontRun blocks normal portal use—including supported direct destination-pick paths such as TargetPortal—while at least one otherwise eligible enemy is within the configured enemy search bounds, and shows a Vikings Don't Run alert with the enemy count. A direct path with unknown source portal context falls back to vanilla. Blocked travel has no transported-completion message; successful completion reports only enemies actually moved. The mode is inert when Enemies.Enabled is false. The default mode preserves existing transport behavior on servers that already enable enemies. Eligibility remains alerted, hostile to the player, and untamed. The server owns enemy filters, portal rules, search ceilings, transition switches, and Enemies.Placement; player YAML has no enemy policy options. Enemies Display → Transport Message Mode controls the live preview placement and successful completion presentation. The preview is informational and does not affect portal activation or readiness. Existing SchemaVersion 1 server YAML migrates automatically: root Placement moves to Allies.Placement, and root EnemyPlacement moves to Enemies.Placement. Enemy placement never changes MonsterAI follow targets.
Ally and enemy portal rules choose the lowest priority number: 1 is strongest; 100 is weakest; an omitted priority is implicitly 100. Rules with equal priorities keep their YAML order. Source.Tags matches portal link text and Source.Prefabs matches its prefab. When both are present, both must match. For enemies, the selected rule further narrows global Enemies.Allow; it cannot expand that ceiling, and global or selected-rule Deny always wins.
Filters are case-insensitive. Use all or * for every prefab, none for no prefab, exact prefab names such as Wolf, or globs such as Custom_Neck_*. Allow: [] allows no allies.
Raw .NET regular expressions are not accepted; convert
^Wolf$toWolfand^.*$toall.
Message Configuration
The BepInEx CFG message settings are local-only and do not change server policy. Portal Message Mode under Allies Display controls the ally preview; Transport Message Mode under Enemies Display controls enemy preview placement and successful completion presentation. The “Taking X enemies with you” preview appears only beside a usable portal when eligible enemies are present. Vikings Don't Run alerts show the enemy count and remain visible regardless of this display setting so blocked travel is explained:
Top left— ally preview below Valheim's top-left messages; enemy preview below the ally preview. Enemy completion results use Valheim's top-left queue.Center(default for enemy display) — live counter above the cursor. Enemy completion results use Valheim's center message.Top center— ally preview is yellow; enemy preview is red and slightly larger. Both stay steady while valid and fade out over about two seconds when they end. Enemy completion results use Valheim's center message.No messages— hides the corresponding live preview and successful enemy completion result.
After arrival, ally completion results always use Valheim's top-left queue; enemy completion results follow Transport Message Mode and appear only when enemies actually moved. Blocked travel has no completion result. These settings do not change gameplay or server policy. Enable local diagnostics and Profile Creature Transport for one concise completed-transition summary.
Controls (allies mode hotkeys)
Two local-only hotkeys in the Controls section switch your Allies.Mode in game. Each is rebindable in ConfigurationManager and can be unbound by clearing its main key.
Next Allies Mode Hotkey—Shift+Right(default) — cycle to the next mode.Previous Allies Mode Hotkey—Shift+Left(default) — cycle to the previous mode.
The cycle order is None → AllTamed → OnlyFollow → OnlyNamed → AllTamedExceptNamed, wrapping around in both directions. None transports no allies. Each press applies the new mode instantly and shows a short two-line readout below the mouse cursor; the Mode: line in odinplus.TeleportCreatures.yml is written back once, about 2 seconds after you stop switching (rapid cycling produces a single write). Hotkeys are ignored while chat or a menu is open. Because the mode is a player preference, this never changes server policy or synchronized settings.
Placement and diagnostics
The server owns placement for each creature type under Allies.Placement and Enemies.Placement. The search begins forward of the arriving player at DistanceFromPlayer, opens sideways, and moves outward to the configured radius; it never uses a rear fallback. Terrain/floor height, slope, water, clearance, and spacing are checked before a creature moves. Unsafe creatures remain at the source. Water: Allow accepts land and water candidates.
Dungeons.Enabled covers entry and exit. Dungeon exits can require natural ground to avoid crypt roofs. Basements support is activated only if Basements is installed; its placement permits constructed floors after clearance checks.
Compatibility
| Compatible | Mod | Quick description |
|---|---|---|
| Yes | TeleportEverything | Coexists in same ecosystem. |
| Yes | TeleportCarts | Coexists seamlessly when installed together. |
| Yes | QuickTeleport | Observes native lifecycle without a timing patch. |
| Yes | TargetPortal | Keeps its selected destination. |
| Yes | LetMeTameYou(AllTamable) | TeleportCreatures transports all tameable creatures set by this type of mod. |
| Yes | OdinHorse | Bring your horse along. |
| Yes | Basements | Uses guarded transition and placement behavior when installed. |
| Yes | OdinsUndercroft | You can bring allies to the first room. |
Troubleshooting
- No ally moved: check that it is allowed by the server and your player preferences, selected by your
Mode, nearby, and on an enabled transition. - Ally was skipped: unsafe landing conditions can leave it at the starting location. Enable local diagnostics when reporting a problem.
- YAML rejected: check the BepInEx log, correct the named field and formatting, and save. The last valid snapshot remains active.
Support
Need help? Find Elg in the Odin Plus Discord.
Liked the mod?
Consider showing some love with a coffee on Ko-fi:
This helps with tooling costs, as well as keeping me able to update the mods frequently and creating new mods and features quickly.
Configuration panel
TeleportCreatures works on its own with the YAML editor above. TeleportEverything is optional and adds a unified configuration panel, opened from ConfigurationManager or with Left Shift + Up Arrow by default. The Allies page lets you opt allies out for yourself; enemies remain server-controlled, so players cannot opt enemies out. A host or administrator can turn off the module for everyone in Server Settings → Enable Mod. You can install only the modules you want; do not remove a module required by the pack's own dependency setup. Creature settings are on the Allies and Enemies pages, which share a draft. Use Save module to save those settings, Reset defaults to stage default values, and Refresh to reload saved values. If a save result is unclear, use Check save status or Read and compare before trying again. The world keeps running while the panel is open. See the complete TeleportEverything guide for panel details.
TeleportEverything and every mod in this pack are completely free. If you’d like to support maintenance and future development, you can leave an optional tip on Ko-fi.
CHANGELOG
Changelog
| Version | Notes |
|---|---|
| 0.3.0 | Added Take Them With You and Vikings Don't Run enemy modes, plus optional TeleportEverything configuration panel support. |
| 0.2.5 | Added Allies Mode Hotkey. |
| 0.2.4 | Added in-game YAML configuration editor. Moved local diagnostics controls into ConfigurationManager's Advanced settings. |
| 0.2.3 | Fixed TargetPortal compatibility. |
| 0.2.2 | Improved Compatibility. |
| 0.2.1 | Safer Basement/OdinsUndercroft placement. |
| 0.2.0 | Added a local localized portal ally counter: choose center or top left live display, plus an always-queued final transported count. Added embedded LocalizationManager translations. |
| 0.1.0 | First public release candidate: odinplus identity, SchemaVersion 1 server/player YAML policy, server ceilings with player restrictions, per-file portal rules, friendly exact/glob filters. |