You are viewing a potentially older version of this package. View all versions.
Blues-BlueSage_QoL_Tweaks_Beta-0.1.0 icon

BlueSage QoL Tweaks Beta

On-Together QoL beta: Mod Menu, in-game Styler, reconnect guard, longer chat/ID text, pings, copy links, ID helpers, and more.

Date uploaded 2 weeks ago
Version 0.1.0
Download link Blues-BlueSage_QoL_Tweaks_Beta-0.1.0.zip
Downloads 14
Dependency string Blues-BlueSage_QoL_Tweaks_Beta-0.1.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

BlueSage QoL Tweaks - Beta

Early Access QoL toolkit for On-Together: Virtual Co-Working.

Current package: v0.1.0 Early Access

This is for players and hosts who want friendly quality-of-life helpers in one mod. It is not the big-lobby mod. For 64-player rooms, the host still needs BlueSagePatched PlayerLimitLift.

Early Access note: this mod is still moving quickly while players test it, but it is meant to be friendly to normal players. If something feels noisy, open /qolmenu, turn off that one feature, and let Blue know what happened.

Community links:

Support Blue's community modding work:

ko-fi

0.1.0 Early Access Highlights

  • Mod Menu: press Home or type /qolmenu for toggles, safe Customize fields, quick actions, themes, and local status checks.
  • In-game Styler: /styleui manages name colors, status tags, templates, Spoons, Detect Current, copyable style text, and undo.
  • Chat readability: local text outlines, outline intensity 25-100, normal/black outline colors, and BlackNamesOutline for true-black styled names/messages.
  • Resizable chat UI: /chatscale or Customize -> Chat UI scale adjusts the vanilla chat panel, input box, backdrop, text, and outlines together.
  • Longer text defaults: chat, Name/ID fields, ID-card details, and room names default to 3000 characters.
  • Comfort helpers: ping mentions, ticket ping sound, click-to-copy chat, safer chat links, minimap dot-to-ID, BetterMove, asset sweep, host health, and reconnect guard.

Quick Start

Install it, launch the game, then try these:

  • Press Home or type /qolmenu to open the friendly settings menu.
  • Use /styleui for Name Styler, Status Styler, Spoons, themes, and copyable styled text.
  • The lobby welcome message appears once each time you join a lobby with quick reminders for Home, /qolmenu, /styleui, /qol status, and slash-command typeahead.
  • Type @name in chat to get mention suggestions, then press Tab or click a suggestion.
  • Click a chat message to copy only the message text. Links are recolored; Shift-click once to copy/warn, then Shift-click again to open.
  • Click minimap dots to open ID cards when BlueSage can safely match the player.
  • Hold Shift to run or Ctrl to slow-walk with BetterMove.
  • Use /as now if a long session feels heavy.
  • Use /qol status or the menu's Run QoL Status button to see what is enabled. Hosts can still use /hh run for a quiet lobby-health check.

What It Adds

Chat, Names, And Rooms

  • Chat send cap is raised from vanilla 250 to 3000 characters.
  • Name, ID-card, and room-name fields default to 3000 characters. ID-card details include the bottom About Me/FavoriteQuote section.
  • Power users can raise those up to 4000 in /qolmenu, but very long text can still wrap or look odd in some game UI.

Chat Readability And Scale

  • Text outlines and shadows make local chat easier to read on bright or busy backgrounds.
  • Outline intensity defaults to 50 and can be tuned from 25 to 100.
  • Chat UI scale defaults to vanilla 100, can be tuned from 75 to 200, and scales the chat panel, input box, backdrop, text, and outlines together.
  • Normal outline color and black-text outline color can be customized separately.

Ping Mentions

  • Type @partialname to show a small suggestion popup.

  • Pinged messages get a visible [PING] marker.

  • @lobby can ping everyone running a compatible mention mod like this one.

  • Sound is on by default and uses ticket by default. Sound modes: click, change, error, task, ticket.

  • Mention suggestions and highlights resolve the player's current display name, including status and Spoons tags, then highlight that full mention once so suffixes do not duplicate inside pinged messages.

Helpful commands:

  • /setpingcolor FF66CC
  • /pingsound ticket
  • /pingsound off

Style Helper

/styleui opens a friendly window for:

  • name styling, status tags like (Reading), and reusable name templates;
  • color buttons so players do not need to hunt hex codes;
  • Detect Current, Apply Name Styler, Copy Name Style Text, and local-only Clear Draft;
  • templates that apply immediately when loaded, with Undo available if you picked the wrong slot;
  • Undo to back out of the last apply, clear, template save/load, or local style edit;
  • Spoons controls to save 0-5, show the compact [1/5sp] tag, hide it, or undo the last Spoons edit;
  • Status Styler keeps live status changes separate from local draft clearing. Clear Status removes the live status; Clear Draft only clears the editor box.
  • themes that also apply to the QoL Menu and autocomplete popup.

It uses safe in-game player data updates and never writes profile files directly.

QoL Menu

Open it with Home, /qolmenu, or /qm.

Tabs:

  • Main: Purge Unused Assets, Run QoL Status, Style UI, and built-in how-to examples.
  • Toggles: simple on/off controls for the major features.
  • Customize: ping colors, ping sound, sweep interval, chat outline strength, chat UI scale, and text limits. Editable rows have Save and Undo. Use Style Helper for name, status, and Spoons identity edits.
  • Credits / Other: optional Host Health, themes with Cycle Theme plus Reset to Midnight Dock, credits, and one compact mostly local-only DO NOT PRESS gag. The older experimental secret buttons were retired in 0.0.8.

The remaining gag never edits files or profiles. After one tiny lobby joke, it only shows local messages. Players can screenshot/share finds in Blue's Discord for fun.

Feature Notes

Enhanced Player Panel

  • Adds local @ and ID helper buttons to player rows.
  • Buttons stay left of the native/Pomodoro/PomoSync action area so report, ignore, kick, and ban controls stay reachable.
  • ID-card lookup handles larger lobbies better than the old vanilla 16-player assumptions.
  • If another EnhancedPlayerPanel-style mod is already loaded, BlueSage skips safely.
  • BlueSage refreshes its own recycled-row button listeners, keeps report/ban stays clickable, and avoids covering Pomodoro/PomoSync row space.

MiniMap ID Click

  • MiniMap dot-to-ID help is on by default.
  • Click a minimap player dot to open an ID card when the dot can be safely matched.
  • Floating minimap name labels are removed. Community testing showed they could cause FPS/CPU lag in large lobbies.
  • Toggle dot-to-ID clicks with /minimaplabels or /mml.

Click-To-Copy Chat

  • Click a chat message to copy only the message text.
  • It does not copy the sender name, timestamp, or styled status.
  • Safe http, https, and www. links are shown in hyperlink color.
  • Hold Shift while clicking a link once to copy it and show a caution note. Shift-click the same link again within a few seconds to open it.
  • Plain click always stays copy-only so players can verify a link before opening it.
  • Toggle with /copychat or /ccopy.
  • Toggle link-opening with /chatlinks or /clinks.
  • If the old CopyChat mod is loaded, BlueSage backs off to avoid duplicate click handlers.

