Documentation

The Discord bot that runs your Black Desert guild.

CritIQ is an all-in-one Discord bot and web dashboard built strictly for Black Desert Online guilds. Member tracking, war analytics, gear-score tracking, performance flags, event signups, alliance dashboards, live combat logs from IKUSA โ€” in one install, with a single Discord sign-in.

๐Ÿ“Š
Auto-recorded wars
Drop your war screenshots โ€” kills, deaths, and attendance are read in automatically and stats update on the spot.
โš‘
Performance flags
Configurable KDR + attendance thresholds. Officers see who needs mentoring.
โš”
Event signups
Create war events, build teams by drag-and-drop, and post the roster card to Discord.
๐Ÿ›ก
Alliance system
Up to four allied guilds share one combined view of their wars in real time. Owner-only.
โšก
Live combat (IKUSA)
Watch your IKUSA log play out on the dashboard with a live kill feed and per-guild K/D.
๐Ÿ“บ
Twitch surfacing
See which guildmates are streaming, right next to the broader BDO partner feed.
Quickstart

Up and running, end to end

The path from "click Add to Discord" to "first war recorded" โ€” usually a few minutes once you have your BDO guild name handy:

  1. Add the bot to your server. Click Add to Discord from critiq.one. You need Manage Server permission. The bot joins quietly and sits there until you set it up.
  2. Run /setup in your bot channel. Discord Administrator required. The bot asks for your BDO guild name, reads the official BDO guild page, and shows the imported member list for confirmation.
  3. Confirm the roster. CritIQ registers your guild and imports every member at 0/0 KDR. Optionally designate a Discord role as your "Owner" role here.
  4. Sign in to the dashboard. Visit critiq.one/dashboard โ†’ "Log in with Discord" โ†’ grant the requested read-only scopes. You're routed to your dashboard.
  5. Record your first war with /warscores. Upload BDO results screenshots in pairs (names + stats). Automatic extraction reads each screenshot, fuzzy-matches names against your roster, and shows a confirmation embed. Confirm โ€” and the war is recorded.
That's it. Every stat your guild generates from here on flows into the dashboard automatically โ€” KDR, attendance, alliance contributions, performance flags, and a real-time feed from your guildmates' Twitch streams.
Setup & onboarding

Detailed install flow

1. Adding CritIQ to Discord

The Add-to-Discord button takes you through Discord's standard app install flow. CritIQ asks for the permissions it actually uses โ€” reading channels, sending messages, posting images and embeds, managing its own messages, and running slash commands. You must have Manage Server on the server you're adding it to.

The bot is dormant until you actually run /setup. Nothing is stored about your guild yet.

2. /setup โ€” guild registration

Run in any channel where the bot can post. Requires Discord Administrator. The bot replies with an embed asking for your exact BDO guild name (e.g. Omniscient). Type it as a chat message in the same channel โ€” the setup session lives for 15 minutes.

CritIQ reads the official BDO guild profile page and pulls every member, with automatic retries if the page is slow to respond.

You'll see the imported member list + guild master for confirmation. On approval, every member is added at default stats. You can optionally designate a Discord role as your dashboard Owner role during this wizard.

3. /sync roster โ€” keeping the roster fresh

Re-reads your BDO guild page and reconciles changes against your CritIQ roster. New members join the list with default stats. Members who've left BDO are marked inactive, but their lifetime stats stay intact. A short summary message gets posted to your sync notification channel (configurable via /config โ†’ Sync Notifications).

4. The first war

Use /warscores to upload your BDO Node War / Siege results. Screenshots must be uploaded in pairs (names image + stats image), up to 5 pairs per command. The flow:

  • Each attachment is read with automatic extraction.
  • Names from each pair's first image are matched to kills/deaths from the second.
  • Fuzzy matching reconciles extracted names against the live roster (handles imperfect reads).
  • You get a confirmation message with matched rows + a dropdown to manually assign any unmatched names.
  • On confirm: the war is recorded, every member's lifetime stats are updated, matched members are marked present for attendance, guild-wide KDR is recalculated.

