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.
ConsoleStdinHeeler
Non-blocking STDIN console input and native server management commands for Valheim dedicated servers.
CHANGELOG
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