Chat Readability

  • Adds local outline and shadow to chat text so messages stay readable on bright backgrounds.
  • Toggle with /chatreadability or /chatread.
  • Adjust outline strength with /chatoutline 25-100 or Customize -> Chat outline intensity. Default 50 keeps chat readable without over-thick outlines; 100 is the crispest outline.
  • Scale the local chat UI with /chatscale 75-200, /chatresize 1.25, or Customize -> Chat UI scale. This scales the vanilla chat surface, input, backdrop, text, and outlines together for accessibility on small displays.
  • BlueSage nudges scaled chat panels back on-screen when possible. If your saved vanilla chat position still feels off after scaling, use the ::: drag handle on the chat box to realign it.
  • Tune outline colors with /chatoutlinecolor #000000 for the normal outline path and /blackoutlinecolor #FFFFFF for true-black chat/name rows. The same fields are in Customize as Normal outline color and Black text outline color.
  • Chat Readability uses a TMP material outline plus a soft UI shadow/outline assist so the visible outline stays close to the beloved beta behavior. BlueSage does not rewrite message text or change what other players see.
  • BlackNamesOutline is on by default so true-black styled names/messages get the light black-text outline color instead of disappearing into black-on-black. Turn it off if you want every row to use the normal outline color.
  • This does not rewrite chat messages and does not change what other players see.

BetterMove

  • On by default.
  • Hold Shift to run.
  • Hold Ctrl to slow-walk with a cozy popsicle-style animation.
  • Local-player only; it does not add custom network packets or require other players to install anything.
  • Toggle with /bettermove or /bm.

Reconnect Guard

  • On for players by default.
  • Tries up to 20 times about every 15 seconds.
  • Then returns toward the normal menu/error flow instead of leaving players stuck forever.
  • Hosts can turn it off with /rg off.

Asset Sweep

  • Runs every 30 minutes by default.
  • Helps long sessions reclaim unused Unity assets.
  • If AndrewLin Sweep is loaded, BlueSage auto sweep backs off automatically.
  • Interval safe range: 30-180 min.
  • Manual /as now still respects safety guards.

Leave Notices And Focus Anywhere

  • Leave notices are on by default.
  • Focus Anywhere is on by default.
  • Timestamps are on by default for this beta pass and can be turned off in /qolmenu.

Common Commands

  • /qol status or /bsqol status: show current BlueSage states.
  • Home, /qolmenu, or /qm: open the QoL menu.
  • /styleui or /sui: open the Style Helper.
  • /style or /sty: build styled text from chat commands.
  • /setname, /status, /clearstatus, /statuscolor: set your display name/status without editing save files directly.
  • /brb or /afk: quick status shortcuts. Clear them with /clearstatus.
  • /spoons on/off/status or /spoons 0-5: show, hide, or set the optional compact display-name tag, like [1/5sp]. Use /spoons off if your name feels too long.
  • /assetsweep or /as on/off/status/now: asset sweep controls.
  • /hosthealth or /hh on/off/status/run: host-health controls. Hosts can use /hh run for a quiet lobby-health check.
  • /leavenotices or /ln on/off/status: leave notice toggle.
  • /timestamps or /tt on/off/status: chat and notice timestamps.
  • /chatreadability or /chatread on/off/status: local chat text outline/shadow.
  • /chatoutline or /outline 25-100/status: adjust local chat outline strength.
  • /chatscale or /chatresize 75-200/reset/status: scale the local chat UI for readability.
  • /chatoutlinecolor or /outlinecolor #000000/status: normal chat outline color.
  • /blackoutlinecolor or /blackoutline #FFFFFF/status: true-black chat/name outline color.
  • /bettermove or /bm on/off/status: Shift run and Ctrl slow-walk.
  • /reconnectguard or /rg on/off/status: reconnect guard toggle.
  • /reconnectmessage or /rm on/off/status: reconnect success message toggle.
  • /focusanywhere or /fa on/off/status: focus-anywhere toggle.
  • /minimaplabels or /mml on/off/status: minimap dot-to-ID-card helper. No floating labels.
  • /copychat or /ccopy on/off/status: click-to-copy chat messages.
  • /chatlinks or /clinks on/off/status: safe click-to-open chat links.

Using a toggle command without on or off flips the current setting. Timestamps apply to chat plus join/leave/system notices when enabled.

Settings

After launching once, settings live here:

BepInEx/config/com.bluesage.ontogether.qoltweaks.beta.cfg

Most players should use Home or /qolmenu instead of editing the file directly.

Useful defaults:

  • EnableAutoSweep: true
  • SweepIntervalMinutes: 30
  • EnableHostHealthMonitor: true
  • EnableLeaveNotifications: true
  • EnableWelcomeMessage: true
  • EnableChatTimestamps: true
  • EnableNotificationTimestamps: true
  • EnableChatReadability: true
  • ChatOutlineIntensity: 50
  • ChatUiScalePercent: 100
  • ChatOutlineColor: 000000
  • BlackChatOutlineColor: FFFFFF
  • BlackNamesOutline: true
  • EnableBetterMove: true
  • EnableReconnectGuard: true
  • EnableReconnectAnnouncement: true
  • EnableFocusAnywhere: true
  • EnableEnhancedPlayerPanel: true
  • EnablePingMentions: true
  • EnablePingSound: true
  • EnableSpoons: false
  • EnableStyleUi: true
  • EnableMiniMapPlayerLabels: true (legacy config name; now controls MiniMap ID Click only)
  • EnableChatCopy: true
  • EnableChatUrlLinks: true
  • UiThemePreset: Midnight Dock
  • MaxChatCharacters: 3000
  • MaxProfileCharacters: 3000
  • MaxSessionNameCharacters: 3000

Old beta config files may still contain removed settings. BlueSage ignores old removed settings now. If something acts odd after updating, delete the config and launch once to regenerate it.

Compatibility

  • BlueSage only checks mods BepInEx actually loaded.
  • Disabled .old, .bak, .disabled, or .dll.disabled files are ignored.
  • BlueSage does not delete, rename, edit, or disable another creator's mod files.
  • If AndrewLin Sweep is loaded, BlueSage auto sweep backs off.
  • If Simple_QOL or ChatTweaks-style mods are loaded, BlueSage avoids duplicate timestamp/leave-notice formatting.
  • If AndrewLin Reconnect is loaded too, BlueSage slows/guards reconnect pressure instead of rapid-firing reconnects.
  • If BlueSage PlayerLimitLift is loaded, Host Health can include cap/default/chat-relay state.

If Something Feels Weird

  • Run /qol status first.
  • Open /qolmenu and turn off only the feature that feels weird.
  • Use /spoons off if the optional Spoons tag makes names too long.
  • Spoons is opt-in by default in 0.1.0; Save Spoons or Show Tag turns it on.
  • Reopen the player list if buttons look stale after scrolling a huge lobby.
  • Use /mml off if minimap dot clicks feel weird on your setup.
  • Use Detect Current in /styleui to re-read your current in-game name/status before applying a new experiment. It prefers the live display name, strips old style tags plus BlueSage status/Spoons suffixes like [Tired], [4/5sp], and (Homelab) before filling the editor, and falls back to saved config only when live player data is unavailable. Clear Draft only clears the editor box; /clearstatus removes a live status.

