ConsoleStdinHeeler
Non-blocking STDIN console input and native server management commands for Valheim dedicated servers.Changelog
All notable changes to ConsoleStdinHeeler will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.1] - 2026-09-26
Fixed
- Corrected project repository and website URLs across package metadata, manifest, and assembly info.
- Revised documentation and changelog formatting.
[1.0.0] - 2026-09-25
Added
- Initial Release of ConsoleStdinHeeler.
- Non-Blocking STDIN Console Architecture:
- Background reader thread (
ConsoleStdinHeeler_Reader) readingConsole.ReadLine()without blocking the Unity main thread. - Three-strike consecutive EOF detection automatically terminating the reader thread when the input stream closes (e.g. systemd without interactive TTY or detached Docker containers), preventing CPU spin loops.
- Thread-safe command queue (
ConcurrentQueue<string>) drained sequentially on the Unity main thread duringUpdate(). - Defensive execution wrapping command dispatches in exception handlers to prevent unhandled errors from interrupting the server loop.
- Background reader thread (
- Dedicated Server Management Commands:
save: Triggers an immediate synchronous save of world data and player profiles.shutdown/stop/exit/quit: Saves world state and initiates graceful server termination, supporting optional countdown delays in minutes with custom broadcast reasons and cancellation (stop cancel).players/list: Displays connected players, character names, IP endpoints, round-trip ping latency, and peer IDs.kick/ban/unban/banned: Dedicated player moderation commands supporting player name, IP, Steam ID, and PlayFab ID matching.kickall: Saves world data, displays an announcement banner, and disconnects all connected players after a configurable delay (default: 3 seconds) with custom kick messages.
- In-Game Broadcasts & Remote Administration:
say: Sends top-left notification banners to all players (@allor*) or a targeted individual viaZRoutedRpc.announce/broadcast/alert: Displays center-screen announcement banners to all players or a targeted player viaZRoutedRpc.tp/teleport: Teleports a connected player to another player's position or to world coordinates (x,y,z), with target position validation and client UI feedback.spawn: Server-side prefab and creature spawning near players or coordinates with optional quantity and star level parameters.event/stopevent/randomevent: Server-side raid event triggering, termination, and random triggering.tod/skiptime/sleep: World time of day adjustment, skipping forward in seconds, and sleeping to morning with network synchronization across all clients.- Dynamic
@randomplayer targeting for commands accepting player targets (tp,say,announce,spawn,event).
- Command Routing & Mod Compatibility:
- Automatic passthrough of unrecognized commands to Valheim's central
Terminal.commandsregistry, enabling terminal execution for mods like WorldEditCommands, ServerDevcommands, and InfinityHammer. - Automatic
Terminal.m_cheatelevation during command dispatch, allowing administrative and developer commands to execute on dedicated servers. - Server command filter intercepting client-only commands (emotes, rendering settings, local player cheats) with clear warnings instead of throwing exceptions.
- Curated
helpcommand listing dedicated server commands, installed mod commands, and native utilities, withhelp allproviding an unfiltered catalog.
- Automatic passthrough of unrecognized commands to Valheim's central
- Rich-Text ANSI Terminal Translation:
- Conversion of Unity
<color=...>tags into terminal ANSI color escape sequences with configurable display modes (Ansi,Strip,Raw). - Configurable console prompt prefix (default:
>) displayed in server logs when commands are received.
- Conversion of Unity


