What's new

Changelog

Every update shipped for LW Agent, newest first.

3.1September 14, 2026

✨ Added

  • Saved Battle Plans can now be edited. Canyon Storm plans can switch between Rulebringers and Dawnbrackers without recreating the plan or roster.
  • Commerce & Rewards now supports configurable All Access trials, public packages, custom packages, point redemptions, manual grants, Community entitlements, renewal states, and data-safe module enforcement.
  • Verified Ko-fi payments can now match purchases and activate the selected package automatically. Unmatched or failed payments remain available for safe developer review.
  • The new paginated Payments area keeps growing payment history separate from the main management screen.
  • Every member can now create a personal referral link from Rewards & Access, with held qualification milestones, automatic reward maturity, developer review controls, and safeguards against self-referrals or fabricated activity.
  • The new Rewards & Access hub shows available, pending, and lifetime-earned points together with the access status of every Community owned by the account.
  • The Community Perk Store now offers practical point-only unlocks: a custom Community URL, one complete Battle Plan Customization Pack, advanced Community branding, discounted advanced reports from 30 to 365 days, and Contributor Recognition Plus.
  • The Battle Plan Customization Pack permanently unlocks premium themes, additional map layouts, and a custom Community watermark together.
  • Community owners can export Alliance Power data as CSV, open a print-ready report that can be saved as PDF, or send the current report to one saved Discord channel.
  • The developer can create dynamic perks and grant or extend them manually without charging points, with automatic owner notification.
  • Developer-controlled Community Goals let owners start an approved target and let members donate points within developer-configurable daily safety limits. Reaching the target schedules the configured All Access reward automatically.
  • The Rewards profile now shows loyalty progress, earned achievements, contribution statistics, recent point-ledger history, Community Goal shortcuts, and a clear comparison of member rewards and Community unlocks.
  • Communities can optionally recognize their top monthly contributors with a temporary, permission-free Discord role. Contributor Recognition Plus expands this safely to 10 winners for up to 90 days.
  • Battle Plan creators can now send the generated image and complete text plan together to the Discord channel configured for that event category.
  • Members now have 28 one-time rewarded milestones across longevity, referrals, events, approved activity, guides, Community Goal support, and lifetime contribution.
  • Five focused contribution rewards require evidence, leadership or developer verification, cooldowns, and weekly or monthly limits.
  • Finite Community Reward Pools let leadership recognize members without creating unlimited points.
  • Seven balanced Community Goal templates cover rewards from 7 to 365 days of All Access.

πŸ› οΈ Fixed

  • Changing the Mobile Team limit during Edit now affects the final generated draft after building rotations are calculated.
  • A full 20-player Desert Storm roster now assigns two players to every fixed building while preserving the strongest Mobile Team and its refinery rotations.
  • Saved plans can now select only a faction supported by their original event template.
  • The Desert Storm strategy heading now uses the shorter Comeback Plan title without the conditional parenthetical.
  • Common Mistakes now correctly says Kills over objectives and Individual power over teamwork.
  • Battle Plan text and images can no longer be delivered to a stale or mismatched event-category channel.
  • Referral links opened through the production reverse proxy now redirect to the public registration page instead of the container's internal localhost address. The secure 30-day attribution cookie remains intact.
  • The platform-tour audio pipeline no longer applies unstable processing that could fade the narration or replace it with a high-pitched tone.
  • Advanced Reports delivery now reuses the saved Community channel and no longer requires a repeated channel selector.
  • Community Goal safety limits can no longer exceed their point target, and atomic donation updates can never push total contributions beyond the target.

πŸ”§ Changed

  • The former Rename action for Battle Plans is now Edit, combining the plan name and supported faction selection in one place.
  • Desert Storm exports no longer show a separate Nuclear Silo card. Mobile Team Objectives remains visible beneath the map even when integrated strategy is disabled.
  • Operations activities now display the reminder title, message, or real category instead of the generic Community reminder label.
  • The retired Web moderation module was removed from Platform Management and Community management while Discord moderation remains available independently.
  • The public website now presents trials, packages, optional payments, and the free points path more clearly, with prominent registration, login, Plans & Rewards, legal, and support links.
  • Battle Plan images include the strategy by default, while creators can still switch to an assignments-only export.
  • Commerce & Rewards management is now separated into dedicated Overview, Settings, Access, Points, Member Earning, Milestones, Community Goals, Packages, Perks, and Payments pages.
  • Community Goal targets were rebalanced for the expanded free earning paths, with every donation safety limit kept below its goal target.
  • Routine or duplicate point requests for Battle Plan assignment, ordinary invitations, power updates, and vague monthly streaks were removed. Event rewards now require meaningful documented contribution beyond attendance.

⚑ Improved

  • Faction changes now flow automatically into regenerated Battle Plan text, map images, and later Discord deliveries.
  • Mobile Team and Mobile Team Objectives now share the same red tactical identity.
  • Operations attention cards automatically fit the available width, so one or two enabled widgets no longer leave unused columns.
  • Desert Storm assignments were reorganized around the battlefield so building cards and their routes align more naturally with the corresponding objectives.
  • The spacing above the Desert Storm map now balances itself according to roster content.
  • Small rosters now receive the prioritized-building instruction directly inside Mobile Team Objectives.
  • Building titles, player names, and timed rotation labels are larger and easier to read in Full HD map exports.
  • Desert Storm substitutes now appear beneath the Mobile Team row and remain hidden when no substitutes exist.
  • Desert Storm and Canyon Storm map subtitles now show the unique assigned-player count and explain that assignments follow prioritized building or objective order.
  • Battle Plan text and map images now use the Discord channel configured for their event category without requiring repeated manual selection.
  • Desert Storm cards now identify the after-10-minute rotations from Science Hub to Arsenal and from Info Center to Mercenary Factory.
  • Discord map captions now show only the event type instead of repeating the saved plan name.
  • Account Center now shows reward balances, claimable milestones, and the next progress targets.
  • Rewards & Access now provides a complete member journey with milestone progress, verified activity requests, review history, referrals, Community Goals, loyalty, and audited point activity.
  • The homepage now explains free activities, milestone rewards, collective goals, plans, and automatic access through a richer visual rewards presentation.
  • The desktop, website, Discord, and portrait TikTok videos were rebuilt with current Commerce & Rewards coverage, clearer layouts, smoother movement, and clean natural narration.
  • The premium Battle Plan theme, layout pack, and Community watermark now form one complete customization perk.
  • Battle Plan headers now emphasize the Community brief name instead of showing generic custom-briefing copy.
  • Community Goal cancellation protects contributed points: owners can cancel only untouched goals, while a developer cancellation refunds every contribution atomically.
  • Temporary contributor-role expiry remains safe across retries, overlapping awards, Discord outages, and roles that existed before recognition was granted.
  • Advanced Reports now has discounted 90, 180, and 365-day options. Redeeming another duration extends the existing reporting access rather than creating a conflicting unlock.
  • Terms and Privacy now cover activity evidence, milestone rewards, Community Reward Pools, and collective point donations.