Credits

Made by BlueSage for the On-Together community.

Inspired by helpful community mods and projects including:

  • AndrewLin Sweep
  • AndrewLin Reconnect
  • Tiny_Plume Simple_QOL
  • jaide EnhancedPlayerPanel
  • jaide CopyChat
  • jaide PingSystem
  • WhozScott ServerFavorites and Heartbeat
  • YenRex ShaderPlayground
  • OnToWelcomeCommittee FocusAnywhere
  • officerballs PlayerLimitLift and StatusManager
  • On-Together Name Customiser
  • OnTogetherModTemplate

Source/reference links are kept in the project repo so the Thunderstore page stays readable.

CHANGELOG

Changelog

[0.2.0 Early Access] - 2026-07-15

  • Restored the established fake-danger DO NOT PRESS button and tooltip for the harmless optional lobby joke. Its first press can still send only one playful line; repeat presses remain local and it never changes moderation or game state.
  • Kept Style Helper footer guidance owned by its active Name, Status, or Templates surface so opening Insert after another IMGUI window cannot inherit unrelated menu text; hover help remains local and the saved/draft state line is unchanged.
  • Final feedback polish keeps destroyed-row pruning on the same bounded disabled-state cleanup cadence when Chat Readability is off, migrates only known legacy 30/60-minute Sweep defaults to 15 while preserving every other valid custom interval, and keeps public rescue guidance concise without changing its fail-closed transport or authority rules.
  • Added Nell to the in-game and README community thanks as a $20 Ko-fi supporter and trusted Helper, preserving only the requested quote: “Share with Rowan!”
  • Changed Asset Sweep timing to 15 minutes with a 15–180 minute safe range; known legacy 30/60-minute defaults migrate once while other valid saved intervals remain untouched.
  • Made mention autocomplete and player-list @ actions insert a stable whitespace-free identity token, so decorated rich-text names such as Nell resolve, highlight, and trigger the configured local ping sound.
  • Prevented duplicate same-client host visibility handling from leaving the host invisible locally after restoration.
  • Repaired host and Helper @lobby alerts against build 24141704's actual chat RPC. isLocal is channel scope, not sender identity, and the later UI row index ambiguously falls back to zero. BlueSage now captures the authoritative RPCInfo.sender before that information is discarded, accepts a real unique row-zero host, rejects missing/duplicate rows, fresh-revalidates the exact Steam identity and Helper authority, and performs no roster work for ordinary chat.
  • Made automatic Asset Sweep keep its real-time Unity timer advancing while On-Together is unfocused. BlueSage temporarily owns Application.runInBackground only while its automatic sweep loop is enabled, keeps Resources.UnloadUnusedAssets() on Unity's main thread, and restores the prior runtime setting on disable, compatibility stand-down, or unload.
  • Reduced always-ready Rescue/Hook idle polling from every lobby member to the authoritative owner plus explicitly published Helpers. A parsed request still requires exact current-lobby membership before execution; rescue movement now updates the local movement/root transforms, clears falling velocity, and force-syncs at a bounded 250 ms Hook cadence.
  • Added dual exact-target Rescue/Hook addressing without weakening public moderation: v2 uses one verified exact SteamID64, while v3 may use only one unique active native PlayerID when Steam enumeration is still syncing. The target client must match its exact local identity; duplicate, stale, malformed, wrong-target, replayed, prior-owner, and revoked-Helper requests still fail closed.
  • Replaced the source-level host/Helper player-list freeze path introduced by 0.2.0 identity decoration. Row initialization no longer launches a global highlight refresh, unflagged rows perform no identity capture, and one bounded immutable roster snapshot now feeds the player tooltip, Helper workspace, Clone Shield display, and role highlights. Join/leave invalidation refreshes on the next frame so Unity IMGUI Layout/Repaint sees one consistent model; exact moderation actions still bypass the display cache and revalidate fresh live authority. The exact rebuilt binary still requires the crowded-lobby UAT below before Thunderstore upload.
  • Replaced quadratic per-row identity uniqueness scans with one linear count/index pass per snapshot, cached reflected row fields, and added count plus last/max capture timing to the existing compact diagnostics. This removes BlueSage's N-to-the-fourth main-thread work during crowded player-list construction without weakening exact SteamID/PlayerID/transform/Steam-lobby agreement.
  • Precomputed host/self/Helper/Clone-Shield roles once per roster snapshot instead of reparsing lobby Helper metadata and allocating incident snapshots for every verified row.
  • Added a five-second amortized destroyed-row prune while Chat Readability remains active. Dead TMP rows now release BlueSage-owned outline materials plus retained font/backdrop/overlay/scale/window state instead of surviving until a settings change.
  • Extended compact BlueSageDiag checkpoints with process working/private/managed memory and GC counts, enhanced-panel button created/destroyed/live counts, and Chat Readability retained-state counts. These counters let UAT distinguish a BlueSage object-retention regression from game-owned avatar/asset churn without dumping identities.
  • Corrected the TinySav-class split-brain state: a unique native PlayerID and live transform missing only from the instantaneous Steam member enumeration is now LIVE / STEAM CHECK, profile-openable but moderation-locked. LEFT / STALE is reserved for a row with no attached live native player; duplicates and other ambiguity remain CHECKING and fail closed.
  • Made Helper/Safety player and native-ban selections explicitly reversible: click the selected row again or use Clear Selection. Paging, filtering, a missing row, and lobby/access changes clear the selection; BlueSage never silently auto-selects or retargets an unban action.
  • Unified Status Styler preview, copy, and apply through the same bracket-aware suffix policy. Existing (), [], {}, or other two-character status brackets now render identically in the preview, clipboard text, and live applied name.
  • Kept a genuinely departed retained-history tooltip at LEFT / STALE while unrelated current identity sources sync; global roster completeness no longer relabels a known departed row as CHECKING, and Steam enumeration alone can no longer invent a departure.
  • Clarified Custom Rich Text truth: BlueSage validates balanced tag structure and preserves exact markup, while the game remains authoritative for whether uncommon TMP tags or values render.
  • Hardened the matching BlueSage PlayerLimitLift 1.1.2 host stack so above-15 remote chat preserves its authoritative RPC sender when re-broadcast. Remote slash text can no longer look like a command typed locally by the host or by another host-side handler.
  • Reworked crowded-lobby identity truth after Rowan's 60–63 native-row versus 54–57 current-Steam-member evidence. Current players now verify individually while departed/history rows are labeled LEFT / STALE and excluded; CHECKING is reserved for a live source still syncing. A stale row no longer makes every valid neighbor look unverified, and the Lobby Safety banner shows verified/native/Steam/excluded counts. QoL installation is not part of verification.
  • Upgraded Helper compatibility to a fresh v3-memberdata capability. Hosts republish it every five seconds and menus re-evaluate access automatically; the manual button is now Refresh Access Now. New helpers cannot mistake an older chat-transport host for compatible, legacy chat-shaped moderation/incident packets are rejected without execution, and protected requests use non-chat Steam member data.
  • Added one-click Copy Identity Evidence plus /sidwho copy <query> parity, with exact revalidation before copy/profile actions. The record includes displayed and raw TMP names, cached Steam persona, exact SteamID64, verified row, PlayerID, and role; nothing is sent to chat.
  • Increased the QoL footer reserve to 120px and removed duplicate long-message concatenation so wrapped Helper-waiting/status text remains visible at Rowan's short viewport instead of clipping at 32px.
  • Added build identity and count-only verified/native/steam/excluded/complete plus Lobby Safety state to BlueSageDiag so logs can distinguish old 0.2.0 binaries and explain roster drift without exposing ordinary-client SIDs.
  • Updated the Thunderstore dependency pin to BepInExPack 5.4.2305, matching the current On-Together package and Blue's tested loader core.
  • Fixed the Rowan Helper discoverability failure: an assigned Helper now sees Helper / Safety while waiting for a compatible host capability, but exact IDs, incidents, and moderation actions remain locked until the host publishes a fresh compatible v3 member-data capability.
  • Restored restrained Style Helper button semantics after Rowan's review: Open Style Helper is neutral like nearby actions, while Close Style Helper becomes sage only while the helper is actually open. Coral remains selected/active, gray remains off, and orange remains experimental.
  • Finished the Harbor and Midnight Dock contrast pass: neutral, selected, enabled, Off, callout, and experimental buttons now own every normal/hover/pressed/focused state with readable text polarity. Fields and focus borders, command popups, footers, section borders, previews, and Style Helper swatches now use the same theme-owned treatment; swatch labels choose light or dark text from the displayed color.
  • Highlighted the local-only HOME, INSERT, and SLASH COMMANDS navigation keywords with the same restrained callout language in the first-lobby tips and Getting Started help.
  • Made the authenticated exact-target Rescue/Hook compatibility receiver always ready in public QoL, with no normal-user toggle to discover or accidentally disable. It accepts the verified-Steam v2 target or the unique-active-native v3 target described above; both remain fresh, nonce-guarded, owner/Helper scoped, current-lobby-bound, and fail closed.
  • Reduced the receiver's duplicate-action cooldown from ten seconds to one second so a deliberate Rescue-then-Hook workflow is usable while still suppressing same-frame repeats.
  • Removed the legacy !bsrescue / !bsvisible chat-shaped receive paths. Current rescue and visibility controls use hidden Steam member data only, so control payloads cannot become public chat through BlueSage 0.2.0.
  • Fixed compatible host invisibility fallback to bind to the live remote avatar transform, rescan newly spawned/re-enabled renderers on every fresh heartbeat, and restore captured renderer states on show, expiry, owner change, or despawn.
  • Added /selfmove (/bluemove, /qolmove) parity for the supported Save Pos, Teleport Saved, Noclip/Fly, speed, jump, gravity, status, and reset menu actions. Saved and rescue teleports request the local owner's normal network transform sync after applying.

