Changelog

All notable changes to Scummy Map (web app + Discord bot + Tauri overlay) land here. Newest at the top. Versions follow the overlay semver — web and bot ship continuously alongside.

The same content is mirrored to the official Discord on each release.

Downloads redirect removal - 2026-05-30

  • /downloads now links directly to the overlay installer URLs from latest.json instead of sending users through the internal tracked download redirect.

Web catch-up — 2026-05-16

> The Discord changelog ping went quiet after v0.5.15 (May 7) while > nine days of shipping piled up. Highlights below; the full list at > /changelog.

New since 2026-05-07

  • Bounty board at /bounties — status filters, reward sort, Discord-mention badges.
  • Asset marketplace at /marketplace — themes, icon packs, button packs, plugins, map templates.
  • Per-server admin claim — claim a SCUM server via in-game broadcast / AdminUsers.ini token / DNS TXT / Discord-admin invite, then manage it at /serveranks/<slug>/settings.
  • Virtual scummymap servers — create a server with a join code, no Discord required. Squad chat, lost & found, LFG, markers, leaderboard all work. /settings → Servers → Create a scummymap server.
  • Automatic death markers in the overlay — captures coords on death, drops a private pin. Streamer-mode aware.
  • Ctrl+Shift+L locate hotkey in the overlay — opens the in-game map, reads the player dot, drops the coords on the clipboard.
  • Cartoon-style right-click menu on the map with color-coded action discs.
  • Modal-everywhere routing — Profile, Settings, /market, /squads, /marketplace, /bounties open as modals over the map for in-app clicks; direct URLs still hit the full pages.
  • 13 new themes in Settings → Appearance — 43 total.
  • Per-map markers — markers belong to the map you saved them on, not globally.

Shipped today (2026-05-16)

  • Left-edge overlay nav drawer with a circular-icon grid. Replaces the centered top-hover chevron pulldown.
  • Guided tour — auto-runs on first visit, recallable from the avatar menu (Quick tour).
  • Icon Maker actually saves real icons. Custom icons used to render as two letters of text in the picker. Saved icons now appear in a My Icons group at the top of the marker icon picker; designing one in the marker form auto-applies it.
  • Right-click Add shop pin pre-tags the marker as shop instead of dropping you into a blank form.
  • Convert to shop on existing markers actually converts them now (was a coming soon toast).
  • Move to map bulk action opens a target-map picker (your own maps + the default Scummy Map) and moves the selected markers in one shot.
  • v3 chip in the header replaces v2 — making the long-running UI v3 official in the header text.

Channels

  • Stable overlay: com.scummy.overlay — Ctrl+M / Shift+M.
  • Dev overlay: com.scummy.overlay.dev — F9 / Shift+F9.
  • Same binary on both channels; channels diverge again when the next iteration starts.

Wave 3.1 — 2026-05-15 (modal hardening)

Fixed: stuck modals, leaking page navigation, marketplace asset 404

  • ModalLink is now context-aware. A ModalContextProvider mounted by RouteModal lets ModalLink use router.replace() when rendered inside a modal (forces the @modal parallel slot to re-resolve, fixing the "modal stuck on top of destination page" bug) and router.push() when rendered on a full page. Drop-in replacement for next/link in both contexts.
  • Swept ~60 components and pages to use ModalLink as Link. Every link previously rendered inside a RouteModal now closes the modal cleanly when navigating out, instead of leaving the modal overlaid.
  • /marketplace/[slug] asset detail page added (full page + intercepted modal). Clicking a marketplace asset used to 404 — now opens as a nested modal over the map.
  • Nested modal flows for /market/[slug] (item detail) and /squads/[id] (squad detail). Extracted page bodies into MarketItemDetail, SquadDetailContent, MarketplaceAssetDetail so the same content renders inside RouteModal for the modal intercept and inside a normal <main> for the full page (deep links / refresh).

Wave 3 — 2026-05-15

Bounty board, cartoon menus, dockable panels, monetization scaffolding

  • Public bounty board at /bounties (full page + modal). Status filters, reward sort, expiring sort, pagination, Discord-mention badges, status-tinted cards mirroring the in-Discord renderer.
  • Cartoon-style map right-click menu — color-coded icon discs, header strip with flavor + in-game coords, bouncy entrance, hover wiggle on icons.
  • Dockable panel system — wrap any panel in DockablePanel for a Discord-overlay-style edit mode (Ctrl+E). Dashed borders, drag handles, resize corner. Panel-to-panel edge snap + half-screen / quarter-screen snap. Layout presets (Default / Streaming / Mobile / Tactical) saved to localStorage. Infrastructure shipped; wrapping the live MarkerPanel + toolbar is the next-session follow-up.
  • Reusable right-click ContextMenu for any non-map UI surface — useContextMenu(items) hook + portal-rendered menu with Esc / outside / scroll dismiss, danger items, submenu support.
  • Asset marketplace at /marketplace — community themes, icon packs, button packs, plugins, map templates. Manifest + bundle hashing, declared capabilities, default 70/30 revenue split. Storefront page + intercepted modal landed; submission flow + plugin runtime sandbox queued.
  • Per-server admin system with four claim methods: in-game #Announce SCUMMY-CLAIM:<token> broadcast, AdminUsers.ini token file, DNS TXT record on a domain that A-records to the server IP, Discord-admin invite codes. Claim page at /serveranks/<slug>/claim, settings hub at /serveranks/<slug>/settings. isServerAdmin() helper hard-gates server-config UI.
  • Server-admin overlay ads — schema + API for 7 ad types × 6 placements × 3 tiers (free / featured / house). Players can buy ad-free; admins earn a commission, we take a cut. Submission UI is next-session.
  • MapPicker live search in the community-maps browse view (name / code / author).
  • NavDrawer overhaul — fully transparent panel so the icon cards float over the map. Richer multi-path icons across every section. Profile entry removed (the avatar menu owns it). Bounty board entry added.
  • UserAvatarMenu — always-on accent ring + chevron-down badge so the avatar visibly reads as a menu trigger.
  • MapAuthorBadge — bottom-left bio strip (avatar disc + "By: \<name\>") replaces the inline "by" pill in the header. Map name carries a tooltip with the creator.
  • ModalLink — drop-in <Link> replacement for use inside intercepted modal routes. Works around the Next.js parallel-slot bug where the modal stayed visible on top of the destination page.
  • 13 new themes — Ember, Ocean, Plasma, Toxic, Espresso, Mint, Lavender, Cherry, Steel, Bumblebee, Sandstone, Arctic, Onyx. Total 23 themes available.

UX overhaul — Wave 2 — 2026-05-14