3.0September 10, 2026

✨ Added

  • Added a modular Alliance Operations Dashboard with configurable widgets and unified upcoming activities.
  • Added the complete Transfer Surge workflow with finite campaigns, leadership-defined destination servers, required applicant details, editable custom ordered questions, fixed White, Blue, Purple, and Gold in-game seat colors and capacities, a copyable private status link, internal notes, full history, and optional Discord notifications for leadership and applicants.
  • Added Season Operations Center with configurable server and alliance matchups, optional partner alliances for both sides, spreadsheet, Google Sheets, and screenshot roster imports, transparent power-share estimates, operational notes, archive history, and a premium homepage presentation.
  • Added a Battle Plans map-image generator for Desert Storm and Canyon Storm with assignment-aware positioning, optional editable strategy content, and direct Discord image delivery for authorized Battle Plan creators.

πŸ› οΈ Fixed

  • Fixed Battle Plans roster rows on phones so player names and power remain visible while substitute and rename controls move to a clear secondary row.
  • Fixed map exports so strategy text resets when switching between Canyon Storm and Desert Storm without refreshing, empty tactical fragments and empty substitutes are omitted, Canyon Mobile Team connects to both Power Tower and Virus Lab, and small-roster instructions appear consistently in the editor, generated plan text, and map image.
  • Fixed Community slug navigation loops for React Server Component and prefetch requests, preventing excessive redirects and related Battle Plans fetch failures.
  • Fixed browser translator and accessibility-extension DOM changes that could trigger bugs or crashes on Community pages.
  • Fixed SvS homepage wording so it accurately describes Server versus Server planning rather than seasonal planning.

πŸ”§ Changed

  • Transfer Surge public applications can be opened or closed independently from the Community module, while authorized staff retain full access.
  • The public form now has six standard fields: in-game name, current warzone, THP, First Squad Power, Transfer Points, and optional Discord username or numeric user ID.
  • Applicants also select their required in-game seat color; staff configure the destination server and seat capacities.
  • The selected color represents the category assigned to the player by the game, not a seat preference.
  • Preferred alliance can be added as a campaign-specific custom question when needed.
  • Automatic applicant DMs are available when a numeric Discord ID is supplied.
  • Added Under Review, Accepted, Transfer Confirmed, Did Not Transfer, and Seat Unavailable statuses.
  • Simplified Community navigation into one Modules category, split configuration into Active and Available modules, kept Profile Verification and Alliance Power permanently active and highlighted as Foundation modules, and removed Web Moderation from Community module configuration while preserving separate Discord bot moderation capabilities.

⚑ Improved

  • Added mobile-friendly layouts to operational tables.
  • Improved Transfer Surge URLs and campaign routing.
  • Unified seat availability and color selection.
  • Added campaign open/close controls and archiving.
  • Added editable custom questions and stronger validation.
  • Improved power fields and concurrency-safe seat allocation.
  • Added correctable application decisions.
  • Added secure application links to Discord DMs.
  • Improved applicant UI and maintenance protection.
  • Updated the homepage Season Operations and Transfer Surge layouts.
  • Corrected the Train Conductor preview and HD export.
  • Redesigned Canyon Storm and Desert Storm briefing exports.
  • Added cleaner maps, roster connectors, and tactical cards.
  • Improved Mobile Team and prioritized-building assignments.
  • Simplified Canyon and Comeback Plan instructions.
  • Improved Mobile Team visual routing.
  • Rebalanced the Desert Storm map and Nuclear Silo card.
  • Simplified Golden Rules into Common Mistakes.
  • Added immediate map generation after saving plans.
  • Updated the platform video with current features and Module Configuration.
2.9September 8, 2026

✨ Added

  • Added an interactive, narrated platform tour directly to the homepage hero, replacing the static interface preview with the real LW Agent experience.
  • Added a private draft and publication workflow for changelog entries in Platform Management.
  • Restored a complete FAQ center with searchable, deduplicated answers and direct Support navigation.
  • Added an account-level timezone setup that works for both web and Discord identities.
  • Added a protected developer control for safely removing an incorrectly created Community without deleting member accounts or affecting other Communities.
  • Added the modular Train Conductor Schedules system with fixed Monday–Sunday weeks, one optional VIP Passenger or Guardian Defender per day, boarding time, allocation rules, branded portrait exports, and per-Community history.
  • Added developer controls for placing individual Community modules into maintenance without taking the rest of LW Agent offline.

πŸ› οΈ Fixed

  • Fixed a redirect loop that could prevent readable Community URLs from opening.
  • Prevented temporary Discord rate limits from taking the Role Panels page offline.
  • Restored the mandatory timezone safeguard before Reminders, Events, and Giveaways can be used, including server-side enforcement.
  • Fixed the Account Center timezone selector so the saved timezone remains clearly visible.

πŸ”§ Changed

  • Navigation now labels Discord slash commands as Bot Commands for clearer distinction from web tools.
  • Support content now explains the complete LW Agent platform and directs users to the right help path.
  • Support and FAQ now link to each other so help is always one step away.
  • Train boarding hours are now consistently expressed in Server Time and are independent of account timezone settings.

⚑ Improved

  • Rebuilt the LW Agent presentation video in Full HD with centered opening and closing scenes, clear neural narration at a natural pace, richer motion, animated Community management chapters, and the new Train Conductor workflow.
  • Integrated the presentation into the homepage hero with a cleaner cinematic frame and no duplicated promotional controls.
  • Community navigation is now more reliable when opening workspaces through their readable names.
  • Discord-connected pages now handle temporary service limits more gracefully.
  • The marketing website, Community workspaces, and Platform Management share a more refined visual system.
  • The homepage now introduces LW Agent through a richer command-center hero, clearer platform benefits, and a more focused visual hierarchy.
  • Brand logos now appear cleanly across navigation, Account Center, Community, Platform Management, setup, and maintenance pages without unnecessary containers.
  • Top navigation is cleaner and more spacious, with subtle active-page indicators instead of a boxed menu.
  • Marketing pages now use richer headers, typography, spacing, section depth, and responsive visual hierarchy.
  • Cards, forms, buttons, footer navigation, and Community workspace surfaces now share a more polished and accessible interaction style.
  • Footer navigation now remains on one line across every layout, with safe horizontal navigation on compact screens.
  • Train allocation rules now retain their original line and paragraph structure in generated schedule images.
  • Train schedule exports now automatically fit their height to the roster and rule content, without reserving empty passenger or rules space.
  • Community modules now use clearer, distinct color icons throughout workspace navigation and configuration.
  • Account Center now uses its available space more effectively and lets email-login users securely change their email address or password.
2.8September 7, 2026