Reconnect Recovery

  • Rebuilt Reconnect Guard around the game's native MainSceneManager.ConnectionLost signal. Every ordinary/manual lobby join remains observational and cannot trigger cleanup.
  • Native teardown gets up to 10 seconds to reach a clean lobby menu before one canonical JoinByCode(..., false) saved-lobby attempt; direct transport restart is not used.
  • Generation ownership prevents duplicate callbacks from creating overlapping reconnect loops. Post-join validation gets up to 45 seconds and requires authoritative Steam membership, connected PurrNet, restored local player/controller/UI, and two seconds of stable quorum; Vivox is required only when lobby voice is enabled.
  • Failed saved-lobby validation returns through native cleanup without retrying the same lobby. Same-host replacement discovery permits one separately validated public/direct-join candidate and rejects ambiguous or incompatible matches.
  • Fixed the healthy-session false-cleanup loop and the stale vanilla IsConnecting gate. Community testing subsequently recorded repeated successful recoveries from genuine disconnects on this release path.

Identity, Styling, And Readability

Independent Clone Alerts

  • Clone Shield now lets a potential victim's own QoL client detect complete avatar/outfit matches and exact letter/color/rich-text name matches, publishing one cautious global advisory with partial IDs and a request to verify the player list/profile.
  • Added a bounded per-lobby Clone Shield incident lifecycle (C001, C002, …) with exact victim/suspect Steam IDs, open/resolved/locally dismissed states, closed history, and deliberate highlight cleanup. Incident commands always resolve the suspect while protecting the victim from the quick-ban path.
  • Tightened Clone Shield and VERIFIED identity to the same current Steam-lobby/native-Steam/PlayerID quorum. Departed native history rows are excluded per row; Clone Shield still waits unless every current Steam member has one unique live row. Two consecutive absent or no-longer-matching scans archive an incident; per-player, bulk, and history cleanup remain local and never touch bans, Helpers, or lobby state.
  • Added exact host/Helper structured audit records for clone open/resolve/dismiss/stale transitions and throttled repeated roster-wait diagnostics to once per state/minute. Ordinary clients still receive no extra exact-SID enrichment.
  • Added host-native /sidban and /sidunban//unbansid preview/confirm commands plus /sidlist. The host is the only native ban writer; compatible Helper requests use non-chat Steam member data, are revalidated against verified current membership, rate/replay limited, and targeted by exact PlayerID.
  • The host can also preview and save an exact SteamID64 to the native ban list after that player has left. Off-roster entries require the full ID, a fresh confirmation, and a verified absent roster state; they persist without pretending a kick occurred. Helpers remain limited to current verified lobby targets, and /sidunban reverses either path.
  • The native green Steam-profile tooltip keeps a compact row check for ordinary users: LIVE, LEFT / STALE, or CHECKING. For the active QoL host and compatible Helpers, Steam Profile • VERIFIED exposes the exact SteamID64, cached Steam persona, live row, PlayerID, and HOST/HELPER/VICTIM/SUSPECT details. Only the successful authorized view expands; failure text cannot overflow across adjacent rows.
  • Kept the ordinary profile check at the game's compact tooltip size while resizing/wrapping the authorized host/Helper detail view so persona, exact SID, role, and navigation no longer clip over adjacent rows. Every later native tooltip deterministically restores the original panel size, body font/wrapping, and header color. Native ban storage failures now show NOT AVAILABLE instead of falsely claiming an empty list.
  • Added an access-scoped fifth Helper / Safety tab for the active QoL host and assigned exact-SteamID Helpers. It contains a paged verified current-lobby roster, exact SteamID copy, Steam-profile opening, Clone Shield incident review/history, and preview-first moderation actions; Helper-list management stays host-only. /sidlist and /sidwho list are protected compact fallbacks instead of public roster dumps.
  • Added a host-only paged Native banned players view that keeps the game's paired saved nickname and exact SteamID64 together, supports exact-ID copy, and creates a separate preview-first unban without relying on transient chat or console output.
  • Unified @lobby and moderation delegates into one host-scoped exact-SteamID Helper list. /helper is the primary command; /lobbyhelper, /lobbymod, /modhelper, and /moderationhelper remain aliases, with matching-owner legacy entries migrated safely.
  • Incident resolution now uses a hidden helper-to-host request plus host-owned Steam lobby state so compatible QoL clients can clear victim/suspect highlights without adding another public chat line. Public Clone Shield alerts remain visible and cautious.
  • Turning Clone Shield off now clears its current-lobby incident ledger, closed history, replay state, and victim/suspect highlights immediately; peer alerts are ignored until it is enabled again.
  • Repaired the 0.1.8-era style-state edge case where Detect Current or a status/Spoons-only change could capture the full rendered identity as the saved base. Existing contaminated or deterministically repairable rich-text bases migrate once with a local rollback copy; Detect Current now reads live base/status/Spoons drift together, Custom Rich Text mode preserves exact balanced markup, and Apply verifies native serialization plus visible readback before committing or reporting success. BlueSage validates structure while the game remains authoritative for uncommon TMP tag/value rendering.
  • Name Styler now accepts the configured Name/ID capacity up to 4000 characters, retains closing TMP tags, preserves detected live markup for editing, and reports the draft's actual length.
  • Name, status, Spoons/mood, presets, and quick status commands preserve the exact styled base name. Invalid or oversized composed names are rejected before saved configuration or live player state changes.
  • Added explicit /setname reset and /statuscolor reset recovery paths without discarding the current status, Spoons, or unrelated styled-name pieces.
  • Style Helper and QoL Menu now keep their content/footer reachable at smaller resolutions, reset tab scroll positions, use truthful Save/Undo state, and expose compact 12/24-hour timestamp controls.
  • Repaired manual and automatic Asset Sweep invalidating BlueSage's runtime menu textures. Shared theme textures are now protected, cached, generation-checked, and released only when the plugin unloads, so no theme-cycle refresh is required.
  • Snapshot Now now creates an atomic timestamped copy of the true live BepInEx/LogOutput.log, copies the exact snapshot folder path, and retains the latest eight snapshots instead of only flushing the older running session mirror.
  • QoL Menu and Style Helper now use a deterministic centered 1320 x 720 safe fit on first open and the full safe viewport plus scrolling on smaller displays. Intentional user size and position persist across close/reopen while they remain on-screen; a resolution or display change clamps only the geometry that would otherwise hide controls.
  • Added the default BlueSage Harbor visual system: warm cream content cards, midnight header/footer chrome, coral active actions, sage enabled states, explicit On/Off labels, grouped feature sections, and responsive one/two/three-column layouts. Existing saved themes remain available and Reset now returns to Harbor.
  • Repaired Midnight Dock text fields and text areas with explicit normal, hover, focused, and active textures; removed stretched vanilla field backgrounds that produced glow streaks and made unfocused values difficult to see. Toggle cards now use consistent Comfort, Chat, Identity, Personalization, and Experimental accents.
  • Name and Status editors keep the complete raw rich-text draft visible instead of truncating closing tags mid-edit. Apply/Copy still enforce the configured limit and reject crossed or incomplete TMP tags without mutating the live name.
  • Corrected the one-time Spoons migration so a timestamped player opt-in is preserved; only the old timestamp-less default-on state is hidden.
  • Public helper text received a release-wide plain-language pass: first-lobby tips name the Home and Insert surfaces directly, command choices wrap instead of clipping, long supporter messages stack safely, and moderation guidance consistently asks players to verify Steam profiles before acting.
  • First-lobby guidance now reports the game's actual saved Push to Talk/Voice Activation choice locally, warns when Voice Activation may leave the mic live, and reminds players that the game's Pomodoro/focus timer can earn tickets and XP. Each tip retries independently until posted, while voice-state diagnostics emit only once per lobby/state transition instead of every retry.
  • Added authorized /sidincident//cloneincident typeahead for current C### incidents plus resolve, dismiss, and cleanup actions. Locked-on diagnostics now log only the handled slash-command name and explicitly redact every argument, preventing names, statuses, queries, and exact moderation IDs from leaking into BepInEx output.

