Leader Commands
These commands are available to empire leaders (added via /leader add) and server administrators.
/jumpstart
Automatically set up your Discord server with organized channels, category, and roles for AOEM Historian.
Syntax
/jumpstart
What It Does
The /jumpstart command performs a complete Discord server setup in one step:
- Creates Category:
AOEM Historian - Creates Channels:
#activities- Bot-only posting for activity announcements#mge- MGE event announcements and applications#bot-chat- General player discussion#empire-leaders- Private channel for empire leadership
- Creates Role:
AOEM Historian Leader(assigned to all current leaders) - Configures Permissions: Proper channel access and restrictions
- Links Everything: Automatically connects channels to your empire
- Posts Welcome Messages: Helpful guides in each channel
Required Permissions
The bot needs these Discord permissions for /jumpstart to work:
- Manage Roles
- Manage Channels
- Manage Nicknames
- Send Messages
- View Channels
- Embed Links
Features
- Idempotent: Safe to run multiple times - skips existing resources
- Health Check: Reports what's already configured and what's missing
- Permission Validation: Checks bot permissions before attempting setup
- Detailed Report: Shows exactly what was created or skipped
Output
After running /jumpstart, you'll receive a report showing:
- ✅ Resources that were successfully created
- ℹ️ Resources that already existed (skipped)
- ⚠️ Any warnings or issues encountered
Examples
/jumpstart
Notes
- Recommended for new setups: This is the fastest way to configure your server
- Non-destructive: Never deletes or modifies existing channels/roles
- Manual setup alternative: You can still configure channels manually using
/empirecommands if preferred - Run as admin: Requires empire leader permissions
Use /jumpstart when first setting up your server to skip all manual channel and role configuration!
/empire
Consolidated empire configuration and management commands.
Syntax
/empire <subcommand>
Subcommands
config
Configure your empire settings. Opens a modal for empire number and display name.
/empire config
status
View empire statistics and status.
/empire status
Shows:
- Empire number and name
- Total registered players
- Total credits in the system
- Configured channels
role
Set the role required for players to register and participate.
/empire role <player_role>
| Parameter | Type | Required | Description |
|---|---|---|---|
player_role | Role | Yes | Discord role members must have |
activity-channel-set
Set the channel where activity posts will appear.
/empire activity-channel-set <channel>
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | Channel | Yes | Text channel for activity posts |
activity-channel-clear
Remove the activity channel setting.
/empire activity-channel-clear
mge-channel-set
Set the channel for MGE (Mightiest Governor Event) announcements.
/empire mge-channel-set <channel>
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | Channel | Yes | Text channel for MGE posts |
mge-channel-clear
Remove the MGE channel setting.
/empire mge-channel-clear
Examples
/empire config
/empire status
/empire role @Members
/empire activity-channel-set #activities
/empire mge-channel-set #mge-events
/leader
Manage empire leaders.
Syntax
/leader <subcommand> [@user]
Subcommands
add
Add a new leader to the empire.
/leader add @Username
| Parameter | Type | Required | Description |
|---|---|---|---|
@user | User mention | Yes | Discord user to add as leader |
What happens:
- Adds the user as an empire leader in the database
- Automatically assigns the "AOEM Historian Leader" Discord role (if configured via
/jumpstart) - Grants access to the
#empire-leaderschannel - Enables all leader commands for this user
remove
Remove a leader from the empire.
/leader remove @Username
| Parameter | Type | Required | Description |
|---|---|---|---|
@user | User mention | Yes | Discord user to remove |
What happens:
- Removes the user as an empire leader from the database
- Automatically removes the "AOEM Historian Leader" Discord role (if configured)
- Removes access to the
#empire-leaderschannel - Disables leader commands for this user
Note: Cannot remove the last remaining leader.
status
View all current leaders.
/leader status
Examples
/leader add @NewOfficer
/leader remove @FormerLeader
/leader status
/nullify
Manage activity claim nullifications - reverse claims or reopen nullified ones.
Syntax
/nullify <subcommand>
Subcommands
claim
Nullify (reverse) a player's activity claim and remove the credits.
/nullify claim @player <activity> <reason>
| Parameter | Type | Required | Description |
|---|---|---|---|
@player | User mention | Yes | Player whose claim to nullify |
activity | Text | Yes | Activity name (autocomplete) |
reason | Text | Yes | Explanation for the nullification |
reopen
Reopen a nullified claim, allowing the player to claim the activity again.
/nullify reopen @player <activity>
| Parameter | Type | Required | Description |
|---|---|---|---|
@player | User mention | Yes | Player whose claim to reopen |
activity | Text | Yes | Activity name (autocomplete) |
Examples
/nullify claim @Player "Sunday Rally" Player was not present
/nullify claim @Player "Donation Event" Duplicate claim
/nullify reopen @Player "Alliance War"
Notes
- Nullify claim: Credits from the claim are removed from the player's balance
- Reopen: Removes the nullification, allowing the player to claim again if still in the claim window
- Nullified claims are tracked separately in the system
/bonus
Manage bonus credits for players.
Syntax
/bonus <subcommand>
Subcommands
give
Award bonus credits (or apply a penalty) to one or more players.
/bonus give <users> <amount> <reason>
| Parameter | Type | Required | Description |
|---|---|---|---|
users | User mentions | Yes | Mention users to award (up to 20 players, e.g., @user1 @user2 @user3) |
amount | Number | Yes | Credits per person to add/remove (-10,000 to +10,000) |
reason | Text | Yes | Explanation for the bonus |
remove
Reverse a previous bonus transaction.
/bonus remove <player> <transaction>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | Player who received the original bonus (autocomplete) |
transaction | Transaction | Yes | The bonus transaction to remove (autocomplete) |
ledger
View bonus transaction history for a specific player.
/bonus ledger <player>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | Player to view bonus history for (autocomplete) |
recent
View all recent bonus transactions in the empire (last 2 weeks).
/bonus recent
Examples
/bonus give @Player 500 Outstanding rally coordination
/bonus give @Player1 @Player2 @Player3 100 Perfect attendance
/bonus give @Player -200 No-show for committed event
/bonus remove @Player "2024-01-15 | +100 | Great work" Duplicate
/bonus ledger @Player
/bonus recent
Notes
- Positive amounts add credits
- Negative amounts remove credits
- Can award up to 20 players at once with the same amount
- Each player receives the specified amount
- Always provide a clear reason
- Find transaction IDs with
/bonus ledgeror/bonus recent
/manual
Manage non-Discord player accounts. This feature allows leaders to create and manage player accounts for members who cannot access Discord but still want to participate in the credit system.
Managed accounts require leaders to perform all actions on behalf of the player. The player cannot claim activities, apply for MGE slots, or check their credits themselves. Encourage Discord participation whenever possible.
If a player joins discord later after leaders were manually tracking progress for a player, simply set the credit amount necessary to the discord-registered player by using /bonus give after the player runs /register in your discord server.
After credits match, use /manual delete <player> to delete the leader-managed user and allow the player to self-manage activity participation.
Syntax
/manual <subcommand>
Subcommands
register
Create a new managed (non-Discord) player account.
/manual register <name>
| Parameter | Type | Required | Description |
|---|---|---|---|
name | Text | Yes | In-game player name (max 40 characters) |
What happens:
- Creates a player account with the name
<name>-managed - The
-managedsuffix is added automatically to distinguish from regular accounts - Receives the empire's configured starting credits
- Cannot be linked to a Discord account later
list
View all managed player accounts in your empire.
/manual list
Shows:
- Player name
- Current credit balance
- Registration date
delete
Delete a managed player account.
/manual delete <player>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | The managed player to delete (autocomplete) |
Warning: Using /manual delete permanently deletes the player and all their transaction history, including removing from any MGE history.
bonus
Award or deduct credits from a managed player.
/manual bonus <player> <amount> <reason>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | The managed player (autocomplete) |
amount | Number | Yes | Credits to add/remove (-10,000 to +10,000) |
reason | Text | Yes | Explanation for the credit change |
Note: Use this instead of /bonus give for managed accounts since they don't have a Discord account to @mention.
mge-apply
Submit a pending MGE application on behalf of a managed player. The application goes through the normal review/approval workflow, just like /apply does for regular players.
/manual mge-apply <player> <slot_preference>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | The managed player to apply (autocomplete) |
slot_preference | Choice | Yes | Preferred slot tier (1, 2, 3, 4, 5, 6-7, 8-10) |
What happens:
- Creates a pending application (same as
/apply) - Validates the player has enough credits for the chosen tier
- Respects the empire's
openApplicationsandminimumCreditssettings - Only works when an MGE is in the
applications_openphase - Use
/mge approveto review and assign slots afterward
Note: Use this instead of /apply for managed accounts. If you want to skip the approval step and assign a slot directly, use /manual mge-override instead.
mge-approve
Approve a managed player's pending MGE application and assign them to a slot. The player must have a pending application (created via /manual mge-apply).
/manual mge-approve <player> <slot>
| Parameter | Type | Required | Description |
|---|---|---|---|
player | Player | Yes | The managed player to approve (autocomplete) |
slot | Number | Yes | Slot number to assign (1-10) |
What happens:
- Finds the player's pending application and approves it
- Assigns the specified slot number
- Fails if the player has no pending application (use
/manual mge-overrideto assign without one) - Fails if the slot is already taken (use
/manual mge-overrideto replace) - Credits are NOT deducted until
/mge confirm
Note: Use this instead of /mge approve for managed accounts.
mge-override
Assign a managed player to an MGE slot.
/manual mge-override <slot> <player>
| Parameter | Type | Required | Description |
|---|---|---|---|
slot | Number | Yes | Slot number (1-10) |
player | Player | Yes | The managed player to assign (autocomplete) |
Note: Use this instead of /mge slots-override for managed accounts. This bypasses the application/approval workflow and assigns the slot directly. Credits are deducted when you run /mge confirm.
Examples
# Register a non-Discord player
/manual register SilentKnight
# View all managed accounts
/manual list
# Award credits for activity participation
/manual bonus SilentKnight-managed 100 Participated in Alliance War
# Apply a penalty
/manual bonus SilentKnight-managed -50 Missed committed rally
# Apply for MGE (goes through approval flow)
/manual mge-apply SilentKnight-managed slot_preference:5
# Approve a pending application
/manual mge-approve SilentKnight-managed slot:5
# Directly assign to MGE slot (skips approval)
/manual mge-override slot:5 SilentKnight-managed
# Delete an account
/manual delete SilentKnight-managed
Using Regular Commands with Managed Accounts
Some commands work automatically with managed accounts:
| Command | Works? | Notes |
|---|---|---|
/bonus ledger | Yes | Select managed player from autocomplete |
/bonus remove | Yes | Select managed player from autocomplete |
/bonus recent | Yes | Shows all bonuses including managed players |
/mge confirm | Yes | Deducts credits from managed players normally |
/bonus give | No | Use /manual bonus instead |
/apply | No | Use /manual mge-apply instead |
/mge approve | No | Use /manual mge-approve instead |
/mge slots-override | No | Use /manual mge-override instead |
Best Practices
Only use managed accounts when Discord access is genuinely impossible. Players with Discord accounts benefit from:
- Self-service credit checking
- Activity claiming with proof
- MGE applications
- Direct notifications
Keep a record (outside the bot) of which real player corresponds to each managed account, in case you need to verify identity or handle disputes.
Since managed players can't check their own balance, consider periodically informing them of their credit status through other communication channels.
/times-manage
Manage preferred event times. Leaders can create time items with available slots, and players select when they're available via /times set. Useful for coordinating in-game events like Wonder or BoD.
Syntax
/times-manage <subcommand>
Subcommands
create
Create a new preferred time item with available time slots.
/times-manage create <name> <times>
| Parameter | Type | Required | Description |
|---|---|---|---|
name | Text | Yes | Name for this item (e.g. "Wonder") |
times | Text | Yes | Comma-separated times: "Sat 14:00, Sun 19:00" |
Time format: Day H:00 where Day is Mon-Sun and hour is 0-23. Maximum 25 slots.
edit
Update the time slots for an existing item.
/times-manage edit <item> <times>
| Parameter | Type | Required | Description |
|---|---|---|---|
item | Text | Yes | The time item to edit (autocomplete) |
times | Text | Yes | New comma-separated times |
Note: If removed slots had player selections, those selections are cleaned up automatically. The command reports how many players were affected.
delete
Delete a preferred time item and all its player selections.
/times-manage delete <item>
| Parameter | Type | Required | Description |
|---|---|---|---|
item | Text | Yes | The time item to delete (autocomplete) |
Examples
/times-manage create name:"Wonder" times:"Sat 1:00, Sat 14:00, Sun 1:00, Sun 14:00"
/times-manage edit item:"Wonder" times:"Sat 14:00, Sun 14:00, Sun 19:00"
/times-manage delete item:"Wonder"
/mge
Manage MGE (Mightiest Governor Event) - all MGE-related commands in one place.
Syntax
/mge <subcommand>
Subcommands
activate
Start a new MGE event and open applications.
/mge activate
- Can only activate during the activation window (check with
/mge status) - Activation window opens 5 days before MGE starts
- Posts an announcement in the MGE channel (if configured)
- Players can apply with
/applyonce activated - Use
/mge configure-activatedafter activation to adjust settings like open applications or minimum credits
confirm
Preview and finalize MGE slot assignments. Shows an interactive preview with all assigned slots and buttons to confirm or cancel.
/mge confirm
How it works:
- Displays a preview embed showing all 10 slots with player names and credit costs
- Shows warnings for any unassigned slots
- Presents "Cancel" and "Confirm MGE Slots and Deduct Credits Now" buttons
- On confirmation, validates that slot assignments haven't changed, then deducts credits
When available:
- Can be run anytime after
/mge activate - Works on events with status:
applications_open,in_progress, orawaiting_confirmation - Does not require the event to have ended
Notes:
- Preview uses hash validation to prevent confirming stale data
- If slots change after preview (via
/mge slots-override), must run/mge confirmagain - Warning: Confirmation cannot be undone. Credits are permanently deducted
- Empty slots are skipped during confirmation
approve
Approve a player's slot application.
/mge approve @Player <slot>
| Parameter | Type | Required | Description |
|---|---|---|---|
@player | User mention | Yes | Player to approve |
slot | Number | Yes | Slot number (1-10) |
reject
Reject a player's slot application.
/mge reject @Player
| Parameter | Type | Required | Description |
|---|---|---|---|
@player | User mention | Yes | Player to reject |
slots-override
Override a slot assignment to any player, even if they didn't apply. Useful for manual adjustments or assigning players who obtained slots outside the normal application process.
/mge slots-override <slot> @Player
| Parameter | Type | Required | Description |
|---|---|---|---|
slot | Number | Yes | Slot number (1-10) |
@player | User mention | Yes | Player to assign to this slot |
What happens:
- Creates or updates an application for the specified player
- Automatically unassigns any previous player from that slot
- Shows confirmation with replacement details if applicable
- Tells you to run
/mge confirmto review all assignments
When to use:
- Player obtained a slot out-of-process (manual agreement, special circumstance)
- Need to swap players between slots
- Correcting mistakes in slot assignments
- Player didn't apply but needs to be assigned
When available:
- Works on events with status:
applications_open,in_progress, orawaiting_confirmation - Cannot be used after
/mge confirmcompletes
cancel
Cancel the current MGE event. Works as long as credits have not yet been deducted.
/mge cancel
Note: You can cancel even after running /mge confirm (which shows a preview), as long as you have not clicked the "Confirm" button to finalize. Once credits are deducted, the event cannot be cancelled.
costs
Set the credit costs for all slots using a multiplier. Opens a form to enter the multiplier value.
/mge costs
Costs are calculated as medals × multiplier for each slot. The default multiplier is 5x (e.g., 1st place = 100 medals × 5 = 500 credits).
See Credit System Design for guidance on choosing a multiplier.
status
View comprehensive MGE status including schedule, active events, and slot assignments (leader-only).
/mge status
Shows schedule information:
- Anchor Sunday setting
- Next MGE start and end dates
- Activation window dates and status
When there's an unconfirmed MGE:
- MGE number and status
- Event end date (or days until end)
- All 10 slot assignments with player names and credit costs
- Total credits to be deducted
- Pending applications (first 5 shown)
- Action required (confirm or cancel)
Benefits:
- Comprehensive view in one command
- No need to run
/slotsseparately - Quick identification of "stuck" events needing attention
- See exactly what will happen before confirming
set-anchor
Set the MGE anchor date (the Sunday when the next/current MGE ends).
/mge set-anchor <anchor_sunday>
| Parameter | Type | Required | Description |
|---|---|---|---|
anchor_sunday | Date | Yes | Sunday when MGE ends (YYYY-MM-DD) |
configure-activated
Configure settings on the current active MGE. Use this after /mge activate to adjust application rules.
/mge configure-activated [open_applications] [minimum_credits]
| Parameter | Type | Required | Description |
|---|---|---|---|
open_applications | Boolean | No | Allow players to apply for any slot regardless of credit balance |
minimum_credits | Number | No | Minimum credits required to apply (e.g., 10) |
At least one option must be provided.
Open Applications mode:
- When enabled, players can apply for any slot tier even if they can't afford it
- Only the
minimum_creditsthreshold is checked (if set) - Players may go into negative credits after
/mge confirm - Useful for new empires where players haven't accumulated enough credits yet
When available:
- Works on events with status:
applications_open,in_progress, orawaiting_confirmation
Examples
# Set up the MGE schedule
/mge set-anchor 2026-01-12
# Check when you can activate
/mge status
# Activate the event
/mge activate
# Open applications to everyone with at least 10 credits
/mge configure-activated open_applications:true minimum_credits:10
# Manage applications
/mge approve @TopPlayer slot:1
/mge reject @LowCreditPlayer
/slots
# Override a slot (manual assignment)
/mge slots-override slot:3 @SpecialPlayer
# Preview and confirm (shows interactive preview with buttons)
/mge confirm
# Cancel if needed (before confirmation)
/mge cancel
/activate
Activate a scheduled activity and post it to the activity channel with a claim button.
Syntax
/activate <activity>
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
activity | Text | Yes | Activity name (autocomplete) |
Examples
/activate "Alliance War"
/activate "Conquest"
Notes
- Requires an activity channel configured via
/empire activity-channel-set - Creates a thread from the activity post for proof and participation tracking
- Players claim by clicking the button on the post
- Recurring activities (weekly/biweekly) can only be activated when the scheduled period has started
- One-time activities (like Conquest) can be activated anytime if not currently active
- Proof requirement uses the setting from
/activity config. To change it for a specific activated activity, use/activity set-proof
/activity
Activity management commands for leaders.
Syntax
/activity <subcommand>
Subcommands
cancel
Cancel an activity and retroactively deduct credits from participants.
/activity cancel <activity> <reason>
| Parameter | Type | Required | Description |
|---|---|---|---|
activity | Text | Yes | Activity to cancel (autocomplete) |
reason | Text | Yes | Reason for cancellation |
- Shows activities that are active or completed within the last 5 days
- Retroactively deducts credits from all participants
- Does NOT deduct from already-nullified claims
- Creates a transaction record for audit purposes
config
Configure an activity type's settings. Opens a modal pre-populated with current values.
/activity config <activity>
| Parameter | Type | Required | Description |
|---|---|---|---|
activity | Text | Yes | Activity name (autocomplete) |
Modal Fields:
| Field | Description |
|---|---|
| Anchor Sunday | Reference date for scheduling (YYYY-MM-DD, must be a Sunday) |
| Credit Reward | Credits awarded for claiming (1-1000) |
| Require Proof | Whether screenshot proof is required (yes/no) |
create-extra
Create a one-time Extra-Credit activity with a custom name and message. Opens a modal for input.
/activity create-extra
Modal Fields:
| Field | Description |
|---|---|
| Activity Name | Custom name for the activity (e.g., "Stellar Glory 14k points") |
| Credit Reward | Credits awarded for claiming (1-1000) |
| Instructions | Message explaining how to claim (e.g., "Post screenshot of 14k points") |
| End Date | When the activity ends (YYYY-MM-DD format, defaults to tomorrow) |
| Require Proof | Whether screenshot proof is required (yes/no) |
set-proof
Add or remove the proof requirement from an already-activated activity.
/activity set-proof <activity> <require_proof>
| Parameter | Type | Required | Description |
|---|---|---|---|
activity | Text | Yes | The activated activity (autocomplete) |
require_proof | Boolean | Yes | true to require proof, false to remove requirement |
Examples
/activity cancel "Alliance War" Event was cancelled in-game
/activity config "Alliance War"
/activity create-extra # Opens modal to create custom activity
/activity set-proof "Alliance War" require_proof:true
/activity set-proof "Sunday Rally" require_proof:false
Notes
- Anchor Sunday determines which weeks/biweeks activities are scheduled for
- Changing the anchor takes effect immediately for future activations
- One-time activities (like Conquest) don't use anchor Sunday - they can be activated anytime
- Extra-Credit (
create-extra) opens a modal and creates AND activates in one step with a custom name set-proofcan only modify activated activities
/participants
View who has claimed a specific activity.
Syntax
/participants <activity>
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
activity | Text | Yes | Activity name (autocomplete) |
Examples
/participants "Alliance War"
/participants "Desolate Desert"
Output
Shows:
- Total claim count
- List of all players who claimed
- Claim timestamps
- Any nullified claims