✨ Added

  • A complete private Community workspace with premium overview, navigation, branding, members, invitations, notifications, settings, and modular systems.
  • Independent web accounts and Community workflows that do not require Discord.
  • Optional Discord synchronization for members, roles, channels, server identity, announcements, panels, and supported systems.
  • Individual pages and owner-controlled activation for every Community system.
  • Multiple staff roles per member, including Leader, R4, Strategist, and Moderator at the same time.
  • Community and account image uploads, plus Discord avatar, icon, and cover import.
  • A complete developer Manage center for Communities, guides, seasons, access, messages, changelogs, moderation, and activity review.
  • Unlimited, non-expiring Community invitations that remain valid until revoked.
  • Event-based reminders for Canyon Storm, Desert Storm, Meteorite War, SvS, Community categories, and custom messages.

πŸ› οΈ Fixed

  • Fixed account redirects, Community branding warnings, page loading mismatches, module toggle overflow, unreadable button hover states, and uneven management cards.
  • Fixed unrelated modules enabling together and Discord tools appearing before synchronization.
  • Fixed missing reminder categories, editable information channels, invitation limitations, migrated server identity, and missing management tools.
  • Fixed Community pages failing to open correctly from their readable Community links.
  • Strengthened sign-in and account recovery protection, safer links and uploads, private Community data protection, and isolation between synchronized Communities.

πŸ”§ Changed

  • /communities is now the private hub for web-first Communities and synchronized Discord servers.
  • Community links use readable names, and the old dashboard, admin, and control experiences are consolidated into Community workspaces and /manage.
  • Discord-only controls remain unavailable until synchronization is active.
  • Community Settings and Discord Settings are now separate, focused pages.
  • Alliance Power and Alliances are independent modules, while Profiles and Alliance Power are highlighted as the foundation for planning systems.
  • The marketing site, account area, Community hub, Manage area, support page, maintenance page, navigation, and search presentation now share one premium LW Agent identity.
  • The public Community directory was removed so Community workspaces remain private.

⚑ Improved

  • Battle Plans now include search, substitutes, roster editing, previews, renaming, editing, removal, and contextual Discord delivery.
  • Canyon Storm plans include Prioritized Buildings before Opening and the warehouse-points reminder in the Final Minute.
  • Profile Verification restores automatic Store matching with manual review fallback, official Store UID links, and synchronized power updates.
  • Alliance Power now includes bulk entry, imports, search, brackets, inline editing, rename/remove actions, and per-player history.
  • SvS clearly labels the preparation time as minutes to enter the Mud before battle.
  • Events, Giveaways, R4 Verification, Alliances, Reminders, Role Panels, Short Links, Guides, Seasons, FAQ, Streamers, Commands, and Moderation now have complete Community-focused management.
  • Discord members and their mapped permissions reconcile automatically in synchronized Communities.
  • Responsive layouts, aligned cards, statistics, empty states, buttons, hover states, confirmations, draft preservation, and collapsible navigation were polished throughout.
2.7August 29, 2026

✨ Added

  • Battle plans: optional Mobile Squad limit when creating a plan (default 10) - once Mobile Team hits that many players, everyone else is spread across the rest of the plan instead. When there are 10 or less participants in total, all of them are automatically assigned only to the Mobile Squad.
  • Guides: links in guide content are now clickable, and images (including in FAQ, seasons, and guide submission reviews) can be clicked to view full-screen.

πŸ› οΈ Fixed

  • Battle plans: sending or resending a plan sometimes only showed it to the person who ran the command instead of posting it publicly in the channel - now always posted publicly.
  • /setup was crashing for everyone due to a startup error.
  • Dashboard: the Add Player / Rename buttons on the battle plan page could silently fail to do anything.
  • Dashboard: Canyon Storm's faction picker had a meaningless "Default" option - it now correctly defaults to Rulebringers.
  • Battle plan messages sometimes said "stations" even for team-based events like Canyon Storm - wording now fits every event type.
  • Bot translations: emoji and links/mentions were sometimes stripped out mid-translation - now preserved.
  • Bot translations: long messages could take a very long time - now translated much faster.

πŸ”§ Changed

  • Battle plans: after generating a plan, you now get an editable draft to review first - Send it, Edit it, or Delete it - instead of it being posted immediately.

⚑ Improved

  • Translations recover automatically much faster if the translation engine ever gets stuck.
  • Old, abandoned battle plan drafts that were never sent get cleaned up automatically after a couple of days instead of piling up.
2.6August 22, 2026