The dashboard updates in real time โ€” no refresh needed.

Sign in & permissions

Discord sign-in, roles, and access

The login flow

The dashboard uses Discord login โ€” read-only access to your profile and the list of servers you're in. Flow:

  1. Click Log in with Discord on the landing page.
  2. Discord prompts you to authorize CritIQ. Only "read profile + read your servers" is requested โ€” no write access ever.
  3. You're returned to CritIQ, signed in, and routed straight to your guild's dashboard.

Permission tiers

Permissions are resolved per guild. CritIQ reads your live Discord role list and compares it against the roles you've designated as Owner, Admin, and User in /config โ†’ Role Settings.

Roles are re-checked automatically every few minutes and whenever the dashboard tab regains focus โ€” so role changes in Discord propagate without you having to log out and back in.

Permissions matrix

ActionOwnerAdminUser
View dashboard & statsโœ“โœ“โœ“
Upload war scores (/warscores)โœ“โœ“โ€”
Sync roster (/sync roster)โœ“โœ“โ€”
Manage exceptions & vacationsโœ“โœ“โ€”
Edit member stats inlineโœ“โœ“โ€”
Toggle war exclusion / alliance inclusionโœ“โœ“โ€”
Run /config sub-menusโœ“bootstrap*โ€”
Create / manage alliancesโœ“โ€”โ€”
Disband guild / purge statsโœ“โ€”โ€”

* Discord Administrators can run /config during initial bootstrap when no roles are yet configured.

The Dashboard

Eight tabs, every angle of your guild

The dashboard at critiq.one/dashboard surfaces every guild metric in a dark-mode, glass-morphism interface. Every tab respects permissions and only shows what you're allowed to do.

The global shell

  • Sticky top bar โ€” the CritIQ eye logo, a guild switcher for jumping between any guilds you have access to, links for Docs / Invite / Feature Request / Settings / Sync, and your user menu with logout.
  • Global stats strip โ€” eight cards at the top of every tab: Total Wars, Guild KDR, Total Kills, Total Deaths, Wins, Losses, Draws, and Win Rate %.
  • Global filter controls โ€” war type (Node / Siege / All), capped vs uncapped, and month/year. Filters apply to both stats strips at once.
  • Orphaned guild banner โ€” shows up if the guild's owner has left Discord, letting an eligible member claim ownership with a one-time adoption key.
Tab ยท Members

Every member, every stat, one card

The default landing tab โ€” a fast, scrollable grid showing every active guild member with their kills, deaths, KDR, attendance, class, and quick admin toggles.

Card anatomy

  • Avatar and family name (long names quietly scroll on hover so nothing gets cut off).
  • Badges for Discord-linked, on vacation, exception status, and grace period for new members.
  • KDR, kills, deaths, and war attendance numbers with smooth count-up animation.
  • A small trend arrow (up / down / flat) based on recent KDR change.
  • Class icon and specialization โ€” Awakening, Succession, or Ascension.
  • Lifetime attendance percentage based on the last seven wars they were eligible for.
  • Pity dots showing how close a member is to a pity token (for the events that use it).
  • A "live" badge if the member is currently streaming on Twitch.
  • Flip the card to see notes or change a member's class (admin/owner). Class changes can apply going forward only or be applied retroactively to past wars.

Search, sort, filter, view

  • Search by family name or character name.
  • Sort by KDR, kills, deaths, attendance, name, last-warred date, or vacation status.
  • Filter by class โ€” pick any class on your roster.
  • Filter by custom member group, or open the "Manage Groups" panel to create one.
  • Filter to find members who haven't linked a Discord account yet.
  • Switch the view between the standard grid and a Kanban board where you can drag members between groups.

