BrTeam-ValheimEssentials icon

ValheimEssentials

FTB Essentials for Valheim - /home, /sethome, /back, /tpa, /tpaccept, /rtp commands via chat. No cooldowns, no warmup. Built for private servers.

Last updated a day ago
Total downloads 33
Total rating 1 
Categories Mods Misc Server-side Transportation
Dependency string BrTeam-ValheimEssentials-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202

README

ValheimEssentials

A Valheim mod inspired by FTB Essentials (Minecraft) that adds teleportation commands via in-game chat. Built for private servers with friends — no warmup timers, no cooldowns, no permissions.

Features

  • Named Homes — Save, teleport to, and manage multiple named locations
  • Back — Return to your last position before any teleport or death
  • TPA — Request teleport to another online player
  • RTP — Random teleport to a safe land location anywhere in the world

Commands

Command Description
/sethome <name> Save your current position as a named home
/home <name> Teleport to a saved home
/delhome <name> Delete a saved home
/homes List all your saved homes with count
/back Return to your last position (before teleport or death)
/tpa <player> Request teleport to another player (partial name match supported)
/tpaccept Accept an incoming teleport request
/rtp Random teleport to a safe location

How It Works

Chat Commands

All commands are typed in the regular in-game chat (not the console). Commands starting with / are intercepted and never appear as chat messages to other players. Normal chat messages pass through unaffected.

Homes System

  • Each player can save up to 5 homes (configurable)
  • Home names are case-insensitive (/home Base = /home base)
  • Homes are saved per-world in a text file at BepInEx/config/ValheimEssentials/homes_<worldname>.txt
  • Each player's homes are stored on their own PC, identified by their Steam ID
  • Homes persist across server restarts

Back System

  • Position is automatically saved before every teleport (/home, /tpa, /rtp)
  • Position is also saved when you die — /back takes you to your death location
  • Shows context-aware messages: "Teleported to death location!" vs "Teleported to previous position!"
  • Two consecutive /back commands will swap between two positions

TPA (Teleport to Player)

  • Player A types /tpa PlayerB → Player B receives the request in chat
  • Player B types /tpaccept → Player A teleports to Player B
  • Requests auto-expire after 60 seconds (both players are notified)
  • Partial name matching: /tpa Jo finds "JoJo" if it's a unique match
  • Multiple matches show a disambiguation message
  • Self-TPA is blocked
  • Only one pending request per player at a time
  • Works in both P2P (host) and dedicated server modes via ZRoutedRpc

RTP (Random Teleport)

  • Teleports to a random safe land position within a configurable radius
  • Uses WorldGenerator to validate terrain even in unloaded chunks
  • Avoids ocean biome and positions below water level
  • Shows "Searching for safe position..." while looking
  • Uses distantTeleport flag to handle unloaded zones smoothly
  • Range defaults: 1000-8000 blocks from player position

Installation

Requirements

  • BepInEx 5.x installed in your Valheim folder
  • .NET Framework 4.6.2 SDK (for building from source)

From Release

  1. Download ValheimEssentials.dll from Releases
  2. Place it in Valheim/BepInEx/plugins/ValheimEssentials/
  3. Start the game

Building from Source

  1. Clone the repository
  2. Update ValheimDir in ValheimEssentials.csproj to point to your Valheim installation
  3. Run dotnet build
  4. The DLL is automatically copied to BepInEx/plugins/ValheimEssentials/

Important: All players on the server need the mod installed, not just the host.

Configuration

Configuration is managed via BepInEx config at BepInEx/config/com.jojo.valheimessentials.cfg.

Setting Default Description
General/CommandPrefix / Chat command prefix
RTP/MinRange 1000 Minimum RTP distance from player
RTP/MaxRange 8000 Maximum RTP distance from player
RTP/CooldownSeconds 0 RTP cooldown (0 = disabled)
Home/CooldownSeconds 0 Home teleport cooldown (0 = disabled)
Home/MaxHomes 5 Maximum homes per player
Back/CooldownSeconds 0 Back teleport cooldown (0 = disabled)

Technical Details

  • Mod Loader: BepInEx 5.x
  • Framework: .NET Framework 4.6.2
  • Harmony Patches: Single prefix on Chat.InputText for command interception
  • Networking: ZRoutedRpc for cross-client TPA communication
  • Persistence: Pipe-delimited flat files, atomic writes (temp + rename)
  • Player Identity: Steam ID (Player.GetPlayerID()) — safe against name changes
  • Language: All in-game messages are in Portuguese (PT-BR)

Project Structure

ValheimEssentials/
├── Plugin.cs            # BepInEx entry point, configuration
├── CommandRouter.cs     # Chat interception, command dispatch, Harmony patches
├── FeedbackHelper.cs    # PT-BR chat message utility
├── HomeManager.cs       # Home CRUD + file persistence
├── BackManager.cs       # Position tracking (teleport & death)
├── TeleportHelper.cs    # Teleport wrapper (saves /back position)
├── TpaManager.cs        # TPA request state management
├── RpcChannels.cs       # ZRoutedRpc networking for TPA
├── RtpManager.cs        # Random safe position finder
└── ValheimEssentials.csproj

License

This project is provided as-is for private use. Feel free to modify and share with friends.