NystBot Discord Community Platform

NYSTBOT RELEASE HISTORY

Built in public. Improved release by release.

Every major NystBot milestone from the original multi-server core through the current dashboard release candidate is collected here.

Open Dashboard NystBot v1.0 RC1
17 release milestones
v0.1 first NystBot core
v1.0 RC1 current build

Public Website & Dashboard Separation

NystBot now has a public showroom website on www.nystbot.com while the authenticated server-management experience stays on dashboard.nystbot.com.

Added

  • Public NystBot homepage with product overview, feature highlights, dashboard preview and clear calls to action.
  • Public Features page at /features.
  • Public About page at /about.
  • Public navigation for Home, Features, Changelog and About.
  • Public Add NystBot buttons using the production Discord bot invite.
  • Host-aware routing so dashboard.nystbot.com/ opens the authenticated dashboard while www.nystbot.com/ remains public.

Improved

  • Changelog, Privacy and Terms remain public and no longer require visitors to enter the dashboard first.
  • Dashboard branding links back to the public NystBot website.
  • Local development keeps the public homepage at / and the management area at /dashboard.

Fixed

  • The old root route no longer forces ordinary website visitors straight into Discord OAuth.
  • Dashboard authentication is isolated to the management area instead of being the first experience for every visitor.

Add NystBot & Server Discovery

Server owners can now install NystBot directly from the dashboard and quickly find Discord servers they manage where NystBot is not installed yet.

Added

  • A global Add NystBot button in the dashboard top bar.
  • An Add NystBot shortcut in the dashboard sidebar.
  • A dedicated Other Servers You Manage section on the My Servers page.
  • Real Discord server icons for manageable servers that do not have NystBot installed yet.
  • Per-server Add NystBot buttons that open Discord with the selected guild preselected.
  • A friendly first-install state when the user has no NystBot servers yet.

Improved

  • The My Servers page now separates servers already using NystBot from servers available for installation.
  • The dashboard reuses the Discord OAuth guild list without exposing the bot token to the website.

Fixed

  • Server invitation links support guild preselection and optional guild-selection locking for one-click installs.

Markdown-Powered Changelog

The public release-history UI is unchanged, but its content now comes from simple Markdown files instead of being hardcoded in C#.

Added

  • A dedicated NystBot.Web/Changelogs folder containing one Markdown file per release milestone.
  • Automatic Markdown discovery, parsing, sorting and latest-release detection.
  • Markdown changelog files are copied into Release and publish output automatically.

Improved

  • New release notes can be added without editing the Razor UI.
  • The existing timeline, Jump To navigation and release cards are preserved.

Fixed

  • The Razor foreach variable was renamed to avoid collision with Razor @section syntax.

Public Changelog & Release History

NystBot now has a public, built-in release history so server owners and members can see what changed without opening source ZIPs or logging in.

Added

  • Public changelog page at /changelog.
  • Full project history from NystBot Core v0.1 through the current RC1 dashboard build.
  • Changelog navigation in the dashboard sidebar and public footer.
  • A What's New card on the My Servers dashboard linking directly to the latest release notes.

Improved

  • Release notes are grouped by milestone with Added, Improved and Fixed sections.
  • Current release information is easier to discover from both logged-in and public views.

Discord Guild Icons

The dashboard now uses real Discord server artwork instead of relying only on first-letter placeholders.

Added

  • Bot directory snapshots now include GuildIconUrl.
  • My Servers cards display each Discord guild's real icon.
  • Server Overview and Setup Wizard headers display the guild icon.
  • Servers without an icon keep the existing first-letter fallback.

Improved

  • Guild artwork refreshes whenever the bot refreshes Data/Guilds/{GuildId}/Discord/directory.json.

Dashboard UI Update

The authenticated website was reworked from a collection of forms into a more complete Discord management dashboard.

Added

  • Persistent left-side navigation for server management pages.
  • Responsive mobile dashboard navigation.
  • NystBot logo branding, browser favicon and Apple touch icon.
  • Discord profile avatar and display name in the authenticated header.
  • /dashboard Discord command with an Open NystBot Dashboard link button.
  • NYSTBOT_DASHBOARD_URL configuration for development and production.