Admin actions

  • Exception toggle โ€” flag a member so their stats don't count toward guild KDR (trial members, etc.).
  • Vacation toggle โ€” pause attendance tracking for someone taking time off.
  • Edit class โ€” change a member's class either going forward only, or backfilled to past wars too.
  • Delete member โ€” right-click any card to remove a member.
  • Merge stats โ€” combine two member records into one (handy when someone changes their family name).
  • Add or edit notes โ€” open a notes panel for any member.
Tab ยท History

Every war, stat-by-stat

Full timeline of past Node Wars and Sieges. The list view shows date, type, result (Win / Loss / Draw), capped flag, total K/D, and total players. Click any war to open the war-detail modal.

The war detail view

Clicking a war opens a full-screen view with a stats sidebar and a player roster:

  • Sidebar โ€” date, war type, result tags, the key totals (Kills, Deaths, K/D, Players), the top 5 classes, an animated donut showing class composition, and an accolades panel that surfaces Most Kills, Best K/D, Most Improved, and Victim.
  • Player roster โ€” sortable by name, kills, deaths, or K/D. Each row has its own exclusion toggle, a class assignment dropdown, and a remove button.
  • Inline editing โ€” admins can fix kills and deaths for any player directly in the table.

War-level actions (admin/owner)

  • Toggle exclusion โ€” the eye icon on each row. Excluded wars drop out of K/D stats but still count for attendance.
  • Toggle alliance inclusion โ€” controls whether this war contributes to the alliance's combined stats.
  • Edit the date, or edit type / result / capped flag if you got it wrong on first upload.
  • Add a missing member manually, or remove a member from the war if they shouldn't be there.
  • Delete the war entirely, or add a note to it.
  • LIVE badge appears on any war that's linked to a Live War session.
Tab ยท Analytics

Charts, trends, and deep-dives

Visual breakdowns of guild performance โ€” head-to-head comparisons, class composition, and KDR trends over time.

Highlight cards

Four flippable cards at the top โ€” MVP, Most Improved, Consistency, and Best War KDR. Flip any card to cycle through attendance accolades: perfect attendance, gold/diamond rate, longest streak, single-war kill record, death dealer, victim, hot streak, and returning members.

Charts

  • KDR Timeline โ€” guild-wide and per-member kill/death ratio over time, with a clean gradient fill.
  • Attendance Heatmap โ€” calendar-style grid showing every war a member did or didn't show up to.
  • Player Comparison Radar โ€” spider chart that compares 2โ€“4 members side by side across kills, deaths, KDR, attendance, and more.
  • Class Distribution โ€” floating bubble cluster where each class is an orb sized by how many guildmates main it. Hover any orb to see the breakdown of Awakening / Succession / Ascension within that class.
  • Class Performance โ€” kills, deaths, and KDR broken down by class so you can see which classes are pulling the most weight.
  • Roster Priority โ€” every member's KDR plotted over time on one chart, with sortable tiers for spotting drift.
Tab ยท Performance

The under-performers, surfaced automatically

Admin/owner only. Two parallel flag tracks: Performance Issues (KDR below your threshold) and No-Shows (members who keep signing up but not showing, or who miss multiple events in a row). Both are private โ€” officers see them, flagged members never do.

Threshold settings (gear icon)

  • KDR threshold (for example, 0.20) and the window it's measured over โ€” all-time, the last X days, the last X wars, or the last month.
  • Attendance percentage threshold and the window it's measured over.
  • No-show percentage threshold, window, and minimum number of events before flagging.
  • Cooldown days per flag type so the same member doesn't get re-flagged the day after a lead is assigned to them.
  • One master enable/disable switch for the whole system.

Tabs within the tab

  • Issue type โ€” Performance (KDR), Attendance, or No-Show.
  • Status โ€” Flagged, Active Assignments, Resolved, or Leads.

Lead assignment system

The owner designates one or more Discord roles as Leads and sets how many assignments each lead can take at a time. When a member is flagged, an owner can assign them to a lead. CritIQ sends a notification to your Lead Notifications channel pinging the chosen lead role.

  • Each lead role has a maximum assignment capacity so no one gets overloaded.
  • The Active Assignments tab tracks every mentorship in progress.
  • The Complete Assignment dialog marks a mentorship resolved, with optional notes about the outcome.
  • Each flagged member's recent history is expandable โ€” the last 10 wars or no-show events at a glance.