Public QoL Additions

  • Added self-only Save Pos, Teleport Saved, default-off Noclip/Fly, and bounded speed/jump/gravity controls under Credits / Other. Fly always starts off and reset/unload restores normal movement.
  • Added default-on Reusable Consumables for owned canteen items and chalk. It suppresses only the known item-count decrement after acquisition; shop tickets, initial purchases, clothing, bait, rods, bobbers, and unknown future item types remain vanilla. Turning it Off restores normal consumption immediately.
  • Avatar Presets 4-9 and Chalkboard Persistence now ship default-on after community validation. Vanilla avatar slots 1-3 remain game-owned and untouched, and Chalkboard Persistence still stands down when Andrew's Chalky is loaded.
  • Player Render Saver remains the only orange, default-off experimental feature.
  • Added cached Steam-friend minimap coloring that stands down when Aquarium51 MinimapFriends is loaded, while MiniMap ID Click remains independent.
  • BlueDevDebug is locked on for consistent community troubleshooting in 0.2.0. Diagnostics intentionally exclude credentials and authentication tokens.
  • Added default-on, bounded local incident evidence: a structured chat/notification JSONL transcript preserving raw rich-text and plain text together, plus a running mirror of BepInEx/LogOutput.log. Exact roster SteamID64/persona enrichment is limited to the verified host or assigned Helpers; /auditlog provides status, opt-out, folder copy, and manual snapshot controls, and nothing uploads automatically.
  • Added authorized live-player filtering by partial displayed name, bounded regex, partial Steam persona, 4+ SteamID digits, _host, and _self. /sidwho returns every verified match read-only; helper autofill accepts only one unique live result, while ban authority remains exact-ID and preview/confirm gated.
  • Native BanData changes are captured into the local moderation evidence so host player-panel bans, report-panel bans, compatible native-ban tools, and BlueSage ban/unban actions retain a timestamped action/source/outcome beside the paired saved display name and SteamID64.
  • Helper-to-host moderation and incident resolution now use authenticated non-chat Steam member data. Fomo can continue observing ordinary visible chat without receiving !bsmod, exact-SID, or incident-control payloads; the host still revalidates authorization, live identity, nonce, freshness, and target before acting.
  • Matched menu and slash-command safety flows: normal players can see local audit status, snapshot, and folder-copy actions beside the audit toggle, while authorized Lobby Safety previews now expose exact-target Confirm controls for incident/live-player bans and native-record unbans.

Build And Compatibility

  • Aligned large-host guidance with PlayerLimitLift 1.1.3, the next uploadable companion after the already-live 1.1.2; QoL remains standalone and the companion remains host-only.
  • Added exact loaded-mod ownership for Andrew Hush, Fomo, Echo, Alpha, Chalky, and Desync. Desync pauses BlueSage's overlapping automatic Host Health repair loop, Chalky keeps the existing board-persistence stand-down, Echo is called out as an intentional clone source, and public moderation retains exact-ID authenticated host/Helper authority without importing a community banlist in 0.2.0.
  • Rebased against On-Together build 24141704 / Unity 6000.0.60f1, including the voice-era player panel and current PurrNet/Steam/Vivox surfaces.
  • Added a narrow guard for uninitialized PurrNet NetworkReflection instances while leaving valid reflected state untouched.
  • Kept always-on troubleshooting useful in crowded lobbies while suppressing repeated copies of the same player-row and reflected-surface diagnostics; routine roster snapshots now use a compact membership fingerprint instead of rewriting every Steam ID every five minutes.
  • Preserved compatibility backoffs for AndrewLin Sweep/Reconnect/Chalky, Simple_QOL/ChatTweaks-style timestamp ownership, Aquarium51 MinimapFriends, and BlueSage PlayerLimitLift.

