Changelog

What's new in ONE585 Hub

v4.7LatestSeptember 10, 2026
  • A schedule closed to public submissions now stays under the dashboard's "Active" tab (instead of jumping to "Completed") until the KvK itself actually finishes — closing submissions early no longer buries a schedule managers are still actively using in the War Room for the rest of the event.
  • Fixed the Sanct/Fort Weeks tab listing Drop Phase weeks past the season's actual end (e.g. an 8-week season showing Drop Phase options up through "Wk 12") — it was generating one Drop Phase option per total season week instead of per remaining Drop Phase week.
  • Loosened the Reward Configuration "Consecutive snapshots detected" warning — a single back-to-back pair of one-week snapshots (e.g. Wk 4 and Wk 5 each getting their own reward before a longer Wk 6+ block) is a normal way to set up a season and no longer gets flagged; it now only warns on 3 or more one-week snapshots in an unbroken row, which is the actual sign of clicking through and accidentally re-saving on each week.
  • Fixed the Sanct/Fort "Week Complete!" popup showing the wrong week number for a Drop Phase completion (e.g. calling it "Week 3 Complete" when it was actually the season's Week 7) — it was displaying the Drop Phase's own week counter instead of the season-wide week number used everywhere else on the page. The "moved on to Week X" part was already correct; only the completed-week label was off.
  • The Sanct/Fort "Week Complete!" popup no longer fires after a large, out-of-sync jump (e.g. reopening the page after several weeks silently advanced while it was closed) — a jump like that isn't really "just completed," so it's absorbed quietly instead of popping up with a confusing week number.
v4.6September 9, 2026
  • Fixed the violation digest's "Expiring Soon" section flagging a player whose Event Ban was about to clear even though a separate NAP Ban/Blacklist on the same person still runs longer — they no longer show as "about to be free" unless every active ban they hold is actually ending. The individual ban still shows correctly under Active Bans either way.
  • Added a "Duplicate" action to Sanct/Fort events — copies alliances, sanctuaries/forts, reward pool and reward schedules, Discord settings, and week-gate settings into a brand-new event, with picks/week progress/history all reset to a fresh Draft. Available from the event list at any time, or from the "Duplicate Season" button once an event finishes — either way now asks for the new event's name and start date instead of guessing.
v4.5September 6, 2026
  • Assigning a player to an open slot now offers two shortcuts for someone who never registered: "Quick-add a walk-in" creates a bare-bones entry (name/alliance/UID only) and assigns them to that exact slot immediately, or "add with full availability" jumps straight to the full sign-up form and assigns them to that slot as soon as it's saved — either way skips the old back-and-forth of adding the player, then hunting the list for the same open slot again.
  • Adding and assigning a walk-in player now offers an "Update Discord Post" button right there — it edits your existing schedule post in place (or posts a fresh one if you haven't posted yet), and refreshes your Open Slots post too if you have one out, instead of leaving you to remember to repost separately.
  • The War Room's search box now also matches on player UID, not just name and alliance tag.
  • Fixed the War Room's double-booked warning occasionally flagging every player at once, even though nobody was actually double-booked — a stale copy of the assignment list briefly counted some rows twice.
  • Fixed the War Room's "Copy Link" button copying a Player Submission Link that 404'd instead of opening the submission page.
  • Fixed generating an Observer Access link silently failing — the button would spin and then just reset without ever producing a link.
  • Fixed the time slot picker's local-timezone note pushing everything else in the header off to one side on narrower screens — the toggle buttons and timezone label now always sit on their own row underneath, instead of squeezing together next to the note.
  • Fixed the time slot picker's time ranges (e.g. "8:00 PM - 8:30 PM") rendering in the wrong order for right-to-left languages like Arabic — they now always read left-to-right, matching how clock times are written even inside an RTL page.
  • The time slot picker's Local time view now always shows the matching UTC time underneath each slot (previously only shown when viewing in UTC), and flags any slot that actually falls on a different calendar day once translated to your local time zone — e.g. a slot near midnight UTC that's still evening the day before where you live. The day header itself stays on its official UTC date, but now shows a highlighted note when that day spans two different local calendar days for you, translated into whichever of the 18 supported languages you're using.
  • Fixed the Submission Deadline occasionally saving as a whole day earlier than what was actually entered — the date and time were being saved without explicitly marking them as UTC, so the exact moment they landed on depended on a database setting instead of always meaning what the "(UTC)" label next to the field says. Also added a note by the field clarifying that 00:00 on a date is that date's very first instant, not its last.
  • Switching a schedule's status from Open to Closed or Exported on the Settings page now asks for confirmation first, since it immediately cuts players off from submitting — every other status change still applies instantly.
v4.4September 5, 2026
  • Added a new "Rankings History" hub tool — every /event-rankings report that gets posted (Discord or the web link) is now saved, with a browsable list of past reports and a per-player rank/score trend chart pulled from the Kingdom Roster.
  • Site admins can now disable individual hub tools for a specific kingdom from the Admin Portal, with a choice of two ways: "Locked" leaves it visible but grayed out in the kingdom's own Tools settings, while "Hidden" removes it from their view entirely, as if it doesn't exist. Either way, the kingdom owner can't re-enable it themselves.
  • Added a new /gift-codes Discord command that posts the currently-active KingShot.net gift codes to the channel — no screenshots needed, it looks them up live. Command name is customizable in Slash Command settings; re-register your commands there to add it.
v4.3September 4, 2026
  • Running /event-rankings with no screenshots to scan now gives you a link to a web page instead of an error — upload leaderboard screenshot(s) there (a normal file picker, not Discord's attachment slots), preview the rankings report before it goes out, then post it. The channel-scan behavior (posting screenshots in the channel first, then running the command) still works exactly as before. The link expires after 30 minutes. Re-register your commands from Slash Command settings to drop the now-unused screenshot attachment slots.
  • Fixed the /log-violation link page occasionally posting the final Discord summary twice — the automatic post-when-finished and the "I'm done" button could both fire within the same instant. Only the first one now actually goes through.
  • The /log-violation link page's individual form now carries the Rule Broken over from the last player logged instead of resetting it to blank each time — most players from the same screenshot broke the same rule, so this saves re-picking it every time. Still freely editable per player.
  • Fixed the /log-violation link page's Bulk log checklist not removing players after they were successfully logged — they stayed checked and visible, so logging the same batch again created duplicate entries. It correctly drops them from the list now.
  • Moved the /log-violation link page's In-Game Event picker to the top of the page, shared by both the Bulk log checklist and the individual form — it decides who gets flagged ⚠️ over the points limit in both places, so it needed to be set before either one instead of being buried inside the individual form underneath the bulk checklist.
  • Fixed the /log-violation link page losing all your progress — including attached screenshots — on a refresh. Everything now survives a reload: the read screenshots, everyone logged so far, and the screenshot files themselves.
  • Fixed the /log-violation link page not filling in a player's UID when they were already a tracked player (shown as "⚠️ Already tracked as...") instead of pulling one from the Kingdom Roster — it now uses whichever source actually has a UID, since most repeat event participants turn out to already be tracked from a past violation. The Bulk log checklist now also only lists players with an actually-resolved UID (previously listed everyone, mostly unchecked with nothing useful to offer) and picks those up correctly too.
  • Added a "Bulk log" checklist to the /log-violation link page for multi-player screenshots — anyone with a UID already known (from the screenshot or a Kingdom Roster match) comes pre-checked, so you can log a whole batch under one shared rule in a single click instead of reviewing each person. Uncheck anyone that doesn't belong, or check more — whoever's left over can still be logged individually below, and it all still posts as one combined Discord message.
  • Fixed the /log-violation link page posting a separate Discord message for every player logged from a multi-player screenshot (e.g. a rankings screenshot with 26 people) — it now waits until you've gone through everyone detected (or hit "I'm done") and posts one combined summary, same as the old Discord flow did. Already-logged players also drop off the picker so you can't log the same one twice.
  • Fixed the /log-violation link page not filling in a player's UID/alliance from a Kingdom Roster match when the screenshot itself didn't show one — it was showing the match as a note but not actually pre-filling the field.
  • Reordered the /log-violation link page's fields to: Player picker, In-Game Event, Rule Broken, then Player Name, UID, Alliance, Points, Details.
  • The /log-violation link page's Player and In-Game Event dropdowns now match the Discord version: players are sorted by score with a ⚠️ next to anyone over the selected event's points limit, and each event option shows its points limit right in the list.
  • Fixed the new /log-violation link page failing to read screenshots when several were selected at once — full-resolution phone screenshots were hitting a server upload size limit. Images are now shrunk in your browser before uploading, and reading them is given more time to finish.
  • Running /log-violation now gives you a link to a web page instead of asking for screenshot attachments directly — upload one or more images there (a normal file picker, not Discord's attachment UI), review what was read off them, fill in the rule/event/details, and submit. The confirmation and screenshot(s) post back to the channel you ran the command from, and to your Live Log webhook if you have one set up. The link expires after 30 minutes. Re-register your commands from Slash Command settings to drop the now-unused screenshot attachment slots.
v4.2September 2, 2026
  • Punishment names on the Active Bans tab now get their own color (e.g. Event Ban vs Battle Ban vs Blacklist each get a distinct badge color) instead of every ban in a tier sharing one color, making it easier to tell ban types apart at a glance.
  • A player with more than one active ban in the same tier now shows as a single combined entry (e.g. "Event Ban + Battle Ban · until Sep 13") on both the Active Bans tab and the Discord digest, instead of appearing to be listed twice — the individual records are still there and can be expanded, and "Merge into one" still lets you fold them into a single record permanently.
  • The Active Bans section of the Discord violation digest now shows each player's actual punishment (e.g. "Battle Ban", "Blacklist") next to their name, instead of just the generic Event Ban / NAP Ban category header — useful if you've got more than one punishment name configured under the same tier.
  • Fixed the Draft/Weekly "Complete" Discord messages looking scrambled on mobile — the Alliance, Fort, and Sanctuary columns used to line up neatly on desktop but broke into three disconnected lists on phones, making it hard to tell which fort/sanctuary belonged to which alliance. Each alliance now gets one combined line that reads correctly on any screen.
  • Active Bans now flags a player with more than one active ban in the same tier (e.g. two separate violations that both carry an Event Ban) and offers a "Merge into one" option — pick which record survives and the others fold into it, extending the ban through the latest of the merged dates instead of leaving duplicate entries on the list.
v4.1August 30, 2026
  • You can now manually add an alias to a player in the Violation Tracker or an entry in the Kingdom Roster, without renaming them — useful for recording a name they've used elsewhere without it becoming their current display name. Aliases can also be removed from either tool.
  • /event-rankings now has a KvK/FDT dropdown so you can tag which event a rankings screenshot belongs to — the posted report's title and its table's rank column now both read "FDT" instead of "KvK" when you pick FDT. Defaults to KvK if left blank. Re-register your commands from Slash Command settings to pick this up.
v4.0August 27, 2026
  • Added a "View full history" button to each player row in the Violation Tracker — jumps straight to the History tab pre-filtered to that player's UID, instead of having to copy it over and search manually.
  • Added the same Alliance dropdown filter to the Violation Tracker's History tab.
v3.9August 26, 2026
  • Added an Alliance dropdown filter to the Violation Tracker's main list, so you can narrow the list to one alliance at a time instead of relying on the search box matching an alliance name.
  • The Week Browser now remembers which week you were viewing across a page refresh, instead of always resetting back to Draft Week 1.
  • The read-only Week Browser's weekly "Holdings this Week" section now also includes the fort each alliance picked that week, not just the sanctuaries they're retaining.
  • Fixed "Post Week to Discord & Advance" posting the completed-week summary twice — advancing the week was silently re-posting the same summary that the button had just posted explicitly.
  • Sanctuary and fort icons in the read-only Week Browser now use the same reward-image fallback as the Drop Phase view, instead of a plain colored badge.
  • Fixed the "Advance Week early?" warning showing up even when a week had actually finished (its sanctuary/fort pools just ran out before every alliance could pick) — it now correctly shows the normal "Week Complete!" confirmation instead of the skip-ahead warning.
  • Fixed the read-only Week Browser only showing one pick per alliance for weekly-phase weeks — an alliance with both a sanctuary and a fort pick only had the sanctuary one listed, silently dropping the fort pick from the log. Also fixed it always saying "not yet complete" for weeks where the pools had run out.
  • Fixed the weekly Drop Phase's sanctuary and fort picks so alliances take turns one pick at a time (their choice of either pool), instead of the two pools running independently and letting two alliances appear to pick at the same time.
  • Fixed the weekly Drop Phase getting stuck showing an alliance as "up now" forever when the sanctuary or fort pool ran out before every alliance could get one — those steps now correctly show as complete instead of waiting on a pick that can never happen.
  • Added a "Fix old week labels" button to the Sanct/Fort History tab (owners only) — a one-time cleanup that relabels history entries written before the week-numbering fix, so old drop/pick/reset entries show their correct week instead of staying frozen at the wrong one.
  • Fixed the weekly Drop Phase layout on narrow phone screens in portrait mode — alliance rows and the sanctuary/fort pick panels used to overflow off the edge of the screen; they now stack properly instead of requiring landscape mode.
  • The weekly Drop Phase now shows whose turn it is to drop, pick a sanctuary, and pick a fort — a highlighted "← now" row for each step — instead of just leaving you to guess like it did before.
  • Owners can now undo an individual alliance's sanctuary drop for the week, instead of only being able to reset the entire week's drops and picks at once.
  • Fixed the weekly Drop Phase screen showing the wrong week's rewards and resetting its own week counter back to 1 after the draft phase ends — it now correctly continues the season's week count everywhere: the Drop Phase view, the Rewards tab and Setup's reward editor, the week-lock countdown, the History log, the Activity feed, and Discord pick/drop/weekly-recap messages.
v3.8August 25, 2026
  • Sanctuary and fort icons in the weekly Drop Phase view now automatically use that item's current reward image (from the Reward Library) when no icon has been set for it directly in Setup, instead of only ever showing a plain colored badge.
  • You can now select multiple warnings/violations at once — on the main Violations list and the History tab — and mark them all as Pre-warnings in one action, instead of editing each one individually. The selection bar stays pinned in view while you scroll.
  • The Violations table now scrolls within its own panel with the header (Name, ID, Alliance, Infraction No., Status) pinned to the top, instead of the header scrolling out of view on a long player list.
v3.7August 23, 2026
  • Fixed screenshot reading (used by /log-violation, /event-rankings, and /log-score) intermittently failing with a "Could not load the sharp module" error in production.
  • /log-violation now also checks your Kingdom Roster when a screenshot has no player UID, not just the Violation Tracker's own player list — the Roster is usually the larger, more complete list, so this catches matches the tracker alone would miss and helps avoid creating a duplicate player record. When a match is found, its UID is now pre-filled in the Edit Details popup instead of you having to type it in.
  • /check-player now also searches your Kingdom Roster (including autocomplete suggestions) — a player with no violations on record still gets a useful result instead of "no tracked players match."
v3.6August 19, 2026
  • Pre-warnings now get their own 🔔 section in the violation digest instead of blending in with real warnings — they're still informational-only and won't count as an infraction.
  • /log-violation can now be run with no screenshot attached — like /event-rankings, it'll pull screenshots from your own recent messages in that channel instead. Scan window is configurable in Slash Command settings. Re-register your commands from Slash Command settings to pick this up — Discord's own UI was still requiring a screenshot until you do.
v3.5August 18, 2026
  • Your Schedules and Sanct/Fort event lists now default to showing only Active items, with tabs to switch to Completed or All — so the list stays short instead of growing every KvK.
  • A Sanct/Fort event's History tab now groups entries by week with only the current week expanded by default, instead of one long unbroken scroll — click a past week to expand it.
  • Fixed the Sanct/Fort week-lock countdown showing the wrong week number during the Drop Phase (e.g. showing "Week 1" when it was really Week 5) — it now counts from the end of the draft phase like the rest of the event does.
  • Fixed a rare Sanct/Fort bug where two drops or picks happening close together (e.g. two alliances acting within moments of each other) could overwrite one another, leaving a sanctuary showing under both its old and new holder in the summary. Drops, picks, and advances are now protected against this.
  • Fixed a Sanct/Fort draft-phase bug where an unranked alliance's sanctuary claim could keep showing as "held" even after another alliance picked it away in an earlier week — the holdings summary and live view now correctly recognize a claim as stolen no matter which week it happened in, not just the week being displayed.
  • Fixed the Sanct/Fort "Weeks" read-only view showing a ranked alliance's fort picks piling up across every draft week instead of just the current one — forts reset each week like they're supposed to; only sanctuaries are meant to carry forward.
v3.4August 18, 2026
  • The Sanct/Fort Discord webhook that posts pick/drop notifications and weekly summaries is now a kingdom-wide setting instead of something you had to re-enter on every event — set it once from the Sanct/Fort homepage or Kingdom Settings → Sanct/Fort, and it applies to every event automatically. It now also supports posting to multiple channels/threads and choosing embed vs. plain-text style, matching the Gate Notifications setting above it.
  • The Discord Integration section on the Sanct/Fort homepage and in Kingdom Settings now collapses closed by default, so it doesn't take up space when you're not editing it.
v3.3August 17, 2026
  • Moved Sanct/Fort Discord Integration off the (unrelated) scheduler dashboard and out of individual events' Setup tabs — it now lives on the Sanct/Fort homepage itself, plus Kingdom Settings → Sanct/Fort as a second place to reach it. Same kingdom-wide setting either way, just no longer mixed in with a different tool's settings or presented as if it were per-event.
v3.2August 17, 2026
  • Fixed the Sanct/Fort Gate Notifications save button potentially showing "Saved!" even if the save actually failed — it now shows a real error message instead of silently succeeding.
v3.1August 17, 2026
  • The Sanct/Fort Gate Notifications webhook setting became editable from more than one place, ahead of settling on its final home (see 3.3).
v3.0August 17, 2026
  • Added a "🔓 Announce Picking Open" button on Sanct/Fort events — posts a Discord message (with the join link included) that this week's picking is open, without needing to wait for the week-gate countdown. Sending it manually also stops the automatic gate-open notification from posting again for the same week.
  • The automatic "Picking is now open!" Discord notification (when a gated Sanct/Fort week unlocks) now includes the join link — it was previously just the announcement text with no way to act on it.
v2.99August 17, 2026
  • The "(part N/M)" label on a multi-part table-format /event-rankings report now sits inside the same code block as the table instead of as separate text below it, so it reads as one box instead of two.
v2.98August 17, 2026
  • When a bot token is on file, /event-rankings' full report (all parts) now posts as plain grouped channel messages instead of using the command's own reply for part 1 — Discord always renders a direct command reply as its own distinct block no matter what, so that one message could never visually group with the rest. The command's own reply is now just a short "posted below" note.
v2.97August 17, 2026
  • A multi-part table-format /event-rankings report no longer repeats the full descriptive sentence on every part — only part 1 keeps it, later parts just show the table with a small "(part N/M)" label underneath.
v2.96August 17, 2026
  • Fixed a multi-part /event-rankings report still showing a "used /event-rankings" indicator above every part — that turned out to be inherent to Discord's interaction follow-up messages regardless of any reply setting, so later parts now post as plain bot channel messages instead (when a bot token is on file), the same way a schedule-assignment post already does, with no indicator at all.
  • Table-format /event-rankings columns are now KvK# / kingdom# / Alliance / Player / Score — Alliance sits right after the numbers (always plain text, so always reliably aligned) and Player is fixed-width before Score.
v2.95August 17, 2026
  • Clarified how the screenshot reader handles names written in Chinese, Japanese, Korean, or Arabic — those are now treated as their own script to transcribe carefully rather than a stylized-Latin disguise to decode, which should reduce garbled or invented readings on non-Latin names.
v2.94August 17, 2026
  • The table-format /event-rankings report's Player column is now a fixed width instead of sizing to the longest name in each report — the Alliance column now starts in the same spot on every report, not just within one.
v2.93August 17, 2026
  • Fixed table-format /event-rankings column alignment drifting on names with circled-letter styling (e.g. "ⓑⓤⓢ") — those render wider than plain text and weren't being accounted for in the column-width math.
v2.92August 17, 2026
  • Players confirmed as your kingdom by /event-rankings but not yet on your roster now show up in the standings itself (marked ❔/? — not yet linked) instead of only in the separate suggestions list below it, while still generating a Kingdom Roster tab suggestion so they can be added or linked. A closing note explains what the marker means.
v2.91August 17, 2026
  • Fixed more cases of same-alliance suggestions showing as "unconfirmed" even when the screenshot clearly had a kingdom number on every row — the reading step now looks for that number before the harder task of transcribing the (often heavily stylized) name, instead of after, so it stops getting skipped on a legible, cleanly-rendered badge.
v2.90August 17, 2026
  • Same-alliance /event-rankings suggestions now show a ✅ when the screenshot also had a kingdom number confirming they're actually in your kingdom, not just carrying an alliance tag that happens to match — shown in the Discord report and on the Kingdom Roster tab, with confirmed matches listed first.
  • Fixed: the kingdom number could get read as part of the player name instead of its own field (same issue previously fixed for alliance tags), which was making rows show as unconfirmed even when the screenshot clearly had a kingdom number on them.
  • A multi-part /event-rankings report (one that had to split across messages) now sends as plain back-to-back messages instead of Discord replies — replies turned out to look more disconnected (their own header plus a quoted preview), while sequential messages let Discord visually group them together.
v2.88August 17, 2026
  • Fixed: a large /event-rankings read (many screenshots at once) could fail with a "streaming is required" error — the screenshot-reading step now streams its response instead of waiting for it all at once, so bigger batches no longer hit that wall.
v2.87August 17, 2026
  • Fixed: /event-rankings' no-attachment auto-scan was capped at 25 screenshots even though that limit only ever applied to direct attachments (Discord's own option-count cap) — it now picks up to 100 screenshots from recent channel messages, matching what a single read can actually process.
  • Clarified the "same alliance" wording on /event-rankings' roster suggestions (Discord report, embed, and the Kingdom Roster tab) — it's a same alliance-tag match, not a confirmed same-kingdom match, since alliance tags aren't unique across kingdoms.
v2.85August 17, 2026
  • Fixed /event-rankings' table report: the "Alliance" column header no longer gets cut off, columns stay aligned better on stylized/non-Latin names, and the rank columns are now labeled "KvK#" and your kingdom number instead of the ambiguous "#"/"K#".
  • Large /event-rankings reports (e.g. 200+ rows) now split across multiple messages instead of silently dropping players that didn't fit in one.
  • Fixed a bug where, if posting to a separate results channel failed, the full report could also land in the channel the command was run in — you'd see it posted twice.
v2.84August 17, 2026
  • Added a "Rankings report format" setting — choose between a clean aligned table (plain text, always renders the same) or a Discord embed (colored card with medals and bold names) for the /event-rankings report.
v2.83August 17, 2026
  • /event-rankings' "Post results to channel" setting now accepts a comma-separated list of channel/thread IDs, so a report can post to more than one place at once.
v2.82August 17, 2026
  • Clarified that the "Restrict to channel" and "Post results to channel" settings for Discord slash commands accept a thread ID too, not just a channel ID.
v2.81August 17, 2026
  • Fixed: dismissing an event-rankings suggestion, or picking "Skip" on a Sync from Scheduler change, could reappear later even though you already made a decision on it — both now stay dismissed.
v2.80August 17, 2026
  • Fixed: some /event-rankings suggestions showed the alliance tag baked into the player name (e.g. "[HOR]Banking Rookie" instead of "Banking Rookie") — the tag is now always stripped out consistently, regardless of how the screenshot reading came back.
v2.79August 17, 2026
  • Added an optional "Post results to channel" setting for /event-rankings — lets the formatted ranking report post to a separate channel from wherever screenshots get submitted, so a raw screenshot dump channel can stay separate from a clean results channel. Set it in Settings under the Slash Commands section; leave it blank to keep the report in the same channel as before.
v2.78August 17, 2026
  • /event-rankings now reads the per-row kingdom number shown on combined KvK leaderboards and uses it to rule out cross-kingdom false matches — a same-named or same-tagged player explicitly shown as belonging to a different kingdom no longer gets matched to your roster or suggested as "might be yours."
v2.77August 17, 2026
  • Documented an easy-to-miss requirement for the /event-rankings "scan my recent messages" fallback: the bot also needs Message Content Intent enabled in the Discord Developer Portal (Bot tab), not just Read Message History permission — otherwise Discord hides message attachments from it entirely, even ones it can technically see.
v2.76August 17, 2026
  • The /event-rankings "no screenshots found" message now breaks down exactly where the scan came up empty — no recent channel activity, no messages from you specifically, messages from you with no attachments, or attachments that weren't recognized as images.
v2.75August 17, 2026
  • Fixed "The application did not respond" on Discord commands — the screenshot-downscaling library was loading eagerly on every command invocation (not just ones with screenshots), which could push a cold start past Discord's 3-second response deadline. It now only loads when a screenshot actually needs processing.
v2.74August 17, 2026
  • Fixed a gap in the /event-rankings "scan my recent messages" fallback where a legitimately posted screenshot could get silently skipped if Discord didn't tag it with an image type.
  • The "no screenshots found" message now says specifically why — missing bot permission, no recent activity in the channel at all, or no matching images from you — instead of one generic message for every case.
v2.73August 17, 2026
  • Fixed: the /event-rankings screenshot slot was marked required, so Discord's own UI wouldn't let you submit the command with nothing attached — blocking the new "scan my recent messages" fallback from ever being reachable. Re-register your commands from the Dashboard Settings tab to pick up the fix.
v2.72August 17, 2026
  • Fixed: /event-rankings could fail with an error when the full 25 screenshots were attached at once — screenshots are now automatically downscaled before processing, which also speeds up every rankings/violation/score screenshot read.
  • /event-rankings can now be run with no screenshots attached — it'll instead pull images straight from your own messages posted in that channel in the last 5 minutes, so a full "Top 100" batch (drop up to 10 images per message) no longer means filling in 25 separate attachment slots by hand. Needs the bot to have Read Message History permission in your server.
v2.71August 17, 2026
  • /event-rankings now shows a matched player's actual Kingdom Roster name in the results, even when the match was only found through an old AKA or a stylized screenshot reading — previously it would show whatever raw text was legible in that screenshot instead of their real name.
v2.70August 17, 2026
  • Added a "Browse full roster to link" option on the Kingdom Roster Add form — for when the person you're linking to doesn't share enough text in common with what you typed to show up in the quick-match suggestions (e.g. a large alliance, or a stylized screenshot name with no resemblance to their real name). It has its own search box, so you don't have to erase a pre-filled name to use it.
v2.69August 17, 2026
  • /event-rankings "might be yours" suggestions — both in the Discord message and on the Kingdom Roster tab — now show the plain-text best guess alongside the original stylized text (e.g. "Ядвіd (Abid?)") instead of only the raw stylized characters. The original text is always what actually gets added or linked; the guess is just there to help you recognize who it is.
v2.68August 17, 2026
  • Name matching now recognizes another family of decorative "fancy text" letters (barred/struck Latin letters like Ⱥ, Ø, Đ) in addition to the Cyrillic/Greek lookalikes already handled — closes a gap where a stylized name like "Ⱥbid" wouldn't match a roster player named "Abid".
v2.67August 17, 2026
  • Fixed: editing a Kingdom Roster player's name (or adding a player that matched an existing one) would make their AKA history disappear from the table until you refreshed the page — the history was never actually lost, just not shown right away.
  • Fixed: an /event-rankings "might be yours" suggestion you already linked to a roster player kept coming back as unresolved — it now recognizes the linked name as that player's AKA and stops suggesting it.
  • Picking a player from the "link instead of adding new" dropdown on the Kingdom Roster Add form now fills in their alliance and UID for you automatically.
  • /event-rankings screenshot reading is now pinned to its most confident interpretation instead of varying between runs — previously the same screenshot could produce a different stylized-name guess (and a different roster match) each time the command ran.
v2.66August 16, 2026
  • Kingdom Roster search now also matches a player's past names (AKA), not just their current one — and ignores decorative symbols/spacing when matching, so "Short Ⓑ Ⓤ Ⓢ Ksa" and "Short BUS Ksa" find each other.
  • The "link instead of adding new" suggestions on the Roster Add form now search past names too, same as the main search box.
  • /event-rankings now also checks a player's past names (AKA) when matching a screenshot row, in case a screenshot shows an old name that hasn't updated since a rename.
v2.65August 16, 2026
  • /event-rankings now asks the vision model for its own best-guess plain-text reading of heavily stylized names (Cyrillic/Greek lookalike letters, circled/decorative characters, extra spacing) and tries that as a second match against your Kingdom Roster when the literal name doesn't match — should catch a lot more "fancy text" names than character-substitution alone could.
v2.64August 16, 2026
  • Fixed: picking a player from the "link instead of adding new" dropdown on the Kingdom Roster Add form would un-link the moment you kept typing — you can now keep editing the name after picking a link target, it only clears if you cancel it.
v2.63August 16, 2026
  • /event-rankings' "same alliance, might be yours" screenshot hints are no longer thrown away after the Discord message is sent — they now show up as suggestions on the Kingdom Roster tab too, with one click to either add them or link to an existing roster entry.
v2.62August 16, 2026
  • Adding a player to the Kingdom Roster now checks for a possible existing match by name, UID, or alliance as you type, and lets you link to that row instead of creating a duplicate — useful for a name with no UID of its own (e.g. read off a screenshot) that turns out to already be on the roster under a slightly different spelling.
v2.61August 16, 2026
  • Fixed "Confirm Scheduler Sync" not showing the player's name on alliance-only changes — every row now labels which player it is, not just the two entries that also had a name change.
v2.60August 16, 2026
  • Sanct/Fort can now post a Discord message announcing "picking is open" the moment a week-gated event's countdown ends — set it up once in the Dashboard Settings tab, shared automatically across every Sanct/Fort event in your kingdom.
  • A toggle in that same section lets you turn the "picking is open" announcement off without deleting the webhook.
v2.59August 16, 2026
  • "Confirm Scheduler Sync" now reviews name changes as well as alliance changes, and lets you decide per player: apply everything, record the new name as an AKA without renaming, update just the alliance, or skip that player entirely this round.
v2.58August 16, 2026
  • A player synced in under a different name than a locked (manually corrected) roster row now gets recorded as an "AKA" instead of being silently dropped.
  • Adding a player from a Violation Tracker suggestion whose in-game ID already matches an existing roster row now updates that row instead of failing with an error.
  • New "Merge Selected" action on the Kingdom Roster tab — select two or more rows that turn out to be the same player and combine them into one, keeping all their past names as "AKA" on the survivor.
v2.57August 16, 2026
  • Manually correcting a player's name or alliance on the Kingdom Roster now sticks — Sync from Scheduler and new signups will no longer silently overwrite a hand-fixed row. A small lock icon marks corrected rows, click it to re-allow syncing on that player.
  • "Sync from Scheduler" now shows a confirmation listing every alliance-tag change before applying it, instead of applying changes silently — pure new additions still go straight through since there's nothing to review there.
  • The alliance count on the Kingdom Roster tab is now clickable — see every alliance and its member count, and click one to filter the table to just that alliance.
  • Kingdom Roster rows can now be multi-selected with checkboxes and reassigned to a new alliance all at once — useful when an alliance merges or renames.
v2.56August 16, 2026
  • Kingdom Roster entries created from a scheduler signup now stay linked to that player's in-game ID, so if they rename between events, their existing roster entry gets updated instead of a duplicate being created.
  • Re-running "Sync from Scheduler" also retroactively links any existing roster entries that match, so past syncs benefit too.
  • Roster rows linked to a scheduler signup now show a small link icon next to the name.
  • Violation Tracker suggestions on the Kingdom Roster tab now also carry the player's in-game ID through when it's known, so adding one links it the same way a scheduler signup would.
  • Bulk Import and Sync from Scheduler now show a real error message if something goes wrong instead of silently reporting nothing added.
  • Kingdom Roster now keeps a history of past names for each player, same as the Violation Tracker already does — a rename shows up as "AKA" under their current name instead of being silently lost.
  • Violation Tracker suggestions on the Kingdom Roster tab now show a small link icon on the ones that have an in-game ID on file, so it's clear which will link automatically versus which are name-only matches.
  • Kingdom Roster table now shows each player's UID, is sortable by clicking Player, Alliance, or UID, and is paginated (25/50/100 per page) now that lists can run long.
  • Kingdom Roster search now also matches on UID, not just name and alliance.
  • UID can now be entered manually when adding a player, and edited on any existing roster entry.
v2.55August 16, 2026
  • Kingdom Roster now keeps itself current automatically — every new scheduler signup adds/updates that player going forward, no manual entry needed.
  • New "Sync from Scheduler" button on the Kingdom Roster tab backfills the roster from every signup across all of your schedules, including ones that already finished — a one-click way to bring in the data you already have.
  • The Kingdom Roster tab now suggests names from the Violation Tracker that aren't on the roster yet, with one-click "Add" — nothing gets added automatically, since a violation record isn't always a current member.
  • /event-rankings now flags leaderboard rows that share an alliance with someone on your roster but aren't matched to a name, as a "might be yours" hint — never added automatically, since alliance tags can repeat across kingdoms.
v2.54August 16, 2026
  • New "Kingdom Roster" tab in the Violation Tracker — a real membership list (player + alliance), separate from the violation watchlist. Add players one at a time or paste your whole kingdom list in at once with Bulk Import.
  • /event-rankings now matches leaderboard screenshots against the full Kingdom Roster instead of only players who've had a violation logged, so it actually finds your top scorers.
  • Each matched player in /event-rankings now shows two ranks side by side — their placement in the full event and their placement among just your kingdom's roster — with a "KvK (kingdom number)" legend above the list explaining which is which.
v2.53August 15, 2026
  • /event-rankings can now take up to 25 screenshots per report (up from 4) — Discord's own per-command limit, so this should never need raising again.
v2.52August 15, 2026
  • New Discord command: /log-score reads a KvK score screenshot and saves that day's score straight into the KvK Score Tracker — pick the schedule and day from a couple of quick menus, swap sides or correct the numbers if needed, then confirm.
  • The Slash Commands settings (command names, channel restrictions, bot connection info) now also appear in the kingdom Hub Settings page, not just the Violation Tracker's own settings — same setup, either place.
  • /event-rankings and /log-score now each have their own optional "restrict to channel" setting instead of sharing one.
v2.51August 15, 2026
  • New Discord command: /event-rankings reads a top-100/leaderboard screenshot and reports where this kingdom's own tracked players placed, cross-referencing against the roster instead of dumping the raw list back.
  • The new command's name is configurable per kingdom (Slash Commands settings), and can optionally be restricted to a single Discord channel.
v2.50August 15, 2026
  • Fixed the Violation Tracker's tab bar (Violations, Blacklist, Rules Library, etc.) wrapping onto two messy lines on narrow phone screens — it now scrolls sideways instead.
v2.49August 14, 2026
  • The Score Summary Webhook (Dashboard → Settings → Discord Integration) now supports multiple channels/threads instead of just one — add as many as you want with labels, enable/disable toggles, and per-entry Thread IDs, matching the general webhook list.
v2.48August 14, 2026
  • The KvK Score Summary now distinguishes an in-progress standing from a final result — the total shows "so far" and a leading indicator instead of a trophy until every day is reported AND the actual scoring window has closed (10 hours into the day after the last KvK day), matching when scores truly become final.
v2.47August 14, 2026
  • The KvK Score Summary now shows which kingdom won each day (and the overall total), both in the on-page score table and the Discord post — no more guessing from the raw numbers.
  • Fixed a Discord post issue where days without a specific buff type showed a duplicated label (e.g. "Day 1 — Day 1").
  • The Total line/field in the KvK Score Summary now also shows which kingdom is which (e.g. "K585 vs K610"), matching the per-day fields.
v2.45August 12, 2026
  • Shortened how long score auto-post keeps running past the schedule's last KvK day before turning itself off, from 48 hours to 24 — still comfortably covers the 10-hour scoring window past midnight on the final day, just with less unnecessary idle time after prep wraps up.
v2.44August 12, 2026
  • Added a Thread ID field for the Score Summary Webhook (Dashboard → Settings → Discord Integration), matching the thread support the general webhook list already had — the score post can now go into a specific thread instead of only the channel root.
v2.43August 12, 2026
  • Admin Portal: replaced the "Violation Digest Hour" setting with a simple Enabled/Disabled toggle. The old setting required manually keeping a database value in sync with the actual cron schedule (a deploy-only change) — mismatching them silently stopped the daily digest with no warning. The toggle only pauses/resumes it; the time itself is still set in code and requires a deploy either way.
v2.42August 12, 2026
  • Moved the daily violation digest and score auto-post from 09:00 UTC to 13:00 UTC.
v2.41August 12, 2026
  • Moved the score summary's custom Discord webhook to a kingdom-wide setting (Dashboard → Settings → Discord Integration → Score Summary Webhook) instead of being entered separately on each schedule — one setting now covers every schedule you run.
  • Auto-post daily scores now turns itself off automatically about 2 days after the schedule's last KvK day, instead of continuing to re-post a frozen summary forever once prep is over.
v2.40August 12, 2026
  • KvK Score Tracker: choose between a colorful Discord embed or plain text for the score summary post.
  • KvK Score Tracker: optionally post to a completely different Discord webhook than the rest of the schedule's posts — handy for a dedicated scores channel.
  • KvK Score Tracker: added "Auto-post daily at 9:00 UTC" — once turned on, the score summary posts (or updates) itself every day without anyone needing to click the button.
v2.39August 12, 2026
  • Added a "Post to Discord" button in the War Room's KvK Score Tracker — posts a per-day score summary (with running total) to your configured Discord webhook. Posting again after updating scores edits the existing message instead of creating a new one each time.
v2.38August 12, 2026
  • Managers can no longer delete a player submission outright in the War Room — deleting now requires the schedule owner's approval. A manager's "Delete" click becomes a deletion request the owner can confirm or dismiss right from the same row, matching how deleting a whole schedule already works.
  • Fixed the "Post to Channel" button on /check-player sometimes failing to appear on searches with a long or special-character query — the button's internal ID could exceed Discord's length limit.
  • Fixed the "Assign Player" search box in the War Room carrying over your last search when reopened for a different open slot.
  • Fixed the second message in a long "Post Open Slots" or "Post Schedule to Discord" post repeating the exact same section header as the first instead of being marked as a continuation.
  • Sanct/Fort: the "Advance" button now warns instead of silently claiming "all picks are in" when used to skip ahead before a week (draft or drop phase) has actually finished.
v2.37August 12, 2026
  • New: Sanct/Fort week gate. Owners can turn on a countdown that keeps a newly-opened week locked (with a dimmed overlay, like a modal) until a chosen weekday at 00:00 UTC, instead of it opening to everyone the instant the previous week finishes. Pick a different day per event to match your server's rotation. Off by default — turn it on in Setup.
  • Owners can open a gated week early with one click ("Open Now") whenever they want, without affecting future weeks' gating.
  • Turning the week gate on now locks the week that's already open right away, instead of waiting for the next week to lock it — for events where the current week advanced before the gate existed or before it was turned on.
  • Restyled the week-gate countdown as separate glowing, pulsing tiles (days/hours/minutes/seconds, down to the second) instead of a plain text line, and gave the "Open Now" button the same pulsing glow.
v2.36August 12, 2026
  • Send DMs is now smart by default — it only messages players who are new or whose slot assignment changed since their last DM, instead of re-messaging everyone every time. "Resend to everyone" is still there as a one-click option when you want a full re-blast.
  • You can now check off specific players in the War Room and send DMs to just that selection — handy for re-poking one or two people after a manual tweak instead of resending to the whole roster.
  • Hovering a player's DM checkbox now shows when they were last DMed (or "Never DMed") and whether their current assignment has changed since.
  • Fixed a false "DUP" (duplicate) warning that could briefly show up on a player you just added as a manager in the War Room — it cleared on refresh before, now it doesn't appear in the first place.
  • Fixed the Sanct/Fort draft week progress dots not marking a week as complete when it included a skipped alliance turn.
  • The "week complete — post to Discord?" prompt now also appears for Sanct/Fort draft weeks, matching how it already worked for drop-phase weeks.
  • Sanct/Fort events now update live for everyone signed in directly, instead of checking for changes every 5 seconds — picks and drops from other alliances show up immediately.
  • Fixed a rare case in Sanct/Fort where clicking "Advance" right after a week auto-completed could skip an extra week — it now double-checks the event hasn't already moved on before advancing.
v2.35August 10, 2026
  • Sanct/Fort Draft: owners can now skip an alliance's turn during the draft (for an AFK or disqualified alliance) instead of the draft being stuck waiting on them. Skipped turns can be undone the same way as a regular pick.
v2.34August 10, 2026
  • Added an "Assign" button to unfilled slots in List view — suggests the best available player for that slot (same logic as Replace Player), and lets you search and pick anyone else eligible instead.
  • Manual War Room actions — assigning, reassigning, unassigning, replacing, swapping, and moving a player, plus publishing/unpublishing assignments — now show up in the Activity Log. Previously only auto-assign and clearing slots were tracked.
  • Added a Refresh button to the War Room. Live updates only reach accounts signed into the app directly — access via a manager passcode or shareable link doesn't get them, so those views could silently fall behind after other changes were made. Refresh reloads the current submissions and assignments on demand.
  • Gave the training tab's "Re-roll troop pts/day scores" button its own dice icon — it was sharing a near-identical circular-arrow icon with the new Refresh button, which was easy to mix up at a glance.
  • Fixed the "Confirm Submission/Update" popup running off the right edge of the screen on mobile when a player's name or User ID was long — it now truncates cleanly instead of pushing the rest of the popup off-screen.
  • KvK Score Tracker point fields now show comma-formatted numbers (e.g. 590,755,120) once you move to the next field, matching the Total row below.
  • Fixed the Add Player / Edit Submission popup closing itself — and discarding whatever you'd typed — from a single stray click anywhere near it. It now only closes from the X button, like every other popup in the app.
v2.33August 9, 2026
  • Decluttered the schedule toolbar on mobile — it now wraps onto a clean second row (Communicate, More, Publish) instead of the last button or two running off the edge of the screen.
  • Merged Published/Unpublish into a single toggle button instead of two side-by-side controls, and unpublishing now asks for confirmation first.
  • Moved Export to Excel and the Swap how-to link into a new "More" menu, freeing up space in the toolbar.
  • On desktop, the player filter bar now puts Add Player and the search box on their own row, with alliance/account filters and the rest of the controls on a second row below.
v2.32August 9, 2026
  • Added an "Add Player" button so managers can submit a player's answers on their behalf — including after submissions have closed or the deadline has passed, which previously wasn't possible for anyone, manager or not.
  • Manager Add Player / Edit Submission no longer enforces the "minimum slots per buff type" rule — that's meant to guide players filling out their own form, not to block a manager entering someone with limited availability.
  • Fixed the "Confirm Submission/Update" and "already submitted" popups looking like an awkward floating card on mobile — they now sit flush against the bottom of the screen like a proper bottom sheet, with room for taller content to scroll instead of getting cut off.
v2.31August 9, 2026
  • Fixed several Schedule Settings fields silently failing to save, with no error shown: Auto-assign account priority, minimum score, minimum speedup days, minimum slots required, alliance slot cap, low-slot threshold, Research TTG toggle, and custom player instructions. The save request looked successful because other fields in the same save did go through — these specific ones were quietly dropped every time.
  • Fixed the Score column in the player table being visually cut off (usually missing its leading digit) for large scores, most noticeable on the Construction tab where scores commonly run into the millions.
  • Player slot lookup now shows the day of the week next to your local time (e.g. "9:15 PM (Monday)"), not just the UTC date up top — the two can differ for late-night slots, and this makes it unambiguous. Works in every supported language.
v2.30August 9, 2026
  • Added a "Open Slots" button next to the schedule's Discord export — posts a short, standalone message listing just the still-unfilled slots (grouped by day), instead of the whole roster. Useful for recruiting without re-posting the full schedule. Tracked separately, so it can be updated on its own the same way the full schedule post can.
  • Decluttered the schedule toolbar: Discord export, Open Slots, and DM are now grouped under a single "Communicate" dropdown instead of three separate buttons — same actions, less visual noise, and it collapses more gracefully on mobile.
v2.29August 9, 2026
  • Added a step-by-step illustrated guide for reporting a violation via /log-violation, covering both a single offender and a multi-player batch. Linked from NAP Settings' Slash Commands section and from the bot's own message in Discord.
  • Fixed "Publish Assignments" failing with "Failed to publish — please try again" every time — the field it needed to save was missing from the server's list of allowed fields.
v2.28August 9, 2026
  • Renamed /log-violation's "Confirm & Log" button to "Log & Finish" — it logs the current player and closes out the report, which the old name didn't make clear.
  • /log-violation's AI-generated Details are now more concise and only written when there's actual violation evidence — informational screenshots (like a leaderboard with nothing wrong) no longer get a filler description explaining that nothing happened.
  • The screenshot(s) used for a /log-violation report are now included in the Live Log Discord post, along with the date, instead of just a text summary — posted once per screenshot batch, not repeated for every player logged from the same evidence.
  • Renamed /log-violation's Edit Details modal to "Save Details (not logged yet)" — Discord's Submit button on that popup can't be relabeled, so this makes clear that submitting it only saves your edits and doesn't log the violation on its own.
  • The screenshot in a Live Log post now appears above the violation summary instead of below it.
  • The screenshot in a Live Log post now has a title line — "Event - Date mm-dd-yyyy" — instead of appearing with no context.
  • The Live Log screenshot post now also shows the event's points limit under the title, when one is set.
  • /check-player results now have two buttons: Close to dismiss them, and Post to Channel to share the lookup into your Live Log Discord channel.
  • Fixed the Live Log channel posting a new message after every single player in a multi-player /log-violation batch, which kept scrolling the reporter's Discord view away from the report they were still working on. It now posts once — when the batch actually finishes (all players logged, Log & Finish, or Cancel) — combining everyone logged into one message instead of one post per player.
  • The Live Log post now shows each player's points next to the event's limit (e.g. "247,970 / 114.0K") instead of just the raw number.
  • The Live Log post now includes the player's UID (when known) alongside their name and alliance.
v2.27August 9, 2026
  • Fixed managers editing a player's submission (e.g. from the war room) incorrectly being warned "You already submitted" and prompted to submit anyway — that check only makes sense for brand-new submissions and no longer runs while editing an existing one.
  • /log-violation now shows a clear warning when a player has no UID detected, nudging you to add one via Edit Details before confirming — without it, that player can't be reliably matched to their tracked record later.
  • Failed posts to a kingdom's Live Log Discord webhook are now logged server-side instead of failing silently, so a misconfigured or broken webhook can actually be diagnosed.
v2.26August 9, 2026
  • Added optional event shorthands: give any in-game event (and its stages) a short label like "SG" for "Strongest Governor" — set site-wide defaults from the admin portal, and each kingdom can override them (or set their own for custom events) from the Points Limits tab.
  • /log-violation's Event dropdown now shows the shorthand where one is set, so long event and stage names stay readable alongside the points limit.
  • /log-violation's Event dropdown now shows points limits in short form (e.g. "941.0K" instead of "941,000"), matching the website's Points Limits tab.
v2.25August 9, 2026
  • Fixed /log-violation's Edit Details showing a blank "Violation Type" even after picking a Rule from the dropdown — it now reflects the picked rule.
  • Renamed "Violation Type" to "Rule Broken" in /log-violation to match the website's wording, and fixed the extraction preview showing "not detected" for it even when a Rule was already picked.
  • Renamed /log-violation's "Done" button to "Cancel" (now shown in red) since it discards the pending report rather than completing it.
  • When a screenshot has more than one reportable player, /log-violation now shows two distinct buttons: "Log Next" to log the current player and move on to the next, and "Confirm & Log" to log the current player and stop without reviewing the rest.
  • Fixed a multi-player /log-violation bug where correcting a player's details in Edit Details, then switching to another player and back, would silently discard the correction and revert to the raw screenshot reading.
  • /log-violation's Event dropdown now shows each event's points limit right in the list (or "No Set Limit" if it has none), instead of only revealing it after you'd already picked one.
v2.24August 9, 2026
  • Player search now finds names typed with "fancy text" styling — searching "Vayu" now finds a player tracked as "〆 Vαуυ 〆", since the stylized letters are lookalikes of Greek, Cyrillic, or decorative Unicode characters rather than plain letters. Applies everywhere you search for a player: the Violation Tracker, the scheduler-linking suggestions when adding a player, and Discord's /check-player.
v2.23August 9, 2026
  • Fixed Confirm & Log sometimes showing "This interaction failed" in Discord even though the violation logged successfully — it now acknowledges immediately and finishes the work in the background, same pattern /log-violation already used.
  • Fixed confirming one player from a multi-player screenshot silently dropping a second, different player who happened to share the same name (common when no UID is visible) instead of only removing the one just logged.
  • Various backend performance and reliability cleanups: faster dropdown responses in /log-violation, and failed Discord message updates now get logged server-side instead of failing silently.
v2.22August 9, 2026
  • /check-player now shows real information instead of just a status badge — offense count, the most recent violation and its date, and (for banned players) when the ban expires or that it's permanent.
  • Fixed /check-player (including its autocomplete) to properly escape special characters in the search text, so a search containing punctuation can no longer affect what results come back.
v2.21August 9, 2026
  • Editing "Violation Type" in /log-violation's Edit Details now auto-picks the matching Rule if it exactly matches one of your rule names — keeps punishment-tier escalation working instead of silently falling back to unmatched free text.
v2.20August 9, 2026
  • /log-violation now warns when the player about to be logged already matches a tracked player by name but has no UID to confirm it's the same person — since screenshots rarely show a UID, this is the common case, and logging without one would silently create a duplicate record. Add the matching UID via Edit Details to link it to the existing player instead.
v2.19August 9, 2026
  • /log-violation's Edit Details now includes Points Scored, so one popup covers Player Name, UID, Alliance, Violation Type, and Points instead of needing a separate "Edit Points" button. Removed the standalone Points button as a result.
  • The auto-generated Details summary is no longer hand-editable in Discord (it still shows in the preview) — Discord modals only allow 5 fields, so Points took its place since it needs manual correction far more often.
v2.18August 9, 2026
  • /log-violation's Event picker now includes per-stage points limits (e.g. "Strongest Governor — Stage 4"), matching the website's Points Limits tab — previously it only saw an event's overall limit, which most events don't actually set.
  • Confirming a violation from a screenshot with multiple flagged players no longer ends the session — it now offers whoever's left so you can report each one (with their own correctly-computed tier) without re-uploading the screenshot. Added a "Done" button to stop early.
v2.17August 9, 2026
  • /log-violation now leads with the in-game Event picker instead of burying it — since the event is what determines the points limit everything else gets judged against.
  • The player picker now reads each detected player's score straight off the screenshot and flags (⚠️) anyone over the current event's points limit, sorted highest first — no more having to eyeball a leaderboard yourself to figure out who's actually reportable.
  • Points Scored now auto-fills from the screenshot when it's visible, with a new "Edit Points" button for whenever it isn't.
  • Fixed the screenshot reader folding a player's alliance tag into their name (e.g. "[MFR]PlayerName") instead of splitting it into the separate Alliance field.
v2.16August 9, 2026
  • /log-violation now accepts up to 4 screenshots in one command, and looks at every player named across all of them — not just one. If more than one player is detected (e.g. a leaderboard), you get a dropdown to pick who's actually being reported.
  • Added an "Edit Details" button to /log-violation so you can fix or fill in anything the screenshot reader missed — including the player's UID, which screenshots rarely show — before confirming.
  • /log-violation now has an in-game Event dropdown, matching the website's Violation Tracker. If the event has a points limit set, you'll be prompted for Points Scored right there in Discord.
  • /log-violation now has a Category dropdown that narrows the Rule dropdown to that category's rules, matching the Rules Library's categories on the website. Confirming now also applies the correct punishment tier for the player's offense count on that rule (and auto-logs a Warning instead of a Violation for a rule's first offense, same as the website) instead of just recording the rule name with no consequence.
v2.15August 9, 2026
  • NAP Settings sections reordered to Discord Bot → Notifications → Slash Commands, matching setup order (connect the bot, then pick where it posts, then turn on commands).
  • "Occasions" renamed to "Events" throughout the Violation Tracker settings, matching in-game terminology.
  • The In-Game Events section now shows a collapsible list of the admin-managed system defaults (collapsed by default) instead of only mentioning them in passing.
v2.14August 9, 2026
  • NAP Settings reorganized: Discord setup is now split into three focused sections — Notifications, Discord Bot Connection, and Slash Commands — instead of one long combined card.
  • "Connected"/"Not connected" and "Configured"/"Not configured" status badges added to the Discord Bot and Slash Commands sections so you can tell what's set up at a glance.
  • The two violation webhooks (periodic digest and live per-violation log) now live together under one "Discord Notifications" section since they're both about where updates get posted.
v2.13August 9, 2026
  • Fixed the Interactions Endpoint URL copy button in NAP Settings giving no feedback when clicked — it now shows a checkmark and "Copied!" so you know it worked.
v2.12August 9, 2026
  • Added a dedicated "Violation Log" webhook (NAP Settings → Discord) — every violation confirmed through /log-violation now posts a permanent record to a channel or thread of your choice, separate from the periodic digest, and regardless of where the command was typed.
  • Fixed the Discord Bot section always showing "Not set" for your bot token after saving it, even though it was actually saved — it now correctly shows it's configured.
v2.11August 9, 2026
  • New Discord slash commands: /log-violation lets anyone snap a screenshot of an in-game violation and Claude reads the player and violation details straight off the image for you to confirm before it's logged. /check-player looks up a tracked player's status without leaving Discord, with autocomplete as you type.
  • Each kingdom registers these commands on their own Discord bot and can rename them to whatever they like from NAP Settings — nothing shared across kingdoms.
v2.10August 8, 2026
  • The Discord digest's "Expiring Soon" ban window is now configurable per kingdom (Blacklist → Configure) instead of fixed at 3 days.
v2.09August 8, 2026
  • Discord violation digest now calls out bans expiring within the next 3 days in their own "Expiring Soon" section at the top, instead of leaving it to be spotted in the full ban list. Applies to both the daily digest and the manual "Post to Discord" button.
v2.08August 8, 2026
  • Blacklist tab (Event Bans and Alliance Bans) now sorts by expiry date first — whoever's ban lifts soonest shows at the top — then alphabetically by name. Permanent bans with no end date sort to the bottom.
v2.07August 8, 2026
  • Adding a player now blocks the save outright if their in-game UID is already tracked, instead of only warning — you get a direct link to the existing record rather than a second copy. A name-only match (no UID confirmed) still just warns, since two different players can share a name.
v2.06August 8, 2026
  • Violation Tracker now flags possible duplicate players — same in-game UID entered under two different names — with a "Review & merge" banner. Merging combines their violation history onto one record and keeps every name they've used as an AKA.
v2.05August 8, 2026
  • Fixed the "AKA" previous-name badge and the live scheduler-sync banner not showing up on the Violations tab — they were only ever reaching the History tab before.
  • Name-history tracking is now airtight against two people editing the same player at the same time — no more chance of a name briefly slipping through unrecorded.
v2.04August 8, 2026
  • Editing a tracked player now shows their current scheduler entry live, with a one-click sync for name/alliance — no more relying on a snapshot from whenever they were first linked.
v2.03August 8, 2026
  • Violation Tracker now remembers a player's previous names — renaming someone no longer erases their old name, it shows as "AKA" on their card and in the edit form.
  • Fixed the History tab showing outdated results when you switch to it — it now always loads fresh instead of requiring a manual refresh.
v2.02August 8, 2026
  • Violation Tracker: picking a suggested player from the "From Scheduler" list now actually links that violation to their scheduler record, instead of just copying the name in as text.
  • Manually typing or editing a name/UID after picking a scheduler suggestion clears the link, so it never points at the wrong player.
  • Players not currently in the scheduler can still be added to the Violation Tracker by typing their info in as before.
v2.01August 8, 2026
  • Admin Portal is now split into four tabs — Kingdoms, Settings, Rewards, and Invite — instead of one long scrolling page.
  • Invite button now takes you straight to the Invite tab instead of opening a popup.
  • Schedule Settings: fixed the sidebar not staying in view while scrolling, and the edit form now uses the full page width instead of being squeezed.
  • NAP Settings: added a sticky sidebar with quick links to Violations, Occasions, and Discord sections.
v2.00August 8, 2026
  • Activity log now records Sanct/Fort events — picks, drops, clears, week advances, and new event creation all appear in the Recent Activity feed with a purple Sanct/Fort badge.
  • Fixed scheduler actions (auto-assign, schedule creation, exports, etc.) not recording to the activity log due to a NOT NULL database constraint that silently rejected every write.
  • Dashboard now always shows fresh activity data on hard reload.
v1.99August 8, 2026
  • Activity log now works across all tools — NAP violations, player status changes, and schedule updates from the Hub all appear in the Recent Activity feed alongside scheduler actions.
  • Fixed activity log entries not recording in any tool due to a database schema mismatch that silently discarded every write.
  • Activity log entries now show meaningful labels for all action types instead of just the actor name.
v1.98August 8, 2026
  • Owner dashboard now shows a Recent Activity log — logins, schedule creation, auto-assign runs, slot clears, Discord DM sends, and CSV exports are all recorded with the actor name and timestamp.
  • All auth cookies (manager and player) now expire after 7 days instead of 30.
v1.97August 5, 2026
  • Sanct/Fort: new "Weeks" tab lets you browse any previous week's holdings or drop/pick activity as a read-only snapshot — no risk of making accidental changes.
  • Sanct/Fort: "Duplicate Season" button on completed events copies all settings, alliances, sanctuaries, forts, rewards, and Discord config into a fresh event with picks and state cleared — ready to reuse for the next season.
v1.96August 5, 2026
  • Violation digest: warnings now appear before violations, and bans appear last — each group sorted newest-first.
  • Violation digest: Active Bans section now shows one ban per line for easier reading (no more wall of commas).
  • Violation digest: "Alliance Ban" category renamed to "NAP Ban/Blacklist".
  • Sanct/Fort: fixed unranked loose claim not appearing in Discord summaries when picks were cleared and re-made.
  • Sanct/Fort: manual "Post to Discord" button and the advance auto-post now correctly target the week that just completed, even when the week counter already auto-advanced after the last pick.
v1.95August 5, 2026
  • Security: the global reward library can now only be modified by the system admin — regular owners' customizations are saved per-event as before.
  • Security: Discord webhook URLs are now validated to only allow official Discord webhook addresses (prevents server-side request to internal addresses).
  • Security: the Sanct/Fort join page no longer sends the invite token to the browser — authentication is now fully server-side.
  • Security: Discord thread IDs are validated to digits-only to prevent URL parameter injection.
v1.94August 5, 2026
  • Sanct/Fort: Discord summaries now use a 3-column embed layout (Alliance | Fort | Sanctuaries) for clean side-by-side alignment.
  • Sanct/Fort: alliance color circles in Discord posts now deduplicate — if two alliances share a similar color, one gets a circle and the other a square so they never clash (16 shape options total).
  • Sanct/Fort: alliance names in plain-text summaries are automatically padded based on letter widths so the fort column lines up visually across all rows.
  • Sanct/Fort: sanctuaries in Discord summaries are now listed in numerical order (S1, S4 — not pick order).
  • Sanct/Fort: each Discord summary includes an "In-game copy" code block — tap it on mobile to get a Copy button with a plain-text version (no emojis or markdown) ready to paste into game chat.
v1.93August 5, 2026
  • Sanct/Fort: Discord week summaries now come in two styles — Embed (colored card with per-alliance fields) or Plain Text (emoji-rich with blockquotes). Toggle between them in Setup → Event Settings → Summary Style.
  • Sanct/Fort: weekly summaries now automatically tag @everyone when posted to Discord.
v1.92August 4, 2026
  • Sanct/Fort: pick notifications in Discord now include the reward name — e.g. "HOR picked Sanctuary 3 : Health".
  • Sanct/Fort: new History tab shows a timestamped log of every pick, drop, week advance, and clear — including who made the action.
  • Sanct/Fort: event view now live-polls every 5 seconds so picks by other users appear without a page refresh.
v1.91August 4, 2026
  • Sanct/Fort: unranked alliances now pick 1 sanctuary + 1 fort per draft week (same as ranked), going in round-robin until each has both — no more early week advance when items are still available.
  • Sanct/Fort: "← Back to Wk N" button in the draft sidebar lets the owner roll back to the previous week (clears current week's picks after confirmation).
v1.90August 4, 2026
  • Sanct/Fort: share a direct join link — tap "Copy Join Link" in the event header to copy a URL that lets managers enter their name and passcode to view the event without needing a Hub account.
  • Sanct/Fort: Discord thread support — paste a Thread ID in Setup to route all pick notifications and weekly summaries into a specific Discord thread.
  • Sanct/Fort: draft now uses a strict round-robin — R1 picks once, then R2, R3, R4, and back to R1 for their second pick (one pick at a time, not both before the next alliance).
  • Sanct/Fort: reward pool images now appear inside the item badge itself (replacing the colored square), with the item color as a thin outline ring.
  • Sanct/Fort: Setup side nav now switches between sections on click rather than scroll-tracking — tap a section name to jump to it.
  • Sanct/Fort: fixed dark theme visibility — backgrounds and borders now render correctly across all event views.
v1.89August 4, 2026
  • Sanct/Fort: verified weeks — tap the dot under any week column in the Rewards tab to mark rewards as confirmed (green ✓); visible to all viewers.
  • Sanct/Fort: reward image library — define reward types once in Setup with an optional image URL; images rotate with rewards across sanctuaries and forts automatically.
  • Sanct/Fort: Discord integration — add a webhook URL in Setup to get per-pick notifications and a weekly holdings summary posted automatically on week advance; use the 📣 button in the header to post manually.
  • Sanct/Fort: confirmation modals now appear before undoing a draft pick, clearing a weekly pick, advancing the week, or restarting the draft.
  • Sanct/Fort: buttons now visually depress when held (press-down scale effect).
v1.88August 4, 2026
  • New tool: Sanct/Fort Picker — manage the full Sanctuary & Fort event from draft to weekly cycle.
  • Draft phase: alliances pick sanctuaries and forts in ranked prep order, with unranked alliances picking from leftovers after each round.
  • Weekly cycle: each alliance drops 1 sanctuary, then picks 1 item from a combined pool of dropped sanctuaries and all 4 forts — their choice.
  • Reward rotation: configure 4 reward labels per sanctuary group (S1–4, S5–8, S9–12) and 4 fort rewards — the tool auto-rotates them one step per week within each group.
  • Mid-season reward updates: when new rewards appear (e.g. week 5), hit Update Rewards to save a new snapshot; the Rewards tab shows the full rotation schedule for all weeks.
  • Thumbnails: each sanctuary and fort can display a 64×64 image (paste a URL) or fall back to a colored text badge.
  • Enable or disable the Sanct/Fort Picker tool per kingdom in Hub Settings.
v1.87August 4, 2026
  • Security: manager passcode login was silently broken for all accounts — fixed a comparison bug that prevented bcrypt-hashed passcodes from ever matching.
  • Security: invite links (/invite/…) always showed "Invalid Invite Link" for valid tokens — fixed a permission issue in the page query.
  • Security: malformed or javascript: URLs in Quick Links and Command Center URL no longer execute in the browser — scheme is validated at save time and at render time.
  • Security: Discord webhook posts no longer include role/user mention pings; chunk count and size are validated before sending.
  • Security: Discord thread ID is capped at 20 digits when saved, preventing malformed webhook URLs from breaking all future posts.
  • Security: manager display name cookie is now httpOnly, preventing browser scripts from forging audit-log attribution.
  • Security: HMAC cookie signing uses constant-time comparison and a full 64-character digest.
  • Security: manager authentication now issues a cryptographically signed cookie for all Hub API routes — the legacy unsigned cookie is kept only for scheduler-app compatibility.
  • Security: schedule update, violation event, and rule creation endpoints now validate fields explicitly instead of forwarding raw request bodies.
  • Security: global admin settings table is now locked to service-role access only.
  • Security: swap-request lookup now requires player or manager authentication.
  • Security: points-limit saves are validated at the API layer (finite positive numbers, notes capped at 500 characters).
  • Security: Discord bot token is no longer fetched to the browser — it is write-only.
v1.86August 3, 2026
  • NAP points limits now accept multiplier expressions — type "3x" to set a limit at 3× the default, or enter a raw number as before. A live preview shows the resolved value as you type.
  • Blacklist tab: "Show expired" toggle reveals violation records with past expiry or sanction end dates, styled in muted tones so active entries remain easy to spot.
  • Alliance ban rows now show a "+event ban" chip when the player also carries an active event-level ban.
  • Violation rule descriptions longer than two lines collapse by default — click "more" to read the full text.
  • Add Player form now searches existing violations and scheduler submissions as you type — pre-fills the form when you pick a match to avoid re-entering known players.
  • Add Player form supports a batch queue — stage multiple players in one session and submit them all at once.
  • Template cards show a full-message preview modal — click any card body to see the complete text before copying.
v1.85August 3, 2026
  • Punishment tiers now support an optional description — add a short note to each tier that appears in rule cards and the blacklist.
  • Each punishment tier can now specify how many days the sanction itself lasts (separate from when the violation record expires). The Sanction End Date is auto-computed when logging a violation and shown in the Blacklist tab.
  • Rules are now versioned — every time you edit a rule's content, the version number bumps automatically. Violations log which version of the rule was in effect at the time.
v1.84August 3, 2026
  • New Blacklist tab in the Violation Tracker — shows all players currently under an active event ban or alliance ban, auto-derived from your violation records.
  • Configure which punishment tier names count as event bans or alliance bans (each kingdom can use their own names).
  • Active bans are included in the daily Discord digest — even on days with no new violations, the banlist is posted so your team always knows who's restricted.
  • Banlist shows player name, alliance, rule, punishment tier, and expiry date (or "Indefinite" for bans without an expiry).
v1.83August 3, 2026
  • Message Templates: Save button now correctly blocks when a message exceeds the 512-character or 11-line limit.
  • Message Templates: public share link no longer 404s when opened from the main domain.
  • Message Templates: public viewer shows only the kingdom's own templates — the Pre-Built tab is hidden for visitors.
  • Message Templates: network errors when saving, pinning, or deleting templates now surface clearly instead of failing silently.
v1.82August 3, 2026
  • New tool: Message Templates — a library of ready-to-copy alliance messages for events, discipline, announcements, KvK prep, Strongest Governor days, and more.
  • Two tabs: Pre-Built (admin-managed global templates shared with all kingdoms) and your own Kingdom tab. Copy any pre-built into your library with one click.
  • Over 40 K585 pre-built templates across 10 categories — load them instantly from the Pre-Built tab (admin seeds these for all kingdoms).
  • Template editor enforces game-chat limits: 512 character max and 11 line max, each with a live progress bar.
  • Pin templates to the top, search and filter by category, create/edit/delete your own templates.
  • Share a public read-only link (/mt/your-id) so kingdom mates can browse and copy templates without logging in.
  • Super admin can manage the global Pre-Built library (add, edit, delete, reseed from K585 defaults) — changes appear for all kingdoms instantly.
v1.81July 28, 2026
  • Violations table redesigned: warnings (⚠ amber) and violations (🔴 red) now share the same numbered slots in chronological order — no separate warning column. Both types participate in the rule's tier chain and expire the same way.
  • Pre-warnings (🔔) moved off the table grid and into a hover badge on the player's name — hover to see details, issued date, expiry, and edit/delete controls.
  • Pre-warnings can now have an explicit expiry date set when logging them.
  • Warnings now expire under the same rule-chain logic as violations.
  • History tab expiry filter now reflects warning expiry correctly.
v1.80July 28, 2026
  • Pre-warnings added to the Violation Tracker — a 🔔 informal notice for situations like rule changes or new transfers where a player needs leeway. Pre-warnings appear on the player's record but don't count as infractions and carry no punishment tier.
  • Logging a pre-warning triggers a brief confirmation step explaining what it is, keeping the choice intentional.
v1.79July 28, 2026
  • History tab added to Violation Tracker — a full chronological log of every warning and violation, including expired ones. Filter by type, expiry status, occasion, or search by player, alliance, or rule.
  • Expired violations are now hidden from the Violations table by default — click "Show expired" to reveal them. Expired events remain permanently in the History tab.
v1.78July 28, 2026
  • Infraction type (Warning / Violation) is now a two-button toggle in the log form — both options are always visible, no dropdown required.
  • Rules Library: tick "1st offense → Warning" on any rule. When that rule is selected for a player's first offense, the type auto-sets to Warning and the event lands in the Warning column without any extra clicks.
v1.77July 27, 2026
  • Points-based violations: log how many points a player scored and compare against a per-occasion NAP limit. The event tooltip shows scored / limit / over-under.
  • Admins can set a default points limit per occasion in the Admin Portal. Kingdom owners can override it per occasion from Violation Tracker Settings.
v1.76July 27, 2026
  • Violation log form now has an "In-Game Event" field — record which event the violation happened during (KvK, NAP War, Alliance War, etc.). Custom event types can be added in Violation Tracker settings.
  • Required fields enforced when logging violations: Date, Rule Broken, Punishment/Sanction, and Reported By must all be filled before saving.
  • Activity Log now supports filtering (by category and leader), sorting (oldest/newest), and pagination — works on both the standalone Activity Log page and the Violations page Activity tab.
  • Violation Tracker settings are now also accessible directly from the Violations page Settings tab — no need to navigate back to Hub Settings.
v1.75July 27, 2026
  • Activity Log is now its own page — find it at Hub Settings → Activity Log, or visit /hub/activity directly. Shows the last 200 entries with full timestamps.
  • Violation digest hour is now configurable by the system admin — no longer hardcoded to 09:00 UTC.
  • Changelog link now always opens on the correct domain.
v1.74July 27, 2026
  • Activity Log added to Hub Settings — every change made by you or a trusted leader is now recorded with their name, the action taken, and a timestamp. Visible to kingdom owners only.
  • Trusted leaders are now asked for their in-game name when entering the manager passcode — their name appears on every change they make in the activity log.
  • App renamed to ONE585 Hub.
v1.73July 27, 2026
  • Discord Bot Token and Server ID are now configured once in Hub Settings and shared across all tools — no longer buried inside the Scheduler's Discord Integration panel.
  • Violation Tracker now posts new violations to a dedicated Discord channel. A daily digest runs automatically each day at 09:00 UTC, and a "Post New Violations Now" button in Hub Settings lets you post on demand at any time.
v1.72July 27, 2026
  • Hub header now shows your kingdom name and number — owners see "⚔️ Avalon · #1234" at a glance instead of just the generic "Owner" badge.
  • Violation Tracker now paginates — page size defaults to 25 and is configurable per-kingdom in Kingdom Settings. Managers and leaders can change the page size live using the selector at the bottom of the table.
  • Admin Portal: kingdom rows are now expandable — click the chevron to see the kingdom's schedules and total submission count inline.
  • Admin Portal: kingdom name and number can now be edited directly in the table — click the pencil icon on any row.
  • Admin Portal: kingdoms can now be deleted from the portal — the trash icon opens a confirmation modal before permanently removing the account.
  • Admin Portal: invite flow now has two modes — "Share Code" (existing clipboard flow) and "Send Email" (sends a Supabase magic-link directly to the recipient's inbox, no invite code required).
  • Admin Portal: trialing kingdoms now show how many days remain in their trial, highlighted red when 7 or fewer days are left.
v1.70July 27, 2026
  • Violation tracker table now caps at 5 columns — players with more than 5 violations show a "+N more" badge instead of expanding the table indefinitely.
  • Rules Library now shows an error message when a rule fails to save, toggle, or delete — previously errors were silent.
  • Rule toggle and delete buttons now show a loading state and are disabled while the request is in flight.
  • All icon-only buttons (edit event, remove event, log event, edit player, delete player, edit rule, delete rule) now include accessible labels for screen readers and keyboard users.
  • Violation detail tooltip now appears on keyboard focus, not just on hover.
  • Fixed: a stale category color ("accent") was being set as default when adding a new category — it now correctly resets to blue.
v1.69July 27, 2026
  • Security hardening: manager access cookies are now cryptographically signed — forging a session is no longer possible by guessing an owner ID.
  • Manager passcodes are now hashed before being stored — plain-text passcodes will upgrade automatically the next time they are saved in Kingdom Settings.
  • Fixed: the Settings link in the hub header was pointing to a broken URL.
  • Fixed: warnings now show a "+N more" indicator if a player has received multiple warnings — previous warnings after the first were invisible.
  • Fixed: the auto-suggested punishment tier when logging a new violation no longer counts warnings toward the offense number.
  • Fixed: violations set to a 0-day expiry window now correctly expire immediately instead of being treated as never-expiring.
  • Fixed: edits to violation categories no longer silently succeed when the network request fails — errors are shown inline.
  • "Reported by" field added to the log-event form so you can record who flagged each violation.
  • Error messages are now shown across all save actions in Kingdom Settings instead of silently showing "Saved!".
v1.68July 27, 2026
  • Kingdom Settings button moved to the hub header — it's now a compact button next to the theme toggle, visible only to the owner, instead of taking up a full tool card.
  • Rolling window length is now configurable — when Rolling window expiry is selected in Kingdom Settings, a "Window length" input appears so you can set exactly how many days the chain stays active after the last offense.
  • Light/dark mode toggle is now synced across all pages and tabs — toggling on one page updates every other open page instantly.
v1.66July 27, 2026
  • New expiry clock setting in Kingdom Settings: Individual (each offense expires from its own date) or Rolling window (a new offense resets the countdown for the whole chain under that rule — they all expire together). Hover the ? bubbles for a plain-English explanation of each option.
v1.65July 27, 2026
  • Kingdom owners can now create their own violation categories — add as many as you need in the Rules Library tab, pick a color, and all rule sections and player filters update to match.
  • Rules Library redesigned: rules are organized into sections by category, each independently collapsible. A "Shared" section holds rules that apply to all categories.
  • Violation Tracker rules and players now use your custom categories everywhere — the event picker filters rules by the player's category automatically.
  • Command Center URL is now configurable per kingdom in Kingdom Settings — set your own link so the hub card opens the right one. If no URL is set, the card is hidden automatically.
  • Command Center card now shows the passcode-copy note as a smaller second line instead of replacing the description.
v1.64July 27, 2026
  • "War Room" button on the Trusted Leader schedule list was still showing the old "View / Assign" label — fixed.
  • Back link on the Violation Tracker now always returns to the hub, whether you're an owner or a trusted leader.
v1.63July 27, 2026
  • Kingdom owners can now choose how violation expiry works: Fixed tiers (a player's 3rd offense is always a 3rd offense, even if earlier ones expired) or Sliding tiers (expired offenses free up a tier slot so the next violation can drop back down). Set it in Kingdom Settings.
  • "Access & Passcodes" renamed to "Kingdom Settings" — it now covers access, tool visibility, and tracker behavior.
  • Violation Tracker hub card updated to reflect NAP and alliance scope.
v1.62July 27, 2026
  • Alliance violations are now tracked alongside NAP violations in the same tracker — pick "NAP Violation" or "Alliance Violation" when adding a player, and filter between them with the new category tabs.
  • NAP rules now support per-offense expiry — each tier (1st, 2nd, 3rd…) can have its own expiry window. The rule editor now shows punishment and expiry on a single row per offense.
  • Expiry now applies per-tier correctly: a player's 1st offense uses Tier 1's expiry window, their 2nd uses Tier 2's, and so on.
  • Rules Library renamed from "NAP Rules" to "Rules Library" since it now covers both NAP and Alliance rules.
v1.61July 26, 2026
  • NAP violations can now expire automatically — set a number of days on any rule and past events under that rule fade out and stop counting toward a player's offense total once the window passes.
  • NAP tracker table overhauled: search by name, alliance, or UID; filter by Active / Resolved / Banned with live counts; sort by most violations, name, or most recent activity.
  • Each player row now shows an active/total violation badge (e.g. 2/3 means 2 active, 1 expired). Expired events appear faded with a strikethrough date.
v1.60July 26, 2026
  • NAP rules now support progressive punishments — define a punishment for each offense tier (1st, 2nd, 3rd…). When logging a violation, picking a rule auto-fills the punishment for that player's next offense. Leave any tier blank to mark it as alliance discretion.
v1.59July 26, 2026
  • Tool visibility toggles in Kingdom Settings — turn any hub tool on or off for your kingdom. Changes apply instantly for both you and your trusted leaders.
v1.58July 26, 2026
  • New NAP Violations Tracker — log players who break Non-Aggression Pact rules, track warnings and numbered violations with dates, hover any date to see the rule broken and punishment. Accessible from the hub.
  • Per-kingdom NAP rules library — define your own rules (title + description), toggle them active or inactive, and pick them quickly when logging violations. Each kingdom manages their own rules independently.
  • Browser tab titles now show the current page name (e.g. "War Room · KvK Prep Scheduler") instead of always showing the app name.
  • Favicon updated to the ⚔️ logo.
  • Back button on the NAP Violations page now returns to the hub.
v1.57July 26, 2026
  • New home hub on the main domain — sign in (or create an account) right there to see cards for the scheduler and other tools, or use your kingdom's invite link to get in as a trusted leader.
  • Moved "Invite Link" and "Manager Passcode" out of Kingdom Settings and into a new Manager Options tool on the hub, since they now grant access across every tool here, not just the scheduler.
  • The scheduler now lives at its own address (scheduler subdomain) while the main domain hosts the new hub.
  • Added a "Hub" button on My Schedules (both owner and trusted-leader views) to get back to the hub.
  • Manager Options now has a "Regenerate" button for the Manager Passcode, matching the Submission Edit Passcode.
  • Hub redesign — tool cards now show an icon, a role badge (Owner / Trusted Leader), and a subtle hover lift.
  • Tool card icons get a soft glow on hover and a one-time shimmer when the hub loads.
  • Light/dark mode toggle added to the hub and Manager Options pages.
  • Renamed "Manager Options" to "Access & Passcodes."
  • Added Command Center as a real tool on the hub — opens your kingdom's Command Center and copies your saved admin passcode to your clipboard automatically, so trusted co-leaders can get admin access without needing to know it themselves. Set the passcode in Access & Passcodes.
  • Fixed tool cards in the same row not matching height when descriptions were different lengths.
  • Rewrote tool card descriptions to read as clear instructions instead of plain feature blurbs.
  • New ONE585 wordmark, tagline, and accent styling on the hub, in both light and dark mode.
  • Replaced the text wordmark with the real ONE585 logo artwork on the hub, swapping automatically between light and dark versions.
  • Tool cards now have a more visible border and edge in light mode, and the load-in shimmer is easier to see.
  • Command Center now shows a clear "Passcode copied" confirmation before opening, instead of switching tabs too fast to notice.
  • Trusted leaders can now sign out of the hub — sends you back to your own invite passcode screen.
  • Made the hub logo bigger on both the sign-in screen and the main hub header.
v1.56July 26, 2026
  • Invite links now correctly use your custom domain instead of always falling back to the Vercel preview address.
v1.55July 24, 2026
  • Kingdom Settings on My Schedules is now split into two panels: "Trusted Leader Access" (invite link, manager passcode, submission edit passcode) and "Discord Integration" (bot token, server ID, webhooks).
  • Schedule Settings page gets a side navigation with sections for Status, Sharing, Day Config, Score Tracker, and Danger Zone.
  • Light/dark mode toggle now appears in the header of every main page, not just the footer.
  • Onboarding guide updated to reflect the new two-panel Kingdom Settings layout.
v1.54July 24, 2026
  • Full visual restyle: warm-neutral light theme, blue-slate dark theme, crimson accent colour, Space Grotesk headings, JetBrains Mono for all numeric and time values, and soft real-shadow elevation on cards.
  • All status pills (Draft / Open / Closed / Exported) now use colour-coded soft fills with matching borders — no more plain text-only status labels.
  • Slot states in the War Room table now use a consistent token-based colour system: green for assigned, amber for taken by another buff, faint for unavailable.
  • All action buttons, banners, and badges across the app now reference CSS variables — the design updates automatically when you switch between light and dark mode.
v1.53July 24, 2026
  • War Room list view on mobile now uses a two-line row layout: player name and status badges on the first line, player ID / speedup days and action buttons on the second. No more cramped collisions on small screens.
v1.52July 24, 2026
  • War Room now shows four stat cards at a glance: Submissions, Assigned, Unassigned, and Low-slot alerts (when a threshold is set). Unassigned turns red when players are waiting; Low-slot alerts turns amber.
  • War Room header subline now shows submission count and how many slots are filled out of total (e.g. "42 submissions · 18 of 24 slots filled").
v1.51July 24, 2026
  • Mobile improvements across My Schedules, Schedule Settings, and the War Room — header buttons no longer overflow on small screens, grids stack to a single column, the submission deadline date and time inputs stack vertically, action buttons are larger for easier tapping, and the player search bar now stretches to fill available width.
v1.50July 24, 2026
  • New: KvK Score Tracker — log your kingdom's points and opponent points for each KvK day. Shows per-day lead or deficit and a running total. Available in both the War Room and Schedule Settings.
  • Renamed: "View / Assign" is now "War Room" on the My Schedules page to distinguish it from the Admin Portal.
v1.49July 24, 2026
  • New: Admin Portal — owner can view all registered kingdoms, see schedule counts, and change subscription status (Trial / Active / Suspended)
  • Sign-up is now invite-code gated — new kingdoms enter a code provided by the coordinator to create an account
v1.48July 24, 2026
  • Sign-up now asks for your kingdom name and kingdom number — accounts are tied to a specific kingdom from the start
v1.47July 16, 2026
  • Dashboard now remembers your last view (list or table), active buff type tab, and all filter settings after a page refresh — no more resetting everything on reload
  • New filter: "Assigned only" — hides players who haven't been given a slot yet, so you can focus on who's placed
  • List view now has the full action button set on each occupied slot row: Edit, Reset passcode, Copy, Replace, and Delete — matching the table view
  • Dark mode palette softened from near-black to dark navy, and border visibility improved so button edges, table headers, and divider lines are clearly readable
v1.44July 16, 2026
  • New: Replace Player — hover a player row in the table view and click the replace icon to instantly swap them out with the next best eligible player. A confirmation modal shows who the replacement is (name, score, speedups) before anything changes. If no single player covers all the removed player's slots, you can still remove them and fill manually with Swap mode.
v1.43July 15, 2026
  • Dark mode — click the moon icon in the dashboard header or page footer to switch. Your choice is saved to your browser and applies across all pages.
v1.42July 15, 2026
  • Swap button now works in both List view and Table view — no need to switch views to reassign a slot
  • Table view swap: clicking anywhere on a player's row selects them for swapping, instead of requiring a small cell target
  • Swap button automatically enables Edit mode when activated — no extra step needed
  • Swap source slot now glows with a purple border animation so it's easy to spot
  • Newly assigned or swapped slots shimmer briefly to confirm the change took effect
  • Undo button shows what action it will undo on hover (e.g. "Undo swap: PlayerA ↔ PlayerB")
  • Confirmation popup appears before any swap or move goes through — cancel keeps the selection active
  • Added a step-by-step swap guide at /guide/swap covering both List and Table view — share it with your officers
v1.41July 13, 2026
  • Fixed: after manually removing a slot assignment, running Fill mode now correctly fills that empty slot with an unassigned player — previously an already-assigned player could "steal" the slot, leaving the truly unassigned player without a spot
v1.40July 12, 2026
  • Auto-assign now prevents the same player from holding the last slot of one day and the first slot of the next — so they aren't assigned two consecutive days back-to-back across the day boundary
v1.39July 12, 2026
  • New Event Setting: Auto-assign account priority — choose between "Main first, Farm second" (default) or "Treat equally" to let high-scoring alts compete purely on score without being deprioritised
v1.38July 12, 2026
  • New Event Setting: Auto-assign minimum score — players scoring below this threshold are skipped when "Enforce minimums" is checked in the Auto Assign modal (default 500k)
  • New Event Setting: Auto-assign minimum speedup days — players with fewer speedup days than this are also skipped when minimums are enforced (default 10 days)
  • Auto Assign modal now has an "Enforce minimum resources" checkbox that shows the current thresholds — tick it to block low-resource players, untick to open up to alts that may perform better
v1.37July 12, 2026
  • Discord DMs are now sent in automatic batches of 7 with a 2-second pause between each — large alliance groups no longer time out mid-send, and a "Batch N of M…" progress indicator appears while sending
v1.36July 12, 2026
  • DM Players button now shows a count of how many players have Discord IDs set, and warns (in amber) when that count is high enough to risk timing out on Vercel Hobby — hover for details
  • Discord day-selector: switching days now clears the previous send result so the status message always reflects the current selection
v1.35July 12, 2026
  • Fixed: Auto Assign, Wildcard Fill, and Recalculate Troop Scores buttons no longer get stuck in a loading state if a network error occurs — they now show an error message and re-enable immediately
v1.34July 12, 2026
  • New "Clear All" button in the schedule view clears assignments across every buff type and day at once — the existing "Clear" button still clears only the current tab
v1.33July 11, 2026
  • Submission form and confirmation page now fully translated — deadline countdown, pre-fill banner, "Restore" / "My usual times" buttons, slot counters, passcode card (title, instructions, Copy button), and all navigation links follow your selected language across all 18 supported languages
  • Observer mode fixed — Settings link and back button are now hidden in read-only view, preventing accidental navigation to admin pages
  • Admin can now reset a player's submission passcode — click the 🔑 key icon on any table row to generate a new passcode and copy it to share with the player (their old passcode is immediately invalidated)
  • Two auto-assign modes: "Auto Assign" picks your highest-scoring players first; "Max Fill" uses a smarter algorithm that fills rare time windows first to leave as few empty slots as possible — hover either button for a description
  • Minimum slots required per buff type is now enforced separately on each tab — players must select the minimum for Construction, Research, and Troops independently before submitting
v1.32July 9, 2026
  • New setting: Low availability warning threshold — set a minimum number of available slots and any player below that count gets a red "Low" badge next to their name in both the table and list views, visible to admins and managers only
  • Mobile admin controls reorganized — buff type tabs and view/time toggles now sit on separate rows so they no longer feel cramped in portrait mode
v1.31July 8, 2026
  • Admin can now edit any player's submission inline — click the pencil icon next to a player in the table or list view to open a modal with the full submission form pre-loaded; saving updates the table immediately without leaving the page
v1.30July 8, 2026
  • Security fix — swap request creation and accept/decline actions now require the verified player cookie, preventing anyone from acting on another player's behalf
  • Security fix — accepted slot swaps now automatically cancel all other pending swap requests involving the same slots, so players no longer see stale swap requests after a swap completes
  • Security fix — the schedule owner can now correctly request schedule deletion when logged in directly (was incorrectly blocked for authenticated owners)
  • Security fix — player slot lookup page now returns "not found" for draft schedules rather than showing a live results page
  • Data integrity fix — moving a slot in the admin dashboard now assigns the new slot before removing the old one, preventing a player's slot from being silently deleted if the move fails midway
  • Admin fix — swapping two slots now shows an error toast if the operation fails, rather than silently leaving the screen in an inconsistent state
  • Data fix — auto-assign and CSV export now correctly read all submissions and assignments for cookie-authenticated managers (was returning empty data for non-logged-in managers)
  • Reliability fix — if the session check after looking up your existing submission fails, you are now shown the passcode prompt instead of getting stuck on a blank form
v1.29July 8, 2026
  • Submission form now saves your progress automatically — refreshing the page or clicking away to the changelog and coming back restores everything you typed, including your name, slots, speedup numbers, and account type
  • Draft is cleared automatically when you submit or click "Clear form", so the next player starts fresh
v1.28July 8, 2026
  • UTC/Local and 12h/24h time format preferences now persist when switching between Construction, Research, and Training tabs — no more re-setting them every time you switch tabs
  • Time format preference is also remembered across page reloads and shared with the slot lookup page
  • Language picker added to the slot lookup page — change your language at any time; the page auto-switches to your preferred language after a successful lookup
v1.27July 8, 2026
  • Bug fix — deleting a player submission now correctly reports an error if the deletion fails, rather than silently returning success
  • Bug fix — clearing all slot assignments for a buff type now correctly reports an error if the operation fails
  • Stability — the language preference toggle on the submission page no longer causes crashes in private browsing mode or when the browser storage is full
  • Reliability — auth passcode routes now return a clear error for malformed requests instead of crashing
v1.26July 8, 2026
  • Discord day selection — when opening the Discord export modal, you can now pick which days to include; deselect any day to omit it from the posted message
  • Update previous Discord post — after sending, an "Update Previous Post" button appears so you can edit the same Discord messages in-place instead of posting duplicates when assignments change
  • Past slots hidden in Discord export — time slots that ended more than 2 hours ago are automatically skipped; days with no remaining slots are omitted entirely
  • Admin slot swap — a new Swap button in the toolbar lets admins swap two occupied slots (click first slot, then second) or move a player to an empty slot in a single action, with full undo support
  • Player slot swap requests — players can now request a slot swap directly from the slot lookup page; the other player sees the request and can accept or decline; swaps execute instantly without admin involvement
v1.25June 16, 2026
  • Mobile fix — admin dashboard now defaults to list view on phones; Construction and Research table columns are also compressed so the table is usable if you switch to it manually
  • Slot lookup date fix — the date shown next to your assigned slot is now always the UTC calendar date (matching the KvK schedule), not the local calendar date which could show the day before for late-night UTC slots
  • Wildcard cleanup — if an admin disables wildcard days after running auto-assign, the stale wildcard slot no longer appears in a player's lookup
  • Duplicate submission fix — players who submitted more than once now see their assigned slot correctly; the lookup now prefers whichever submission has assignments rather than always picking the most recent one
v1.24June 16, 2026
  • Multi-level undo — Undo button now captures every manual cell click and auto-assign run, not just the last auto-assign (up to 10 levels); the button shows the depth count
  • Double-click guard — rapid clicks on an assignment cell no longer fire duplicate API calls and create ghost assignments
  • Search, alliance filter, and sort column persist across page reloads so you don't lose your work mid-session
  • Assignment lock — clicking any cell after assignments are published asks for confirmation before changing a live schedule
  • Conflict detail — the double-booking warning is now expandable; click "Details" to see exactly which players are double-booked and at which time
  • Conflict highlight in list view — double-booked players show a yellow left border and ⚠️ badge in list view, matching the existing table view indicator
  • Group by Alliance — new toggle in the filter bar collapses the player list into alliance groups with a player count and assigned count per group
  • Copy row — small copy icon on each player row copies [TAG] Name - UID — Day N HH:MM UTC to the clipboard for quick Discord pasting
v1.23June 16, 2026
  • Admin dashboard is significantly faster — opening a modal, typing in search, or dismissing a toast no longer re-renders the full assignment grid
  • Auto-assign, Discord export, and Publish Assignments modals are now isolated components so the grid stays frozen while they are open
v1.22June 16, 2026
  • UTC / Local time toggle on the admin table and list views — click 🕐 UTC next to the Table/List toggle to switch all slot times to your local timezone; Excel and Discord exports always stay in UTC
  • 12h / 24h toggle on the player slot lookup page — switch local time format with one tap
  • Network errors during form submit and lookup now show a user-friendly message instead of leaving the button stuck in a loading state
  • API routes return a proper 400 error on malformed request bodies instead of crashing
  • Auto-assign now surfaces an error if the database delete or insert step fails, instead of silently succeeding with no data
v1.21June 15, 2026
  • "Publish Assignments" button in the admin dashboard — slot lookup is gated until you explicitly publish, so players can't peek while you're still working
  • Confirmation modal before publishing asks you to confirm the schedule is in Discord and players have been notified
  • Unassigned players see a personalized message after publish listing exactly which buff types they missed, with the correct day numbers and guidance on how to proceed independently
  • Unpublish button lets you pull assignments back if you need to make changes after publishing
v1.20June 15, 2026
  • Clone a schedule — duplicate any schedule's settings and start fresh with no submissions, landing straight on the new draft
  • Custom player instructions — admins can set a message shown as a blue banner at the top of the player submission form
  • Schedules auto-close when the submission deadline passes — no more manually flipping status after the deadline
  • "Preview" button in Settings opens the player submission form in a new tab so you can see exactly what players see
  • Observer links — generate a read-only dashboard URL to share with alliance leaders so they can view assignments without being able to change anything
  • Leader edit badge — a pencil icon marks any submission that was edited via the submission edit passcode, with a tooltip showing when it was last edited
v1.19June 15, 2026
  • Submission form pre-fills from your last submission — a banner appears on return visits offering to restore all your previous details with one tap
  • "My usual times" button on each buff tab restores just your saved time slots without overwriting other fields
  • Each slot button now shows your local time below the UTC time so you can confirm availability at a glance without toggling
  • Confirmation modal before submitting — review your player name, account type, and slot counts before locking in
  • "Edit my submission" link on the confirmation page takes you back to the form with your submission pre-loaded
  • "No Assignments" filter in list view shows which players haven't been given a slot yet, matching the same filter in table view
v1.18June 15, 2026
  • Tab badges show how many players are unassigned for each buff type at a glance
  • Undo button appears after any auto-assign or wildcard fill run, restoring the previous assignment state
  • Yellow warning banner and row highlight when a player is double-booked at the same time across multiple days
  • Live countdown timer on the submission form shows how long until the deadline closes
  • Bulk Verify and Unmark Duplicate actions in edit mode — select multiple players and act on them at once
  • Manual troop score override — edit a player's pts/day multiplier directly in the Troops tab (edit mode)
  • Alliance slot cap setting in Schedule Settings — limit how many slots per alliance per buff day
  • Player slot lookup page at /submit/{token}/slot — players enter their ID to see their assigned slot
  • Real-time updates — assignment and submission changes appear live without refreshing the page
  • "What's New" badge on the changelog link when a version hasn't been seen yet
v1.17June 15, 2026
  • Troops auto-assign now uses a realistic scoring range of 149k–219k pts per speedup day (based on actual KvK troop training and T9→T11 promotion data), replacing the old raw speedup-minutes formula
  • Two troop scoring modes available in Schedule Settings → Edit Schedule: "Shared roll" (one random multiplier per run, so more speedups always wins) and "Per-player roll" (each player rolls independently, allowing occasional rank swaps)
v1.16June 14, 2026
  • Click any player's name in list view or table view to open their full availability — shows which time slots they selected for each buff type, with their assigned slot(s) highlighted in green; in edit mode the click still opens the inline name editor
  • "Wildcard covers unassigned" schedule setting — when enabled (in Schedule Settings), players who received a wildcard slot are removed from the unassigned player warning on Construction/Research/Troops tabs
  • Discord DMs now include wildcard slot assignments — players assigned a wildcard slot receive it in their DM alongside any main buff slots; wildcard days with no assignments are excluded from the Discord text export
  • List view slot filter: three-way toggle — "All", "Assigned" (hide empty slots), "Open Slots" (show only unassigned slots for quick gap-finding)
  • Synchronized top scrollbar on the assignment grid — scroll left/right from the top without having to go to the bottom of the page
  • Dismiss (×) button on the warning banner to clear it for the current session
v1.15June 14, 2026
  • Wildcard day auto-fill — a new "Fill Wildcard" button appears on the manage page when a wildcard day is configured; it collects every player who didn't receive a slot on their main buff day(s) and places them into wildcard slots based on their overlapping time-of-day availability and score
v1.14June 14, 2026
  • Player submission passcode — after submitting for the first time, players receive a unique passcode shown on the confirmation page; this passcode is now required to edit their submission later, preventing others from editing someone else's entry by guessing their UID
  • Submission edit passcode for leaders — schedule owners can generate or set a "Leader Edit Passcode" in the Trusted Leader Access panel; sharing this with alliance officers lets them edit any submission without being granted full manager access
  • User ID field label updated to "In-Game Player/User ID" with a visible warning hint that fake or placeholder UIDs may result in lower slot priority
  • Schedule cards on the My Schedules dashboard now show a compact points summary per buff type (e.g. 🔧 D5 2.1M · ⚗️ D2 1.2M = 3.3M)
  • Total potential points banner added above the assignment grid on the manage page — shows player count and cumulative points for whichever buff tab is active
v1.13June 14, 2026
  • Submission deadline now uses a plain 24-hour time field (HH:MM) instead of the browser's AM/PM clock — current UTC time shown as a hint so you always enter the right value
  • Admin table is now sortable and filterable — click any column header to sort, and filter by player name, alliance, account type, or missing UID
  • Discord webhooks can now be labeled (e.g. "Officers Channel") and toggled on/off individually without deleting the URL
v1.12June 14, 2026
  • Discord DMs are now sent in each player's preferred language — whatever language they selected on the submission form
  • Buff type names, "Day", greeting, and "Good luck!" all translate into all 18 supported languages
  • Language preference is saved automatically when a player submits or updates their form
  • Players with no language preference on record receive DMs in English
  • Language column (🌐) added to the admin assignment table — shows each player's language code at a glance
  • In Edit mode, clicking the language code opens a dropdown to change it to any of the 18 supported languages
  • In Edit mode, click a player's name or UID directly in the table to correct them inline
v1.11June 14, 2026
  • Assignment grid now has a legend above the table explaining all four cell states (assigned, taken, available, not available)
  • New View / Edit mode toggle — switch to View mode to browse assignments safely without accidentally clicking anything
  • In Edit mode, click any Speedups, TG, TTG, Discord ID, language, name, or UID cell to edit the value inline — no need to go back to the submission form
  • Discord ID column shows "+" when empty in Edit mode so admins can add a player's Discord ID directly from the table
  • Clear button clears all assignments for the current buff type so you can start fresh with Auto Assign
  • Fixed a bug where auto-assign could place the same player on two different days of the same buff type
v1.10June 14, 2026
  • Discord DM Players — assign slots and click "DM Players" to send each assigned player a private message with their slot time
  • Players can optionally provide their Discord ID on the submission form to receive a DM
  • DM result banner shows how many messages were sent, how many were skipped (no Discord ID), and any failures
  • Bot token is stored once in the owner dashboard (Trusted Leader Access) and applies to all schedules
  • Discord ID field on the submission form is fully translated into all 18 supported languages
  • "How do I find this?" hint on the Discord ID field is now collapsed by default — tap to expand the instructions inline
v1.9June 14, 2026
  • Discord Webhook — configure once in the owner dashboard and every schedule you create automatically uses it
  • Supports multiple channels: paste one webhook URL per line — the schedule posts to all of them at once
  • Webhook URLs are hidden by default (show/hide toggle) and saved independently in the Trusted Leader Access panel
  • "Send to Discord" button in the Discord export modal; confirms how many messages were sent and to how many channels
  • Managers (passcode-based and account-based) can use the webhook to post — not just owners
  • Unassigned players section added to the end of the Discord export and as a separate sheet in the Excel export
v1.8June 14, 2026
  • Player submission form now supports 18 languages — English, Arabic, Bengali, Chinese (Simplified & Traditional), Dutch, French, German, Hindi, Indonesian, Korean, Portuguese, Russian, Spanish, Tagalog, Telugu, Turkish, Vietnamese
  • Language selector (globe icon) sits under the schedule header; preference is remembered across visits
  • Arabic displays right-to-left automatically on the form and submission-complete page
  • Submission-complete page also uses the selected language
  • "Day", "Local", and all buff labels now translate — no more hardcoded English words on the form
  • Spanish, Indonesian, Arabic, and Turkish now use the technology-based word for Research (Tecnología / Riset / التقنية / Teknoloji) to avoid confusion with investigation/detection
  • Resource fields on mobile now stack neatly — Speedups takes a full row, TG/TTG/Dust share the row below
v1.7June 14, 2026
  • Fixed: auto-assign no longer assigns the same player to multiple Research days when re-running in fill-gaps mode
  • Admin dashboard: Table / List view toggle — List view shows assigned slots day-by-day with player name, UID, account type, and manual/auto badge
  • Research day now supports TTG (30,000 pts) and TG Dust (1,000 pts) together — enable each independently in Schedule Settings
  • Auto-assign research ranking now includes TTG (30,000 pts) and TG Dust (1,000 pts) alongside speedups
  • Auto-assign now ranks players by total resource score — speedups (30 pts/min), TG (2,000 pts), TTG (30,000 pts), TG Dust (1,000 pts) — so a player with lots of TG can rank above one with more speedups
  • Player list in the admin grid is now sorted by the same score, so the order matches assignment priority
  • Auto-assign shows a result summary — slots filled, players assigned, and empty slots — instead of a small toast
  • Submission form validates all numeric fields on submit: speedups must be ≥ 0, TG / TTG / TG Dust must be whole numbers ≥ 0, Player ID must be digits only
v1.6June 14, 2026
  • Fixed all admin actions for managers — slot assignment, auto-assign, submission delete, and schedule edits all work without a login account
  • Players can now edit their previous submission — "New Submission / Edit Previous Submission" mode selector at the top of the form
  • Editing pre-fills all previous data; submit button changes to "Update My Times"
  • Discord export: when the schedule is too long for one message, a clear warning explains to paste each section separately
  • Discord export: auto-assign now gives each player at most one slot per buff type across all days
  • Discord export: removed redundant "UTC" from day date headers
  • Player User ID shown in Discord export lines (e.g. [PAW] Remy - 1234567)
  • Footer added to every page: "Created by Remy ʕ·ᴥ·ʔ" with Changelog link
  • Changelog page at /changelog
v1.5June 14, 2026
  • Discord export — copy formatted schedule messages, one chunk per message with a Copy button each
  • Excel export times now show as HH:MM UTC instead of raw ISO strings
  • 24h / 12h time format toggle in the player slot grid
  • Fixed auto-assign: assignments were silently failing due to a timestamp format mismatch
  • Fixed export API — was accessible to any logged-in user, now restricted to schedule managers
  • Fixed duplicate submission detection — was always marking submissions as non-duplicate
  • Passcode and invite-link cookies now both last 30 days (was inconsistent)
v1.4June 14, 2026
  • Manager dashboard at /manager — same as owner dashboard without owner-only controls
  • Managers can create new schedules without a login account
  • Settings page now accessible to passcode-based managers
  • Soft-delete: managers can request deletion; owners approve; schedule disappears from manager view immediately
  • Manager passcode field: show/hide toggle and Copy button
  • Back links correctly send managers to /manager instead of /dashboard
  • Slot grid time buttons all the same height regardless of -1d / +1d bridge label
  • Fixed schedule delete — a missing database policy was silently blocking it
v1.3June 14, 2026
  • Auto Assign All — one click to run auto-assign across every buff type and day
  • Export All as Excel workbook — one sheet per active day in a single .xlsx file
  • Auto-assign scope (current tab / all days) and mode (fill gaps / reassign all) options
  • Admin dashboard header shows KvK start date and a Settings button
  • Multi-day same buff type: players see one slot grid; system covers all days automatically
  • Bridge slots (-1d and +1d) are both selectable — neither is greyed out
v1.2June 14, 2026
  • Global Trusted Leader Access — one invite link and one passcode unlocks all your schedules
  • Invite link requires a passcode before granting access (no login needed)
  • After invite auth, managers see all schedules they have access to
  • Trusted Leader settings moved to owner dashboard — applies across all schedules
v1.1June 13, 2026
  • UTC / Local time toggle in the player slot grid
  • Priority system for multi-day same buff type — best players assigned to P1 day first
  • Farm / Alt account tagging — main accounts get priority in auto-assign
  • Duplicate submission detection — flags players who submit more than once
  • Schedule settings: edit name, kingdom, dates, day config, and buff type toggles
  • Submission deadline support
  • TG, TTG, TG Dust optional fields per schedule
  • Early start toggle — adds 23:45 bridge slot
  • Passcode access for managers — no account needed
  • Manager invite links per schedule
v1.0Initial ReleaseJune 13, 2026
  • Schedule creation with 5-day KvK config (Construction, Research, Troops, Wildcard)
  • Player submission form — select available 30-min buff slots
  • Admin dashboard with scrollable slot grid
  • Manual slot assignment by clicking player row × time column
  • Auto-assign algorithm — ranks by main/farm, speedups, and submission time
  • CSV export of assignments
  • Schedule status management (Draft → Open → Closed → Exported)
  • Share link for players (no account needed to submit)
  • Owner dashboard with schedule list