Tab ยท Signups

Create events, build rosters, post to Discord

One place to create events, collect signups from Discord, build out your teams, and post the finished roster card back to your Discord server.

Event creation

The Event Creation dialog lets admins configure:

  • Event type โ€” Node War, Siege, Practice, or Custom.
  • Date, time, and timezone.
  • Team setup โ€” top-level teams (Frontline / Flex / Backline) with sub-teams that have their own colors and capacities.
  • An optional event image and a custom accent color for the Discord card.
  • A recurring schedule, e.g. every Tuesday at 20:00.
  • Mention roles to ping when the event is posted.
  • Lock and archive toggles when the event is over.

Drag-and-drop reassignment

Admins can drag signups between teams and sub-teams. Capacity is enforced โ€” drops into a full sub-team get a friendly bounce-back message. When a team is at capacity, extra signups become waitlisted within that same team โ€” their name stays visible right below the team they signed up for, just with a strikethrough. No separate waitlist column.

Sync to Discord

  • Post to Discord โ€” publishes the event card with team breakdowns to the channel you choose.
  • Re-sync โ€” updates the existing event card in place after team changes.
  • Ping Missing โ€” mention members who haven't responded yet.
  • Composition view โ€” pie chart of class distribution across the current roster.

Templates & presets

Save your common team setups as templates. Save full event configurations as presets so you can recreate them with one click. Each signup tile shows the member's family name, their selected class and specialization, their KDR, and their gear score (if they've linked it).

Alliance-aware: Members of allied guilds can view your events read-only via a special link, with a purple "Viewing via {alliance}" banner so it's clear they're peeking from another guild.
Tab ยท Streams

Every BDO streamer in one feed

A live look at who in the BDO community is streaming right now. Members of your guild get pride of place, surrounded by the broader BDO partner community.

  • Partner Carousel โ€” rotating spotlight of featured BDO partner streams.
  • Live Members Strip โ€” horizontal row of your guild's currently-live members, with one spotlight player picked out above.
  • Category filter pills โ€” Nodewar, RBF, Grinding, Bosses, and more.
  • Streams grid โ€” every BDO stream live right now, with viewer counts and a gold ring on partnered creators.
  • Refresh cadence โ€” the feed refreshes every 45 seconds.

Members link their Twitch with /link-twitch <family> <handle> in Discord.

Recording wars

Screenshot-driven war import

CritIQ's flagship feature: drop your BDO results screenshots and the stats land in your dashboard. No manual data entry, no spreadsheet wrangling.

The pipeline

  1. Upload pairs. Each war screenshot pair is (1) the names panel + (2) the kills/deaths panel. Up to 5 pairs (10 attachments) per command.
  2. Read each screenshot. CritIQ automatically extracts the names and the numbers from your attachments.
  3. Match names to stats by row order within each pair.
  4. Fuzzy-match against your roster. Small misreads ("Vexa" โ†’ "Vaxa") are reconciled automatically.
  5. Confirmation. The bot replies with the matched rows, any unmatched names (with a dropdown so you can manually assign them), and the per-player kills/deaths.
  6. Confirm and save. The war is recorded, every member's lifetime kills/deaths/KDR is updated, every matched member is marked present, and guild-wide KDR is recalculated. Members not in the screenshot are marked absent.
  7. Live update. Every open dashboard tab refreshes instantly โ€” no manual reload needed.
Live War ยท IKUSA

Real-time combat from your log file

Currently in private beta. Live War is gated to internal testing while the IKUSA pipeline is stabilized. The tab won't appear on most users' dashboards yet. The rest of this section describes what it does and how it'll work when it opens up.

CritIQ's real-time combat analytics overlay for BDO Node Wars. Stream your IKUSA log to the dashboard for a live kill feed, per-guild K/D breakdowns, killbase timeline chart, and class identification โ€” all updating second-by-second so the shot-caller can read the fight as it happens.

