Skip to main content

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:

  1. Creates Category: AOEM Historian
  2. 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
  3. Creates Role: AOEM Historian Leader (assigned to all current leaders)
  4. Configures Permissions: Proper channel access and restrictions
  5. Links Everything: Automatically connects channels to your empire
  6. 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 /empire commands if preferred
  • Run as admin: Requires empire leader permissions
One-Command Setup

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>
ParameterTypeRequiredDescription
player_roleRoleYesDiscord role members must have

activity-channel-set

Set the channel where activity posts will appear.

/empire activity-channel-set <channel>
ParameterTypeRequiredDescription
channelChannelYesText 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>
ParameterTypeRequiredDescription
channelChannelYesText 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
ParameterTypeRequiredDescription
@userUser mentionYesDiscord 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-leaders channel
  • Enables all leader commands for this user

remove

Remove a leader from the empire.

/leader remove @Username
ParameterTypeRequiredDescription
@userUser mentionYesDiscord 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-leaders channel
  • 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>
ParameterTypeRequiredDescription
@playerUser mentionYesPlayer whose claim to nullify
activityTextYesActivity name (autocomplete)
reasonTextYesExplanation for the nullification

reopen

Reopen a nullified claim, allowing the player to claim the activity again.

/nullify reopen @player <activity>
ParameterTypeRequiredDescription
@playerUser mentionYesPlayer whose claim to reopen
activityTextYesActivity 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>
ParameterTypeRequiredDescription
usersUser mentionsYesMention users to award (up to 20 players, e.g., @user1 @user2 @user3)
amountNumberYesCredits per person to add/remove (-10,000 to +10,000)
reasonTextYesExplanation for the bonus

remove

Reverse a previous bonus transaction.

/bonus remove <player> <transaction>
ParameterTypeRequiredDescription
playerPlayerYesPlayer who received the original bonus (autocomplete)
transactionTransactionYesThe bonus transaction to remove (autocomplete)

ledger

View bonus transaction history for a specific player.

/bonus ledger <player>
ParameterTypeRequiredDescription
playerPlayerYesPlayer 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 ledger or /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.

Leaders Do Everything

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.

tip

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>
ParameterTypeRequiredDescription
nameTextYesIn-game player name (max 40 characters)

What happens:

  • Creates a player account with the name <name>-managed
  • The -managed suffix 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>
ParameterTypeRequiredDescription
playerPlayerYesThe managed player to delete (autocomplete)
danger

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>
ParameterTypeRequiredDescription
playerPlayerYesThe managed player (autocomplete)
amountNumberYesCredits to add/remove (-10,000 to +10,000)
reasonTextYesExplanation 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>
ParameterTypeRequiredDescription
playerPlayerYesThe managed player to apply (autocomplete)
slot_preferenceChoiceYesPreferred 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 openApplications and minimumCredits settings
  • Only works when an MGE is in the applications_open phase
  • Use /mge approve to 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>
ParameterTypeRequiredDescription
playerPlayerYesThe managed player to approve (autocomplete)
slotNumberYesSlot 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-override to assign without one)
  • Fails if the slot is already taken (use /manual mge-override to 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>
ParameterTypeRequiredDescription
slotNumberYesSlot number (1-10)
playerPlayerYesThe 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:

CommandWorks?Notes
/bonus ledgerYesSelect managed player from autocomplete
/bonus removeYesSelect managed player from autocomplete
/bonus recentYesShows all bonuses including managed players
/mge confirmYesDeducts credits from managed players normally
/bonus giveNoUse /manual bonus instead
/applyNoUse /manual mge-apply instead
/mge approveNoUse /manual mge-approve instead
/mge slots-overrideNoUse /manual mge-override instead

Best Practices

Reserve for Special Cases

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
Document the Connection

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.

Regular Credit Updates

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>
ParameterTypeRequiredDescription
nameTextYesName for this item (e.g. "Wonder")
timesTextYesComma-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>
ParameterTypeRequiredDescription
itemTextYesThe time item to edit (autocomplete)
timesTextYesNew 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>
ParameterTypeRequiredDescription
itemTextYesThe 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 /apply once activated
  • Use /mge configure-activated after 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:

  1. Displays a preview embed showing all 10 slots with player names and credit costs
  2. Shows warnings for any unassigned slots
  3. Presents "Cancel" and "Confirm MGE Slots and Deduct Credits Now" buttons
  4. 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, or awaiting_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 confirm again
  • 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>
ParameterTypeRequiredDescription
@playerUser mentionYesPlayer to approve
slotNumberYesSlot number (1-10)

reject

Reject a player's slot application.

/mge reject @Player
ParameterTypeRequiredDescription
@playerUser mentionYesPlayer 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
ParameterTypeRequiredDescription
slotNumberYesSlot number (1-10)
@playerUser mentionYesPlayer 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 confirm to 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, or awaiting_confirmation
  • Cannot be used after /mge confirm completes

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 /slots separately
  • 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>
ParameterTypeRequiredDescription
anchor_sundayDateYesSunday 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]
ParameterTypeRequiredDescription
open_applicationsBooleanNoAllow players to apply for any slot regardless of credit balance
minimum_creditsNumberNoMinimum 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_credits threshold 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, or awaiting_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

ParameterTypeRequiredDescription
activityTextYesActivity 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>
ParameterTypeRequiredDescription
activityTextYesActivity to cancel (autocomplete)
reasonTextYesReason 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>
ParameterTypeRequiredDescription
activityTextYesActivity name (autocomplete)

Modal Fields:

FieldDescription
Anchor SundayReference date for scheduling (YYYY-MM-DD, must be a Sunday)
Credit RewardCredits awarded for claiming (1-1000)
Require ProofWhether 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:

FieldDescription
Activity NameCustom name for the activity (e.g., "Stellar Glory 14k points")
Credit RewardCredits awarded for claiming (1-1000)
InstructionsMessage explaining how to claim (e.g., "Post screenshot of 14k points")
End DateWhen the activity ends (YYYY-MM-DD format, defaults to tomorrow)
Require ProofWhether 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>
ParameterTypeRequiredDescription
activityTextYesThe activated activity (autocomplete)
require_proofBooleanYestrue 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-proof can only modify activated activities

/participants

View who has claimed a specific activity.

Syntax

/participants <activity>

Parameters

ParameterTypeRequiredDescription
activityTextYesActivity 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