00// CHANGELOG
Changelog
New features and fixes for the RefugeBot agent — the mod that powers your in-game
panel, shop, and commands. Grab the latest from the install guide and drop it into
your server's Mods/ folder.
Jump between your servers and take your character with you — plus quieter logs for clustered saves
- NewCross-server transfers (
/servertransfer). Players run/servertransferin chat and a server picker opens in their real web browser, showing each linked server live (online/offline + player count). One click connects them straight into that server viasteam://— no manual IP entry. If your servers share a save (a cluster), they arrive with the same character — level, skills, inventory — and land at the destination's lobby instead of underground. Turn it on per-server under Server Config → Cross-server transfers; the Admin Guide has a full setup walkthrough, including how to share the player save by symlink if you self-host. - NewOwner control over in-game commands. A Server Features & Commands section lets owners enable or disable individual
/commandsper server, so you decide exactly what players can use. - FixNo more repeated "loading player data failed" log spam on clusters. The offline player-stats scanner re-read a character file every few minutes while that player was online on another cluster server (their shared save kept changing), and modded item data that doesn't parse offline made the game log a failure stack each time. The scanner now backs off (and stops retrying a file that won't parse) instead of re-attempting every cycle — the errors were always harmless (they never affected a real join), just noisy. Logs stay clean.
The two ghost types that never died are now cleaned up — and every shop icon renders
- FixGhosts stuck "mid-disconnect" are finally removed. When a player times out (or is kicked), the game flags the connection as disconnecting and then runs its built-in disconnect — which throws an error on exactly these dead connections, leaving the flag set and the ghost in the player list. The cleanup used to skip anything flagged as disconnecting ("it's already leaving"), so these ghosts lived forever — spamming
unknown clientfor hours and shrugging off adminkickcommands. A connection that stays flagged and link-dead for 15 seconds (a healthy leave completes in under 2) is now force-cleaned. - FixNameless phantom slots are cleaned up too. A join that dies mid-handshake can leave an empty slot (no name, no entity) that admins can't kick at all (
kick <none>fails). These were skipped as "still connecting"; now a never-logged-in slot with no network link for 90 seconds is removed. A real joiner — even a slow map download — keeps a live network link the whole time, so they're never touched. - FixThis also breaks the ghost cascade. A lingering ghost collided with its own player's reconnect ("Duplicate player ID"), and the failed kick of the old slot created another immortal ghost. Clearing both types stops the loop.
- FixEvery in-game shop icon now renders. Modded and bundle items (ammo bundles, contracts, first-aid kits, coffee…) showed blank icons because only some vanilla icons exist as client-side sprites. Each shop cell now also loads its icon from the web panel's icon library, so every item shows its real icon.
Ghost cleanup no longer freezes the server
- FixRestarts no longer hang the server. The ghost cleanup reacted to the
unknown clientline by disconnecting that connection immediately — but that line is produced from inside the server's own network loop, so doing the disconnect right then could lock up the whole server. It stayed "running" but stopped responding (no one could join, no Discord "online" post) until someone restarted it manually. The cleanup now just notes the suspect and does the actual disconnect a moment later, safely outside that loop. - FixPlayers reconnecting after a restart are never mistaken for ghosts. When everyone rejoins at once, a player still mid-connection briefly looks just like a ghost (no network link yet). The cleanup now only acts on a connection that is fully joined and has stayed link-dead for several seconds, so a normal join — even a slow one during the post-restart rush — is left completely alone.
Ghost cleanup that actually frees the slot
- FixGhost players are now removed on the first pass instead of crashing mid-cleanup. The cleanup correctly spotted every ghost, but the disconnect step itself threw an error on exactly the connections it was meant to remove — a ghost has no live network link, and the game's built-in disconnect routine assumes one, so it aborted before actually freeing the slot. The player kept counting as online and the
unknown clientlog spam continued. We now remove the leftover body first (so the game's routine takes a clean path), then guarantee the connection slot is freed even if that routine still throws. Bodied ghosts and empty phantom slots are both handled in one pass. - FixFull error detail is now logged if a cleanup ever fails again, so the exact cause is visible instead of a bare "object reference" message.
Ghost cleanup, finally reliable — plus quieter Discord & panel
- FixGhost players are now auto-kicked the moment the server flags them. When a connection's network link dies but the player record lingers, the server logs
requested for unknown clientover and over (and the player shows as online when they aren't). We now react to that exact line: read the client number off it and disconnect that one connection in-process, then clear its leftover body. A normal logout never produces that line, and a player still downloading the map never produces it — so real players are never touched. - NewRe-enabled by default on safe builds. The cleanup had been switched off because an older version could mistake a slow map-download for a ghost. It's back on automatically for servers running this build (or the previous peer-loss build); servers on older builds stay off until updated.
- FixNo more duplicate "left the game" messages in Discord. When a normal disconnect left a ghost behind, cleaning up that ghost re-fired the leave event, so Discord posted the same player leaving two, three, or four times. A single departure now posts exactly one leave message — the cleanup's own disconnect is recognized and stays silent.
- FixServer restarts no longer make the panel sluggish. While building the Server Info tab on boot, the agent was reading a few numeric settings (like blood-moon frequency) as text, which the game rejects and logs as an error every time — flooding the console and bogging down the panel during startup. We now read each setting as its proper type, so boots are clean and the panel stays responsive.
Item quality now delivers
- FixShop items, packs, and admin "give" now work when you set a quality/tier. Selling or giving an item with a specific quality (e.g. a Tier 6 tool) silently delivered nothing — the underlying give command requires the quality and a "used %" together, and we were sending the quality alone, which it rejects outright. We now send both (0% used = brand-new), so quality items arrive as intended. Items without a set quality were never affected.
- FixDiscord
/givewith a quality is fixed the same way.
Ghost cleanup: never kick a real joiner
- FixAuto-cleanup no longer disconnects players who are still downloading the map. The safety net used to remove anyone without an in-world body after 90 seconds — but a player loading a big world on a slow connection legitimately has no body yet, so on rare occasions a real joiner got booted. It now disconnects a connection only when its actual network link is gone (the game reports a −1 ping because the underlying peer no longer exists), which a player who's still downloading never trips. Slow joins are now left alone no matter how long they take.
- FixCatches more kinds of stuck connection. The cleanup now also clears a player who had spawned in but whose connection silently dropped (leaving a frozen body in the world and in the player list), plus empty leftover connection slots — and it removes the frozen body too, so no manual cleanup is needed.
Ghost players, gone
- Fix"Ghost" players (−1 ping) no longer pile up. Players stuck mid-connect with a −1 ping could accumulate, block new people from joining, and freeze the in-game player list until the server was restarted. The cause is fixed, with an automatic safety net on top.
- FixThe background stats scan no longer interferes with players loading in. The companion's player-stats scan now runs in step with the game instead of alongside it, so it can't disrupt a character loading into the world — the main trigger for those ghost connections.
- FixOne bad quest can't brick a whole save. If a saved character references a quest a mod has since changed or removed, that character now still loads (just without that one quest) instead of failing to load entirely.
- NewAutomatic ghost cleanup. Any client stuck connected with no in-world body for 90 seconds is now disconnected automatically — freeing the slot and stopping the log spam, so a wedged connection can't block your server until a restart. On by default.
- FixRegion header repair no longer risks chunk data. The built-in tool for fixing a corrupted region-file (
.7rg) header was overwriting part of each region's internal chunk index while it repaired the header — which could turn a minor header problem into actually-lost chunks. It now repairs only the 4-byte signature and leaves every chunk's location data untouched.
Panel tab buttons fill the bar
- FixTab buttons now span the full panel width. The row of tab buttons across the top of the in-game ESC panel left a small empty gap on the right edge; the buttons now stretch edge-to-edge with the close button overlapping the last tab.
Windows self-host fix
- FixWindows self-hosted servers. On Windows the agent could fail to find its own config folder, so it never connected — leaving the in-game panel hidden and the
/votelink·/webshop·/website·/discordpopups showing un-clickable links. The agent now reads its folder directly from the game, so Windows hosts work the same as Linux.
In-game panel, leveled up
- NewServer Info tab. An optional tab that auto-fills a table of your live server settings — difficulty, XP rate, loot, PvP, bloodmoon, day length, land-claim rules and more. No typing; the numbers follow your server config.
- NewOne-color accent theme. Pick a single brand color and the whole panel re-skins to match it — borders, tabs, and headers.
- NewPer-tab icons & colors. Choose an icon and hover color for each tab, with a live preview while you pick.
- NewHeader logo & full-width banner. Add your own logo to the panel header, or stretch it edge-to-edge as a full banner across the top.
- NewWelcome-tab content blocks. Build out your Welcome tab with stacked blocks: styled text, images, info rows (label + value), and clickable link buttons.
- New10 languages. The admin panel and in-game messages are now available in English, Spanish, French, German, Portuguese, Russian, Polish, Simplified Chinese, Japanese, and Korean.
- FixPanel header and subtitle now follow your accent color instead of staying dark.
- FixItem-picker icons now load correctly for Windows self-hosters. Recommended update if you run your server on Windows.
- ImprovedChat-command matching is more precise, so commands that share a prefix (like
/tpand/tp2) no longer collide. - ImprovedPrivate messages and gifts reliably reach the right player.
A big community-features day
- NewDiscord status embeds. An opt-in live server embed posts every 15 minutes — players online, uptime, server FPS, next-bloodmoon countdown, zombie/animal counts, the connect IP, and a starred admin list.
- NewRestart & bloodmoon announcements. Scheduled restart warnings (15/10/5/1-minute countdowns with your timezone) and bloodmoon alerts (warnings, a "begun" embed, and a "survived" recap with a per-player kill leaderboard).
- NewMail system. A unified inbox for player-to-player and admin-to-player messages, with reply threads, a personal block list, and an in-game ping for unread mail at login.
- NewLeaderboards & public profiles. An 8-card leaderboard (zombie kills, bloodmoons survived, playtime, daily streak, distance walked, items crafted, longest life, most deaths). Click any player for a public profile with Send Message / Block.
- NewFriend teleport. Players teleport to each other with
/friend(accept/deny prompt, optional party auto-approve, cooldowns, zombie-safety check); admins get/tp2for instant teleport. - NewBetter backups + CSMM import. Server backups now include members, Discord routing, mail, notes, waypoints, land claims, roles and teleports, with per-section restore. Migrating from CSMM? Upload your Patrons export and bring players, wallets, donor tiers, shop and bans across.
- NewChat-window repositioning, a bloodmoon HUD countdown, and a periodic "Players Online" broadcast.
- FixRestored auto-decorated chat names (Owner/Officer tags + role colors) and stopped accidental personal-tenant creation when a player just signs in to shop.
ESC-panel & chat-bridge bug-bash
- NewPopup link commands.
/votelink,/webshop,/websiteand/discordopen clickable in-game popups. - NewCommands tab + item icons in the ESC panel — the full command help in two columns, and item artwork in the shop grid.
- NewEconomy Roles. Full admin management plus a player self-service picker with custom flavor messages.
- FixDiscord chat bridge no longer drops admin messages or leaks Party/Friends chat; the player hub got a redesign; and offline purchases now auto-deliver on next login.
- FixThe in-game ESC "Refuge" panel is back after vanishing in an earlier update.
- FixYour server key is now stored in a durable location, so rebuilding a managed server no longer loses it.
~50 dashboard improvements
- ImprovedBig polish pass across Players, Bans, Console, Scheduler, Items, Packs, Shop, Profiles, Plugins and settings — right-click menus everywhere, console command history + help, scheduler templates with a cron cheat-sheet, shop live-preview, richer player profiles, and the Lua plugin editor with an API reference.
RefugeBot goes public
- Newrefugebot.com is live. A unified landing page, agent download, and setup guide at both refugebot.com and app.refugegaming.org.
- NewA read-only super-admin overview, an install guide, and the ability to pre-invite teammates by Steam ID.
- FixEarly install hiccups sorted (missing runtime files; the agent now auto-detects its setup port from your server config).
- FixResolved an issue that could leave players stuck at "Creating player," and corrected the behavior of 11 staff chat commands.
Catching up to the original RefugeBot
- NewBilling & Discord shared bot went live, plus the Plugin Hub (browse and install community Lua plugins), region backups with auto-snapshots, and tenant backup/restore.
- NewPlayer Bazaar, session tracking, a bloodmoons-survived counter, multi-channel Discord routing, fight-arena embeds, a vehicle tracker, and a web teleport hub.
- Newapp.refugegaming.org is online. The hosted service went live in production, with billing and the first in-game server connected.
RefugeBot becomes a hosted service
- NewRefugeBot was rebuilt from a single in-game mod into a hosted service + lightweight game agent — so your admin dashboard and player shop keep working even when your game server is down (purchases queue and deliver when it reconnects). This is the foundation everything above is built on.
01// BEFORE ALL THIS — THE ALPHA ERA
Before the hosted service, RefugeBot lived entirely as a drop-in 7 Days to Die mod, refined steadily over many internal revisions. Those early builds are where most of today's features were born. Exact dates weren't kept for every revision, so the ones below are approximate.
- NewDiscord sign-in, custom roles, ban/whitelist tools, and one-click full-server backup & restore. The economy "roles" became a configurable plugin where owners build custom roles (heal, repair, give-item) with their own names and perks.
- NewScheduled tasks (automated restarts/saves with a visual builder), live map overlays (entities + land claims with click-to-teleport), a searchable 30-day chat log, and a beefed-up in-panel console.
- ImprovedPlayer history backfill reads existing save files so stats show up even for players who haven't logged in since install; item browser, icon tints, and the player hub login page all got polish.
- ImprovedAuto-detection of your server config and web port so most hosts need zero manual setup, an install wizard that asks where to store data and handles random-world save paths, and an in-panel config-path override for locked-down hosts.
- ImprovedRefugeBot now defaults to a single currency (Coins) — the optional second currency disappears completely when off — and owners can name their own currencies.
- NewDonor Management with configurable tiers and perks (teleport slots, XP/loot multipliers, monthly currency, bazaar access) and two-way Discord role sync.
- NewCross-server shopping from the player hub — browse and buy from any server in your cluster, with purchases queued as pending deliveries — plus an in-panel server-config editor and a built-in install guide.
- NewRole-based accounts (owner / admin / moderator) with per-user logins, a fine-grained permissions editor, multi-owner support, and the ability to transfer the "master" server.
- NewTheme Studio — 10 full color themes plus font, density, and layout customization, with Steam avatars throughout, and the Plugins page reborn as a marketplace.
- NewRun several servers as one cluster — shared shop, packs, plugins, and a shared wallet so a player's coins follow them between servers (with offline queueing so balances are never lost).
- NewCluster Health view (player counts + CPU/RAM/FPS across all servers), a unified admin URL for the whole cluster, and consolidated Discord settings with per-server chat channels and a
/statuscommand.
- NewThe earliest documented RefugeBot: a drop-in mod with a first-run setup wizard, a secure boot password, Steam linking during install, in-app help, and
/payplayer-to-player transfers. - NewThe foundation for clustering — drop the mod on another server and it finds its neighbors and joins with a single code. (Earlier prototypes existed before this point, but weren't kept in the record.)