What IKUSA is

BDO doesn't ship with a built-in combat log. IKUSA is a community-made Windows tool that watches BDO's network activity and writes each kill and death to a text log file on your computer. CritIQ reads that log file (without modifying it) and turns it into something a shot-caller can actually use mid-fight.

Two ways to connect

In-browser (recommended)

Open the Live War tab in a modern browser (Chrome, Edge, Brave, or Opera), click Open Log File, pick your IKUSA log, and grant read permission. The browser reads new lines from the file every half-second. The log file itself never leaves your computer โ€” only the parsed kill/death events (player, target, kill or death flag, enemy guild) are sent to CritIQ so it can identify enemy classes.

Background app (legacy)

A small companion app runs on your PC and tails the IKUSA log, forwarding events to the dashboard over a local connection. Works in any browser but requires you to keep a terminal window running. The in-browser option has replaced this for most users.

How the data flows

  1. IKUSA notices a kill or death in BDO and writes a line to its log file.
  2. CritIQ reads that line within a half-second of it appearing.
  3. It rolls the event into a running snapshot: total kills, total deaths, overall K/D, and a per-enemy-guild breakdown.
  4. If it's seeing a player it doesn't recognize, it looks up their class against the running list of known BDO characters.
  5. When an entirely new enemy guild shows up, CritIQ scrapes that guild's BDO page once so future kills resolve fast.
  6. The kill feed, per-guild cards, timeline chart, and summary bar all update on screen as new events arrive.

Real-time features

  • Live kill feed โ€” the most recent events, color-coded by enemy guild.
  • Per-guild breakdown cards โ€” enemies grouped by their guild, with a K/D progress bar, class composition tags, and an expandable per-player table. Click any card to scope the chart to just that guild.
  • Kill / death timeline chart โ€” kills in amber, deaths in red, bucketed into one-minute slots. Mouse-wheel zooms in to second-by-second detail under about 10 minutes.
  • Connection status โ€” a small indicator shows whether CritIQ is reading your log, with automatic reconnect if it drops.
  • Class identification โ€” class icons appear within about half a minute of an enemy first showing up.
  • Family-name toggle โ€” switch the whole UI between BDO character names and family (account) names on the fly.

Session management

  • Start and stop tracking from the same screen. Saving a session lets you keep the full record with an optional note.
  • Replay any saved session โ€” pulls up the full kill feed, charts, and class breakdowns just as if it were happening live.
  • Link to a war โ€” connect a saved session to a row in your war history so the History tab shows a LIVE badge next to it.
  • Guild Profiles mode โ€” combined stats per enemy guild across every session you've saved: wars faced, lifetime K/D, class composition donut, and an optional full roster view.
When BDO gets cranky. If BDO's website starts rate-limiting the class lookups, CritIQ pauses the scraping queue and surfaces a small banner with a countdown until it can resume. The pause clears automatically the next time a lookup succeeds.
Alliance system

2โ€“4 guilds, one combined view

In BDO, guilds often band together for node wars and sieges. CritIQ mirrors that on the dashboard โ€” 2 to 4 separate guilds link up to share statistics while keeping their own data sovereign. Owner-only feature.

What an alliance is

An alliance does not merge data โ€” every guild keeps its own roster, K/D, attendance, and admin controls. What it adds is a shared lens: combined K/D ratio, pooled kill/death totals, unified roster view, per-guild breakdowns side-by-side. Partner data is strictly read-only โ€” you can look, but you can't edit another guild's members or wars.

Creation flow

  1. From the Alliance tab, enter an alliance name (3 to 50 characters).
  2. Enter 1 to 3 partner guild names exactly as they appear in CritIQ. Capitalization doesn't matter, but spelling must be exact.
  3. Click Create Alliance. Your own guild is marked accepted automatically, and each partner gets a pending invitation.
  4. Every invited owner sees a pending invitation appear on their dashboard instantly โ€” no refresh needed.
  5. When all invited guilds accept, the alliance flips from pending to active and everyone can start sharing stats.

