All notable changes to this project will be documented in this file.
/echorotate (/er) - Set facing direction (one-shot). Accepts yaw degrees, full pitch yaw roll, cardinal directions (n/s/e/w/ne/se/sw/nw), or a player name to face toward. No args prints current rotation./echorotatelock (/erl) - Lock rotation to a fixed value every frame; same argument formats as /er. Movement no longer overrides the facing direction while locked./echorotateunlock (/eru) - Unlock rotation and let the game control it again./echofollowrelative (/efr) - Follow a player with a rotation-relative offset so you stay behind, beside, or in front regardless of which direction they face. Supports presets (behind, beside, right, front) or custom x y z offset./echolookat (/ela) - Continuously face toward a target player each frame. Pairs with /efr for face-to-face following. Stop with /eru./echosetname (/esn) - Change your display name text while preserving the current TMP tag styling./echocopynamestyle (/ecns) - Removed positional mode; even distribution is now the only mode. Replaced -e flag with -s flag: use -s to also keep non-ASCII characters from the target's name as part of the style rather than replacing them with your own characters./echotoggle - short name changed from /ht to /et (was incorrectly using Hush's prefix)./echocopynamestyle (/ecns) - Copy another player's TMP tag styling onto your own name's characters. Supports positional (default) and even (-e flag) distribution modes./echogetname (/egn) - Display another player's full display name including TMP rich-text tags.NameStyleTransfer - Extracted name style parsing and application logic into a reusable utility class with unit tests./echosyncrotation (/esr) - Mirror another player's facing direction each frame. Works standalone or combined with /echofollow./echounsyncrotation (/eur) - Stop syncing rotation./echocopyoutfit - fixed for game v1.1.0. The game restructured CustomizationData from individual fields to dictionaries and added new outfit types (Bed, Floater); now compiling against the new DLLs and persisting CurrentCustomizationDataIDs using CustomizationDataIDs3./echofollow (/ef) - Follow a player at a fixed offset. Usage: /ef <player> [x y z]. If no offset is given, uses your current distance from the target. Player should be focused (sitting) to prevent falling./echounfollow (/eu) - Stop following the current target. Following also stops automatically on teleport or if the target leaves./echolocationlist (/ell) - lists all saved locations and their coordinates, or reports "No saved locations." if none are saved./echolocationremove (/elr) - removes a saved location by name (case-insensitive). Confirms removal or reports if the name was not found./echoteleportlocation (/etl) - save named locations and teleport to them by name, or teleport directly to world coordinates (/etl <x> <y> <z>). Locations are persisted to BepInEx/config/Echo_locations.cfg across sessions./echoremovestatuscommand <status_brakets> /ers remove status from copied name/echotpto <player> [x y z] warps you to any connected player, with an optional XYZ offset. Implemented via a PlayerMovementController.MovePlayer Harmony prefix so the warp survives the movement controller's per-frame override./echocopyname <player> copies another player's full display name (including TMP rich-text tags). Token-gated via SHA-256 AccessToken config entry. Saves your original name for revert./echorevertname restores your display name to what it was before any Echo rename./echocopyoutfit <player> copies another player's full appearance (all 18 customization fields) onto your own character./echotoggle enables or disables all Echo features at runtime.officerballs.StatusManager plugin is present, /setname is also sent via the UI so that the OfficerBalls player-list stays in sync.