[0.1.9 Early Access] - 2026-07-11

Hotfix - Style And Status State Repair

  • Repaired the shared /status, /brb, /afk, /back, /clearstatus, Status Styler, Status Color, Spoons, and mood recomposition path so every suffix-only action preserves the exact styled base name.
  • Added natural /setstatus, /set-status, and /clear-status aliases to the existing status commands.
  • Status transitions now capture the base using the old exact generated status/Spoons suffixes before changing configuration, preventing the previous status or default Gradient 3 palette from being folded into the name.
  • Removed generic bracket guessing: legitimate names such as Pru (^-^), Artist [OC], and Helper {QA} are no longer truncated as if their endings were BlueSage statuses.
  • Repeated preset transitions preserve the original status: /brb, then /afk, then /back returns to the status from before preset mode instead of returning to BRB.
  • Detect Current hydrates the live rich-text colors/mode while retaining exact editable markup, and paired <noparse>...</noparse> validation now follows TMP behavior.
  • Name/status changes now follow the verified native persistence order by saving PlayerData before publishing GetPlayerIdInfo() to the current roster.
  • Fixed Spoons Save/Undo to restore the previously saved label and made invalid label validation occur before count/config mutation.
  • QoL Menu and Style Helper title bars now both show the active mod version.

[0.1.8 Early Access] - 2026-07-11

Voice-Update Rebase And Community Polish

  • Added orange, default-off EXPERIMENTAL - Chalkboard Persistence: safe local /chalksave, /chalklist, and host-only /chalkload using validated atomic saves and the game's native board repaint/sync path. It automatically stands down when Andrew's Chalky is installed to prevent duplicate relays.
  • Added cached Steam-friend coloring to existing minimap dots without restoring expensive floating labels. It refreshes on the bounded minimap cadence and automatically stands down when Aquarium51's MinimapFriends is loaded.
  • Fixed Style Helper tab layout: switching Name/Status/Templates now returns the content view to the top, and the custom Spoons label is back inside Status Styler instead of occupying every tab header.
  • Fixed Detect Current resetting its editor controls to the default Gradient 3 palette. It now hydrates the live name's actual colors/style, while Status and Spoons updates preserve the current styled base name instead of recomposing from stale cached defaults.
  • Added an opt-in experimental expansion of the vanilla avatar-style selector from three visible presets to nine. Slots 1-3 remain entirely game-owned—including existing player designs and unused vanilla defaults—while slots 4-9 use a separate BlueSage save bridge and apply through the game's normal customization/network path. The orange EXPERIMENTAL menu toggle defaults off and can remove/restore added rows without deleting either preset bank.
  • Corrected host-visibility maintenance so it runs only for the local movement controller instead of once per spawned avatar per frame, and throttled active owner/roster validation to twice per second.
  • Reduced idle focused-chat overhead by caching mention-ping and command-typeahead input/caret state.
  • Suppressed identical successful player-row diagnostics for 30 seconds with a bounded cache while preserving new-row evidence.
  • Corrected Reconnect Guard diagnostics to describe canonical saved-lobby cleanup/rejoin instead of a stale direct-StartClient path.
  • Added multiple authenticated backend compatibility and lifecycle optimizations for Blue-hosted community lobbies without adding public controls or changing normal QoL behavior.
  • Rebased against On-Together build 24141704 / Unity 6000.0.60f1 and refreshed the player-panel integration for the voice-era row layout while leaving native voice, moderation, Pomodoro, and game-owned controls unobstructed.
  • Rebuilt Reconnect Guard around the game's canonical lobby join flow. It rejects transport-only ghost-member reconnects, requires authoritative Steam membership plus usable PurrNet/player runtime, validates Vivox alignment when voice is enabled, and uses bounded same-host public replacement-lobby discovery before safe menu fallback.
  • BlueSage now suppresses AndrewLin Reconnect's competing transport-only retry while managed recovery is active instead of yielding to a path known to produce lobby-count ghosts.
  • Reworked Chat Readability from overlapping periodic full-tree passes to event-driven newest-row styling plus deferred topology/config reconciliation. Unchanged TMP rows avoid repeat material/mesh dirties and destroyed UI state is pruned.
  • Chat Backdrop now follows the current chat scroll-view topology with a stretch-anchored, non-raycast-blocking fallback overlay while preserving native mouse-wheel scrolling.
  • Replaced the unconditional 250-row history override with configurable ChatHistoryRows: default/reset 100, range 25-250, /chatrows (/chathistory, /chatr), menu control, status, and typeahead. A higher vanilla or other-mod getter result is never lowered.
  • Added explicit 12-hour AM/PM and 24-hour timestamp controls plus reset/status behavior.
  • Improved Name Styler rich-text detection/preservation and bounded undo/redo/reset behavior; Status/Spoons reset paths now restore their documented defaults.
  • Added custom Spoons/mood labels through /setmood and Style Helper while keeping the public default hidden [5/5sp] state.
  • Secured @lobby mass alerts: only the authoritative lobby host or host-delegated Steam-ID helpers can trigger them. Added host-only /lobbyhelper add/remove/list/reset; unauthorized or name-spoofed @lobby remains ordinary chat.
  • Reworked Player Render Saver around distance bands, hysteresis, bounded work, restoration, and diagnostic counters. It remains an orange EXPERIMENTAL, default-off performance test until live UAT proves actual renderer suppression without hiding chat/player-list identity.
  • Added Main-tab community thanks for ●Marbles●—including her July 6 Ko-fi message—bloo_bamboo, and Rowan; refreshed Discord/support links and added an in-menu version/last-updated stamp.
  • Locked BlueDevDebug diagnostics on for public 0.1.8, including old disabled configs. /bluedevdebug off truthfully explains the release lock; diagnostics intentionally exclude credentials and authentication tokens.
  • Copy Chat now attaches its same sanitized, link-safe click handler to local AddNotification rows, making BlueSage command/system responses copyable without adding names or timestamps to the clipboard payload.
  • Kept the public package focused on the documented player-facing QoL surface.

[0.1.7 Early Access] - 2026-07-06

Hotfix

  • Fixed Chat Backdrop breaking mouse-wheel chat scrolling. The backdrop now only adjusts/restores vanilla chat image color and alpha; it no longer disables the raycast targets Unity uses to route scroll input.
  • Kept the 0.1.6 scroll-ownership cleanup: BlueSage still avoids rewriting vanilla ScrollRect movement/sensitivity while preserving chat height, font size, whole-panel scale, outlines, retained rows, and /chatvanilla.

[0.1.6 Early Access] - 2026-07-06