> The non-Discord path lands. You can now create a scummymap server > with a join code and share it with friends who don't have Discord — > markers, lost-and-found, LFG, leaderboard, and squad chat all work > identically on the virtual server. The marketplace stays Discord-only > by design (it's driven by the Discord bot). When that external bot > falls behind, the marketplace banner tells you so.

Added

  • Virtual scummymap serverssquads.kind='scummy' rows with

discord_guild_id=null. Create from `/settings → Servers → "Create a scummymap server"`. Generates an invite code via the existing squad_invites flow. Owner gets a shareable URL …/join/<code>.

  • /join/[code] landing + intercepted modal variant. Renders an

invite preview (server name, owner, member count) with Accept/Decline buttons. Unknown codes render a friendly "Invite not found" page.

  • Server picker badgesMarketServerPicker lists virtual squads

alongside Discord squads with a visible badge so users know which kind they're switching to.

  • Bot heartbeat — new GET /api/web/bot-heartbeat reads the most

recent inbound event timestamp from bot_command_usage. Marketplace pages render a non-dismissable banner when stale: **"Primary bot offline — using scummymap fallback"**. Threshold defaults to 5 minutes; override via WHALLEY_BOT_STALE_AFTER_MINUTES. Cold-DB state (no rows yet) correctly suppresses the banner.

Changed

  • ApiMySquad.discordGuildId is now nullable to support virtual squads.
  • Marketplace + storefront create/edit flows gate on kind='discord'

squads — virtual squads use everything else in scummymap but the Discord-driven marketplace stays Discord-only.

Added (overlay — epic F + G)

  • Automatic death markers (apps/overlay/src-tauri/src/death_detector.rs).

Reuses the existing screen-capture pipeline (no new capture loop). Two-pass heuristic — dark-pixel ratio + near-pure-red pixels in the top 25% of the frame — catches SCUM's "You died" screen without false-positiving loading screens or HUD reds. Rolling 10-second GPS position buffer; if no recent coord reading the event saves "coords unknown" instead of fake data. 30-second debounce. **Streamer-mode aware** — toast suppressed, marker still saves silently.

  • Ctrl+Shift+L locate hotkey (apps/overlay/src-tauri/src/auto_map.rs).

Sends M to the SCUM HWND via PostMessage(WM_KEYDOWN/UP, VK_M) — scoped to the SCUM window, NOT a global SendInput. Captures the M-map frame, detects the player dot, sends M to close, copies the coords (in the same in-game X=… Y=… format the Wave 1 paste-coords feature accepts) to the clipboard, toasts the result. 2-second throttle.

  • MapClient → overlay session bridge. When the WebView is inside

the overlay, MapClient calls `invoke('set_overlay_session', { discordId, mapId })` on session + active map changes so the Rust pipeline has the right context for its marker POSTs. No-op in regular browsers.

BattlEye safety: every overlay-side feature lands on the same constraints — no process attach, no DLL/IAT hooks, no kernel work, no direct memory reads of the SCUM process. Screen capture + user-mode Windows APIs only (same primitives streamers/OBS use without bans).

Deferred (queued for follow-up; kt was paused mid-overhaul)

  • /servers/community directory of squads.discoverable='true' rows
  • Fallback log-tail ingest skeleton for chat.log-driven /buy /sell
  • Per-guild heartbeat thresholds + per-guild banners
  • The 5 dropped Wave 1 settings toggles (analytics opt-out, public

profile listing, hide leaderboard, display name edit, avatar upload form) once their consumers land

  • Bulk "Move to map" wiring once the map picker UI lands

UX overhaul — Wave 1.5 — 2026-05-14

> Per-map marker scoping + modal-everywhere routing. Markers now > belong to the map you saved them on, not to the user globally. Profile, > settings, lost-and-found, LFG, market, and storefronts all open as > modals over the map for in-app clicks — direct URLs still hit the > full pages for SEO and shareable deep links.

Added

  • Per-map marker scopingmarkers.map_id is now NOT NULL on every

row including private. Migration 0027 backfills existing nulls to DEFAULT_MAP_ID; migration 0028 enforces the constraint idempotently. The marker list/get/filter API always scopes by the active map id.

  • Map-copy migration prompt — duplicating a map in the MapPicker now

asks: "Bring my markers, or start fresh?" Bring copies your private markers from the source map into the new map id; Start fresh creates the map empty.

  • Modal-everywhere routing — new @modal parallel slot in the root

layout with intercepted route variants for /settings, `/profile/ [discordId], /lostfound (+ detail), /lfg, /market` entry shell, and /storefronts/me. Client-side <Link> clicks render the modal over the previous view; the map stays mounted underneath. Hard refresh / direct URL / share link land on the full-page version — SEO and deep links unaffected.

Changed

  • POST /api/web/markers and the internal marker create require mapId

for every kind (previously private was optional).

  • Each modal-able route refactored into a shared *PageContent server

component the full-page route and the interceptor both render.

Fixed

  • (Caught in smoke before merge) Next.js parallel routes required a

default.tsx at every directory level inside @modal, not just the slot root. Without it, client-side nav crashed with `TypeError: initialTree is not iterable`. Added 10 null-returning default files and moved {modal} inside <ThemeProvider> so it shares the context tree.

Coming next

Wave 2 — virtual scummymap server (non-Discord squads + WhalleyBot-down resilience) and overlay-driven death markers + auto-open in-game map.


UX overhaul — Wave 1 — 2026-05-14

> The biggest single web-side push since the radial picker. Right-click > everywhere, paste in-game coords, slim marker panel, avatar-only header, > three sign-in providers, a real settings panel, custom icons. Kills the > single-vs-double-click tangle that broke lost-and-found and unlocks the > non-Discord path for everyone who doesn't want a Discord account.

Added

  • Right-click context menu on the map, on markers, and on POIs.

Map flavor: Add saved location · Add lost/found · Add shop pin · Drop GPS pin · Paste coordinates here · Copy coords here · Center map here. Marker flavor (own): Edit · Delete · Change icon · Share link · Copy coords · Convert to lost-found / shop. Marker flavor (other user): Share · Copy coords · Report. POI flavor: Open detail · Copy coords · Share. Long-press is the same menu on touch.

  • SCUM coordinate paste (apps/web/src/lib/coords.ts). Parses the in-game

X=12345.6 Y=-23456.7 Z=0 format, the /teleport chat command, and bare number pairs / triples. Paste anywhere on the map → fly-to + pending pin. Reverse direction: right-click → Copy coords emits the same format for in-game paste.

  • Slim marker panel (MarkerPanel.tsx). Replaces the bulky stacked