Improved

  • My Servers was rebuilt into cleaner server cards.
  • Setup Wizard became a compact four-step workspace with named progress stages and contextual help.
  • Server Overview navigation was simplified because module pages now live in the sidebar.
  • Mobile behavior and spacing were tightened across the dashboard.

Fixed

  • Production dashboard links can point directly to https://dashboard.nystbot.com while development remains on localhost.

Launch Hardening

A safety and deployment pass over the complete v1.0 feature set before public beta use.

Added

  • Four-step first-time server Setup Wizard.
  • Safe Discord channel and role directory snapshots under Data/Guilds/{GuildId}/Discord/directory.json.
  • Human-readable channel and role selectors without exposing the Discord bot token to the website.
  • Automatic per-server ZIP backups with 14-day local retention and manual backup creation.
  • /my-data privacy deletion workflow and server-owner full guild deletion workflow.
  • Error IDs, bot error logs and branded 403/404/429/error pages.
  • Bot and web audit JSONL logs.
  • Bot slash-command and website request rate limiting.
  • Anonymous /health endpoint.
  • GitHub Actions .NET 8 build workflow plus Windows/Linux release-check scripts.

Fixed

  • Corrected NystBot.Web Program.cs using-directive ordering.
  • Added the OAuth claims namespace required by MapJsonKey.
  • Fixed AllowedMentions.RoleIds collection types in Applications and Scheduling.
  • Fixed Ticket thread creation to use the correct autoArchiveDuration argument.
  • Community settings saving no longer overwrites unrelated module settings.
  • Retained the GetRoleMenusPath helper fix and Razor literal @@ fix.

Legal Pages & Public OAuth Preparation

Public-facing privacy and terms pages were added as part of preparing the Discord OAuth dashboard for deployment.

Added

  • Public /privacy page.
  • Public /terms page.
  • Configurable legal operator name and contact email.
  • Discord OAuth production setup documentation.
  • Public HTTPS deployment guidance for privacy and terms URLs.

Improved

  • Legal text now documents the categories of Discord, moderation, ticket, application, leveling, EVE, BDO, role-menu and scheduling data used by NystBot.
  • Discord reviewers can open Privacy and Terms without signing into the dashboard.

Applications, Scheduling, Leveling & Secure Dashboard

NystBot reached its first broad all-in-one platform build, combining the existing community/game modules with Discord OAuth and several new management systems.

Added

  • Discord OAuth2 login with identify and guilds scopes.
  • Per-server dashboard access for Server Owner, Administrator and Manage Server users.
  • Application/recruitment forms with up to five questions, staff review and accepted-role support.
  • /apply list, /apply start and /apply status.
  • One-time, daily, weekly and monthly scheduled messages with optional role pings.
  • /schedule list, run-now, pause and resume.
  • /remind personal Discord reminders.
  • Leveling/XP system with reward roles, level-up messages and web leaderboard.
  • /rank and /leaderboard.

Improved

  • Bot and website continue to share one persistent NYSTBOT_DATA_ROOT.
  • Existing EVE, BDO, moderation, AutoMod, welcome, logging, suggestions, tickets, custom commands and role menus remained integrated in one solution.

Role Menu Data Path Fix

A focused compile/runtime fix for the website Role Menu builder.

Fixed

  • Added the missing GetRoleMenusPath(ulong guildId) helper in GuildDataService.
  • Role menu data resolves consistently to Data/Guilds/{GuildId}/RoleMenus/menus.json.

Self-Role / Role Menu Builder

NystBot gained a full self-role system managed through the website and published into Discord.

Added

  • Website Role Menu builder.
  • Button and dropdown role menus.
  • Exclusive choices, multi-select and Allow Remove behavior.
  • Up to 25 role options per menu with labels, role IDs, descriptions, emoji and button styles.
  • /roles list, show, publish, refresh and unpublish.
  • Role Menu Manager permission support.
  • Per-server RoleMenus/menus.json storage.