Hotfix

  • Fixed chat scrolling compatibility after the 0.1.3 chat layout work. BlueSage no longer rewrites vanilla ScrollRect movement, scroll sensitivity, scrollbar visibility, or viewport mask settings during chat refresh.
  • Chat height, chat font size, whole-panel chat scale, outlines, backdrop, and retained rows still work, but native chat scrolling and scroll-speed mods keep ownership of actual scroll input.
  • Kept /chatvanilla and the Customize reset button as the safe reset path for chat scale/font/height back to vanilla values.

[0.1.5 Early Access] - 2026-07-06

Emergency Hotfix

  • Fixed a 0.1.4 reconnect loop where players who had already entered a healthy lobby could be misread as stuck and forced back through join again.
  • Reconnect Guard now treats visible lobby entry as success and stops interfering while the game finishes settling local player/chat runtime objects.
  • Native join-by-code watchdog is now observational: it records debug breadcrumbs but does not force a saved-lobby retry or menu fallback after lobby entry succeeds.
  • /bluedevdebug breadcrumbs are on by default so community logs include clearer reconnect and UI diagnostics. Use /bluedevdebug off for quieter logs.

[0.1.4 Early Access] - 2026-07-06

Hotfix

  • Reconnect Guard now requires the local player/chat runtime to finish loading before it declares reconnect success, instead of trusting transport/lobby signals alone.
  • Added a guarded join-by-code loading watchdog: if a lobby join enters a stuck loading state, BlueSage retries that saved lobby once and then returns toward the menu instead of leaving the player trapped until relaunch.
  • Reconnect fallback now clears the unhealthy multiplayer session before calling the game's normal menu return path, without re-triggering another guarded reconnect loop during that fallback.

[0.1.3 Early Access] - 2026-07-05

Chat Layout Upgrade

  • Added ChatWindowHeightPercent for players who want taller chat space without scaling text or UI. Default stays vanilla 100; supported range is 100-200.
  • Added /chatheight, /chatstretch, and /chath plus on/off/toggle, Customize -> Chat window height, Save/Undo, typeahead suggestions, and /qol status reporting as ChatWindowHeight.
  • Added ChatFontSizePercent for players who want larger chat message text without scaling the whole chat UI. Default stays vanilla 100; supported range is 75-200, with /chatfont, /chatfontsize, and /cf.
  • Added /chatvanilla, /chatreset, Customize -> Reset Chat UI to Vanilla, and unload/reset restoration for whole chat UI scale, chat font size, and chat window height.
  • Retained chat logs are now automatically raised to 250 rows for both Global and Local, so players can scroll back through longer sessions even if they leave chat height at vanilla size.
  • The larger chat window uses the same verified chat panel roots as the existing scaler, with stable vertical expansion that avoids the older width-expansion path until native wrap-width behavior is proven reliable.
  • Retained rows use the current GameSettings.GlobalMessageLimitCount and GameSettings.LocalMessageLimitCount getter path, raising the game limits without touching chat networking or message text.
  • Height reset restores vanilla layout, while active height changes keep the current bottom edge stable so players can still use the native chat drag handle for final positioning.
  • Refreshed in-game wording, README, and UAT notes to make the difference clear: /chatfont is for bigger message text only, /chatscale is for scaling the whole chat UI, /chatheight is for more vertical visible space, and deeper retained rows are automatic.
  • Documented that native Global/Local chat tabs remain game-owned in this release while BlueSage improves readability, retained rows, font size, whole-panel scale, and vertical height around them.
  • Reconnect Guard now waits about 5 seconds before its first managed reconnect attempt, limits itself to 3 short attempts, validates that the visible lobby/player UI becomes usable before calling reconnect successful, then tries the saved last lobby once through the game's native join-by-code flow before falling back toward the normal menu flow if the stuck void-lobby state remains.
  • If AndrewLin Reconnect is installed, BlueSage now defers to that mod's reconnect loop instead of stacking competing reconnect behavior.
  • Added Clone Shield as a defensive local warning when another visible roster row appears to reuse your current avatar/outfit. It ignores shared name colors, font styling, and status text to avoid false positives, warns locally only, and does not perform moderation actions.
  • Added optional Player Render Saver for very large lobbies. It is off by default, local-only, hides far/overflow remote player renderers on your PC only, keeps chat/player-list rows visible, and restores renderers when turned off.
  • Tuned QoL Menu and Style Helper max-safe opening size down slightly so they still auto-fit but leave more game/chat area visible on launch.

[0.1.2 Early Access] - 2026-07-04

Feedback Polish

  • Tuned final feedback defaults: Spoons remains opt-in/off by default, Ping Sound stays on the ticket sound, and default chat outline intensity is now 75.
  • Older enabled Spoons configs are reset to hidden once on update so the compact tag is truly opt-in again; players can turn it back on with /spoons on, /spoons 0-5, or Style Helper.
  • Existing users with untouched 50 or short-lived 60 chat outline defaults migrate to the current 75 default on update while custom outline values are preserved.
  • Name Styler and Status Styler now draw from the same responsive color library layout so their swatch choices match cleanly.
  • QoL Menu and Style Helper now open at their largest safe on-screen size, keep a small game/chat lane visible where possible, and still let players shrink them with the bottom-right resize handle.
  • Menu helper text and footer guidance are more noticeable so players can hover a control and see the exact answer without hunting through docs.
  • Home toggles the QoL Menu, Insert toggles Style Helper, lobby welcome tips call out the main keys/commands, and /back restores the status that was active before /brb or /afk when possible.

[0.1.1 Early Access] - 2026-07-03

Hotfix

  • Restored chat readability outline behavior after the 0.1.0 release: exact true-black rich-text names/messages now trigger the configured black-text outline color again, including <#000000>, <color=#000000>, and <color=black> tags.
  • Kept black detection precise so dark-but-not-black colors like #000080, #000001, and #101010 still use the normal outline color instead of being forced onto the black-text outline path.
  • Made the local UI outline/shadow apply its configured alpha directly so normal and black outline colors render more consistently over bright or busy backgrounds.

[0.1.0 Early Access] - 2026-07-03

Highlights Since 0.0.10

  • Full Early Access QoL menu flow: Home or /qolmenu opens settings, /styleui opens Name Styler, Status Styler, templates, colors, and optional Spoons, and Run QoL Status gives a quick local feature check.
  • Chat readability/accessibility is now a first-class feature: local outline/shadow, restored TMP material outline, /chatoutline 25-100, /chatscale and /chatresize 75-200, Customize -> whole chat UI scale, back on-screen nudging for scaled panels, /chatoutlinecolor, and /blackoutlinecolor.
  • BlackNamesOutline=on/off defaults on so true-black styled chat/name rows can use the lighter black-text outline color instead of disappearing into dark chat backdrops.
  • Longer text defaults are now 3000 for chat, Name/ID fields, ID-card details like About Me/FavoriteQuote, and room names, with cautious local tuning up to 4000.
  • Chat links are easier to read and safer to use: links get hyperlink color, plain click copies, and Shift-click warns before opening.