Invitation states

StatusMeaning
PendingWaiting on that guild owner's response.
AcceptedGuild has joined; counts toward unanimous activation.
DeclinedGuild owner actively rejected the invite.
CancelledAutomatically set when a different guild declined and the alliance was disbanded.

Cascade rejection

CritIQ takes an all-or-nothing approach. The moment any invited guild clicks Decline:

  1. That guild's invitation flips to Declined.
  2. The alliance is disbanded.
  3. Every other guild that was still Pending is automatically moved to Cancelled. Their pending invitation disappears from their dashboard right away.
  4. The alliance creator gets a Discord notification (if they've set up a notification channel).

This prevents half-formed "zombie" alliances and makes it impossible to accidentally accept an invite that's already dead in the water.

Combined statistics

Once active, the Alliance Stats view shows:

  • Total Kills, Total Deaths, Combined K/D โ€” summed across every opted-in war from every member guild.
  • Per-guild breakdown cards โ€” each ally's contribution at a glance.
  • Trend chart โ€” the last seven wars of alliance K/D.
  • Unified war history โ€” recent wars from every guild, sortable and filterable.
  • Class composition donut across every allied war.
  • Two stat modes โ€” full (every member counts) or exception-excluded (only your combat-active members).

War inclusion toggle

Each war can be opted in or out of the alliance individually. In the war history table, every row has an eye icon. Click it to add or remove that war from the alliance's combined stats. You can only toggle wars from your own guild. New wars default to not included, so every guild explicitly chooses which wars count toward the alliance.

Real-time updates

The Alliance dashboard updates the instant something changes โ€” when a partner accepts, declines, or toggles a war, every member guild's dashboard reflects it within a beat. No manual refresh, no waiting.

Alliance Mode + guild picker

Alliance Mode is a different concept from creating an alliance. It's a setup where a single Discord server hosts multiple BDO guild profiles at once. When an owner runs a command like /warscores in an Alliance Mode server, CritIQ first asks "which guild?" with one button per configured guild. The owner picks; the command runs against that guild. If there's only one guild configured, the picker is skipped entirely.

Acknowledged rejections. CritIQ remembers in your browser which rejections you've already seen, so old rejection cards don't haunt your dashboard forever. You can't create a new alliance while there are unacknowledged rejections โ€” that's intentional, so you don't immediately retry without realizing the last attempt failed.
Gear tracking

Screenshot-driven gear scores

Members keep their gear up to date with two BDO screenshots: the Equipment screen and the Detailed Stats screen. CritIQ reads both automatically and records AP, AAP, DP, gear score, and class for the linked member.

The flow

  1. A member runs /gearupdate and attaches both screenshots.
  2. CritIQ extracts the numbers from each one.
  3. Their current gear is updated and the previous version is kept in history.
  4. Anyone can run /gear @user to see someone's current gear, or /gearlist to see the whole guild ranked by gear score.
  5. Admins use /gearping to remind members who haven't submitted gear yet.

Channel restriction

If you'd rather contain gear chatter to one place, set a dedicated channel in /config โ†’ Gear Channel. With that set, every /gear-family command only responds in that channel.

Rankings

/rankings shows your guild's gear-score ranking against tracked rival guilds (refreshed up to once a day to stay friendly with BDO's servers). The tracked-guilds list is maintained centrally โ€” reach out in the Discord if you want a guild added or removed.

Configuration

The /config menu

Owner-only once your roles are set up. Running /config opens an interactive menu where each button takes you into the settings for that area.