Fixed

  • Escaped literal @ symbols in the BDO Razor placeholder that previously caused a Razor page error.

Black Desert Event Core

Black Desert became a first-class NystBot module with persistent event coordination and attendance tracking.

Added

  • Black Desert Event Core.
  • BDO RSVP and attendance tracking.
  • Guild Boss events.
  • Node War events.
  • Guild Mission events.
  • Grind Party events.
  • PvP/GvG events.
  • BDO web settings.
  • Persistent BDO active-event and history storage.

Community Core

NystBot expanded beyond EVE into the core Discord community tools needed for general-purpose servers.

Added

  • Website-created custom commands synchronized to Discord approximately every 20 seconds.
  • Custom command variables: {user}, {username}, {server} and {channel}.
  • Moderation commands for warnings, cases, timeout, kick, ban and purge.
  • Persistent moderation cases.
  • Welcome, goodbye and auto-role configuration.
  • AutoMod blocked words, invite blocking, external-link blocking and mention limits.
  • Member join/leave and message edit/delete logging.
  • /suggest with voting reactions.
  • /ticket open, close and mine using Discord threads.

Improved

  • The website gained Community settings for Welcome/Goodbye, AutoMod, Logging, Suggestions, Tickets and Custom Commands.

Shared Persistent Data Fix

Bot and website were moved onto one shared persistent data root instead of accidentally writing runtime data under bin/Debug or bin/Release.

Fixed

  • Bot no longer bases runtime guild storage on AppContext.BaseDirectory.
  • Bot and website both resolve the same top-level Data directory.
  • NYSTBOT_DATA_ROOT can point both applications at one absolute persistent production path.
  • Runtime data is kept outside bin/ and obj/ so Clean/Rebuild cannot remove it.

Added

  • Migration instructions for older Data/Guilds folders created inside build output directories.

Bot + Web Platform

NystBot became a two-project solution with its first ASP.NET Core Razor Pages management website.

Added

  • NystBot.Bot and NystBot.Web projects in one platform package.
  • Server list and per-server management pages.
  • Website toggles for EVE Online, Black Desert and Custom Commands.
  • Website Staff Role ID and Audit Channel ID settings.
  • Simple custom-command definition builder and per-server commands.json storage.
  • Live settings timestamp reload so bot settings changed by the website can be picked up without a restart.

Improved

  • EVE Fleet/Fit/Doctrine support from v0.2 remained in the bot project.

Fixed

  • The v0.3 dashboard was intentionally local-development only because Discord OAuth security had not yet been added.

Multi-Server EVE Module

The existing GMEVO EVE workflow was migrated into the new NystBot multi-server architecture.

Added

  • /fleet create, list, show, close, open and add-fit.
  • /fit create, list, show, edit and delete.
  • /doctrine create, list, show, edit, add-fit, remove-fit and delete.
  • Persistent active Fleet Ups with OPEN/CLOSED lifecycle.
  • Fleet RSVP buttons and Fleet threads.
  • Saved fits, saved doctrines and doctrine fit cards.
  • View Full Fit buttons, optional direct Fleet fit and autocomplete.
  • Per-guild EVE storage isolation so one Discord server cannot see another server's EVE data.

Improved

  • NystBot Staff Role, Manage Events, Administrator and bot-owner permission paths were applied to EVE management actions.

NystBot Core

The first standalone NystBot project established the multi-server foundation that every later module builds on.

Added

  • Discord.Net bot startup and .env loading.
  • Development-guild command registration.
  • /help and /nyst status.
  • /nyst enable and /nyst disable module controls.
  • /nyst staff-role and /nyst clear-staff-role.
  • BOT_OWNER_USER_ID bypass.
  • Per-Discord-server settings.
  • Initial EVE, BDO and Custom Commands module switches.
  • One Data/Guilds/{GuildId}/settings.json area per Discord server.

Improved

  • NystBot development was separated from the working GMEVO bot so the new platform could grow without breaking the existing EVE bot.