Polish And Defaults

  • Existing users get a one-time safe config migration: old untouched text limits move to 3000, old 60-minute sweep defaults move to 30, untouched outline intensity moves to the current default, and Spoons moved toward opt-in instead of being assumed visible for everyone.
  • Ping Mentions now default to the ticket sound, including migration from the old untouched click default.
  • QoL Menu and Style Helper are cleaner: toggles use normal On/Off buttons, Customize keeps safe editable rows with Save/Undo, identity edits live in Style Helper, and Midnight Dock is the default theme.
  • Status Styler and Spoons are tidier: Spoons stays compact as [1/5sp], remains opt-in, and has Save/Show/Hide/Undo controls beside status edits.
  • Templates apply immediately when loaded, with Undo available if the wrong slot was picked.

Fixes

  • Welcome tips retry until the local notification system accepts them, so the welcome no longer vanishes during early lobby/chat setup.
  • Detect Current now prefers live in-game values, keeps the current live name style in preview/copy/apply, and only strips BlueSage status/Spoons suffixes before filling an editable draft.
  • Menu/footer tooltip and status text areas are consistent across QoL Menu and Style Helper tabs, with no cross-window tooltip bleed.
  • Typeahead command popups are scrollable and more readable over busy chat.
  • ID-card details now follow the Name/ID text limit for all player data fields, including the bottom About Me/FavoriteQuote section, instead of the vanilla 1000-character publish cap.
  • Ping Mentions now match by base name but render the full current display label once, so @Rowan can highlight Rowan [Tired] [4/5sp] and @Blue can highlight Blue (Homelab) [3/5sp] without duplicating suffixes; status/Spoons text does not duplicate inside ping messages.

[0.0.10] - 2026-07-02

New

  • Midnight Dock became the default menu theme, and the broken High Contrast theme was removed.
  • Added a per-lobby welcome message so players see Home, /qolmenu, /styleui, /qol status, and typeahead tips when they join a lobby.
  • Chat links now show as hyperlink-style text. Plain click still copies; Shift-click first copies and warns, then a second Shift-click opens the same link.

Improved

  • Moved Purge Unused Assets to the Main tab beside the other quick actions.
  • Toggles use two columns so the menu space is easier to scan.
  • Fresh configs moved the visible beta features on for testing, while existing configs kept saved player choices.
  • Spoons stays compact as [1/5sp]; the old mood command and mood config fields were removed so names do not flood chat.

[0.0.9] - 2026-07-02

New

  • Added menu themes: OG, Vanilla Cream OT, and Midnight Dock.
  • Theme choice applies to the QoL Menu, Style Helper, and autocomplete/typeahead popups.
  • Added click-to-copy chat with /copychat and /ccopy.
  • Added safe chat-link opening: plain click copies text, and Shift-click opens the first safe web link.
  • Added chat readability with /chatreadability and /chatread.
  • Added BetterMove: Shift runs and Ctrl slow-walks.
  • Added /brb and /afk quick status shortcuts.

Improved

  • Fixed gradient/color output so color tags close cleanly and do not bleed into later text.
  • Style is now for names, while Status is for activity tags like (Reading).
  • Style Helper templates now save name styling only, so status does not change by accident.
  • Added the color library to Status so players can pick status colors without hex-code homework.
  • Spoons is now off by default for new installs, uses a compact [1/5sp] tag when enabled, and has /spoons off plus a QoL Menu hide button for shorter names.
  • QoL Menu customization rows now include Save plus a back-out button so players can discard unsaved edits.
  • Slash-command typeahead is scrollable when browsing commands with /.
  • Chat readability now tries a stronger local text outline, and Chat Backdrop can restore saved backdrop colors when turned off.
  • MiniMap dot-to-ID is the supported minimap helper for this release.
  • Floating minimap name labels stay removed because large lobbies reported FPS/CPU lag; clicking dots for ID cards keeps the useful part without name clutter.
  • Chat readability improves local text contrast without changing what other players see.
  • BetterMove only affects your own character locally.
  • README now keeps the Thunderstore-facing notes shorter and more player-friendly.

[0.0.8] - 2026-06-29

  • Added the visible @name suggestion popup for Ping Mentions.
  • Made Style Helper and QoL Menu open larger by default with easier resize handles.
  • Expanded the Style Helper color library.
  • Retired the broken tiny Easter egg buttons and kept one compact optional one-time lobby joke with truthful labeling.
  • Player-list helper buttons now protect native report/ignore/kick/ban controls first.
  • Enhanced Player Panel helper logs now stay separate from host-health logs.
  • README now lists both the official On-Together Discord and Blue's Discord Community.

[0.0.7] - 2026-06-28

  • Fixed Ping Mentions so typing @name and pressing Tab works naturally.
  • Kept [PING], @lobby, and selectable sound modes.
  • Reconnect Guard now tries 20 times about every 15 seconds, then returns toward the normal menu/error flow.
  • MiniMap dot-to-ID remains on by default.
  • Floating minimap labels are removed after large-lobby FPS/CPU lag reports.
  • Style Helper and QoL Menu now have resize grips, screen clamping, vertical scrolling, and clearer tips.
  • Home now opens/closes /qolmenu.
  • Player-list helper buttons sit left of the native/Pomodoro/PomoSync action area so report/ban buttons remain reachable.

[0.0.6] - 2026-06-28

  • Fixed the v0.0.5 player-list button layout regression.
  • Style Helper and QoL Menu became easier to read and scroll.
  • Added Discord buttons to the Style Helper and QoL Menu headers.
  • Moved beta controls into Toggles and changed the old Beta tab into Credits / Other.
  • Added Reset Current to the Style Helper.
  • Ping Mentions got yellow completed mentions, visible [PING] marking, @lobby, and selectable sound modes.
  • MiniMap click-to-ID-card stayed as the useful behavior while floating labels were removed.
  • Credits / Other invites players to screenshot/share finds in Blue's Discord.

[0.0.5] - 2026-06-28

  • Chat, ID/profile fields, room names, and style-generated text now default to 1500 characters.
  • Text limits are user-expandable up to 4000 through config or /qolmenu.
  • Host Health now defaults off and is available through manual /hh run.
  • Added safer player-list row refresh for larger lobbies and recycled player-list rows.
  • Added Pomodoro/PomoSync spacing protection for player-list helper buttons.
  • Added MiniMap dot-to-ID support.
  • Added /styleui and /qolmenu.
  • Added PlayerLimitLift companion awareness for Host Health.
  • Fixed timestamps so they can apply to chat plus join/leave/system notices.

[0.0.3] - 2026-06-18

  • Early beta cleanup.
  • Added /style / /sty.
  • Added Focus Anywhere.
  • Added Enhanced Player Panel helpers.
  • Added optional PlayerLimitLift companion awareness.
  • Reduced Host Health false-positive noise.

[0.0.2] - 2026-06-18

  • Rebuilt as 0.0.2 so Thunderstore could accept the package after the deprecated 0.0.1 upload.

[0.0.1] - 2026-06-18

  • First Early Access release of BlueSage QoL Tweaks - Beta.
  • Added Asset Sweep, Host Health, longer chat/name/room text, leave notices, optional timestamps, Reconnect Guard, and internal /as, /hh, /ln, /tt, /rg, /rm, /bsqol, and /qol commands.