๐Ÿ‘ค
Role Settings
Choose which Discord roles count as Owner, Admin, and User. Every permission check in CritIQ flows from this.
๐Ÿ“Œ
Bot Channel
Restrict CritIQ to a single channel so commands run elsewhere get a gentle "wrong channel" reminder.
๐Ÿ”„
Auto Sync + Notifications
Schedule automatic roster syncs and pick a channel where the result gets posted.
๐Ÿ“Š
Weekly Summary
Turn on a weekly recap, pick the day, hour, and channel, and choose which sections it includes.
๐Ÿ†
Milestone Alerts
Set kill-count and attendance thresholds that trigger a celebratory post when members hit them.
๐Ÿ””
Lead Notifications
Pick the channel and role for the pings that go out when a lead is assigned to a flagged member.
๐Ÿ‘‹
Welcome System
Welcome new members with a customizable message that includes role-assignment buttons.
๐ŸŽซ
Ticket System
A built-in ticket flow with categories and staff role pings โ€” no third-party bot needed.
๐ŸŽฏ
Recruitment
Application forms per channel with a clean reviewer workflow.
โš”
Gear Channel
Pick the channel where the /gear-family commands respond and gear pings get posted.
๐Ÿ›ก
Alliance Mode
Convert the server into one that manages multiple BDO guild profiles at once under a single Discord.
โš™
Command Permissions
Override individual command tiers if the default Owner / Admin / User mapping doesn't fit your guild.
Reference

All slash commands

Every Discord slash command CritIQ exposes, grouped by category. Permission tags: Owner Admin User+ Any

Setup & guild onboarding

/setupAdmin
Walks an admin through linking this Discord server to a BDO guild โ€” imports the roster, creates the member list, and helps configure roles.
/adoptAny
Move an existing CritIQ guild into a new Discord server using an adoption key from the dashboard. Useful if you're rebuilding your community in a fresh server.
/sync rosterAdmin
Re-reads your BDO guild page. New members get added, departed members are marked inactive, all lifetime stats stay intact.
/cancelAny
Cancel any active flow you started (setup, war upload, config) in the current channel.

War tracking

/warscoresAdmin
Submit BDO Node War or Siege results from screenshots. Upload in pairs (names image + kills/deaths image), up to 5 pairs at once. The bot walks you through confirming the war's date, type, capped flag, and result.
/exception ยท /removeexceptionAdmin
Flag a player as an "exception" so their stats stay out of guild-wide KDR (useful for trial members, support roles, etc.). The matching remove command clears it.
/vacationAdmin
Toggle vacation status for a member โ€” pauses attendance tracking until you clear it.
/guildstatsUser+
Posts a paginated summary of every active guild member and the headline stats.
/warlogUser+
Premium summary message for a specific war, including awards and every participant's stats. Input: date (MM-DD-YYYY).
/trendsUser+
A performance trend chart for a single member over time.
/weeklysummaryAdmin
Generate and post a 7-day rolling performance summary for the guild on demand.
/configweeklysummaryAdmin
Configure automatic weekly summary posting โ€” channel, day of week, hour, and on/off.
/catchup-summariesAdmin
Manually regenerate any weekly summaries that were missed (for example, after the bot was offline).
/purgestatsOwner
Destructive. Wipes all kills, deaths, and attendance for the guild. War history is preserved by default.

Gear tracking

/gearupdateUser+
Update your gear by attaching two BDO screenshots โ€” the Equipment screen and the Detailed Stats screen. You need to be linked to a family name first.
/gearUser+
Show current gear (AP, AAP, DP, gear score, class) for yourself or another linked member.
/gearlistUser+
A sorted table of every guild member's current gear by gear score.
/deletegearUser+
Delete your current gear entry. Your history stays intact.
/gearpingAdmin
Ping every linked member who hasn't submitted gear yet. Optional preview mode so you can see who would be pinged first.
/rankingsAny
Guild gear-score rankings across tracked rival guilds, refreshed up to once a day.

Member linking (Discord โ†” BDO family)

/linkAdmin
Link a Discord user to a BDO family name (with autocomplete to find them fast).
/unlinkAdmin
Remove the Discord link from a member.
/whoisUser+
Look up which family name a Discord user is linked to.
/unlinkedAdmin
List every active member who hasn't been linked to a Discord account yet.
/link-twitch ยท /unlink-twitch ยท /twitch-linksUser+
Link or unlink a guild member's Twitch channel, and list every linked channel for the guild.

