Add a screenshot of a yap message in Discord.
diff --git a/docs/getting-started/first-node-war.md b/docs/getting-started/first-node-war.md
new file mode 100644
index 0000000..ea3f9a7
--- /dev/null
+++ b/docs/getting-started/first-node-war.md
@@ -0,0 +1,26 @@
+---
+description: "An end-to-end walkthrough: from inviting the bot to uploading the war scores."
+---
+
+# Running Your First Node War
+
+## Who Can Use It
+
+This tutorial is aimed at the officer/admin setting up GuildYapper for a Guild / Alliance server. Steps that members handle themselves are called out below.
+
+This is a map of the full flow, in order. Each step links to the page that covers it in depth — go there for options, edge cases, and screenshots.
+
+1. Invite the bot and run `/setup`, choosing your server type and region. See [Setup](/getting-started/setup).
+2. Set the member and officer roles and the log channel, in `/configure server` or the website's Settings page. See [Server Settings](/configuration/server-settings).
+3. Register members: they run `/member update`; `/member missing` shows who hasn't yet. See [Members and Roster](/bot/members-and-roster).
+4. Set up platoons (in-game parties) with `/configure parties`, and optionally event profiles with `/configure profiles`. See [Platoons and Function Roles](/events/platoons).
+5. Adjust priority and waitlist behavior, and check it with `/priority view`. See [Waitlist and Priority](/events/waitlist-and-priority#checking-priority).
+6. Create the signup with `/signup nodewar`. See [Signups](/features/signups#create-a-node-war-signup).
+7. Track responses and the waitlist; `/signup list` opens management. See [Signups](/features/signups#managing-a-signup).
+8. Build the composition in the Platoon Builder and send it to Discord. See [Platoon Builder](/events/platoon-builder).
+9. After the war, upload scores with `/scores upload` or through Ikusa. See [Scores](/features/scores).
+10. Close the event with a result and check attendance with `/attendance overview`. See [Attendance](/features/attendance).
+
+::: tip Automate The Repeat Work
+Once this flow feels familiar, look at [Schedulers](/bot/schedulers) to automate signup posting and closing instead of running each step by hand every Node War.
+:::
diff --git a/docs/getting-started/how-it-works.md b/docs/getting-started/how-it-works.md
new file mode 100644
index 0000000..2e9e203
--- /dev/null
+++ b/docs/getting-started/how-it-works.md
@@ -0,0 +1,82 @@
+---
+description: "How the Discord bot and the website divide the work, and how regions scope what you see."
+---
+
+# How GuildYapper Works
+
+## Who Can Use It
+
+This page is for anyone — no login needed to read it. GuildYapper itself is a mix: some Discord commands and website pages are public, and some require Discord login. See [What Needs A Login](#what-needs-a-login) below for the exact split.
+
+## Two Surfaces, One System
+
+GuildYapper is a Discord bot and a website working from the same data, not two separate products.
+
+- **The bot** is best for quick actions: creating a signup, updating your profile, checking `/priority view`, uploading a score screenshot — things you do in the moment, inside Discord.
+- **The website** is best when you need tables, filters, charts, bulk roster editing, or a detail page — the things a Discord modal is too small for.
+
+A signup created in Discord appears on the website, and edits made on the website update the same underlying event or member record the bot reads. `/configure server` itself has a **Manage on Website** button that jumps you straight into the matching website page.
+
+## What Needs A Login
+
+| Area | Access |
+| --- | --- |
+| Tierlists, Guild Wars, Arena of Solare, Class Statistics, Streams, Tools, Guild League browser and standings | Public, no account |
+| Guild Tracker dashboard, guilds and players | Discord login required |
+| Signups, roster, scores management, settings, profile, VOD upload | Discord login, and membership of a server running GuildYapper |
+
+::: warning Guild Tracker Is Not Public
+Guild Tracker's website pages require Discord login. Only the areas in the first row above are open to anyone without an account.
+:::
+
+## What Officers Usually Use
+
+1. [Signups](https://guildyapper.com/management/signups) to manage event attendance.
+2. [Roster](https://guildyapper.com/management/roster) to review and edit member data.
+3. [Scores Management](https://guildyapper.com/management/scores) to upload and correct war score sessions.
+4. [Guild Tracker Dashboard](https://guildyapper.com/guild-tracker/dashboard) to watch tracked guild activity.
+5. [Class Performance](https://guildyapper.com/class-performance) to compare class results across data sources.
+
+## What Members Usually Use
+
+1. [Profile](https://guildyapper.com/profile) to keep their own info current.
+2. [Personal Scores](https://guildyapper.com/scores) to review uploads, bookmarks, and stats.
+3. [Signups](https://guildyapper.com/management/signups) when officers want members to inspect event details on the website.
+
+## Regions
+
+GuildYapper uses "region" in three separate places. They are independent of each other — changing one does not change the others.
+
+1. **Bot command default** — the region chosen during [`/setup`](/getting-started/setup) sets the default region for the bot's own commands, such as `/guild list` or `/player history`, in that Discord server.
+2. **Website region selector** — the website has its own region selector at the top of the page, separate from any Discord server's setup. It rescopes tierlists, Guild Tracker, streams, and class statistics to the chosen region, and includes a **World** view that combines all regions.
+3. **Member profile region** — a member's profile is stored per region. Family name, gear, and class apply to whichever region is currently selected when the profile is viewed or edited.
+
+::: info Don't Conflate These Three
+A member registered under the EU region will not show up when the website region selector is set to NA, even in the same Discord server. Before assuming data is missing, check which of the three scopes above you're actually looking at.
+:::
+
+## Where To Go Next
+
+| Goal | Where to go next |
+| --- | --- |
+| Run first-time setup | [Setup](/getting-started/setup) |
+| Understand server types before choosing one | [Server Types](/getting-started/server-types) |
+| Walk through a full Node War from setup to signup | [First Node War tutorial](/getting-started/first-node-war) |
+
+## Common Issues
+
+### I cannot see my server on the website
+
+Make sure you are logged in with the Discord account that is in the server and has the configured member role.
+
+### I can view a page but cannot edit it
+
+Editing requires officer/admin privileges for that GuildYapper server.
+
+### My member data looks outdated
+
+Update your profile on the website, or with:
+
+```text
+/member update
+```
diff --git a/docs/getting-started/server-types.md b/docs/getting-started/server-types.md
index 5cc0159..6280cf4 100644
--- a/docs/getting-started/server-types.md
+++ b/docs/getting-started/server-types.md
@@ -1,3 +1,7 @@
+---
+description: The server types GuildYapper supports and how each one changes available commands.
+---
+
# Server Types
GuildYapper changes its available commands based on the server type selected during `/setup`. This keeps a guild Discord from being cluttered with community-only tools, and keeps a trial Discord focused on trials.
@@ -16,7 +20,7 @@ Use this for a guild or alliance Discord that runs events and manages a member r
- Node War, GvG, Guild League, and custom signups.
- Attendance and signup history.
- Roster and member profile management.
-- Node War parties, waitlist behavior, and class priority.
+- Node War platoons (in-game parties), waitlist behavior, and class priority.
- Guild Tracker lookup and updates in supported regions.
- Scores and score uploads.
- Yap.
@@ -24,7 +28,7 @@ Use this for a guild or alliance Discord that runs events and manages a member r
### Who Can Use It
-Members with the configured member role can use regular member tools. Officers/admins with the configured officer role can manage signups, server settings, parties, rosters, schedules, and other admin tools.
+Members with the configured member role can use regular member tools. Officers/admins with the configured officer role can manage signups, server settings, platoons, rosters, schedules, and other admin tools.
### Best For
@@ -94,7 +98,7 @@ Trial Server setup creates roles, channels, categories, permissions, and an invi
## Changing Server Type Later
-Use `/configure server` to view and change the server type. Changing into Guild / Alliance mode creates default class configs and Node War parties if they are missing.
+Use `/configure server` to view and change the server type. Changing into Guild / Alliance mode creates default class configs and Node War platoons if they are missing.
::: warning Be Careful With Server Type Changes
Changing server type affects which commands GuildYapper syncs to Discord. If users say commands disappeared, check the current server type first.
diff --git a/docs/getting-started/setup.md b/docs/getting-started/setup.md
index 30c84e2..d53ebad 100644
--- a/docs/getting-started/setup.md
+++ b/docs/getting-started/setup.md
@@ -1,3 +1,7 @@
+---
+description: How to run /setup and configure GuildYapper for your server.
+---
+
# Setup
Use `/setup` once after inviting GuildYapper. Setup chooses the server type, region, roles, and channels GuildYapper uses later.
@@ -77,7 +81,7 @@ Guild Tracker commands are available for EU, NA, and SA. RU, MENA, SEA, KR, and
| Server type | Choose it when | Main tools |
| --- | --- | --- |
-| Guild / Alliance | Your Discord runs Node War, GvG, Guild League, or other guild events. | Signups, attendance, roster, parties, Guild Tracker, Yap, scores. |
+| Guild / Alliance | Your Discord runs Node War, GvG, Guild League, or other guild events. | Signups, attendance, roster, platoons (in-game parties), Guild Tracker, Yap, scores. |
| Community | Your Discord is a public or community hub rather than one guild roster. | Guild Tracker, recruiting, merc posts, verification, tierlist updates, Yap. |
| Trial Server | You want a dedicated Discord for trial applicants. | Trial signup, automatic channels, trial history, trial ending flow. |
@@ -103,8 +107,8 @@ Read more in [Server Types](/getting-started/server-types).
/configure server
```
-::: tip Default Parties
-Guild / Alliance setup creates starter Node War parties such as Main, Defense, and Flex. You can adjust these later with `/configure nwparty`.
+::: tip Default Platoons
+Guild / Alliance setup creates starter Node War platoons such as Main, Defense, and Flex. You can adjust these later with `/configure parties`.
:::
@@ -119,7 +123,8 @@ The next useful actions are:
```text
/configure server
-/configure nwparty
+/configure parties
+/configure profiles
/configure class
/member missing
/signup nodewar
@@ -129,7 +134,9 @@ The next useful actions are:
| Goal | Where to go next |
| --- | --- |
| Create events | [Signups](/features/signups) |
-| Configure parties and waitlist behavior | [Parties and Waitlist](/features/parties-and-waitlist) |
+| Configure platoons and function roles | [Platoons and Function Roles](/events/platoons) |
+| Configure waitlist and priority behavior | [Waitlist and Priority](/events/waitlist-and-priority) |
+| Change server settings | [Server Settings](/configuration/server-settings) |
| Let members update their profile | [Members and Roster](/bot/members-and-roster) |
| Enable reminders and automation | [Schedulers](/bot/schedulers) |
| Check paid and trial status | [Premium](/premium) |
diff --git a/docs/index.md b/docs/index.md
index f79903b..1809c8e 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,5 +1,6 @@
---
layout: home
+description: The GuildYapper documentation home, with quick links into setup, events, tracking, and community features.
hero:
name: GuildYapper
@@ -18,7 +19,7 @@ hero:
features:
- title: Event management
- details: Create Node War, GvG, Guild League, and custom signups with attendance, waitlists, party splits, charts, and score links.
+ details: Create Node War, GvG, Guild League, and custom signups with attendance, waitlists, platoon (in-game party) splits, charts, and score links.
- title: Member and roster tools
details: Let members update their class, gear, guild, Garmoth link, and vacation state while officers manage roster details.
- title: Tracking and insights
@@ -37,7 +38,7 @@ GuildYapper combines a Discord bot with the [GuildYapper website](https://guildy
/>
::: info Best First Read
-If GuildYapper is new in your server, [invite the bot](https://discord.com/oauth2/authorize?client_id=1238194592982110248), then start with [Setup](/getting-started/setup). If it is already running, use the cards below to jump into the feature you need.
+New here? Start with [How GuildYapper Works](/getting-started/how-it-works). If GuildYapper is new in your server, [invite the bot](https://discord.com/oauth2/authorize?client_id=1238194592982110248), then start with [Setup](/getting-started/setup). If it is already running, use the cards below to jump into the feature you need.
:::
@@ -45,9 +46,9 @@ If GuildYapper is new in your server, [invite the bot](https://discord.com/oauth
Signups
Create events, manage attendance, move waitlisted members, and close events.
-
- Parties and Waitlist
- Understand party assignment, split behavior, priority, limits, and fair mode.
+
+ Waitlist and Priority
+ Understand the priority stack, dynamic class limits, waitlist modes, and fair mode.
Members and Roster
@@ -77,7 +78,7 @@ If GuildYapper is new in your server, [invite the bot](https://discord.com/oauth
Profile
Guild Tracker
Class Performance
-
Support
+
Support
## What GuildYapper Helps With
@@ -86,8 +87,8 @@ If GuildYapper is new in your server, [invite the bot](https://discord.com/oauth
| --- | --- |
| Setup | Guided Discord setup with server type, region, roles, channels, Guild Tracker settings, and Trial Server automation. |
| Events | Node War, GvG, Guild League, and custom signups with attendance states and officer actions. |
-| Parties | Configurable parties, party sizes, priority, waitlist rules, split parties, and temporary event-only moves. |
-| Roster | Member profiles, gear, class/spec, guild, role-like labels, party assignments, priorities, attendance history, and score snapshots. |
+| Platoons | Configurable platoons, platoon sizes, priority, waitlist rules, split platoons, and temporary event-only moves. |
+| Roster | Member profiles, gear, class/spec, guild, role-like labels, platoon assignments, priorities, attendance history, and score snapshots. |
| Scores | BDO OCR screenshot uploads, Ikusa uploads, score menus, personal stats, alliance/guild breakdowns, and class filters. |
| Tracking | Guild and player lookup, guild consistency, public guild lists, tierlists, class popularity, class performance, and Guild Wars pages. |
| Community | Yap messages, recruiting browser posts, merc signup posts, verification posts, and Trial Server flows. |
diff --git a/docs/premium.md b/docs/premium.md
index 465818b..428da10 100644
--- a/docs/premium.md
+++ b/docs/premium.md
@@ -1,3 +1,7 @@
+---
+description: Premium and VIP pricing, the full list of what Premium unlocks, and what happens to your config when it lapses.
+---
+
# Premium
Premium unlocks advanced automation and customization for a GuildYapper server while supporting development.
@@ -6,15 +10,34 @@ Premium unlocks advanced automation and customization for a GuildYapper server w
/premium
```
-## What It Does
+## Plans
+
+| Plan | Price | Includes |
+| --- | --- | --- |
+| Free | — | Signups, attendance, roster, scores, and every public tracker, plus 5 signup profiles and 5 function roles. |
+| Premium | US$7.99/month | Everything listed in [What Premium Unlocks](#what-premium-unlocks) below. |
+| VIP | US$19.99/month | Exactly the same feature set as Premium. |
+
+::: info VIP Does Not Unlock More Than Premium
+VIP costs more than Premium but unlocks **exactly the same features**. It exists for guilds that want to support GuildYapper's development beyond the base Premium price, not for guilds that want extra functionality.
+:::
+
+Prices are set by Discord's store, billed in US dollars as a recurring subscription, and are managed and cancelled from Discord's own user subscription settings.
+
+
+ Screenshot placeholder
+ Add a screenshot of the Premium and VIP plan cards.
+ Suggested path: `/screenshots/premium/plans.webp`
+
-Premium unlocks:
+## What Premium Unlocks
-- Advanced scheduler automation.
-- Signup customization through member configuration.
-- Custom bot profile options.
-- Direct-message utilities.
-- Premium-only scheduler actions such as automatic signup posting, closing, pre-war announcements, and inactive-member checks.
+- **VOD Reviews** — timestamped notes and Ikusa context on top of any uploaded recording. See [VOD Reviews](/scores/vod-reviews).
+- **Scheduler automation** — automatic signup posting and closing, pre-war announcements, and inactive-member checks. See [Schedulers](/bot/schedulers).
+- **Attendance safeguards** — no-show penalties and an attendance watch channel for stale responses. See [Server Settings](/configuration/server-settings).
+- **Smart signup flow** — auto-signup from weekly availability, and waitlist move DMs. See [Server Settings](/configuration/server-settings) and [Waitlist and Priority](/events/waitlist-and-priority).
+- **Custom signup profiles and unlimited function roles** — beyond the free plan's 5 and 5. See [Event Types and Signup Profiles](/events/event-types) and [Platoons and Function Roles](/events/platoons).
+- **Member markers, a custom bot profile, and officer DMs** — covered below in [Included Features](#included-features).
## Who Can Use It
@@ -103,6 +126,12 @@ GuildYapper's Premium message states that any member on the Discord server can p
Subscriptions are cancelled when the user who purchased the subscription leaves the Discord server.
:::
+## What Happens When It Ends
+
+When Premium ends, your configuration is **preserved** — it simply stops applying until Premium is active again.
+
+The one exception is the custom bot profile: it is reverted, since a Premium-only avatar or nickname would otherwise stay visibly active on a server without an active subscription.
+
## Store And Donations
The Premium message includes:
diff --git a/docs/public/arena-of-solare.md b/docs/public/arena-of-solare.md
new file mode 100644
index 0000000..3072f02
--- /dev/null
+++ b/docs/public/arena-of-solare.md
@@ -0,0 +1,40 @@
+---
+description: "Arena of Solare match scores and the seasonal ranking snapshots."
+---
+
+# Arena of Solare
+
+
+
+## Who Can Use It
+
+Browsing is public. Uploading a match requires an account and being logged in.
+
+::: info Two Different Pages
+Arena of Solare is two separate pages on the site, not one. The [Match Browser](https://guildyapper.com/wars/solare) is a browser of individual matches uploaded by players. [Rankings](https://guildyapper.com/aos-rankings) is a daily snapshot of the game's ladder, by season. They cover different data — use the Match Browser to look at specific fights, and Rankings to see where classes and players stand on the ladder over time.
+:::
+
+## Match Browser
+
+The [Match Browser](https://guildyapper.com/wars/solare) lists community-uploaded matches. Toggle between **Public Matches** and **Private Matches**.
+
+Each match shows a win or loss with its **rating change** (observed values run from +27 to −24). Opening a match shows a per-player breakdown with K/D, CC, damage dealt, damage taken, and healing, plus **ACE** and **MVP** badges.
+
+At the end of a match, a class performance table summarizes games, players, K/D, CCs, damage, damage taken, healing, and win rate per class.
+
+## Rankings
+
+[Rankings](https://guildyapper.com/aos-rankings) is a separate page showing seasonal ranking snapshots. It compares the current snapshot against the previous one.
+
+The **Top 100 Mix** panel shows class representation in the top 100 (the observed snapshot had 27 of 32 classes represented). For each class it shows the **entry**, **median**, and **peak** elo. Toggle between a combined view and a per-spec view. Classes outside the top 100 are listed separately.
+
+Filters are available by class and by elo range, along with a Patch Notes button.
+
+
+ Screenshot placeholder
+ Add a screenshot of the AOS Rankings page.
+ Suggested path: `/screenshots/stats/aos-rankings.webp`
+
diff --git a/docs/public/class-statistics.md b/docs/public/class-statistics.md
new file mode 100644
index 0000000..226fe1a
--- /dev/null
+++ b/docs/public/class-statistics.md
@@ -0,0 +1,57 @@
+---
+description: "Class popularity, combat performance and the node war leaderboards."
+---
+
+# Class Statistics
+
+
+
+## Who Can Use It
+
+All three pages are public. No account and no Guild / Alliance server are required to browse them.
+
+## Where The Data Comes From
+
+Popularity numbers come from players registered on GuildYapper who sign up for node wars. Performance numbers come from submitted score sessions. Read the numbers with that in mind: popularity reflects signups, not necessarily every class actually played, and performance reflects only the wars that were scored and uploaded.
+
+## Class Popularity
+
+The [Class Popularity](https://guildyapper.com/class-statistics) page scopes by tier — **T1**, **T2**, **T3** — and offers cuts for **top 10 alliances** and **active in 30 days**.
+
+Top-level indicators show total players, active players, number of classes, most popular class, and the biggest 14-day gainer and biggest 14-day drop.
+
+The class ranking table splits each class between **Succession** and **Awakening**, and shows share of the population, average gearscore, and 14-day trend per row.
+
+## Class Performance
+
+The [Class Performance](https://guildyapper.com/class-performance) page filters by period (**30 days**, **14 days**, **all time**) and by node war tier, over a total wars analyzed count shown on the page.
+
+Highlight indicators call out the most picked class, best average K/D, most damage, most kills, most CC, most healing, most healing on allies, and most damage on fort. A comparison chart toggles between kills, damage, and K/D.
+
+The main table toggles between per-hour and per-war views, and between class and class+spec rows. Selecting a row opens matchups and further detail.
+
+## Leaderboards
+
+The [Leaderboards](https://guildyapper.com/class-leaderboards) page is not covered by the other two — it surfaces standout individual performances rather than aggregates.
+
+**Single-War Highs** lists the record for a single war in each category — most damage, most CCs, most healing on allies, biggest killfeed, most damage on fort, and most damage taken — each with the player, guild, and date it happened.
+
+**Top 25 Players** ranks players by impact, toggling between an advanced view and a K/D-only view.
+
+**Best Node Wars** ranks individual wars by kills minus deaths. This is where a single standout performance shows up even if the player isn't in the season's Top 25 — a good match earns its place here regardless of season-long standing.
+
+A class ranking rounds out the page, ranked by a selectable metric.
+
+
+ Screenshot placeholder
+ Add a screenshot of the Leaderboards page.
+ Suggested path: `/screenshots/stats/leaderboards.webp`
+
+
+## Related Pages
+
+Class stats are war-derived, not live. For live PvP streams, see [Streams and Tools](/public/streams-and-tools).
diff --git a/docs/public/guild-wars.md b/docs/public/guild-wars.md
new file mode 100644
index 0000000..9c21055
--- /dev/null
+++ b/docs/public/guild-wars.md
@@ -0,0 +1,45 @@
+---
+description: "Ranked GvG: seasons, points, standings and match history."
+---
+
+# Guild Wars
+
+
+
+## Who Can Use It
+
+The [Guild Wars](https://guildyapper.com/guildwars) page is public. Getting a guild onto the board requires a ranked GvG signup created by an officer.
+
+## How A Guild Gets On The Board
+
+A guild enters the board when an officer creates a ranked GvG signup with `/signup gvg`. If no war is currently scheduled, the page says so directly and tells you how to schedule one.
+
+## Seasons
+
+The board runs by season. At the time of writing, the site shows the **Preseason** label. The page itself includes a "How ranking works" explainer covering the scoring in more detail.
+
+## Guild Rankings
+
+The season standings show each guild's points (observed in the 520–580 range), along with a win/loss record. Expand a guild to see its recent matchups as a sequence of W and L results.
+
+
+ Screenshot placeholder
+ Add a screenshot of the Guild Rankings standings.
+ Suggested path: `/screenshots/stats/guild-wars.webp`
+
+
+## Match History
+
+Match History lists completed wars with date, time, the two guilds, and the final score. A match can have a **VOD** attached and a roster breakdown. See [VOD Reviews](/scores/vod-reviews) for more on reviewing attached VODs.
+
+::: tip See Also
+Guild Wars and [Arena of Solare](/public/arena-of-solare) are both competitive PvP pages — Guild Wars tracks ranked GvG, while Arena of Solare covers open-world PvP matches and rankings.
+:::
+
+## Common Issues
+
+### A ranked GvG is missing
+
+Make sure the GvG signup was created as ranked and closed with a result.
diff --git a/docs/public/screenshots/README.md b/docs/public/screenshots/README.md
index 94b6362..6b843d8 100644
--- a/docs/public/screenshots/README.md
+++ b/docs/public/screenshots/README.md
@@ -1,3 +1,7 @@
+---
+description: Contributor notes on where to place documentation screenshots and how to reference them.
+---
+
# Screenshot Assets
Place documentation screenshots in this folder. Anything here is served from `/screenshots/...` in VitePress.
diff --git a/docs/public/streams-and-tools.md b/docs/public/streams-and-tools.md
new file mode 100644
index 0000000..90259b1
--- /dev/null
+++ b/docs/public/streams-and-tools.md
@@ -0,0 +1,49 @@
+---
+description: "Live PvP streams and the curated directory of Black Desert tools and communities."
+---
+
+# Streams And Tools
+
+
+
+## Who Can Use It
+
+Both pages are public. No account and no login are required to browse them.
+
+## PvP Streams
+
+The [Streams](https://guildyapper.com/wars/streams) page lists live Twitch broadcasts, filterable by mode: **Nodewar/Siege**, **GvG**, **Guild League**, **AOS**, and **RBF**. Each card shows the mode, the streamer, the stream title, viewer count, and language.
+
+The page header shows how many streams are currently live and how many are from partners. Partner streams get **privileged placement** at the top of the list, with the rest below. A **Show my stream** button explains how to get a stream onto the list.
+
+## Tools
+
+[Tools](https://guildyapper.com/tools) is a whole section of the site not covered elsewhere in this documentation. It gathers:
+
+- **Combat Toolkit** — links out to Ikusa and Garmoth.
+- A **PvP damage calculator**.
+- A **gear planner**.
+- **Fort location maps** for Balenos and Serendia.
+- A collection of community-creator **video guides**.
+- A **resource library** — skill builders, PvP guides, a client performance guide, a utility hub, an AOS ladder, the community's open API, and a ping monitor.
+- **Regional communities**.
+- A directory of **class Discords**.
+
+::: info External Resources
+Tools is a curated collection of external resources maintained by third parties, not GuildYapper features.
+:::
+
+
+ Screenshot placeholder
+ Add a screenshot of the Tools page.
+ Suggested path: `/screenshots/website/tools.webp`
+
+
+## Common Issues
+
+### A stream does not appear
+
+The stream title needs a PvP-relevant keyword.
diff --git a/docs/public/tierlists.md b/docs/public/tierlists.md
new file mode 100644
index 0000000..1633f49
--- /dev/null
+++ b/docs/public/tierlists.md
@@ -0,0 +1,93 @@
+---
+description: "Node war alliance tiers and class tierlists, how they are decided, and how they change."
+---
+
+# Tierlists
+
+
+
+## Who Can Use It
+
+Both tierlist pages are public. No account and no Guild / Alliance server are required to browse them. Editing is restricted: NW Tierlist editing requires tierlist admin permissions, and Class Tierlist editing requires class-tierlist admin permissions.
+
+## NW Tierlist
+
+The [NW Tierlist](https://guildyapper.com/tierlist) ranks alliances by region. It covers three contexts, each on its own tab:
+
+- **Capped (Tier 1)**
+- **Capped (Tier 2)**
+- **Uncapped**
+
+Each tab shows a table with these columns:
+
+| Column | Meaning |
+| --- | --- |
+| Tier | The alliance's current tier. |
+| Alliance | Alliance name. |
+| Guilds | Guilds in the alliance. |
+| NW Days | Node war days the alliance fights. |
+| Caps | Cap size the alliance runs. |
+| Attendance | The alliance's declared attendance ceiling. |
+| Contact | Contact for the alliance. |
+| Backup | Backup contact. |
+| Updated | When this row was last reviewed. |
+
+A separate **Unknown Status** section lists guilds with no known alliance. A toggle lets you also show guilds with fewer than 20 members, and you can filter the list by tier and by NW days.
+
+::: info Curated, Not Automatic
+The tierlist is curated by a named person on the page, who also shows the date of the last full review.
+:::
+
+
+ Screenshot placeholder
+ Add a screenshot of the NW Tierlist.
+ Suggested path: `/screenshots/stats/nw-tierlist.webp`
+
+
+## Update History
+
+The NW Tierlist page has its own **Update History** tab. Each entry shows the alliance, its tier change (for example `S → S+`), and its position change (for example `2 → 1`), with a date. A filter lets you view history across all tierlists instead of just the one you're currently viewing.
+
+## Methodology
+
+This is published on the site and reproduced here because it's the question guilds ask most often.
+
+**Initial placement** considers:
+
+- Node war performance over the last month.
+- Consistency of attendance and performance.
+- Average gearscore and playstyle.
+
+**Promotion and relegation** consider:
+
+- Win rate against similar tiers.
+- Consistent losses to equal or lower tiers.
+- Consistent wins against equal or higher tiers.
+- Siege participation and performance.
+- Significant influx of new members, for example when a guild dissolves and its members migrate into another guild.
+
+::: info Disputing A Placement
+Curation accepts evidence to reassess a placement.
+:::
+
+## Class Tierlist
+
+The [Class Tierlist](https://guildyapper.com/class-tierlist) is not a single list. It covers four separate contexts:
+
+- **Capped Nodewar**
+- **Uncapped Nodewar**
+- **AOS**
+- **GvG**
+
+Each context has its own tiers, and each tier carries its own description. Every class entry lists its spec — Succession, Awakening, or Ascension — along with a written justification for its placement.
+
+::: tip Check The Context
+A class's tier in Capped Nodewar can differ from its tier in AOS or GvG. Make sure you're reading the tierlist for the context you actually care about.
+:::
+
+## Related Pages
+
+Guild Wars and Class Statistics are separate public pages. See [Guild Wars](/public/guild-wars) for ranked GvG results, and [Class Statistics](/public/class-statistics) for class popularity and performance data.
diff --git a/docs/reference/commands.md b/docs/reference/commands.md
index 463c4fe..ece3692 100644
--- a/docs/reference/commands.md
+++ b/docs/reference/commands.md
@@ -1,9 +1,17 @@
+---
+description: The full list of GuildYapper's user-facing slash commands, grouped by area.
+---
+
# Slash Commands
-This page lists the user-facing slash commands found in GuildYapper's Discord bot. Discord may show fewer commands depending on your server type.
+This page lists the user-facing slash commands found in GuildYapper's Discord bot, with a **Who** column showing who typically reaches for each one.
::: info Server Type Matters
-Guild / Alliance, Community, and Trial Server mode do not share the exact same command set. If a command is missing, check `/configure server`.
+Guild / Alliance, Community, and Trial Server are different Discord server types, chosen in `/setup`. Discord only shows the commands your server type unlocks — Community and Trial commands never appear on a Guild / Alliance server, and vice versa. The bot's own built-in `/help` menu can lag behind; this page follows what Discord actually registers.
+:::
+
+::: tip Member Vs Officer
+**Member** commands are available to anyone with the configured member role. **Officer** commands require the configured officer/admin role. If the wrong people can or cannot use a command, check `/configure server`.
:::
## Setup And Help
@@ -14,31 +22,35 @@ Guild / Alliance, Community, and Trial Server mode do not share the exact same c
/premium
```
-| Command | Use |
-| --- | --- |
-| `/setup` | First-time server setup. Administrator permission required. |
-| `/help` | Opens the command help menu. |
-| `/premium` | Shows Premium status, trial, store, subscription, and donation buttons. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/setup` | Officer | First-time server setup. Administrator permission required. |
+| `/help` | Member | Opens the command help menu. |
+| `/premium` | Member | Shows Premium status, trial, store, subscription, and donation buttons. |
## Configuration
```text
/configure server
-/configure nwparty
+/configure parties
+/configure profiles
/configure class
/configure member member:@Member
/configure scheduler
/configure guildfilter file:guilds.txt
+/priority view
```
-| Command | Use |
-| --- | --- |
-| `/configure server` | Server type, region, roles, channels, Yap, tracker, guild names, and Node War behavior. |
-| `/configure nwparty` | Node War parties, limits, priority, overflow, targets, and assignments. |
-| `/configure class` | Class/spec priorities and class type priority limits. |
-| `/configure member` | Individual member configuration. |
-| `/configure scheduler` | Reminder and automation schedules. |
-| `/configure guildfilter` | Upload custom Guild Tracker filter file. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/configure server` | Officer | Server type, region, roles, channels, Yap, tracker, guild names, and Node War behavior. |
+| `/configure parties` | Officer | Platoons (in-game parties) and function roles: Discord role, priority, limit, reduction, class exclusion, size, overflow, and target. |
+| `/configure profiles` | Officer | Signup profiles per event type — which platoons and function roles each event layout offers. |
+| `/configure class` | Officer | Class/spec priorities and class type priority limits. |
+| `/configure member` | Officer | Individual member configuration. |
+| `/configure scheduler` | Officer | Reminder and automation schedules. |
+| `/configure guildfilter` | Officer | Upload custom Guild Tracker filter file. |
+| `/priority view` | Officer | Paginated priority overview by Family, Priority, and Class, with Member list, Config overview, and Get CSV buttons. See [Waitlist and Priority](/events/waitlist-and-priority). |
## Signups
@@ -50,13 +62,13 @@ Guild / Alliance, Community, and Trial Server mode do not share the exact same c
/signup list
```
-| Command | Use |
-| --- | --- |
-| `/signup nodewar` | Create a Node War signup. |
-| `/signup gvg` | Create a ranked or practice GvG signup. |
-| `/signup gleague` | Create Guild League signup time slots. |
-| `/signup custom` | Create a custom event signup. |
-| `/signup list` | List and manage existing signups. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/signup nodewar` | Officer | Create a Node War signup. |
+| `/signup gvg` | Officer | Create a ranked or practice GvG signup. |
+| `/signup gleague` | Officer | Create Guild League signup time slots. |
+| `/signup custom` | Officer | Create a custom event signup. |
+| `/signup list` | Officer | List and manage existing signups. |
## Attendance
@@ -67,12 +79,12 @@ Guild / Alliance, Community, and Trial Server mode do not share the exact same c
/attendance export
```
-| Command | Use |
-| --- | --- |
-| `/attendance me` | View your own attendance. |
-| `/attendance member` | View one member's attendance. |
-| `/attendance overview` | View server attendance overview. |
-| `/attendance export` | Export attendance to CSV. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/attendance me` | Member | View your own attendance. |
+| `/attendance member` | Officer | View one member's attendance. |
+| `/attendance overview` | Officer | View server attendance overview. |
+| `/attendance export` | Officer | Export attendance to CSV. |
## Members
@@ -81,14 +93,16 @@ Guild / Alliance, Community, and Trial Server mode do not share the exact same c
/member view member:@Member
/member list sorting:gearscore
/member missing
+/stats classes
```
-| Command | Use |
-| --- | --- |
-| `/member update` | Update your own member details. |
-| `/member view` | View one member's gear/profile information. |
-| `/member list` | List members sorted by gearscore, class, or guild. |
-| `/member missing` | Mention or list members who have not registered yet. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/member update` | Member | Update your own member details. |
+| `/member view` | Member | View one member's gear/profile information. |
+| `/member list` | Officer | List members sorted by gearscore, class, or guild. |
+| `/member missing` | Officer | Mention or list members who have not registered yet. |
+| `/stats classes` | Member | View your server's class distribution among registered members. |
## Scores
@@ -97,10 +111,10 @@ Guild / Alliance, Community, and Trial Server mode do not share the exact same c
/scores upload file:score.png
```
-| Command | Use |
-| --- | --- |
-| `/scores menu` | Open the Discord score menu. |
-| `/scores upload` | Upload BDO war score screenshots. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/scores menu` | Member | Open the Discord score menu. |
+| `/scores upload` | Officer | Upload BDO war scores — screenshots or a `.csv` export. |
## Guild Tracker
@@ -135,10 +149,10 @@ Guild Tracker commands are available for EU, NA, and SA.
/yap
```
-| Command | Use |
-| --- | --- |
-| `/addyap` | Add a new yap message. |
-| `/yap` | Post a random yap. |
+| Command | Who | Use |
+| --- | --- | --- |
+| `/addyap` | Member | Add a new yap message. |
+| `/yap` | Member | Post a random yap. |
## Community Commands
diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md
new file mode 100644
index 0000000..db72307
--- /dev/null
+++ b/docs/reference/glossary.md
@@ -0,0 +1,37 @@
+---
+description: "Definitions for the GuildYapper and Black Desert terms used across these docs."
+---
+
+# Glossary
+
+Definitions for terms as they're used inside GuildYapper. Each entry links to the page that develops it further.
+
+- **AAP** — One of four gear values (alongside GS, AP, and DP) shown for a member in the [Platoon Builder](/events/platoon-builder)'s member detail panel.
+- **AP** — One of four gear values (alongside GS, AAP, and DP) shown for a member in the [Platoon Builder](/events/platoon-builder)'s member detail panel.
+- **Ascension** — One of the three specs (with Succession and Awakening) a class entry is placed under on the [Class Tierlist](/public/tierlists).
+- **Awakening** — One of the three specs (with Succession and Ascension) a class entry is placed under on the [Class Tierlist](/public/tierlists), and one of the two specs the [Class Popularity](/public/class-statistics) ranking splits classes into.
+- **BSR** — A dynamic class type set through `/configure class`. Classes typed BSR share a priority limit and are spread across split platoons rather than clustering together. See [Dynamic Class Types](/events/waitlist-and-priority#dynamic-class-types).
+- **Blue Battlefield** — One of GuildYapper's five system [signup profiles](/events/event-types), used for Blue Battlefield events.
+- **Capped and Uncapped** — The two attendance contexts on the [NW Tierlist](/public/tierlists), further split into Capped Tier 1 and Capped Tier 2; the same distinction applies to the Nodewar contexts on the Class Tierlist.
+- **DP** — One of four gear values (alongside GS, AP, and AAP) shown for a member in the [Platoon Builder](/events/platoon-builder)'s member detail panel.
+- **Dynamic class type** — A per-class/spec classification (`DEFAULT`, `PA`, `BSR`, or `SHAI`) set in `/configure class` that gives a class a share limit of attending members before its priority is temporarily reduced. See [Dynamic Class Types](/events/waitlist-and-priority#dynamic-class-types).
+- **Effective priority** — In Custom Priority waitlist mode, a member's combined priority for waitlist move-ins: class priority, platoon priority, function role priority, and personal priority added together. See [The Priority Stack](/events/waitlist-and-priority#the-priority-stack).
+- **Fair mode** — A waitlist setting that gives members extra priority for previous Node Wars they were waitlisted on, helping members who repeatedly miss the final roster. See [Fair Mode](/events/waitlist-and-priority#fair-mode).
+- **Family name** — A member's in-game family name, used to identify them across signups, roster, attendance, and scores. See [Member Profile Updates](/bot/members-and-roster#member-profile-updates).
+- **Function role** — A signup label (not a Discord role) such as Elephant Rider or Flag, with its own emoji, optional priority, limit, and class exclusion. See [Function Roles](/events/platoons#function-roles).
+- **Garmoth** — The external gear-planning site members link from their GuildYapper profile so officers and the member have a quick route to detailed gear. See [Member Profile Updates](/bot/members-and-roster#member-profile-updates).
+- **Gearscore (GS)** — A single number summarizing a member's gear, tracked on their roster profile and used for sorting, roster context, and distribution charts. See [Member Profile Updates](/bot/members-and-roster#member-profile-updates).
+- **Guild League** — A signup type with its own command, auto-generated time slots, a public match browser, and standings. See [Guild League](/events/guild-league).
+- **Ikusa** — An external logger whose exported log data GuildYapper can ingest as a score source, and whose captures feed the Guild League match browser and standings. See [Ikusa Scores](/features/scores#ikusa-scores).
+- **Node War** — GuildYapper's primary Guild / Alliance event type, created with `/signup nodewar` and covered by its own attendance, waitlist, and platoon logic. See [Create A Node War Signup](/features/signups#create-a-node-war-signup).
+- **PA** — A dynamic class type set through `/configure class`. Classes typed PA share a priority limit and are spread across split platoons rather than clustering together. See [Dynamic Class Types](/events/waitlist-and-priority#dynamic-class-types).
+- **Platoon** — An in-game party. Both the bot and the website use "platoon" for this concept; the default platoon is always available and cannot be removed. See [Platoons and Function Roles](/events/platoons).
+- **PvX** — A guild classification (alongside PVP) used to tag tracked guilds and filter Guild Tracker results. See [Guild Tracker](/features/guild-tracker).
+- **RBF** — One of the PvP stream categories on the [Streams](/public/streams-and-tools#pvp-streams) page, alongside Nodewar/Siege, GvG, Guild League, and AOS.
+- **Shai** — As a dynamic class type (`SHAI`) set through `/configure class`, distinct from playing the Shai character class itself; classes typed SHAI share a priority limit like PA and BSR. See [Dynamic Class Types](/events/waitlist-and-priority#dynamic-class-types).
+- **Siege** — One of GuildYapper's five system [signup profiles](/events/event-types), used for Siege wars.
+- **Signup profile** — A layout that decides which platoons and function roles are available on an event; each signup uses one. See [Event Types and Signup Profiles](/events/event-types).
+- **Specialist** — In the Platoon Builder's composition summary, a member with a BSR, PA, or Shai dynamic class type. See [Reading The Composition](/events/platoon-builder#reading-the-composition).
+- **Succession** — One of the three specs (with Awakening and Ascension) a class entry is placed under on the [Class Tierlist](/public/tierlists), and one of the two specs the [Class Popularity](/public/class-statistics) ranking splits classes into.
+- **Visible attendance** — A signup's publicly shown attendance cap, used when it should differ from the internal maximum. See [Create A Node War Signup](/features/signups#create-a-node-war-signup).
+- **War of the Roses** — One of GuildYapper's five system [signup profiles](/events/event-types), used for War of the Roses events.
diff --git a/docs/scores/vod-reviews.md b/docs/scores/vod-reviews.md
new file mode 100644
index 0000000..d969e67
--- /dev/null
+++ b/docs/scores/vod-reviews.md
@@ -0,0 +1,65 @@
+---
+description: Turn a YouTube or Twitch recording into a shared review workspace with timestamp notes and Ikusa context.
+---
+
+# VOD Reviews
+
+Uploading a recording and playing it back are free for everyone. Premium turns that recording into a shared review workspace: timestamped notes attributed to whoever left them, an overall written review, and Ikusa context synced to playback.
+
+
+
+## Who Can Use It
+
+Any member can upload a VOD. Who can read and write review notes depends on the visibility level chosen, and the review layer itself needs Premium.
+
+## Uploading
+
+On the upload page, paste a YouTube, Twitch, or other HTTPS recording link, add an optional note, and choose a destination:
+
+| Destination | Use it for |
+| --- | --- |
+| My profile | Practice, GvG, or any recording without an event. Stays on your profile only. |
+| A server | A recording the whole server should see. |
+| This event | Ties the recording to one signup. |
+
+The upload page also shows counters for your uploaded VODs, when you last uploaded, and server VODs.
+
+### Where To Start
+
+- The upload page itself: [guildyapper.com/vod/submit](https://guildyapper.com/vod/submit).
+- The **VODs** button on an event in the signups management view.
+- **Submit VOD** on individual Guild League and Guild Wars matches.
+
+## Premium Review
+
+Premium adds a review layer on top of any uploaded VOD:
+
+- Notes anchored to an exact timestamp, attributed to the commenter's Discord name and avatar.
+- An overall written review for the recording.
+- Ikusa context synchronised with playback, bringing kills, deaths, classes, and map position into line with the video.
+
+
+ Screenshot placeholder
+ Add a screenshot of a VOD review in progress.
+ Suggested path: `/screenshots/premium/vod-review.webp`
+
+
+## Who Can See What
+
+Each note or review sits at one of three visibility levels:
+
+- Officer-only.
+- Visible to the uploader.
+- Shared feedback on a public VOD link.
+
+## Common Issues
+
+### The VOD will not load
+
+The recording needs to be publicly accessible at its source (YouTube, Twitch, or wherever it's hosted), and the link must be HTTPS.
+
+### No note controls appear
+
+Without Premium, the review layer (timestamp notes, overall review, Ikusa alignment) does not appear. Upload and playback still work.
diff --git a/docs/website/overview.md b/docs/website/overview.md
deleted file mode 100644
index 43f74ab..0000000
--- a/docs/website/overview.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Website Overview
-
-The website is the larger dashboard side of GuildYapper. Discord is best for quick actions. The website is best when you need tables, filters, charts, score detail pages, or roster editing.
-
-
-
-::: info Login
-Pages that show your server, roster, profile, or management data require Discord login. Public pages such as tierlists, Guild Tracker, class stats, streams, and guild wars can be browsed without managing a server.
-:::
-
-## Main Website Areas
-
-| Area | Link | What it is for |
-| --- | --- | --- |
-| Profile | [Open](https://guildyapper.com/profile) | Update your own family name, gear, class/spec, Garmoth link, and profile details. |
-| Signups | [Open](https://guildyapper.com/management/signups) | Browse signups, open an event, manage attendance, assign parties, and review member details. |
-| Roster | [Open](https://guildyapper.com/management/roster) | View and manage members, priorities, classes, parties, attendance summaries, and score snapshots. |
-| Scores Management | [Open](https://guildyapper.com/management/scores) | Upload and manage Ikusa or BDO OCR score sessions for your server. |
-| Personal Scores | [Open](https://guildyapper.com/scores) | Browse your own uploads, bookmarks, sessions, and personal stats. |
-| Guild Tracker | [Open](https://guildyapper.com/guild-tracker/dashboard) | Browse tracked guilds, players, movement, and dashboard views. |
-| Guild Wars | [Open](https://guildyapper.com/guildwars) | Browse upcoming and past ranked GvGs plus ranking views. |
-| AOS Browser | [Open](https://guildyapper.com/wars/solare) | Browse Arena of Solare match scores and class/player stats. |
-| Streams | [Open](https://guildyapper.com/wars/streams) | Find war-related streams. |
-| Tierlists | [Open](https://guildyapper.com/tierlist) | Browse guild/alliance tierlists and update history. |
-| Class Tierlist | [Open](https://guildyapper.com/class-tierlist) | Browse class/spec tierlist entries. |
-| Class Popularity | [Open](https://guildyapper.com/class-statistics) | View class population and signup trends. |
-| Class Performance | [Open](https://guildyapper.com/class-performance) | Compare class performance from score and combat data. |
-
-
- Screenshot placeholder
- Add a screenshot of the website navigation.
- Suggested path: `/screenshots/website/navigation.webp`
-
-
-## What Officers Usually Use
-
-1. [Signups](https://guildyapper.com/management/signups) to manage event attendance.
-2. [Roster](https://guildyapper.com/management/roster) to review and edit member data.
-3. [Scores Management](https://guildyapper.com/management/scores) to upload and correct war score sessions.
-4. [Guild Tracker Dashboard](https://guildyapper.com/guild-tracker/dashboard) to watch tracked guild activity.
-5. [Class Performance](https://guildyapper.com/class-performance) to compare class results across data sources.
-
-## What Members Usually Use
-
-1. [Profile](https://guildyapper.com/profile) to keep their own info current.
-2. [Personal Scores](https://guildyapper.com/scores) to review uploads, bookmarks, and stats.
-3. [Signups](https://guildyapper.com/management/signups) when officers want members to inspect event details on the website.
-
-::: tip Discord And Website Stay Connected
-Signups created in Discord appear on the website. Website attendance and party edits can update the same signup data used by the bot.
-:::
-
-## Common Issues
-
-### I cannot see my server
-
-Make sure you are logged in with the Discord account that is in the server and has the configured member role.
-
-### I can view but not edit
-
-Editing requires officer/admin privileges for that GuildYapper server.
-
-### My member data is outdated
-
-Update your profile on the website or use:
-
-```text
-/member update
-```