✨ Added

  • Self-hosted translator system free & unlimited forever.
  • Two ways to translate any message: react with a flag emoji, or right-click a message β†’ Apps β†’ Translate
  • Reaction trigger posts the translation in-channel (visible to everyone); context-menu trigger replies privately, automatically in the clicking member's own Discord client language
  • Per-guild on/off switch: /setup translation toggle state:<On|Off> β€” off by default on new servers; /setup show displays current status alongside every other server setting
  • Covers ~34 languages including English, Chinese (Simplified), Japanese, Korean, Spanish, Portuguese, Italian, French, Romanian, German, Russian, Arabic, and more
  • Preserves Discord mentions (@user, #channel, custom emoji) and URLs untouched during translation (protected/restored around the translation call, since the translator is a literal MT model with no concept of "leave this part alone")
  • Per-user cooldown, automatic splitting of long (>2000 char) translated messages, duplicate-request de-dup (5 people reacting with the same flag on the same message only triggers one translation, not five), and attempts logged for developer review
  • Dashboard: Settings page has a visual Translation toggle (Settings β†’ Translation system)
  • Translation warm-up system (bot)
  • Loads each language-pair model into memory on its first use β€” confirmed on the live server: a cold call took 2.38s, the identical call right after took 21ms
  • Background warm-up routine runs automatically on bot startup: pre-translates a trivial string for English ↔ every supported language (covers direct usage and translator English-pivot routing for other language pairs), without delaying the bot coming online
  • Battle Plan player picker (dashboard)
  • New search + checkbox player picker under the battle-plan creation form β€” check a name to add it to the plan, uncheck to remove; works alongside the existing free-text name field (typed names, and the (sub) suffix convention, still work exactly as before)
  • "+ New player" inline in the picker β€” add someone not yet on the power table without leaving the page, auto-selected once added
  • ✏️ rename inline next to each roster row β€” fix a name that changed in-game without leaving the page

πŸ› οΈ Fixed

  • Audited all 47 bot command files plus every file for the same pattern.
  • Both QuickFixPanel (the Add/Rename panel shown after a plan-generation error) and the new player picker rendered their own <form> elements inside the page's main battle-plan <form> β€” invalid HTML that browsers/React handle unpredictably, surfacing as a A React form was unexpectedly submitted console error and Add/Rename buttons that didn't reliably work
  • Rewrote both to use plain controlled inputs with a manual button click handler instead of a nested <form> β€” same UX, correct DOM structure
  • Found in the same pass: the picker's rename (✏️) button lived inside a <label> bound to that row's checkbox, so clicking it could also toggle player selection (a label forwards clicks to its associated control) β€” each control now handles its own click independently
  • Auto-deferred every slash command before running it, but Discord only accepts showModal() as an interaction's very first response β€” every command that opened a modal directly (/embed, /say, /feedback, /alliance-power add, /battleplan create, /svs add-players and battle-plan create, /guide request) threw InteractionAlreadyReplied
  • Added an opt-out (skipAutoDefer) commands can set, plus a shared safeReply() helper so validation-error branches in the same command still respond correctly whether or not auto-defer ran
  • A second, related layer found across the same sweep: many handleButton / handleSelectMenu / handleModal component handlers called editReply() as their first-ever response with no prior reply()/deferReply()/deferUpdate() at all β€” fixed in battleplan (draft "Add Missing Players"/"Change Name" buttons), alliance-checkins (check-in button β€” a deferReply() the code commented that it did, but never actually called), giveaway, r4verify, rolepanel, setup, and most extensively `event`, where the entire button and select-menu system (submit, finalize, vote, approve/reject, winner) and modal-submit handling was affected
  • profile's full modal chain (link profile β†’ squad power, plus the two-step chained modal flow, reject-reason, and edit-name) had the same gap, including a shared submitSquadPower() helper called from two different places
  • Context-menu commands are always auto-deferred by index (no skipAutoDefer opt-out exists on that path) β€” but the command's success path called deferReply() a second time regardless, which Discord rejects as "already acknowledged." Every right-click translation that actually succeeded was failing at the last step. Rewritten to rely solely on the defer index already performs
  • Two deferReply() calls in index (chat-input commands, context-menu commands) and one reply() call in the maintenance-mode check ran with no surrounding try/catch β€” if Discord rejected the call (e.g. the interaction expired under a slow DB query), the resulting unhandled rejection could crash the entire bot process, taking down every server at once. All three now caught and logged instead of thrown
  • Root cause identified via production logs: Discord's gateway occasionally redelivers the same interaction twice (typically around a reconnect/resume) β€” each delivery runs its own independent copy of the handler; whichever responds first "wins," the second always fails with 40060, including on showModal(), which (unlike editReply) has no possible fallback
  • Fixed at the source with a single interaction-ID dedup guard at the top of index's interactionCreate handler β€” silently drops a redelivered interaction before it does any work at all, covering every interaction type in one place rather than patching each response call site individually
  • safeReply() additionally hardened to retry via editReply() on a 40060 (the interaction's token is still valid even if this JS object's local .replied/.deferred bookkeeping didn't know that), and the unguarded custom-commands dispatch call in index is now wrapped too
  • Translator was running a fresh MySQL query on every single reaction just to check one rarely-changing boolean (translation_enabled) β€” now cached in memory per guild (30s TTL, invalidated instantly on /setup translation toggle)
  • Message/reaction fetch and the enabled-check ran sequentially despite being independent β€” now run in parallel
  • Multiple flags reacted on the same message re-ran translator language auto-detection from scratch every time β€” the first detected source language is now cached per message and reused
  • Syntax error in setup (an extra closing parenthesis in the announcements subcommand group)
  • Dashboard settings form/action type mismatch: translationEnabled arrives from the form as a string and needed explicit conversion to a boolean before hitting the database
  • MySQL connection-limit errors during local testing, traced to stale processes still holding the port (the bot's internal Verify API/HTTP server) β€” resolved by clearing them

πŸ”§ Changed

  • A dedicated getting-started checklist: set staff roles (/setup strategist-role / leader-role / moderator-role), pick channels for the features you want, a dashboard link for a visual alternative, /help and /info as separate optional pointers, and a support-server link
  • /info's embed and its own comment no longer claim to be shared with the welcome message, since it isn't anymore

⚑ Improved

  • index already had global process.on('unhandledRejection'/'uncaughtException') safety nets; this release adds defense-in-depth at the actual call sites (see Fixed) so a single bad interaction degrades gracefully instead of relying on the global net alone
  • Re-audited all 47 bot commands for the same interaction-response gap after each fix, plus checked the 4 background schedulers, the custom-commands dispatch path, and the internal HTTP server β€” all already correctly guarded or fixed
  • Translation toggle discoverable via /setup alongside every other per-server configuration, instead of its own separate command
  • Server admins see translation status at a glance via /setup show
2.5August 7, 2026

✨ Added

  • Featured Guides section for guides marked as featured: true
  • Placed between static strategy guides and Community Guides
  • Unified red/danger styling for all Featured Guide cards
  • Guide cards now show only author, category, title, excerpt, and badge
  • Staggered ScrollReveal animations for Featured Guides
  • /alliance-checkins β€” posts alliance progress with reward status and an interactive Check In button
  • Reward tiers: 20 / 60 / 80 / 100 / 120 / 150 check-ins
  • Verified profile required
  • Live alliance data fetched via Playwright from the Last War Store
  • 5-minute response cache with serialized request queue
  • Dashboard management page: /manage/alliance-checkins
  • Short Links system for URLs and Discord invites with automatic role assignment
  • Click analytics with total clicks and last opened timestamp
  • /shortlink url, /shortlink invite, /shortlink list, /shortlink edit, /shortlink delete
  • Dashboard pages: /manage/short-urls and /admin/short-urls
  • Invite tracking automatically grants configured roles
  • Safe migration script for Short Links database
  • Dashboard-managed custom slash commands (per server)
  • Supports Text and Embed responses
  • Dashboard editor with live preview and instant Discord sync
  • Internal sync endpoint for Discord slash commands
  • Discord validation for names, descriptions, and embed fields
  • Admin-only command creation (ManageGuild required)
  • Season timeline page with progress tracking
  • Season timeline seed for all 7 seasons
  • JSON-LD SEO support
  • Security assessment of Store platform integration
  • No free brick injection vulnerability found
  • 2 vendor-side findings requiring verification
  • 3 project vulnerabilities identified and mitigated
  • Security assessment report included
  • Shared UID verification system
  • Shared Playwright browser instance
  • Serialized verification queue
  • 5-minute UID cache
  • Improved anti-bot handling
  • Automatic valid/invalid/manual verification
  • Shared between profile verification and alliance check-ins
  • Guide submissions from Discord or dashboard
  • Guide review queue for developers and Guide Helpers
  • Approved guides become unpublished drafts for review
  • Developer DM notifications
  • Guide submissions database support
  • Automatic profile review via internal API
  • Automatic UID verification (approved/manual result)
  • Manual review posted to the R4 verification channel
  • Shared verification logic with R4 moderation
  • Optional guide categories with auto-suggestions
  • Related Guides section on guide pages

πŸ› οΈ Fixed

  • Featured Guides now render correctly
  • Removed guide dates from Featured and Community cards
  • Clarified /season calculator parameter order
  • Corrected /guide submit to use the website editor
  • Added missing Alliance Check-in, Short Links, and Strategy Guides to /info
  • Updated alliance check-in message wording
  • Standardized admin changelog table styling
  • Improved SVS analysis table spacing
  • Standardized empty-state styling
  • Replaced hardcoded colors with design tokens
  • Removed unused DaisyUI classes
  • Unified form label styling
  • Standardized card padding
  • Standardized mini button size with .btn-xs
  • Standardized textarea styling
  • Unified reminder edit layouts
  • Standardized section label styling
  • Standardized empty-state colors
  • Updated Servers page heading style
  • Updated Login page styling with shared components
  • Improved keyboard accessibility with global :focus-visible
  • Unified .btn-xs usage across the dashboard
  • Added .card-interactive utility class
  • Unified accent color variables
  • Added Short Links homepage mockup

πŸ”§ Changed

  • Core Tools now include Alliance Check-in, Short Links, and Strategy Guides
  • Clarified 3-step profile setup (UID β†’ Squad Power β†’ Squad Type)
  • Added Short Links to Community & Extras
  • R4 verification and profile review now share the same moderator role
  • Guide submissions now use the website editor, while guide requests use a Discord modal
  • Clarified /season calculator syntax and updated Season command descriptions
  • Added Alliance Check-in help section with reward tiers and requirements
  • Added Short Links help section for all /shortlink commands
  • Added Custom Commands help section
  • Expanded Strategy Guides help section with website links
  • Added /dev-short to Developer commands
  • Guide cards now display only category and author
  • Featured Guides use the unified danger/red theme
  • Guide sections reordered: Strategy β†’ Featured β†’ Community
  • Markdown now supports inline code, links, and strikethrough
  • Markdown now supports quotes and horizontal rules
  • Unsafe URLs are automatically blocked
  • SEO excerpts now strip Markdown syntax
  • Shared Markdown renderer deployed across 20+ pages
  • SvS Toolkit label updated to "Our Server 482M THP"
  • Homepage tagline updated to "Your community command center"

⚑ Improved

  • Zero TypeScript errors (tsc --noEmit clean)
  • Production build completes successfully
  • No new database migrations required
  • Shared Playwright instance for UID verification and Store Info
  • Internal HTTP bridge for dashboard ↔ bot communication
  • SystemHealthMonitor now tracks 6 core subsystems
  • Comprehensive website documentation
  • Documented bot embed sources
  • Database schema verified
  • Complete security assessment documentation
  • Shared Badge component with 6 color variants
  • Shared accessible ProgressBar component
  • Shared EmptyState component
  • Shared StatCard component
  • Shared SectionBackdrop component
  • Shared HeroGlow component
  • Shared ScrollReveal component
  • Shared Markdown renderer across 20+ pages
  • JSON-LD structured data for FAQ, Guides, and Seasons
2.4August 5, 2026

✨ Added

  • Shared UI primitives β€” added Badge, ProgressBar, EmptyState, and StatCard as reusable components in src/components/, replacing ad-hoc implementations across the dashboard.
  • Global keyboard focus ring β€” added a consistent :focus-visible ring (ring-2 ring-accent-500) for improved accessibility.
  • `.btn-xs` token β€” introduced a dedicated mini button size, along with the .card-interactive helper.
  • Accent color CSS variables β€” added --accent-hex and --accent-rgb as the single source of truth for gold accent tokenization.
  • Tokenized visual effects β€” SectionBackdrop, HeroGlow, and the login page now use design tokens instead of hardcoded hex colors.
  • Short Links homepage section β€” added a new homepage feature section featuring SystemFlow and ShortLinksMockup.
  • Hero tagline updated β€” now displays "Your community command center".
  • SvS Toolkit mockup update β€” changed "Your Alliance 482M THP" to "Our Server 482M THP".

πŸ› οΈ Fixed

  • EventForm β€” removed deprecated DaisyUI classes (*-bordered, btn-sm), unified the label pattern, and standardized the p-5 card layout.
  • EventListItem β€” replaced btn-sm with btn-xs.
  • Bulk Add Form β€” textarea now uses .textarea (minimum height + resize support).
  • Reminder edit rows β€” unified layout using grid sm:grid-cols-2.
  • Admin changelog table β€” standardized layout with card overflow-x-auto p-0, py-3, and .btn-xs.
  • SvS analysis table β€” added px-4 cell padding and updated empty state text to text-base-400.
  • Alliance table fallback color β€” replaced hardcoded #4b5266 with the base-600 design token.
  • Section labels β€” unified styling to text-sm font-medium uppercase tracking-wide text-base-400.
  • Empty states β€” updated text-base-500 to text-base-400 (Notification Bell, Power Table).
  • Servers page (servers/page.tsx) β€” H1 now uses the font-display uppercase style.
  • Login page (login/page.tsx) β€” now uses the shared SectionBackdrop and tokenized drop shadow.
  • Alliance check-in message β€” updated to "Your next check-in is available next week."
  • Changelog page (/changelog) β€” entries now use native <details> collapse; only the latest version is expanded by default.
  • Notification Bell β€” markdown formatting (bold, code, links) now renders correctly inside the dropdown using InlineMarkdown.

πŸ”§ Changed

  • `content-blocks.ts` β€” inline markdown now supports inline code, [links](url), and ~~strikethrough~~; block rendering now supports > quotes and --- horizontal rules. safeLinkHref() blocks unsafe URLs, while plainTextExcerpt strips all newly supported markdown syntax.
  • `ContentRenderer.tsx` β€” now renders quotes, horizontal rules, and all supported inline markdown styles. Added a new compact prop.
  • `InlineMarkdown.tsx` (new) β€” renders inline markdown for short text strings.
  • Markdown support expanded β€” applied across 20+ pages, including FAQ answers, changelog entries, season timelines, calculator descriptions, role panel descriptions, reminder messages, partner descriptions, and admin/manage timelines.
  • Editor hints β€” added to the FAQ add/edit interface and the changelog compose form.
  • Tables β€” all 18 data tables now include hover:bg-base-800/40 transition row hover effects.

⚑ Improved

  • Consistent visual language β€” unified the entire website under a single design system.
  • Reduced motion support β€” all animations now respect the user's prefers-reduced-motion setting.
  • Discord markdown compatibility β€” markdown now works in Discord embeds without requiring any bot changes.
2.3August 5, 2026

✨ Added

  • Short links β€” create a short link (lwagent.online/{code}, e.g. lwagent.online/duv) that redirects to any URL. Managed from the Server Manage page, each server's own Short Links page, or Discord (shortlink for server admins).
  • Discord invite short links β€” generate an invite for your own server with a custom short URL: pick the channel it points to and a role that's granted automatically to anyone who joins through the link.
  • Short link analytics β€” every open of a short link counts toward its click total; the total (and last-click date) shows in the Admin and Short Links tables and in /shortlink list.

πŸ› οΈ Fixed

  • Invalid season URLs (e.g. /seasons/abc) no longer log a database error β€” they now redirect to the homepage instead.

πŸ”§ Changed

  • Short links are admin-only β€” only server admins and the developer can see or manage them, and each server only manages its own links. The links themselves still redirect for anyone who opens them (invite links are meant to be shared).

⚑ Improved

  • UID fields only accept digits β€” the dashboard profile-link form strips non-numeric characters from the UID field as they're typed (and shows the numeric keypad on mobile), and both the dashboard server action and the bot's profile-link flow (/profile link + the link modals) reject anything that isn't digits-only, so a UID like 123abc can no longer be submitted.
  • Live short-code check β€” the code is validated while typing (taken / reserved page name / looks like a Discord server ID), so duplicates are caught before saving.
2.2August 5, 2026

✨ Added

  • Automatic UID verification on profile link β€” when a member links their profile (/profile link, the "Link Your Profile" button, or the dashboard), the bot verifies their UID against the official Last War. If the in-game name matches what they typed, the profile is approved instantly (no moderator needed).
  • `/alliance-checkins` command (leaders/admins only) β€” posts an embed with alliance check-in progress (progress bar, reward tiers at 20/60/80/100/120/150), a "Check In" button for verified profiles, and optional @everyone/@here/no ping. The embed auto-refreshes when someone checks in. Shows the alliance name if the poster has an alliance role, otherwise the server name.
  • Alliance check-in on the dashboard β€” new Alliance Check-in page in the sidebar with the same progress display and "Check In" button as the bot. Gated on a verified profile; includes a "Link Your Profile" button to the dashboard profile page when not linked yet.

πŸ› οΈ Fixed

  • `/profile view` no longer exposes UIDs publicly β€” alliance check-in data removed from individual profiles (it's per-alliance, not per-user).
  • Approval DM wording for profiles without squad power β€” the chain flow ("Update Squad Power" β†’ link β†’ squads) now checks whether squad power was actually set before saying "Your squad power and types are now live." If not, it says "You can now update your squad power..." instead.
  • Dashboard `store-info` proxy missing auth header β€” the dashboard's API routes to the bot's verify endpoint returned 401 because they didn't send the Authorization: Bearer header.
  • `/alliance-checkins` interaction timeout β€” Discord interactions must be acknowledged within 3 seconds. Moved deferReply() to the top of both the command handler and button handler so database queries and browser calls don't cause "didn't respond in time" errors.
  • `/alliance-checkins` missing "Link Your Profile" button β€” when a user without a verified profile runs the command or clicks the check-in button, the response now includes a one-click "Link Your Profile" button alongside the message.

πŸ”§ Changed

  • Profile linking is now the primary identity system β€” all documentation, help text, COMMANDS.md, README, dashboard pages, and the FAQ updated to reflect: profile linking is primary (auto-approved when the name matches), squad power requires a verified profile, and R4 verification is separate and always manual (requires a verified profile first).
  • `/profile link` reply wording β€” now says "Profile verified automatically" on success, or "submitted for review" on manual fallback.
  • `/alliance-checkins` permissions β€” restricted to server leaders or admins (not moderators).
  • Alliance check-in footer β€” now shows the poster's nickname instead of their UID (privacy), and says "weekly" instead of "daily".
  • Already checked-in error β€” now says "You've already checked in this week. Next check-in available in 7 days." with a link to check in manually on the official store.
  • Bot `Dockerfile` β€” now installs Playwright's bundled Chromium plus required system dependencies. Also installs xvfb and xauth (for potential future headed Chromium support).
  • Bot dependencies β€” added the playwright package for headless browser automation.
  • Dashboard profile link form β€” subtitle now mentions auto-verification ("auto-approved when your name matches your UID").
  • Dashboard Terms of Service β€” updated to reflect that the bot now independently verifies profile UIDs against the official store.
  • Bot help (`/help`) β€” Profiles section now mentions auto-approval; R4 Verification section now says "always manual, even when profile linking is auto-approved."
  • Bot `README` β€” reordered community tools (profile linking first), updated the R4 section, and fixed the panel button description.
  • Bot FAQ β€” R4 answer updated to mention profile linking first.
  • `NEEDS_PROFILE_MESSAGE` β€” now mentions auto-approval when the name matches.

⚑ Improved

  • UID verification reliability β€” added a single retry on timeout, a 5-minute TTL cache, and a serialized queue so checks never run concurrently. The browser singleton is reused and automatically relaunched after crashes.
  • Dashboard UX β€” the Alliance Check-in page now shows a "Link Your Profile" link to the dashboard profile page (not just the Discord command) when the user doesn't have a verified profile.
  • UID fields only accept digits β€” the dashboard profile-link form strips non-numeric characters from the UID field as they're typed (and shows the numeric keypad on mobile), and both the dashboard server action and the bot's profile-link flow (/profile link + the link modals) reject anything that isn't digits-only, so a UID like 123abc can no longer be submitted.
2.1August 4, 2026

✨ Added

  • Website Feedback page (/feedback) β€” visitors can report bugs, suggest features, or send general feedback directly from the website. Submissions are stored in the database and sent as embeds to the configured Discord feedback channel.
  • Video support in event submissions β€” the Events dashboard now renders video attachments alongside images in submission previews.
  • Events collapse/accordion β€” event cards on the dashboard start collapsed, showing only the header (title, status, submission count). Click to expand and view entries β€” saves massive page space.
  • Delete button for ended events β€” staff can now delete ended events directly from the events page (previously only available inside the edit form).
  • Self-vote prevention β€” staff cannot pick their own submission as winner (UI disabled + server-side check).
  • Winner count cap enforcement β€” the dashboard now enforces the maximum winner count when picking winners, matching the bot's behavior.
  • End event with winner announcement β€” ending a moderated event now announces winners (πŸ†) in the event channel with user mentions, just like the bot's /event end. Contest events announce per-status ("ended early β€” no voting", etc.).
  • Dashboard overview redesign β€” hero with guild stats, stat cards with hover effects, activity timeline combining recent battle plans/reminders/events/giveaways, quick actions grid, recent events section.
  • Homepage full visual redesign β€” 10 feature mockups (Alliance Power, Battle Plans, SvS Toolkit, Events, R4 Verification, Role Panels, Reminders, Profiles, Streamer Alerts, Giveaways), scroll-reveal animations, hero with DashboardPreview and mouse-tracking glow effect.
  • Battle Plans section β€” Desert Storm and Canyon Storm mockups side by side with accurate building data, alliance/individual point values, and correct in-game layouts.
  • Desert Storm mockup β€” 5-row scattered layout matching the actual game map, with Oil Refinery I/II highlighted, Nuclear Silo centered, and all buildings showing Alliance:Individual points/s.
  • Canyon Storm mockup β€” Data Centers wide at top, Power Tower and Virus Lab centered, Sample Warehouses at bottom, with Left Side (Team A) / Right Side (Team B) / Mobile Team assignments.
  • ScrollReveal component β€” IntersectionObserver-based scroll-triggered animations with 4 directions (up/down/left/right) and configurable delay.
  • HeroGlow component β€” mouse-tracking radial glow effect for the hero section.
  • Enhanced CSS animations β€” glow-pulse, shimmer, float, gradient-shift, hover-lift, hover-glow (all respect prefers-reduced-motion).
  • SEO improvements β€” better title, description, keywords, OpenGraph siteName across all marketing pages.
  • Community Events icon β€” added πŸ“’ icon to category-icons.ts for the commands page.
  • Guide page improvements β€” author names fetched from the Discord API, pagination with "Load more" and page numbers, category filter with "All" tab.
  • Support page redesign β€” story section about DUV #101 origins, stats row (500+ servers, 60+ commands, 24/7 uptime), community thank you section mentioning bug reporters and feedback providers.
  • All marketing pages visual effects β€” Calculators, Support, Seasons, Commands, FAQ, Changelog, Terms, Privacy, Cookies all have SectionBackdrop and ScrollReveal animations.

πŸ› οΈ Fixed

  • 429 rate limit on /users/@me/guilds β€” the layout called getBotGuilds() on every page render with cache: 'no-store', tripping Discord's ~200/hour limit. Fixed with:
  • 60s TTL in-memory cache on getBotGuilds() (invalidated on leaveGuild)
  • 429 retry in botFetch (respects Retry-After, capped at 5s)
  • Layout try/catch fallback (falls back to the session guild name if Discord is unreachable)
  • Changelog embed splitting β€” long changelog entries now split across multiple Discord messages instead of failing with MAX_EMBED_SIZE_EXCEEDED, respecting Discord's 6000-character combined embed limit.
  • Dashboard page crashes on rate limit β€” the layout now renders with a fallback guild name instead of crashing when Discord returns 429.
  • next build fails with database errors β€” admin and guild layouts now have export const dynamic = 'force-dynamic' to prevent static generation at build time (MySQL isn't accessible during Docker builds).
  • Events page text overlap on mobile β€” R4 Verify mockup buttons no longer overlap with user names on small screens.
  • Guide cards visual issues β€” reverted to a compact horizontal layout (icon left, text right) with a smaller image area and category pill badges.
  • Homepage buttons too large on mobile β€” now responsive: px-5 py-2.5 text-sm on mobile, sm:px-8 sm:py-3.5 sm:text-base on desktop.
  • Support page cards not equal on mobile β€” fixed with grid-cols-1 sm:grid-cols-3 and consistent padding.
  • Canyon Storm layout gaps β€” removed empty divs that created visible gaps between buildings.
  • Various text corrections.

πŸ”§ Changed

  • Event flow parity with bot β€” dashboard event management now mirrors the bot's /event command: ending an event announces winners, picking winners enforces the cap, and self-voting is blocked.
  • Homepage "Less busywork more warfare" section β€” equal-sized cards with larger icons and font-display titles.
  • Homepage "60+ commands" section β€” "Everything your community needs" with Events highlighted instead of Giveaways.
  • Hero tagline β€” "Built for gamers, by gamers" (was "The all-in-one alliance platform").
  • Hero description β€” mentions alliances, councils, gaming communities, and similar strategy games.
  • Dashboard CTA section β€” replaced duplicated DashboardPreview with a feature icons grid.
  • Profile mockup β€” now shows the actual avatar.
  • R4 Verify mockup β€” compact layout with the LW Agent avatar for empty profiles.
  • Events mockup β€” now shows actual entries with user names and status badges instead of empty gray boxes.
  • All "Illustrative preview" notes removed.
  • Profile link & R4 verification share a review channel β€” /setup show and the dashboard Settings page now label it "R4 verification / profile review channel", and /setup verification channel mentions both /r4verify and /profile link.
  • /help and website command index text aligned β€” the moderator-role, verification setup, announcements lines and the Profiles blurb now all say profile links are reviewed in the R4 verification channel.
  • Announcements wording β€” /setup announcements channel (already existing, no new command) is now described as "news and updates from LW Agent" in /help and on the website.

⚑ Improved

  • getDiscordUser() function β€” new utility to fetch Discord user info by ID (used for guide author names).
  • Navbar β€” Feedback link moved to the footer only (not in the main navigation).
  • Footer β€” now includes the Feedback link alongside Support, Terms, Privacy, and Cookies.
  • All mockups use correct game data β€” Desert Storm buildings with alliance/individual points, Canyon Storm with Left/Right Team assignments, and SvS with North/South/East/West zones.
2.0August 3, 2026

✨ Added

  • Community Events - a full event system, one command with two modes:
  • Contest (/event create type:Contest): members submit their entry through a private thread (Submit entry button), voting opens with a Vote button on every revealed entry, the winner is picked automatically, and a tie automatically prompts a tie-break re-vote among the tied entries.
  • Moderated (/event create type:Moderated): staff approve/reject entries and pick winners manually - either in Discord (/event review) or on the dashboard.
  • Events run in any text channel - /event create posts the panel where you run it, and submission threads and announcements live there too (no channel to configure).
  • Dashboard Events page on each server (/events) - review that server's submissions with the actual media, approve/reject/pick winners, and end events, gated by that server's staff (moderator or leader), the same as the bot.
  • Homepage Community Events section - a 5-step flow showing exactly how a contest runs (create, submit, reveal, vote, winner), plus the Contest vs Moderated modes at a glance.
  • /calc alias - type category:hq instead of building_headquarters.

πŸ› οΈ Fixed

  • Security hardening across the bot and dashboard:
  • Closed an SSRF: fetching guide cover/inline images now only ever requests public HTTPS (internal, cloud-metadata, and loopback ranges blocked).
  • Sanitized member-entered in-game UIDs before they render as clickable markdown links in review embeds (was a phishing vector aimed at moderators).
  • Role-panel buttons can no longer grant a role that has been removed from the panel.
  • /event autocomplete is staff-only, so event titles no longer leak to non-staff.
  • Non-http(s) URLs are now rejected everywhere they could become a link/image/video: partner links, guide cover images, guide content images/videos, notification links, the support link, and event attachments.
  • Dashboard pages for moderation, settings, R4 verification, profiles, giveaways, role panels, FAQ, alliances, streamers, and guides now enforce the same role gate as the bot (moderator+) instead of any-leadership access.
  • Client-error logging now requires a session (no more log spam); Discord channel/role IDs are validated as snowflakes; uploads are served with nosniff.
  • /help now lists the full command set - /event, /guide submit, /guide request - with corrected permission labels.

πŸ”§ Changed

  • Voting is now one vote per member per round, and it's a toggle: click the same entry again to remove your vote, or click a different entry to switch it. All votes are scoped per event per guild, so an event on one server can never bleed into another server's event.
  • Entries are revealed all at once when voting starts - nothing appears early. The moment voting begins every submission thread is locked, so no one can post (or sneak in an entry) after submissions close.
  • /level has been removed - /calc category:<x> from:<a> to:<b> view:breakdown shows the same per-level breakdown, while /calc keeps showing the combined total by default.
  • /season calculator now asks for the season number first, then from, then to (previously to came first).
  • No more events-channel setup - the /setup events channel command is gone; events live in whatever text channel you create them in.
  • Developer commands are only ever visible to the developer.

⚑ Improved

  • The guide promo's Request a guide button opens the request modal directly.
  • /help, /info, COMMANDS, and the dashboard's command index now agree with the actual command set (and with each other).
1.9August 2, 2026

✨ Added

  • Virus Resistance calculator: pick your season and enemy type (Boss, Doom Elite, or Zombie), enter your Virus Resistance, and see the highest level you can fight plus the damage reduction you get.
  • Overlord calculator pages for Promotion, Training, and Skill.
  • Alliance Power history: every power update is recorded over time, so leaders can see how the roster has grown.
  • Requirement notes now show in a box above every calculator table, filtered to the level range you selected β€” calculate 34 to 35 and you only see the requirements for those levels; calculate 0 to 35 and you see them all.
  • Virus Resistance calculator is now one click away from the Seasons page.
  • Alliance roles can now reuse an existing Discord server role instead of always creating a new one β€” from /setup alliance add and the dashboard.
  • The bot now is reporting every time it's added to or removed from a server.
  • Guide URLs are now generated from the title automatically, stay in sync when the title changes, and can be set manually.
  • Beta Tester/Developer Logs page: every error is now categorized by type (Server / Bot / Database / Dashboard), and full error details are shown behind collapsible rows.
  • Errors are now mirrored straight to the developer's Discord log channel, so the developer gets pinged in real time instead of having to check the site.

πŸ› οΈ Fixed

  • Reminders scheduled for the same time now all fire β€” a reminder whose message fails to send is retried instead of being silently dropped.
  • Empty Notes columns no longer appear as a wall of dashes in calculator tables β€” they're hidden when there's nothing to show.

πŸ”§ Changed

  • Building renamed to Headquarter (its in-game name) across the site and calculators.

⚑ Improved

  • Guides now render # headings and fenced code blocks.
  • Database setup is now non-destructive: this release deploys onto an existing server without touching live data.
  • Update Squad Power button: no profile yet? It now guides you through a 3-step setup right in Discord - link your profile, then set your squad power, then your squad type, all in one session.
  • Squad power/type can now be set while your profile link is still pending review - it applies once a moderator approves. Same on /profile squads, the button, and the dashboard's My Profile page.
  • Dashboard: My Profile now walks you through the same 3-step setup (link profile, then squad power, then squad type) when you don't have a verified profile yet.
  • Both the "Update Squad Power" and "Link Your Profile" buttons now run the same guided 3-step setup (link profile, then squad power, then squad type), and the approval DM is tailored by where the request came from: requests from the 3-step buttons get a simple approved/rejected message (their power is already set), while /profile link and dashboard-only requests get the note that they can now update their squad power.
  • Changelog posts now send in full: long sections are no longer cut at 1024 characters - each section spills into extra fields/embeds and the post limit accepts the whole text.
  • Changelog entries can now be edited after posting - the change updates the already-posted message in place.
  • /help and /info were brought up to date with all the systems.
1.8July 30, 2026

✨ Added

  • Changelog posts now include Website, Official Support Server, and Add to Your Server buttons.
  • Squad Type (Tank / Aircraft / Missile / Mixed) per squad - shown on your profile.
  • Editable nickname on Profile Review, before approving a request.
  • Required rejection reason, sent via DM, alliance log, and dashboard.
  • Send a saved changelog entry to one specific channel on any server.
  • Dedicated calculator page for every Season building.
  • Building icon shown next to the title on every calculator page.
  • Public Changelog page - every update, no login required.
  • Public Terms & Conditions, Privacy Policy, and Cookie Policy pages.
  • Footer simplified to Support, Changelog, Terms & Conditions, Privacy Policy, and Cookie Policy.
  • Navbar reordered: Features, Commands, FAQ, Guides, Calculators, Seasons, Support, Discord.

πŸ› οΈ Fixed

  • Database init crash on redeploy (unknown column icon_path).
  • My Profile / Profile Review failing to load after Squad Type shipped.
  • Selecting several squad types in a row spammed a new message each time.
  • Missing season resource icons (Spore, Coffee, Mithril, Quartz, and more).
  • Calculators and Battle Plans layout breaking on phone screens.
  • Profiles icon not showing on the Commands page.

πŸ”§ Changed

  • Battle Plans: under 10 registered players now auto-fills the Mobile Team.
  • Update Squad Power is back to a simple two-step flow (power, then type).
  • "Coffee (Old)" no longer shown anywhere.

⚑ Improved

  • The "needs a verified profile first" note is now much more prominent.
1.7July 29, 2026

✨ Added

  • Clickable UID links for moderators during verification β€” opens the player's in-game store page directly
  • A footer on every dashboard page

πŸ› οΈ Fixed

  • Mobile navigation menu on the public site (was missing entirely on phones)
  • Notification panel appearing behind page content on mobile
  • Dashboard sidebar going blank on long pages

πŸ”§ Changed

  • Homepage refreshed with a clearer feature highlight section
1.6July 29, 2026

✨ Added

  • Full SEO pass across the public site β€” better search visibility, proper preview cards when links are shared
1.5July 29, 2026

✨ Added

  • Separate panels for linking your profile and updating squad power (previously combined into one)
  • One-click "Link Your Profile" button β€” no need to type a command
  • Moderators can post any self-service panel straight from the dashboard, no slash command needed
1.4July 29, 2026

✨ Added

  • Guides and Seasons pages, with resource calculators for every upgrade path
  • A full public commands reference, explaining every category

πŸ”§ Changed

  • Complete visual refresh of the public site and dashboard β€” more detailed, more premium
1.3July 29, 2026

✨ Added

  • Redesigned dashboard overview, alliance-first
  • Quick mobile access to Manage/Admin tools

⚑ Improved

  • Full responsiveness pass across the dashboard
1.2July 29, 2026

✨ Added

  • DM + in-dashboard notifications the moment your R4 or Profile request is approved or rejected
  • Alliance Log Channel: a running record of profile links, power updates, SvS imports, and other alliance actions
1.1July 29, 2026

✨ Added

  • /profile link: link your Discord account to your in-game UID and nickname once, reviewed by a moderator
  • Verified profiles reused automatically across R4 Verification, Battle Plans, and Alliance Power β€” no need to submit your UID twice
  • Self-service squad power reporting for up to 4 squads
1.0July 29, 2026

✨ Added

  • Alliance Power: persistent, per-server power roster, the single source of truth for battle plans
  • Battle Plans: auto-generated, power-balanced plans for Desert Storm, Canyon Storm, and more
  • SvS Toolkit: THP roster, enemy matchup tracking, win-chance estimate, automated 4-zone map plan
  • Reminders: event countdowns in everyone's own local time, plus a separate track for leadership
  • R4 Verification: members request verification with their UID; moderators approve with one click
  • Role Panels: self-service alliance picker plus general-purpose role panels
  • Giveaways: button-based entry with automatic winner selection
  • Moderation: ban, kick, purge, with real role-hierarchy safety checks
  • Streamer Alerts: automatic live notifications for Twitch, YouTube, and Kick
  • Upgrade Calculator: resource costs for any upgrade path
  • Web Dashboard: manage everything from a browser, same permissions as your Discord roles