Classes

/setclassUser+
Set your own BDO class and pick Awakening or Succession.
/classAdmin
Admin equivalent โ€” assign a class to any guild member.
/reset-classUser+
Clear your saved class preference that event signups use.

Event signups (helper commands)

Events are created and managed from the dashboard. Members sign up using buttons on the Discord card the bot posts.

/unsigned pingAdmin
Ping every member who hasn't responded to an event. You can include a custom message.
/unsigned messageAdmin
DM every member who hasn't responded. Sends are spaced out gently so Discord doesn't flag them; the bot shows you an estimated finish time.

Performance flags

/performance-flags listAdmin
List every member currently flagged for poor performance (KDR below threshold) or attendance issues.
/performance-flags notifyAdmin
Used internally when a lead is assigned from the dashboard โ€” sends the notification to the lead notifications channel.

Configuration

/configOwner
Opens the interactive settings menu for every part of CritIQ โ€” channels, roles, notifications, performance thresholds, recruitment, tickets, gear channel, alliance mode, embed colors, and more.
/setbotchannelAdmin
Restrict bot responses to a single channel. Leave blank to allow everywhere.
/setsyncnotificationsAdmin
Choose the channel where automatic sync results are posted.
/seteventlogAdmin
Choose the channel where event signup activity is logged.

Analytics

/retentionAdmin
Chart guild member-count trends over a configurable window.

General / utility

/helpUser+
Interactive help with category-based exploration of every available command.
/welcomeAdmin
Post a welcome card for a new member with quick role-assignment buttons.
/reminder set ยท list ยท cancelUser+
Personal reminders โ€” schedule them, list what's pending, or cancel one.

Fun

/rollAny
Roll 1โ€“100. Anyone in the channel can take you up on a challenge roll.
/roastUser+
AI-generated roast of a guild member based on their actual stats. Use sparingly.
/tapUser+
A BDO-style enhancement tapping minigame.
/notreadingallthatUser+
AI summary of the last 100 messages in the current channel. Optional accent style.

Admin / bot maintenance

/sync-statusUser+
Show the auto-sync status and when the next scheduled run is.
/reload-commandsOwner
Reload custom commands without restarting the bot.
/redeploy-slash-commandsOwner
Re-register every slash command with Discord (global plus per-guild ones).
FAQ

Frequently asked

How much does CritIQ cost?

Free for guilds today โ€” there's no billing system, no credit card prompt, no upgrade tier. Every feature ships in one tier. If that ever changes, existing guilds will be grandfathered.

Does my BDO IKUSA log leave my machine?

No. When you use the in-browser option, your log file is read directly from your computer. Only the parsed kill/death events (player, target, kill or death, enemy guild) are sent to CritIQ โ€” and only so it can identify enemy classes. The raw log itself never leaves your PC.

My alliance partner accepted but the alliance isn't active. Why?

Alliances require unanimous acceptance. If you invited three guilds and only two have accepted, the alliance stays pending until the third also accepts. If any guild declines, the alliance is disbanded and any still-pending invitations are automatically cancelled.

Why did my dashboard role just change?

CritIQ re-checks your Discord roles every few minutes and whenever you tab back to the dashboard. If your roles changed in Discord (you got promoted, demoted, or left), the dashboard reflects that without you having to log out and back in.

Can a member see they're flagged for performance?

No. Performance flags are officer-only. Admins and owners see them; flagged members do not.

What if BDO blocks the class lookups?

CritIQ paces requests to stay within BDO's limits. If the website starts rate-limiting us anyway, the lookup queue pauses and the dashboard shows a small banner with a countdown. It clears itself the next time a request succeeds โ€” you don't have to do anything.

How do I get help?

Join our Discord at discord.gg/omnibdo โ€” release notes, support, and the broader CritIQ community all live there.