panel with a ~280 px left rail (24 px edge tab on mobile). Compact 32 px rows, group headers (Saved · Lost & Found · Shops · Deaths · Shared with me), filter chips by kind + age + visibility, hover preview, shift-click multi-select with bulk delete / export / change visibility.

  • Header avatar-only menuHeaderBarV3 user pill is now a single

32 px avatar button opening a dropdown (Profile · Settings · Wallet · Sign out · Switch account). Avatar priority: Discord avatar → uploaded scummymap-account avatar → letter-initial fallback.

  • /login with three providers — Discord OAuth (existing), Steam

OpenID 2.0, email + password. Steam button renders disabled with a tooltip when STEAM_OPENID_REALM / STEAM_OPENID_RETURN_URL are unset. Email signup logs the verification URL to stdout when no mailer is configured (so admins can dev-test without external services).

  • /settings route + 6-section panel — Account, Appearance, Map,

Markers, Servers, Privacy. Backed by a real user_prefs table (packages/db/drizzle/0026_green_daredevil.sql) with a localStorage read-through cache and a one-time migration for existing keys.

  • Custom icon maker in Settings → Appearance. Compose a marker icon

from shape (circle / square / rounded-square / diamond / shield / hex) + bg color + glyph + glyph color, save to user_icons, use it anywhere in the marker creation flow.

  • Theme picker promoted out of /devbranch into Settings → Appearance —

all 30+ themes now available to every signed-in user.

Changed

  • placing state machine on the map no longer drives lost-found / LFG

marker creation; those flows are imperative through the new context menu. Single-click and double-click no longer compete.

  • Session widened: userId (uuid), scummymapAvatarUrl, identity

provider hint.

  • users.discord_id is now nullable to support email- and Steam-only

accounts.

Schema

  • New tables: user_prefs, user_icons.
  • New columns on users: scummymap_avatar_url, email_verified,

password_hash, display_name. Unique constraint on email.

  • Migration 0026_green_daredevil.sql ships idempotent (`ADD COLUMN IF

NOT EXISTS, constraints wrapped in DO $$ EXCEPTION`) to survive drift on environments that picked up schema additions out-of-band.

Follow-ups filed (KT)

  • #329 — apply migration 0026_green_daredevil.sql to prod
  • #330 — wire the 5 toggles dropped from this PR (analytics opt-out,

public profile listing, hide leaderboard, display name edit form, avatar upload form) once their consumers land

  • #331 — wire bulk "Move to map" once Epic 3's map picker exists

Coming next

Wave 1.5 (per-map marker scoping + map-copy migration prompt; modal- everywhere routing) and Wave 2 (virtual scummymap server for non-Discord users + WhalleyBot-down resilience; overlay-driven death markers + auto- open in-game map).


/serveranks — SEO server-discovery hub — 2026-05-10

> New top-level page at /serveranks aggregating every public SCUM > server with live player counts, Discord-OAuth-gated star votes, and > auto-extracted community links. Top-of-funnel for the ad portfolio > per the IDEAS.md SEO plan.

Added

  • /serveranks hub (apps/web/src/app/serveranks/page.tsx) — SSR

list with filter chips (region, PvP/PvE, modded, official, online, has-Discord), composite-score ranking, live-player progress bars, and rank ribbons per card. Hero band shows total servers / online now / live player count. Schema.org ItemList markup for SEO.

  • /serveranks/[slug] detail page — A2S RULES dump, sparkline of

recent player counts, external rating link-outs, scraped reviews panel, comment feed from Discord-OAuth votes, schema.org Product + AggregateRating + Review markup, and a steam://connect/... launch button.

  • Discord/website/Twitch/YouTube/Steam-group extractor — every

server card surfaces the operator's community links auto-extracted from A2S name + keywords + RULES. Owner-claimed servers' curated links override the auto-extract.

  • /serveranks ingester in the bot worker (mirrors

death-feed-worker pattern). Cycle: Steam IGameServersService / GetServerList → A2S_INFO/PLAYER/RULES on top-N + a rotating page → composite-score recompute. Concurrency-capped UDP queries with challenge handshake + split-packet reassembly (apps/bot/src/lib/a2s.ts).

  • Discord-OAuth-gated voting at

/api/web/serveranks/[slug]/vote (POST/DELETE). One vote per Discord account, mutable (rating + optional comment up to 1000 chars). Persisted in our DB; never relies on third-party rank.

  • 5 new DB tables via migration 0024_serveranks.sql:

external_servers, server_snapshots, server_ratings_external, server_votes, server_reviews_external.

  • Research foundation at

docs/research/scum-server-ranking-sites.md — every public SCUM server-list site cataloged with API surface, ToS posture, sample records.

Compliance

  • BattleMetrics ToS forbids storing their derived rank/score for

republication. We store only their server ID for deep-linking and fetch live ranks at render time. No persisted republish.


v0.5.17 — Silent install self-heal — 2026-05-17

> Fixes a silent auto-update failure. Some users on v0.5.15/v0.5.16 saw > the in-app updater report "Installed" while the running binary stayed on > the older version — the Tauri/NSIS passive-install flow races against > the still-running exe's lock and silently skips the file replacement. > v0.5.17 adds a self-heal that runs on every launch and quietly fixes > this without showing anything to the user.

Added

  • Install audit thread (Windows-only). At every startup, the overlay:

- Enumerates install copies of the current channel under %LOCALAPPDATA%, %LOCALAPPDATA%\Programs, and %PROGRAMFILES%. - If a newer installer is cached in %TEMP%\scummy_map overlay--updater- (the Tauri updater dropped it but the install no-op'd), silently re-fires it after exiting so NSIS can replace files without a lock fight. - If a different on-disk copy is a newer version than what's running, silently re-execs into it (handles "wrong shortcut" / stale launcher). - Uninstalls older loser copies via their uninstall.exe /S so the machine ends up with a single canonical install. - Garbage-collects stale updater Temp dirs (keeps the newest one for postmortem, deletes the rest). Some machines had 25+ accumulated. - Writes a full audit report to %APPDATA%\com.scummy.overlay\install-audit.log for diagnosis.

  • get_install_audit Tauri command so future Settings UI can display

what the audit found without opening a log file.

Notes

  • Channel-aware: stable and dev each only manage their own copies. They

share %TEMP%, distinguished by product-name prefix.

  • The audit is conservative by design: equal-version copies are never

uninstalled, equal-version cached installers are never retried. Destructive paths only fire when there's a clearly-newer winner.


v0.5.16 — Streamer mode — 2026-05-09

> Opt-in anti-stream-snipe mask for streamers and content creators. > Off by default — flip it on before going live.

Added

  • Streamer Mode (web + Tauri overlay). Master toggle plus Casual /

Hardcore presets and 23 granular toggles, persisted in localStorage. Reachable from both the existing bottom-right gear and a new top-of-overlay gear button in HeaderBar V3 (Tauri-only).

  • Red Streamer pill next to both gear buttons whenever streamer

mode is on, so the user can verify they're masked before going live.

  • Live masking on the highest-leak surfaces:

- HeaderBar Steam username → "Streamer" + avatar swap - MarketServerPicker server name → region only ("EU server") - MapClient self-pin hidden / sector-only blur for route panel coords - Auto-pin event suppression (RCON / log tail) - Squadmate live positions hidden

  • Downstream gating (kill feed names, login history, chat monitor,

bans/audit, LFG/listing surfaces, toasts, bunker timers, POI tooltips) attaches via useStreamerMode() in follow-up commits — the hook + flag schema is stable.

> Proposed by Zilla. Thanks!


v0.5.15 — UI v3 promotion + map polish — 2026-05-07

> Stable + dev are aligned at this version. Same overlay binary on > both channels, only the identifier / hotkey / update endpoint differ. > The redesigned UI that was dev-only for the past two days is now the > default for everyone.

Added

  • Redesigned header (V3) is now default for everyone. Slim header

with a centered chevron pulldown that opens a grid of large rounded cards grouped by category (You, Squad & community, Marketplace, Tools & reference, About, Admin). Replaces the old horizontal nav rail.

  • Map Tools menu is the default — the cluster of top-left buttons

(Server info, Edit map, Server config, Share to squad) collapsed into a single Tools pill so the map stays readable on smaller viewports.

  • Click-to-capture location button on the overlay (bottom-left).

Same behavior as the F8 hotkey for users who'd rather click. Label shows the live hotkey so it stays in sync if you've rebound it.

Fixed

  • Squad markers actually attach to your squad now. Squad-visibility

markers were saving with no squadId, so two members of the same squad couldn't see each other's pins. Reported by ComoAP. Three orphaned markers were repaired in place — no replacements needed.

  • Map renders on tiny phone viewports. A zoom-independent overview

layer paints below the tile pyramid so the whole island stays visible on small screens; previously fitBounds could pull the camera below the pyramid's minimum zoom and leave a black canvas.

  • Hover focus + render every icon in dense stacks. MapLibre was

silently hiding overlapping POI / marker icons. Now every icon renders, the hovered one bumps ~25–35% bigger and sorts above its neighbors, and the selected/active icon also draws on top.

Squad management

  • Squad icon URL field with live preview disc.
  • Inline role change (member ↔ officer ↔ leader) on each member row.
  • Earlier this day: rename squad, delete squad (cascade), add member

by Discord ID, per-row remove, copyable squad ID chip.

Channels

  • Stable: com.scummy.overlay — Ctrl+M / Shift+M hotkeys, updates from

/downloads/latest.json.

  • Dev: com.scummy.overlay.dev — F9 / Shift+F9 hotkeys, updates from

/downloads/dev/latest.json. Same UI as stable now that V3 is promoted; dev is the staging ground for the next iteration.


v0.5.13 — Stable hotfix — 2026-05-07

> Stable channel. First signed stable release + everything that's been > validated on the dev channel since v0.5.7 promoted at once.

Added

  • Code-signed installer. The .exe is now Authenticode-signed via Azure

Trusted Signing — Smart App Control no longer blocks fresh downloads from scummymap.com. The existing minisign auto-updater chain is unchanged, so any v0.5.7 install will pull v0.5.13 normally.

  • F8 screen-capture sensor (phases 1–3). Press F8 with the SCUM

in-game map (M) open and the overlay finds the red player marker on the captured frame, decodes your game coordinates, and posts them to the existing "I am here" pin on scummymap.com. F8 also reveals the overlay if hidden and reframes the camera to the same patch SCUM shows in-game.

  • Responsive capture calibration. Pin precision now adapts to any

SCUM window size (full-screen down to a 500-px shrunk window). Old fixed-fraction calibration only worked at one specific aspect ratio.

  • GPS pin redesign. Circular pulsing marker in the spirit of a

live-location dot, plus a 5-colour theme picker (Pin button in the toolbar) so the marker stands out against your preferred map theme.

  • GPS pin click → share / teleport menu. Click your GPS pin for a

popup with sector + raw coords, Copy share link (drops a highlight pin for the recipient at the same spot), **Copy as #Teleport (admin command, replace PlayerName), and a Clear position** button.

  • "Copy as #Teleport" coordinate chip. Click anywhere on the map

→ bottom-right cursor chip → grab a paste-ready admin command for that point (in addition to the GPS-pin path).

  • Capture failure notice. When F8 captures but no player marker

is detected (in-game map closed, paused menu, etc.) you get a clear in-overlay banner explaining what happened.

Changed

  • Click → drop is now double-click. Single-clicking the map only

deselects open detail panels — no more accidental marker drops while panning. Double-click drops a pin (in placement mode) or focuses the camera on a marker / POI under the cursor (with a share / teleport popup of its own).

  • Right-click pending pin = dismiss placement. The unsaved red

pin from a double-click now dismisses (and closes the new-marker modal) on right-click. Right-click elsewhere keeps the browser's native menu.

  • Header dropdowns float. Map picker, server picker, and theme

switcher all fixed an overflow-x clip that was hiding their dropdowns inside the nav strip. Reported by ComoAP (couldn't switch off the default map).

Squad management

  • Squad ID is visible + copy chip. Reported by ComoAP ("I

can't find any squad ID or any way to add people in the squad menu").

  • Add member by Discord user ID. Leaders any role; officers can

add at the member role.

  • Per-row Remove buttons for non-leader members (leader-only).
  • Rename squad inline (leader-only). Suggested by ComoAP.
  • Delete squad with double confirmation (confirm + retype name).

Cascades clean up squad-scoped rows. Suggested by ComoAP.

Notes

  • Existing v0.5.7 stable installs auto-update to v0.5.13 silently —

the auto-updater banner is back on now that the dev channel exists to vet builds before they reach stable.


Squads + map polish — 2026-05-07

> Web-only soft update. Ctrl+Shift+R or restart the overlay to pull the > latest scummymap.com inside it.

Fixed

  • Squad markers now actually attach to your squad. A bug in the web

marker writer left squad-visibility markers with no squadId, so two members of the same squad couldn't see each other's pins. The API now auto-resolves the right squad from the map's linked guild (or the user's only squad as a fallback). Three orphaned markers in prod were repaired in place — no replacements needed. Reported by ComoAP.

  • Map renders on tiny phone viewports. A zoom-independent overview

image now paints below the tile pyramid, so the whole island stays visible on small screens where fitBounds used to pull the camera below the pyramid's minimum zoom and leave a black canvas.

  • Hover focus + render every icon in dense stacks. MapLibre's

collision pass was silently hiding overlapping POI / marker icons. Both layers now render every icon, the hovered one bumps ~25–35% bigger and sorts above its neighbors, and the selected/active icon also draws on top.

Added

  • Squad icon URL + inline role change. Squad leaders can paste an

icon URL (live preview disc), and promote / demote existing members inline from the member row instead of removing-and-re-adding them.

  • Click-to-capture location button on the Tauri overlay (bottom-left).

Same path as the F8 hotkey — for users who'd rather click than reach for the keyboard. Shows the live hotkey label so it stays in sync if you've rebound it in Settings.


Squad management UI — 2026-05-07

Added

  • Squad ID is visible. The squad detail page now shows the squad ID in

a copy-to-clipboard chip so leaders have something concrete to share with friends. Web-created squads suppress the synthetic guild ID since it's not useful externally. Reported by ComoAP ("I can't find any squad ID or any way to add people in the squad menu").

  • Add member by Discord user ID. Leaders can add at any role

(member / officer / leader); officers can add at the member role only. Surfaces a friendly error if the target hasn't signed in to scummymap.com once, so the leader knows to ask them to do that.

  • Per-row remove buttons for non-leader members (leader-only). The

current leader can't be removed — promote someone else first.

  • Rename squad inline (leader-only). Suggested by ComoAP.
  • Delete squad with double confirmation (confirm dialog + retype the

squad name). Cascades clean up squad-scoped rows (members, loyalty, lostfound, listings, reviews). Suggested by ComoAP.


v0.5.10-dev — 2026-05-07

> Dev-channel build. Stable users will not see this update; admins running > com.scummy.overlay.dev (the dev-channel install) will.

Changed

  • Faster F8 → pin. Detection now runs against the in-memory captured

frame instead of reading the saved PNG back, so the auto-pin lands before the PNG even hits disk. ~3× shorter perceived latency.

  • F8 reveals the overlay if hidden and reframes the camera to the

whole tile patch — same scale as SCUM's in-game map, so transitioning from the in-game map (M) to our overlay feels like the same view, just ours. (Previously the camera flew in tight to z=6, which clashed with the wider in-game framing.)

  • Toast moved to dev-channel-only. The "Captured WxH from <window>"

diagnostic toast now only fires on dev builds (#[cfg(feature = "dev")]). Stable users still get the auto-pin (functional outcome) silently — no notification noise.

Notes

  • Detection precision is still bound by the fractional calibration

(MAP_*_FRAC) tuned on a single 4K capture. A "Capture calibration" UI is the next pass for users whose UI scale or display mode produces a different in-game-map layout.


v0.5.9-dev — 2026-05-07

> Dev-channel build. Stable users will not see this update; admins running > com.scummy.overlay.dev (the dev-channel install) will.

Added

  • Screen-capture sensor (phase 2, position decode). Pressing F8 with

the SCUM in-game map (M) open now finds the red player marker on the captured frame and posts your game coordinates to the existing "I am here" pin on scummymap.com — same auto-pin-position event the log- tail tracker already uses, so your live position lands on the map without anything else to configure. The toast shows the detected game coords and a "pinned on the map" line; if no marker was found it explains the most likely cause (the in-game map UI wasn't open). Calibration is tuned against a 4K-ish capture (3835×2100) — if your resolution / UI scale produces a different layout, the marker may detect outside the map rect and we'll skip pinning rather than plant a wildly wrong pin. A "Capture calibration" Settings UI is the next pass.


v0.5.8-dev — 2026-05-07

> Dev-channel build. Stable users will not see this update; admins running > com.scummy.overlay.dev (the dev-channel install) will.

Added

  • Screen-capture sensor (phase 1, manual hotkey). The overlay can now

snap a PNG of the SCUM client window on demand. Open the in-game map (M) and press F8 (configurable in Settings → "Capture in-game map"); the PNG lands in the overlay's AppData/captures/ folder and a toast confirms the capture. BattlEye-safe: this uses the same GDI / Windows Graphics Capture APIs that OBS and Discord screen-share use, with no game-process memory access. A future build will add player-marker detection so the captured frame auto-pins your position on scummymap.com — for now this lands the pipeline + invites you to send a sample capture so we can build the matcher.


Unreleased

Fixed

  • Map no longer pinned to the left side. The SCUM tile patch was sitting

at the world's western edge in the Mercator pyramid, and `renderWorldCopies: false` (which we need to prevent ghost-island duplication on pitch+pan) forced the camera to clamp east — gluing the island to the left of any viewport wider than the patch at the chosen zoom. Shifted the patch one quadrant east in the pyramid (lng=-90..0 instead of -180..-90); the disk layout is unchanged, a transformRequest translates MapLibre's tile-x back to disk coords. Camera now centers correctly on every aspect ratio.

  • Regular layer redesigned so it doesn't look identical to Climate.

Both layers shared the biome palette, so even with stronger hillshade the Regular layer read as "the climate map with subtle 3D." Re-rendered Regular as a topographic shaded-relief view: off-white base + 25% biome tint + strong hillshade (0.20/0.80 swing). Climate keeps the saturated biome zones + Mountain overlay it had before. The two layers now read as visibly different on first glance — Regular is "what does the terrain look like", Climate is "where is each biome".

  • Map no longer stuck in a corner on resize. When the controls toolbar

wrapped onto a second row on narrow viewports, or the left sidebar toggled, MapLibre's internal viewport went stale. A ResizeObserver on the map container now fires resize() on every layout shift, plus retry fitBounds kicks at 100ms / 500ms after mount catch any late shifts.

  • High-zoom blur reduced. Capped maxZoom at 6 (the tile pyramid's

native ceiling) and switched the slicer from BILINEAR to LANCZOS so terrain detail survives the upsample.

Changed

  • "Heatmap" toolbar button renamed to "POI Density" and moved next to

POI Legend. The old name made it sound like another base map (Climate / Elevation) — the button actually overlays a heat layer that lights up clusters of currently-visible POIs on top of whatever base map you have selected. The Water toggle's tooltip now also calls out that it's most useful on Climate / Elevation, where water otherwise blends in.

New

  • Custom POI authoring (map editors). In edit mode, click + Add POI

and drop a POI anywhere on the map. Pick from the same extracted-categories palette the legend uses, give it a name, save. Editors get an inline delete button on any POI they've added. Authorization runs through the existing owner / co-editor checks — non-editors and the default map are read-only.

  • POI density heatmap. Toolbar POI Density toggle paints a translucent

density layer keyed off the POIs you currently have visible — so toggling off animals or fishing spots reshapes the heat to match what you actually care about. Useful for spotting cluster zones at a glance.

  • Water overlay toggle. Toolbar Water button overlays a blue-tinted

water mask on top of any base layer, so rivers / lakes / coastline pop on the climate and elevation maps where waterways otherwise blend in. Rendered by the tiler from the extracted T_Expanded_Island_OceanLakeRiver_Mask.

  • /loot search page. Full-text search across every item in the SCUM

loot tables (ILTN_*.json), filterable by spawn location. Type "AKM" or "painkillers" or "Aimpoint" — see every place it drops, sorted by rarity. Index is rebuilt on each extractor run (so it tracks game patches). New "Loot" link in the header.

New

  • Soft-refresh tip + button. Web changes ship continuously, so the

overlay can fall behind if the WebView caches an older version. The Settings menu now has a "Reload now" button plus a hint about pressing Ctrl+Shift+R to pull the latest web changes without reinstalling. The same hint also appears in the update banner. Reported by Sleepyyeit.

  • Settings menu lives inside the overlay now. Click the gear icon in

the bottom-right (next to the opacity slider) to open it without spawning a separate window. Same controls — opacity, click-through, autostart, hotkey rebinding, update check + install. Reported by Sleepyyeit.

  • POI Legend is resizable. Drag the bottom edge of the open legend

to set how tall it is — height persists across reloads. The fully- collapsed (title-only) state still works via the disclosure arrow, but you no longer have to choose between "all-or-nothing." Reported by Sleepyyeit.

  • Map code is now a click-to-copy button. Codes render in

uppercase + monospace at a readable size, and clicking the code itself copies it to your clipboard (no more squinting at a tiny grey string and reaching for a separate icon). The same button appears next to every map row in the picker dropdown and at the top of the Map Settings drawer. Reported by Sleepyyeit.

  • "Map by: <name>" hover tooltip on every row in the picker

dropdown so you can tell at a glance who created a map without opening it. Reported by Sleepyyeit.

  • Saved maps in the picker. Hover a row and a "+" button appears —

click it to pin that map to a new "Saved" section at the top of the dropdown. Pinned maps stay until you remove them (no 8-item cap like Recent), so you can keep your favorite community maps one click away. Reported by Sleepyyeit.

  • First-party POI layers from the extractor. With the .pak wall

cracked, we now seed the map directly from the game's level files (1M+ actor placements scanned). The first batch surfaces 12 new layers — quest books, quest deposit bins, sentry zones, razor spawns, killbox rooms, mine entrances, wells, water pumps, water silos, animal feeders, fishing zones, watchtowers — and the one Sleepyyeit asked for: Decorative fountains (the courtyard / town-square stone fountains used as quest landmarks, distinct from the spigot-style entries already in the Water sources layer). Reported by Sleepyyeit.

New

  • 8 more first-party POI layers from the extractor pipeline. Police

stations, hospitals, churches, schools, pharmacies, restaurants, caves, and ATMs — all surfaced from the extracted .pak data via two new matchers: a umap-filename pattern (e.g. ..._Samobor_02_PoliceStation → one police-station POI at the actor centroid) and an actor-name pattern with a 2 km spatial-grid dedupe (so multi-piece BPs like pharmacies and ATMs collapse to one POI per building). Total first-party categories: 21 (was 13).

  • Public-content moderation filter. Public maps and markers can be

shared with anyone, so a server-side filter now rejects hateful or prejudiced language at the API edge — applied to map name / description / server-rules, marker name / notes, and custom POI display names. The check is leetspeak-tolerant (folds 0→o, 1→i, @→a, etc., collapses repeated characters, ignores punctuation) so obvious bypasses don&rsquo;t slip through. Runs on every submission regardless of public/private flag, because visibility can be flipped later. Live status on /migrationtest; long-term plan is to migrate the term list into a DB table so admins can extend it without a code deploy.

Fixed

  • Map no longer tiles infinitely sideways in 3D mode. Right-click

pitch + pan was exposing duplicate copies of the SCUM Island repeating off to either side. Set renderWorldCopies: false on MapLibre — the island lives in a finite patch of the Mercator pyramid, the ±360°-longitude wrap MapLibre does for globe-style maps doesn&rsquo;t apply here. Reported by Joel.

Changed

  • Visible attribution to scum-map.com + tactical layer removed. The

current POI catalogue and the regular base-map tiles were sourced from scum-map.com — that should have been credited prominently from day one and wasn&rsquo;t. Fixed: there&rsquo;s now a source-attribution badge inline on the map (bottom-right), a "Credits" link in the header, and a full breakdown at /credits. The tactical (topographic) tile layer was removed entirely — those tiles were rendered by the scum-map.com team and we were redistributing them; the layer will return only once we render our own from the extracted heightmap. A migration onto fully first-party data is in flight; live status board at /migrationtest. Reported by the scum-map.com creator — thank you for the generous tone.

Fixed

  • All map icons are back. Shipping the new extractor dataset

alongside the older scraped dataset briefly blanked the map — the POI API picked "the single most-recent dataset" and the fresher extractor row silently dropped the 7,223 scraped POIs from the response. The API now returns the latest dataset per source and unions them, so wiki + extractor coexist (8,214 POIs total). If your map is still empty, soft-refresh once more.

  • "Open settings" from the update banner now actually opens settings.

Previously it spawned a separate Tauri window that loaded behind the always-on-top overlay, so visually nothing happened. The button now opens the new in-overlay menu. Reported by Sleepyyeit.

  • "Created by" watermark moved to bottom-center so it no longer

overlaps the MapLibre distance/scale tool (bottom-left) or the recenter button (bottom-right). Reported by Sleepyyeit.

  • Map picker dropdown stays inside the viewport. Long recents lists

used to extend past the screen edge with parts clipped; the dropdown now caps to viewport height with internal scrolling. Reported by Sleepyyeit.

  • **Clicking your own listed public map no longer accidentally

duplicates it.** The hover-revealed fork icon was overlapping the active row's click area in the picker's Browse view; the icon is now hidden for the currently-active map. Reported by Sleepyyeit.


Web Write Surface — 2026-05-06

Every read-only page from Community Update 3 is now actionable directly on scummymap.com — you no longer have to drop into Discord to post / sell / claim / review. Bot still works the same, both surfaces hit the same API.

Marketplace

  • /market/post — listing creation form. Item autocomplete,

price seeded from the trader sell price, expires-in selector (default 7 days), trade and wanted listing types supported.

  • /market/listings/me — Edit / Mark Sold / Cancel buttons per

row. Mark Sold takes optional buyer Discord ID + final price + quantity; Edit patches only the changed fields.

  • "+ Post a listing" CTA on /market for signed-in users.

Lost & Found

  • /lostfound/post — Lost / Found / Sighting toggle, item slug

autocomplete, sector dropdown + optional X/Y, reward.

  • Detail pages get action buttons — Claim (non-reporter, open),

Resolve with-or-without reward (reporter, claimed), Cancel (reporter, open). Reward payout flows through the wallet on resolve.

LFG / missions / quests / events

  • /lfg/post — kind chips (LFG / Mission / Quest / Event),

title, description, datetime-local schedule, duration, max-participants, location, reward cash + xp.

  • Detail pages get action buttons — Join, Leave (non-host),

Complete (host + active — distributes rewards), Cancel (host).

Reviews

  • /profile/<id>?server=<g> now has a Leave-a-Review form —

five 💩 buttons (1 = top tier, 5 = avoid), 500-char comment, context picker. Hidden when viewing your own profile. Review-by- context (specific trade / LFG) is still bot-only for now since the web doesn't yet have the trade/LFG ID picker.

Server rewards

  • /rewards/<guildId> has live action buttons:

- Claim Login Bonus — one-click idempotent. - Claim Playtime — minutes-played input + button. - Buy Lottery Tickets — quantity input (1-100) + button, with wallet preview.

Auth model

Every write goes through the existing Discord OAuth session — actor identity is stamped server-side from the cookie, never trusted from the client body. Unauthed visitors get a sign-in nudge.


Community Update 3 — 2026-05-06

A huge community-features wave plus map quality-of-life. Six new end-to-end features across Discord + the web app, all live on scummymap.com and registered with the scummy_map bot.

New — community features

  • Death notes feed — Rust-style kill feed posted to a configurable

Discord channel. Per-server format (terse / detailed / anonymized), PvP/PvE filters, location-detail level (exact / sector+POI / sector / none), opt-in victim/killer pings. Admins set up with /admin death-feed channel #your-channel.

  • Server rewards — login bonus, playtime rewards (chunked / daily /

weekly strategies), and a weekly lottery. Players use /rewards claim-login, /rewards claim-playtime, /rewards lottery buy <n>, /rewards lottery state. Admins draw with /admin lottery draw. Idempotent claims so daily bonuses never double-pay.

  • XP / level / shame points — full economy ledger per server. Earn

XP from trades, time on server, missions completed, good reviews. Shame from bad reviews, dispute losses, KOS reports. View with /xp me, compete with /xp leaderboard, audit with /xp history. Admins tune every value via /admin xp-config.

  • Shit Reviews — eBay-style 1–5 turd ratings between players.

Tied to a context (trade, lfg, mission, quest, event, general) so ratings are anchored to a real interaction, not drive-by abuse. Use /review give <user> <rating>, /review about <user>, /review mine. Admins can hide frivolous reviews.

  • LFG / missions / quests / events — community-content listings

with scheduling, participant rosters, and reward distribution (cash split equally, XP per-participant, loyalty events written). /lfg post, /lfg list, /lfg join, /lfg leave, /lfg complete, /lfg cancel. scheduled-for accepts ISO 8601 or relative shorthand like in 2h, in 30m, in 3d.

  • Lost & Found — community-sighting reports with optional rewards

and auto-spawned map markers. /lostfound report-lost, /lostfound report-found, /lostfound list, /lostfound claim, /lostfound resolve [pay-reward], /lostfound cancel. Reward payout is a real player↔player wallet transfer when the reporter resolves.

New — web app

  • /wiki knowledge base at scummymap.com/wiki — public, read-only

mirror of the Discord /wiki command. Mixed items / POIs / sectors typeahead with item icons, sector grid drilldown, and per-item / POI / sector detail pages.

  • /lostfound, /lfg, /leaderboard, /rewards/<server>

read-only browse pages for the new community surfaces. Every page ends with a "use this command in Discord to act" footer (web shows state, Discord drives action).

  • Profile page extended — your /profile/<discordId>?server=<g>

now shows your XP / level / weekly XP / shame on that server, plus reviews about you (avg as 3.2 💩, last 5 with reviewer + comment).

  • Donations button — passive PayPal + Cash App buttons in empty

space across /market, /credits, /wiki, and the /commands footer. No popups, no overlays, never blocking. PayPal: paypal.me/roketteere · Cash App: cash.app/$roketteere.

New — map quality of life

  • Scroll-wheel zoom is faster. The default MapLibre wheel rate

felt sluggish on the small SCUM tile patch; doubled the rate so a single wheel notch produces a visible zoom step. Zoom anchors under the cursor for predictable in/out.

  • Ctrl/⌘+click focuses on a sector. Click anywhere on the map

with Ctrl held (or ⌘ on macOS) and the camera fitBounds to the 1/5×1/5 sector that contains the click point — A0, A1, B2, D4, etc. Pre-empts every other click handler so it works as a universal navigation shortcut regardless of mode. Idea by Testament.

Admin

  • /admin death-feed — channel, format, filter, location, pings,

show, disable.

  • /admin xp-config — show / set with 12 tunable economy fields.
  • /admin rewards-config — show / set with 10 fields (login,

playtime strategies, lottery).

  • /admin lottery draw — pick this week's winner.
  • /admin review hide — flag frivolous reviews.

Coming next

  • Player storefronts with XP-gated unlock — admin chooses

allow-list, XP threshold, or both. The schema is in place; bot/web surfaces next.

  • Scuber — player-to-player services marketplace (taxi, security,

loot run, etc.).

  • Insurance — admin-configurable payout strategy (lump sum,

daily/weekly drip).

  • Wiki body enrichment — where-to-find data per item (loot tables

→ POI map), pulled from the .pak.

  • Demo / sandbox marketplace for logged-out visitors so anyone

can poke around the market without a Discord login.

  • Overlay marketplace + wiki panels — bringing the new surfaces

into the in-game Tauri overlay.


v0.5.7 — 2026-05-07

Fixed

  • Settings footer no longer shows a stale version. Previously the

scummy_map overlay v… footer in the Settings window was a hardcoded HTML string that drifted whenever Cargo.toml got bumped. It's now read from the running binary at hydrate time, so it's always in sync with whatever the auto-updater reports above it.


v0.5.6 — 2026-05-07

Stability roll-up over v0.5.2 for everyone running the overlay long-term. Recommended upgrade — no new user-facing features, just a quieter, lower-overhead host.

Fixed

  • msedgewebview2.exe zombies. Closing the overlay used to leave the

WebView2 children running in the background, accumulating a fresh process tree on every launch. The overlay process now adopts itself into a Windows Job Object with KILL_ON_JOB_CLOSE, so when the parent exits (clean Quit, force close, crash) every child the OS spawned for it dies in the same breath.

  • Overlay no longer burns CPU while hidden. When the overlay is toggled

off-screen, the WebView now stops the JS event loop via document.visibilitychange instead of running the map / panel timers against an invisible window. Lower idle draw, longer laptop battery on the in-game overlay path.

  • Cleaner installer / uninstaller path post-revert of an earlier hotkey

experiment. No installer behavior change for users — purely a packaging hygiene fix.

New (admin / dev only)

  • Dev release channel. A separate dev-channel install (com.scummy.overlay.dev,

hotkeys F9 / Ctrl+Shift+F9) so contributors can run a stable + dev install side-by-side without keypress collisions. Only surfaced in the admin download section; nothing on the public site changes.

  • Hotkey registration logging. hotkeys.log records each global-shortcut

bind result so we can see "did F9 actually register" without a debugger attached.


v0.4.2 — 2026-05-04

New

  • Copy-map-code button. Tiny clipboard icon next to the map code in

both the header picker and the Map Settings drawer — one click and the 8-character code is on your clipboard. Reported by Sleepyyeit.

  • Fork from the picker. Browsing public maps? Hover any community

map and a fork icon appears alongside it. Click it to make your own private editable copy without having to switch to the map first. The original public map stays only-editable by its creator. Reported by Sleepyyeit.

  • "Created by" watermark on every non-default map. Small label in

the top-right of the map shows the creator's display name. Visible on private and public maps alike — only the default map skips it. Reported by Sleepyyeit.

  • Duplicate your own map. The Duplicate button is now available to

the map's owner too — useful for "save as" / experiment copies. The duplicate is always private and owned by you, regardless of whether the source was yours or someone else's.

Fixed

  • Overlay window can no longer be resized. Resizing the overlay

smaller than the screen exposed the Windows taskbar with no easy way to restore full-screen coverage. The window is now locked to the primary monitor's bounds. Reported by Sleepyyeit.


v0.4.1 — 2026-05-03

Fixed

  • Marker form no longer resets while you're filling it in. Picking an

icon (or typing a name / notes / tag) used to wipe back to defaults the moment you moved the mouse over the map. The form now keeps your in-progress edits stable until you save, cancel, or switch to a different marker. Reported by Sleepyyeit — thanks for the catch.

  • Overlay opacity now actually makes the window translucent. Previously

the slider just dimmed the rendered content, so the overlay stayed fully opaque and you couldn't see the game underneath. The slider now drives real Windows alpha (SetLayeredWindowAttributes), which is what you'd expect from an in-game overlay.

  • Stale minimap settings removed from the Settings window. The minimap

feature has been disabled since v0.2.0 (no live position source on SCUM), but the configuration rows for minimap hotkeys, auto-pin, and tracking source were still showing up. Cleaned out — the Settings window now only surfaces options that actually work today.

New

  • In-overlay opacity slider. A small floating slider in the bottom-right

of the overlay lets you adjust opacity without right-clicking the tray icon and opening the Settings window. Click opacity to collapse it down to a single icon when you don't need it. Persists across launches and stays in sync with the Settings slider.

  • Update-available banner. When a newer overlay version is on the

download server, a green banner now appears at the top of the map pointing you at Settings → Check for updates → Install. Dismissable per session, but it'll come back when an even newer version ships.

The overlay opacity, minimap-cleanup, and in-overlay slider items were all reported by Sleepyyeit — thanks for the careful eye.


v0.4.0 — 2026-05-03

New

  • Brand refresh. New logo and icon set across the website (browser tab,

PWA install, Apple touch icon) and the Tauri overlay (Windows installer, tray, taskbar). New two-tone wordmark added to /public for marketing surfaces.

  • Public changelog page at /changelog plus auto-cross-post to Discord

via webhook. You're reading the first entry.

  • Official Discord button in the site header — quick join from anywhere.

Heads-up for existing overlay users

The signing key was rotated this release, which means **existing v0.3.0 installs cannot auto-update**. Grab the new installer manually from scummymap.com/downloads. New installs auto-update normally going forward.


Community Update 2 — 2026-05-02 → 2026-05-03

A batch of community-requested QoL changes shipped the day after v0.3.0.

New

  • "Fountains" filter — quest-relevant fountains carved out of the

generic water_sources category (which lumped them in with springs, wells, pumps, and dispensers). On by default; only the 13 actual in-game fountains, not the other 276 water sources.

  • Legend search — filter the 90+ POI categories by typing. Matches

category name, slug, or section name. Sections auto-expand while a search is active.

  • More zone shapes — circle, square, rectangle, triangle in the zone

editor. Rectangle gets separate width + height sliders.

  • Aurora theme — replaces the old Palia theme. Cosmic violet base with

a teal accent.

  • Slate is the default theme for first-time visitors.
  • Browse without signing in — no Discord login required to view the

map. Sign-in is still needed to save markers, share routes, plan raids, or edit a map. The overlay app likewise loads as a guest.


v0.3.0 — 2026-05-02

New

  • RCON Admin panel at /admin/rcon — manage RCON profiles + console

interface for SCUM server admins. New tray entry "Open RCON Admin…" in the overlay.

  • Custom-zone authoring — drop free-standing zones at any point on the

map (not just on existing outposts).

  • Zone drag handle with lock/unlock — once placed, custom zones get a

draggable handle in edit mode. Locked by default per session to prevent accidental drags.

  • POI fan-out on hover — overlapping POIs spread into a ring with

leader lines so you can pick one without zooming in.


v0.2.0 — 2026-05-02

Changed

  • Minimap disabled. Without live in-game position data we can't draw a

player-centered minimap, so the entry points (tray menu, hotkeys, settings UI) are hidden until that wall comes down. The window code stays in the binary; flip the feature flag when SCUM exposes player coords.


v0.1.10 — 2026-05-02

New

  • Configurable RCON test command in overlay settings.

Fixed

  • Diagnose + relay SCUM RCON commands more reliably.

v0.1.9 — 2026-05-02

New

  • SCUM BattlEye RCON client in the overlay — connect to your server

and run admin commands.

  • Server tracking source for the live position feed (later disabled in

v0.2.0).


v0.1.8 — 2026-05-01

Fixed

  • Removed the minimap from the active window config so it stops paging

itself in unintentionally. (Full disable lands in v0.2.0.)


v0.1.3 — earlier May 2026

Fixed

  • Remote-URL ACL: the overlay can now load https://scummymap.com directly

in the WebView.


v0.1.2 — earlier May 2026

Fixed

  • Event ACL: Tauri events bridge between Rust and the WebView correctly.

v0.1.1 — earlier May 2026

New

  • First brand icon (replaced later in v0.4.0).

v0.1.0 — initial release

  • First Tauri overlay shipped with auto-updater wired up.
  • Web app with map, markers, route planning, squad sharing, bunker plans.
  • Discord bot for marker management.
Changelog · Scummy Map · scummy_map