Skip to content

Commands

xdnw edited this page Nov 13, 2023 · 63 revisions

Command Syntax

  • <arg> - A required parameter

  • [arg] - An optional parameter

  • <arg1|arg2> - Multiple parameters options

  • <arg=value> - Default or suggested value

  • [-f flag] - A optional command argument flag

Example discord usage

For who <nations> [-l list]

Slash: /who nations:Rose list:True

Message: $who Rose -l


Commands


/admin clear_deleted_coalition_entries

Remove deleted alliances or guilds from a coalition Note: Do not remove deleted offshores or banks if you want to use their previous transactions in deposit calculations

Arguments:

<coalition> - Coalition

One of the default Locutus coalition names

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/admin importEmoji

Import all emojis from another guild

Arguments:

<guild> - Guild

A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/admin list multis

No description provided

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-e listExpired] - boolean

[-f forceUpdate] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/admin list_login_times

This command is public

Generate a sheet of recorded login times for a set of nations within a time range

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<cutoff> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-s sheet] - SpreadSheet

A google spreadsheet id or url


/admin msgInfo

View a list of reactions on a message sent by or mentioning the bot

Arguments:

<message> - Message

A discord message url

[-i useIds] - boolean

List the ids of users who reacted

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/admin sync syncinterviews

Force an update of all interview channels and print the results

This command has no arguments

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alerts audit optout

Opt out of audit alerts

This command has no arguments

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alerts beige beigeAlert

Set a reminder for when a nation leaves beige or VM

Arguments:

<targets> - Set<DBNation>

A comma separated list of nations, alliances and filters

[requiredLoot] - Double

Require targets to have at least this much loot Resources are valued at weekly market average prices (A decimal number)

[-s allowOutOfScore] - boolean

Allow targets this much ns below your score range

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer
  • Role(BEIGE_ALERT): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alerts beige beigeAlertMode

Set the types of nations to receive automatic beige alerts for

Arguments:

<mode> - BeigeAlertMode

A mode for receiving alerts when a nation leaves beige

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Role(BEIGE_ALERT/BEIGE_ALERT_OPT_OUT, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer

/alerts beige beigeAlertOptOut

Opt out of beige alerts

This command has no arguments

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alerts beige beigeAlertRequiredLoot

Set the required amount of loot for automatic beige alerts Defaults to $15m

Arguments:

<requiredLoot> - double

Require the target to have at least this much estimated loot Resources are valued at weekly market average prices (A decimal number)

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer

/alerts beige beigeAlertRequiredStatus

Only get the automatic beige alerts if you have the online status on discord Note: You will still receive alerts for targets you have subscribed to via /alerts beige beigereminders

Arguments:

<status> - BeigeAlertRequiredStatus

A discord status for receiving alerts when a nation leaves beige

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer

/alerts beige beigeReminders

List your current beige reminders

This command has no arguments

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer

/alerts beige removeBeigeReminder

This command is public

Remove your beige reminders

Arguments:

<nationsToRemove> - Set<DBNation>

A comma separated list of nations, alliances and filters


/alerts beige setBeigeAlertScoreLeeway

Allow receiving automatic beige alerts a certain nation score below your current war range

Arguments:

<scoreLeeway> - double

A decimal number

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Coalition(RAIDPERMS: Root coalition- for allowing access to raid tools): Must be run in a guild added to a coalition by the bot developer

/alerts enemy optout

This command is public

No description provided

This command has no arguments


/alerts login

This command is public

Get an alert on discord when a target logs in within the next 5 days Useful if you want to know when they might defeat you in war or perform an attack

Arguments:

<target> - DBNation

nation id, name or url

[-w doNotRequireWar] - boolean


/alerts trade margin

Create an alert for specific differences between buy and sell prices for in-game resource trades

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<aboveOrBelow> - String

A single line of text

<ppu> - int

Price per unit (A whole number)

<duration> - long[Timediff]

How long to subscribe for (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alerts trade mistrade

Create an alert when an in-game trade for a resource is past the top price point of the opposite buy or sell offer

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<aboveOrBelow> - String

A single line of text

<ppu> - int

Price per unit (A whole number)

<duration> - long[Timediff]

How long to subscribe for (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alerts trade no_offers

Create an alert when there are no standing offers for resources in-game

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<duration> - long[Timediff]

How long to subscribe for (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alerts trade price

Create an alert when an in-game trade for a resource at an absolute price point

Arguments:

<resource> - ResourceType

The name of a resource

<buyOrSell> - String

A single line of text

<aboveOrBelow> - String

<ppu> - int

Price per unit (A whole number)

<duration> - long[Timediff]

How long to subscribe for (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(TRADE_ALERT): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alerts trade undercut

Create an alert when a top offer you have in-game is undercut by another nation

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<buyOrSell> - String

A single line of text

<duration> - long[Timediff]

How long to subscribe for (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alliance cost

This command is public

Get the value of nations including their cities, projects and units

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-u update] - boolean


/alliance departures

This command is public

List the alliance rank changes of a nation or alliance members

Arguments:

<nationOrAlliance> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

[time] - Long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[filter] - NationList

Only include these nations (A comma separated list of nations, alliances and filters)

[-a ignoreInactives] - boolean

Ignore inactive nations (7 days)

[-v ignoreVM] - boolean

Ignore nations in vacation mode

[-m ignoreMembers] - boolean

Ignore nations currently a member of an alliance

[-i listIds] - boolean

Attach a list of all nation ids found


/alliance edit

Edit an attribute of your in-game alliance Attributes match the in-game fields and are case sensitive Run the command without arguments to get a list of attributes

Arguments:

<alliance> - DBAlliance

An alliance name id or url

[attribute] - String

A single line of text

[value] - String[TextArea]

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alliance listAllianceMembers

List all in-game alliance members

Arguments:

<page> - int

A whole number

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/alliance markAsOffshore

This command is public

Mark an alliance as the offshore of another

Arguments:

<offshore> - DBAlliance

An alliance name id or url

<parent> - DBAlliance


/alliance revenue

This command is public

Get the revenue of nations or alliances

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-t includeUntaxable] - boolean

Include the revenue of nations unable to be taxed

[-b excludeNationBonus] - boolean

Exclude the new nation bonus


/alliance sheets sheet

Create a sheet of alliances with customized columns See https://github.com/xdnw/locutus/wiki/nation_placeholders for a list of placeholders

Arguments:

<nations> - Set<DBNation>

The nations to include in each alliance (A comma separated list of nations, alliances and filters)

<columns> - List<String>[TextArea]

The columns to use in the sheet (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/INTERNAL_AFFAIRS/ECON/FOREIGN_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/alliance sheets stockpileSheet

List all nations in the alliance and their in-game resource stockpile

Arguments:

[nationFilter] - NationList

Only include stockpiles from these nations (A comma separated list of nations, alliances and filters)

[-n normalize] - boolean

Divide stockpiles by city count

[-e onlyShowExcess] - boolean

Only show the resources well above warchest and city operation requirements

[-f forceUpdate] - boolean

Required Permissions:

  • Role(ECON_STAFF/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/alliance sheets warchestSheet

Get a sheet of members and their saved up warchest (can include deposits and potential revenue)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-c perCityWarchest] - Map<ResourceType, Double>

The required warchest per city. Else uses the guild default (A comma separated list of resources and their amounts)

[-g includeGrants] - boolean

Count current grants against warchest totals

[-n doNotNormalizeDeposits] - boolean

If negative deposits are NOT normalized (to ignore negatives)

[-d ignoreDeposits] - boolean

If deposits are NOT included in warchest totals

[-e ignoreStockpileInExcess] - boolean

Do not count resources above the required amount toward total warchest value

[-r includeRevenueDays] - Integer

Include days of potential revenue toward warchest resources (A whole number)

[-f forceUpdate] - boolean

Required Permissions:

  • Role(ECON_STAFF/ECON/MILCOM/MILCOM_NO_PINGS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/alliance stats allianceMetricsAB

This command is public

Graph an alliance metric over time for two coalitions

Arguments:

<metric> - AllianceMetric

A locutus metric for alliances

<coalition1> - Set<DBAlliance>

A comma separated list of alliances

<coalition2> - Set<DBAlliance>

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/alliance stats allianceMetricsCompareByTurn

This command is public

Compare the metric over time between multiple alliances

Arguments:

<metric> - AllianceMetric

A locutus metric for alliances

<alliances> - Set<DBAlliance>

A comma separated list of alliances

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/alliance stats allianceNationsSheet

Create a google sheet of nations, grouped by alliance, with the specified columns Prefix a column with avg: to force an average Prefix a column with total: to force a total

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<columns> - List<String>[TextArea]

The columns to have. See: https://github.com/xdnw/locutus/wiki/nation_placeholders (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-t useTotal] - boolean

Use the sum of each nation's attributes instead of the average

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

Required Permissions:

  • Role(ECON/MILCOM/FOREIGN_AFFAIRS/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alliance stats counterStats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance

An alliance name id or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alliance stats metricsByTurn

This command is public

Graph the metric over time for a coalition

Arguments:

<metric> - AllianceMetric

A locutus metric for alliances

<coalition> - Set<DBAlliance>

A comma separated list of alliances

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/alliance stats ranking

This command is public

Rank alliances by a metric

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances

<metric> - AllianceMetric

A locutus metric for alliances

[-r reverseOrder] - boolean

[-f uploadFile] - boolean


/alliance stats rankingTime

This command is public

Rank alliances by a metric over a specified time period

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances

<metric> - AllianceMetric

A locutus metric for alliances

<timeStart> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

<timeEnd> - long[Timestamp]

[-r reverseOrder] - boolean

[-f uploadFile] - boolean


/alliance stockpile

View the resources in a nation or alliance

Arguments:

<nationOrAlliance> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/alliance treaty approve

Approve a pending treaty from an alliance

Arguments:

<senders> - Set<DBAlliance>

Alliance that sent the treaty (A comma separated list of alliances)

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alliance treaty cancel

Cancel a treaty in-game

Arguments:

<senders> - Set<DBAlliance>

The other alliance the treaty is with (A comma separated list of alliances)

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/alliance treaty list

This command is public

List the treaties of the provided alliances Note: If you have the FORIEGN_AFFAIRS role you can view the pending treaties of your own alliance from its guild

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances


/alliance treaty send

Send a treaty to an alliance

Arguments:

<receiver> - DBAlliance

Alliance to send treaty to (An alliance name id or url)

<type> - TreatyType

An in-game treaty type

<days> - int

A whole number

[message] - String

A single line of text

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement archive

Set the archive status of the bot's announcement

Arguments:

<announcementId> - int

A whole number

[archive] - Boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/MILCOM/ADMIN/FOREIGN_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement create

Send an announcement to multiple nations, with random variations for each receiver

Arguments:

<sendTo> - NationList

A comma separated list of nations, alliances and filters

<subject> - String

The subject used for sending an in-game mail if a discord direct message fails (A single line of text)

<announcement> - String[TextArea]

The message you want to send (A single line of text)

<replacements> - String[TextArea]

Lines of replacement words or phrases, separated by | for each variation Add multiple lines for each replacement you want (A single line of text)

[-c channel] - MessageChannel

The channel to post the announcement to (must be same server) (A discord channel name or mention)

[-b bottomText] - String

The text to post in the channel below the hidden announcement (e.g. mentions) (A single line of text)

[-v requiredVariation=0] - Integer

The required number of differences between each message (A whole number)

[-r requiredDepth=0] - Integer

The required depth of changes from the original message (A whole number)

[-s seed] - Long

Variation seed. The same seed will produce the same variations, otherwise results are random (A whole number)

[-m sendMail] - boolean

If messages are sent in-game

[-d sendDM] - boolean

If messages are sent via discord direct message

[-f force] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasApi(): Must be used in a guild with a valid API_KEY configured

/announcement document

Create an embed to view a google document for multiple nations, with random variations for each receiver

Arguments:

<original> - GoogleDoc

A google document id or url

<sendTo> - NationList

A comma separated list of nations, alliances and filters

<replacements> - String[TextArea]

Lines of replacement words or phrases, separated by | for each variation Add multiple lines for each replacement you want (A single line of text)

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement find

Find the announcement closest matching a message

Arguments:

<announcementId> - int

A whole number

<message> - String

A single line of text

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement find_invite

Find the announcement for the closest matching invite

Arguments:

<invite> - String

A single line of text

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement invite

Get the invite for the linked milcom server

Arguments:

<message> - String

A single line of text

<inviteTo> - Guild

A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID

[sendTo] - NationList

A comma separated list of nations, alliances and filters

[-e expire] - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

[-u maxUsesEach] - Integer

A whole number

[-d sendDM] - boolean

Send the invite via discord direct message

[-m sendMail] - boolean

[-c allowCreation] - boolean

If new invites are allowed to be made for new nations which match the filter

[-f force] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement ocr

This command is public

Get the text from a discord image It is recommended to crop the image first

Arguments:

<discordImageUrl> - String

A single line of text


/announcement read

Mark an announcement by the bot as read/unread

Arguments:

<ann_id> - int

A whole number

[markRead] - Boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/announcement view

View an announcement you have access to

Arguments:

<ann_id> - int

A whole number

[-d document] - boolean

[-n nation] - DBNation

nation id, name or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/audit hasNotBoughtSpies

Returns the audit excerpt and lists nations who have not bought spies

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/audit run

Generate an audit report of a list of nations

Arguments:

<nationList> - NationList

Nations to audit (A comma separated list of nations, alliances and filters)

[audits] - Set<AuditType>

Only perform these audits (default: all) (A comma separated list of audit types)

[-u pingUser] - boolean

Ping the user on discord with their audit

[-m mailResults] - boolean

Mail the audit to each nation in-game

[-c postInInterviewChannels] - boolean

Post the audit in the interview channels (if exists)

[-s skipUpdate] - boolean

Skip updating nation info from the game

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/audit sheet

Run audits on member nations and generate a google sheet of the results

Arguments:

[nations] - Set<DBNation>

The nations to audit Must be in your alliance (A comma separated list of nations, alliances and filters)

[-i includeAudits] - Set<AuditType>

The audits to include in the sheet Defaults to all audits (A comma separated list of audit types)

[-e excludeAudits] - Set<AuditType>

The audits to exclude from the sheet Defaults to none (A comma separated list of audit types)

[-u forceUpdate] - boolean

Update nation information before running the audit Otherwise the audit will be run on the last fetched info

[-v verbose] - boolean

Include full descriptions in the audit sheet results Otherwise only raw data will be included

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(INTERNAL_AFFAIRS_STAFF/MENTOR/INTERVIEWER, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/bank deposit

Instruct nations to deposit resources into the alliance bank If multiple keep modes are set the largest values will be used

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheetAmounts] - TransferSheet

A spreadsheet of nations and amounts to deposit Columns must be named after the resource names (A google spreadsheet id or url. Must have a nation or leader column as well as the names of each resource)

[-a amount] - Map<ResourceType, Double>

Exact amount of resources to deposit (capped at resources on nation). Throws error if any of the other deposit modes are set (A comma separated list of resources and their amounts)

[-r rawsDays] - Double

Number of days of city raw resource consumption to keep Recommended value: 5 (A decimal number)

[-d rawsNoDailyCash] - boolean

Do not keep money above the daily login bonus

[-c rawsNoCash] - boolean

Do not keep any money

[-wcf keepWarchestFactor] - Double

Number of default warchests to keep per city Recommended value: 1 Default warchest is is set via the settings command (A decimal number)

[-pc keepPerCity] - Map<ResourceType, Double>

Amount of resources to keep per city (A comma separated list of resources and their amounts)

[-kt keepTotal] - Map<ResourceType, Double>

Amount of resources to keep in total (A comma separated list of resources and their amounts)

[-ur unitResources] - Map<MilitaryUnit, Long>

Keep resources for purchasing specific units (A comma separated list of units and their amounts)

[-n note] - DepositTypeInfo

Note to add to the deposit (A DepositType optionally with a value and a city tag)

[-cm customMessage] - String

The message to append to the mail or dm message (A single line of text)

[-m mailResults] - boolean

Send deposit urls to nations via in-game mail

[-dm dm] - boolean

Send deposit urls to nations in discord direct messages (dm)

[-u useApi] - boolean

Deposit via the api

[-f force] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/bank limits setTransferLimit

Set the withdrawal limit (per interval) of a banker

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<limit> - double

A decimal number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/bank records

Get a sheet of a nation or alliances transactions (excluding taxes)

Arguments:

<nationOrAllianceOrGuild> - NationOrAllianceOrGuild

A nation or alliance name, url or id, or a guild id

[timeframe=%epoch%] - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[useTaxBase=false] - boolean

[useOffset=true] - boolean

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-o onlyOffshoreTransfers] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/bank stats inflows

This command is public

List the public resource imports or exports of a nation or alliance to other nations or alliances over a period of time

Arguments:

<nationOrAlliances> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<cutoffMs> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-i hideInflows] - boolean

Do not show inflows

[-o hideOutflows] - boolean

Do not show outflows


/bank stats weeklyInterest

This command is public

Calculate weekly interest payments for a loan

Arguments:

<amount> - double

Principle amount (A decimal number)

<pct> - double

Percent weekly interest (A decimal number)

<weeks> - int

Number of weeks to loan for (A whole number)


/bank unlockTransfers

Unlock transfers for an alliance or guild using this guild as an offshore Accounts are automatically locked if there is an error accessing the api, a game captcha, or if an admin of the account is banned in-game Only locks from game bans persist across restarts

Arguments:

<nationOrAllianceOrGuild> - NationOrAllianceOrGuild

A nation or alliance name, url or id, or a guild id

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/baseball baseBallChallengeInflow

This command is public

List the baseball wager inflows for a nation id

Arguments:

<nationId> - int

A whole number

[dateSince=timestamp:0] - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-u uploadFile] - boolean


/baseball baseballChallengeEarningsRanking

This command is public

Rank of nations by challenge baseball challenge earnings

Arguments:

[-f uploadFile] - boolean

[-a byAlliance] - boolean

Group the rankings by alliance instead of nations


/baseball baseballChallengeRanking

This command is public

Rank of nations by number of challenge baseball games

Arguments:

[-f uploadFile] - boolean

[-a byAlliance] - boolean

Group the rankings by alliance instead of nations


/baseball baseballEarningsRanking

This command is public

Rank of nations by challenge baseball game earnings

Arguments:

<date> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-f uploadFile] - boolean

[-a byAlliance] - boolean

Group the rankings by alliance instead of nations


/baseball baseballRanking

This command is public

Rank of nations by number of challenge baseball games from a specified date

Arguments:

<date> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-f uploadFile] - boolean

[-a byAlliance] - boolean


/build add

Add a build to a category with the specified city ranges

Arguments:

<category> - String

A single line of text

<ranges> - CityRanges

A range of city counts (inclusive)

<build> - CityBuild

City build json or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/build assign

Have the bot provide a pre set build based on city count

Arguments:

<category> - String

A single line of text

[nation=%user%] - DBNation

nation id, name or url

[cities] - Integer

A whole number

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/build delete

Delete a build registered in a specific category with the provided min-cities

Arguments:

<category> - String

A single line of text

<minCities> - int

A whole number

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/build get

Print the current city builds being used by a nation

Arguments:

<nation> - DBNation

nation id, name or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/build listall

List the currently set build categories

This command has no arguments

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/building cost

This command is public

Get the cost a specific amount of buildings

Arguments:

<build> - CityBuild

City build json or url


/channel channelMembers

List members who can see a discord channel

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ADMIN, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel close current

Close a war room, interview or embassy discord channel

Arguments:

[-f forceDelete] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/MILCOM/ECON/ECON_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel close inactive

Close inactive channels in a category

Arguments:

<category> - Category

A discord category name or mention

<age> - long[Timediff]

Close channels older than age (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS_STAFF/INTERNAL_AFFAIRS/ECON_STAFF/ECON/MILCOM/MILCOM_NO_PINGS/FOREIGN_AFFAIRS/FOREIGN_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel count

list channels

This command has no arguments

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel create

This command is public

Create a channel with name in a specified category and ping the specified roles upon creation.

Arguments:

<channelName> - String

A single line of text

<category> - Category

A discord category name or mention

[copypasta] - String

[-i addInternalAffairsRole] - boolean

[-m addMilcom] - boolean

[-f addForeignAffairs] - boolean

[-e addEcon] - boolean

[-p pingRoles] - boolean

[-a pingAuthor] - boolean


/channel delete current

Delete a discord channel

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel delete inactive

Purge a category's channels older than the time specified

Arguments:

<category> - Category

A discord category name or mention

<cutoff> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel memberChannels

List discord channels a member has access to

Arguments:

<member> - Member

A discord user mention, or if a nation name, id or url if they are registered

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ADMIN, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel members

List all guild channels and what members have access to each

This command has no arguments

Required Permissions:

  • Role(ADMIN, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel move Down

Move a discord channel down 1 position

This command has no arguments

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel move Up

Move a discord channel up 1 position

This command has no arguments

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel open

Move an interview channel from the interview-archive category

Arguments:

[category] - Category

A discord category name or mention

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel permissions

Modify the permissions for a list of nations in a channel.

Arguments:

<channel> - TextChannel

A discord guild channel name or mention

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<permission> - Permission

A discord role permission

[-n negate] - boolean

Negate the permission

[-r removeOthers] - boolean

Remove the permission from all other users

[-l listChanges] - boolean

Log the changes to user permissions that are made

[-p pingAddedUsers] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel rename bulk

Bulk rename channels using a google sheet or AI generated emojis The sheet expects columns id, name and optionally description If you do not provide a sheet, emojis and descriptions will be generated from the channel names

Arguments:

[sheet] - SpreadSheet

A google spreadsheet id or url

[-e excludeCategories] - Set<Category>

A comma separated list of discord categories

[-c includeCategories] - Set<Category>

[-f force] - boolean

[-j popCultureQuotes] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/channel setCategory

Set the category for a discord channel

Arguments:

<category> - Category

A discord category name or mention

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat conversion delete

Delete a conversion task for a google document to a chat dataset

Arguments:

<source> - EmbeddingSource

The name of an data set

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat conversion list

Show the documents currently converting to a dataset Datasets are a list of information that can be used to generate chat responses

Arguments:

[-r showRoot] - boolean

[-a showOtherGuilds] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat conversion pause

Pause conversion for a google document to a chat dataset Conversion can be resumed later

Arguments:

<source> - EmbeddingSource

The name of an data set

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat conversion resume

Resume conversion for a google document to a chat dataset

Arguments:

<source> - EmbeddingSource

The name of an data set

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat dataset delete

Delete your custom datasets. Default datasets cannot be deleted, and if a custom dataset is deleted, tasks will fall back to using the base datasets.

Arguments:

<source> - EmbeddingSource

The name of an data set

[-f force] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat dataset import_sheet

Save Google spreadsheet contents to a named embedding dataset. Requires two columns labeled "fact" or "question" and "answer" for vectors. Search finds nearest fact, or searches questions and returns corresponding answers if two columns.

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url

<document_name> - String

A single line of text

[-f force] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat dataset list

This command provides a list of accessible embedding datasets used for prompting GPT. Embedding datasets consist of vectors representing text strings, allowing for comparison between different strings. See: https://github.com/xdnw/locutus/wiki or https://politicsandwar.fandom.com/wiki/Politics_and_War_Wiki To view a specific dataset see: /chat embedding view

Arguments:

[-r listRoot] - boolean

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat dataset view

Save Google spreadsheet contents to a named embedding dataset. Requires two columns labeled "fact" or "question" and "answer" for vectors. Search finds nearest fact, or searches questions and returns corresponding answers if two columns.

Arguments:

<source> - EmbeddingSource

The name of an data set

[-a getAnswers] - boolean

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat providers configure

Customize options for a chat provider. Defaults apply if not set. Configurations for all new messages. Refer to API docs for details: https://platform.openai.com/docs/api-reference/chat/create

Arguments:

<provider> - GPTProvider

<options> - Map<String, String>

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat providers list

List available chat providers, and their information. This includes status, rate limits, execution time, model, permissions, options.

This command has no arguments

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat providers pause

Pause a chat provider. Other providers will not be paused. Halts document conversion using this provider. Providers may be resumed.

Arguments:

<provider> - GPTProvider

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat providers resume

Resume paused chat provider (i.e. manual/error). Check provider status with list command.

Arguments:

<provider> - GPTProvider

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/chat providers set

Configure chat provider types used for conversations. Settings applies to all new messages. Use provider list command to view types.

Arguments:

<providerTypes> - Set<ProviderType>

A comma separated list of provider types

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/city cost

This command is public

Calculate the costs of purchasing cities (from current to max)

Arguments:

<currentCity> - int

A whole number

<maxCity> - int

[manifestDestiny=false] - boolean

[urbanPlanning=false] - boolean

[advancedUrbanPlanning=false] - boolean

[metropolitanPlanning=false] - boolean

[governmentSupportAgency=false] - boolean


/city optimalBuild

This command is public

Generate an optimal build json for a city

Arguments:

<build> - CityBuild

A city url or build json to optimize (City build json or url)

[days] - Integer

Set the days the build is expected to last before replacement (or destruction) (A whole number)

[-x buildMMR] - String

Set the MMR (military building counts) of the city to optimize (A single line of text)

[-a age] - Integer

Set the age of the city to optimize (A whole number)

[-i infra] - Integer

Set the infrastructure level of buildings in the city to optimize (A whole number)

[-b baseReducedInfra] - Integer

Set the damaged infrastructure level of the city to optimize (A whole number)

[-l land] - Integer

Set the land level of the city to optimize (A whole number)

[-d diseaseCap] - Double

Set the maximum disease allowed (A decimal number)

[-c crimeCap] - Double

Set the maximum crime allowed (A decimal number)

[-p minPopulation] - Double

Set the minimum population allowed (A decimal number)

[-r radiation] - Double

Set the radiation level (A decimal number)

[-t taxRate] - TaxRate

Maximize untaxed revenue for a tax rate (A tax rate in the form of money/rss)

[-u useRawsForManu] - boolean

Require the city to produce all raw resources it uses for manufacturing

[-w writePlaintext] - boolean

Return a result on discord in plain text

[-n nationalProjects] - Set<Project>

Set the projects a city has access to (A comma separated list of alliance projects)

[-m moneyPositive] - boolean

Require the city build to be cash positive

[-g geographicContinent] - Continent

Set the continent the city is in (Continent name)


/city revenue

This command is public

Get the revenue of a city or build json

Arguments:

<city> - CityBuild

The city url or build json (City build json or url)

[nation=%user%] - DBNation

The nation to calculate the revenue for i.e. Projects, radiation, continent (nation id, name or url)

[-b excludeNationBonus] - boolean

Exclude the new nation bonus


/coalition add

Add alliances to an existing coalition Note: Use /coalition create to use a nonstandard coalition

Arguments:

<alliances> - Set<NationOrAllianceOrGuild>

A comma separated list of nations, alliances and guild ids

<coalitionName> - String[GuildCoalition]

A name for a default or custom Locutus coalition

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/coalition create

Create a new coalition with the provided alliances

Arguments:

<alliances> - Set<NationOrAllianceOrGuild>

A comma separated list of nations, alliances and guild ids

<coalitionName> - String

A single line of text

Required Permissions:

  • Role(FOREIGN_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/coalition delete

Delete an entire coalition

Arguments:

<coalitionName> - String[GuildCoalition]

A name for a default or custom Locutus coalition

Required Permissions:

  • Role(FOREIGN_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/coalition generate

Generate a named coalition by the treaty web of an alliance

Arguments:

<coalition> - String

A single line of text

<rootAlliance> - DBAlliance

An alliance name id or url

[topX=80] - int

Include only the top alliances (A whole number)

Required Permissions:

  • Role(FOREIGN_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/coalition list

List the bot coalitions

Arguments:

[filter] - String

Only list alliances or guilds containing this filter (A single line of text)

[-i listIds] - boolean

List the alliance and guild ids instead of names

[-d ignoreDeleted] - boolean

Ignore deleted alliances

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/coalition remove

Remove alliances to a coalition Note: Use /coalition delete to delete an entire coalition

Arguments:

<alliances> - Set<NationOrAllianceOrGuild>

A comma separated list of nations, alliances and guild ids

<coalitionName> - String[GuildCoalition]

A name for a default or custom Locutus coalition

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/color revenue

This command is public

List the color blocs

Arguments:

[forceAqua] - Set<DBNation>

A comma separated list of nations, alliances and filters

[forceBlack] - Set<DBNation>

[forceBlue] - Set<DBNation>

[forceBrown] - Set<DBNation>

[forceGreen] - Set<DBNation>

[forceLime] - Set<DBNation>

[forceMaroon] - Set<DBNation>

[forceOlive] - Set<DBNation>

[forceOrange] - Set<DBNation>

[forcePink] - Set<DBNation>

[forcePurple] - Set<DBNation>

[forceRed] - Set<DBNation>

[forceWhite] - Set<DBNation>

[forceYellow] - Set<DBNation>

[forceGrayOrBeige] - Set<DBNation>


/continent info

This command is public

List resources available and radiation level in each continent

This command has no arguments


/continent radiation

This command is public

List the radiation in each continent

This command has no arguments


/copyPasta

Save or paste a stored message

Arguments:

[key] - String

What to name the saved message (A single line of text)

[message] - String[TextArea]

A single line of text

[requiredRolesAny] - Set<Role>

Require roles to paste the message (A comma separated list of discord role names or mentions)

[-n formatNation] - DBNation

nation id, name or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/credentials addApiKey

This command is public

Set your api and bot key for the bot Your API key can be found on the account page: https://politicsandwar.com/account/ See: https://forms.gle/KbszjAfPVVz3DX9A7 and DM <@258298021266063360> to get a bot key

Arguments:

<apiKey> - String

A single line of text

[verifiedBotKey] - String


/credentials login

Login to allow the bot to run scripts through your account (Avoid using this if possible)

Arguments:

<username> - String

Your username (i.e. email) for Politics And War (A single line of text)

<password> - String

A single line of text

Required Permissions:

  • Rank(officer): Must be registered to a nation with an in-game rank equal to or above the provided rank Default: MEMBER

/credentials logout

This command is public

Remove your login details from the bot

This command has no arguments


/deposits add

Add or subtract from a nation, alliance, guild or tax bracket's account balance note: Mutated alliance deposits are only valid if your server is a bank/offshore Use #expire=30d to have the amount expire after X days

Arguments:

<accounts> - Set<NationOrAllianceOrGuildOrTaxid>

A comma separated list of nations, alliances, guild ids and tax ids or urls

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

<note> - String

A single line of text

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits addSheet

Add account balance using a google sheet of nation's and resource amounts The google sheet must have a column for nation (name, id or url) and a column named for each in-game resource

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url

<note> - String

The transaction note to use (A single line of text)

[-f force] - boolean

[-n negative] - boolean

Subtract the amounts instead of add

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits check

Displays the account balance for a nation, alliance or guild Balance info includes deposits, loans, grants, taxes and escrow

Arguments:

<nationOrAllianceOrGuild> - NationOrAllianceOrGuildOrTaxid

Account to check holdings for (A nation or alliance name, url or id, or a guild id, or a tax id or url)

[-a offshores] - Set<DBAlliance>

The alliances to check transfers from Otherwise the guild configured ones will be used (A comma separated list of alliances)

[-c timeCutoff] - Long[Timestamp]

Only include transfers after this time (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-b includeBaseTaxes] - boolean

Include all taxes in account balance

[-o ignoreInternalOffsets] - boolean

Do NOT include manual offsets in account balance

[-t showCategories] - Boolean

Show separate sections for taxes and deposits

[-d replyInDMs] - boolean

[-e includeExpired] - boolean

Include expired transfers

[-i includeIgnored] - boolean

Include transfers marked as ignore

[-z allowCheckDeleted] - boolean

[-h hideEscrowed] - boolean

Hide the escrow balance

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits convertNegative

Adjust nation's holdings by converting negative resource values of a specific note to a different resource or money

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[negativeResources=manu,raws,food] - List<ResourceType>

A comma separated list of resource types

[convertTo=money] - ResourceType

The name of a resource

[-g includeGrants] - boolean

[-t depositType] - DepositTypeInfo

Convert transfers of this note category (A DepositType optionally with a value and a city tag)

[-f conversionFactor] - Double

What factor to multiple the converted resources by e.g. Use a value below 1.0 to incur a fee (A decimal number)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-n note] - String

The transfer note to use for the adjustment (A single line of text)

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits flows

Check the flow for a specific transaction note, showing the net by internal addbalance, withdrawals, and deposits

Arguments:

<nation> - DBNation

nation id, name or url

<note> - DepositType

A note to use for a bank transfer

Required Permissions:

  • Role(ECON_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits interest

Add or subtract interest to a nation's balance based on their current balance

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<interestPositivePercent> - double

A percent (out of 100) to apply to POSITIVE resources counts in their account balance (A decimal number)

<interestNegativePercent> - double

A percent (out of 100) to apply to NEGATIVE resources counts in their account balance (A decimal number)

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits reset

Resets a nations deposits to net zero (of the specific note categories)

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-g ignoreGrants] - boolean

Do NOT reset grants

[-l ignoreLoans] - boolean

Do NOT reset loans

[-t ignoreTaxes] - boolean

Do NOT reset taxes

[-d ignoreBankDeposits] - boolean

Do NOT reset deposits

[-e ignoreEscrow] - boolean

Do NOT reset escrow

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits sheet

Get a sheet with member nations and their deposits Each nation's safekeep should match the total balance given by deposits commandAdd -b to Add -o to not include any manual deposit offsets Add -d to not include deposits Add -t to not include taxes Add -l to not include loans Add -g to not include grantsAdd-pto include past depositors Add-f` to force an update

Arguments:

[nations] - Set<DBNation>

A comma separated list of nations, alliances and filters

[offshores] - Set<DBAlliance>

The alliances to track transfers from (A comma separated list of alliances)

[-b ignoreTaxBase] - boolean

use 0/0 as the tax base

[-o ignoreOffsets] - boolean

Do NOT include any manual deposit offesets

[-t noTaxes] - boolean

Do NOT include taxes

[-l noLoans] - boolean

Do NOT include loans

[-g noGrants] - boolean

Do NOT include grants

[-d noDeposits] - boolean

Do NOT include deposits

[-p includePastDepositors] - Set<Integer>

Include past depositors

[-e noEscrowSheet] - boolean

Do NOT include escrow sheet

[-n useFlowNote] - DepositType

Only show the flow for this note i.e. To only see funds marked as #TRADE This is for transfer flow breakdown internal, withdrawal, and deposit (A note to use for a bank transfer)

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits shift

Bulk shift resources in a nations holdings to another note category

Arguments:

<nation> - DBNation

nation id, name or url

<from> - DepositType

The note to change FROM (A note to use for a bank transfer)

<to> - DepositType

The new note to use (A note to use for a bank transfer)

[timediff] - Long[Timestamp]

Only transfers after this timeframe (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/deposits shiftFlow

Shift the transfer note notegory flows for a nation. For adjusting whether amounts are internal, withdrawn or deposited. Does not change overall or note balance unless it is shifted to #ignore

Arguments:

<nation> - DBNation

nation id, name or url

<noteFrom> - DepositType

A note to use for a bank transfer

<flowType> - FlowType

Bank transaction flow type (internal, withdrawal, depost)

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[noteTo] - DepositType

[-a alliance] - DBAlliance

An alliance name id or url

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embassy

This command is public

Create an embassy channel in the embassy category

Arguments:

[nation=%user%] - DBNation

The nation to create an embassy for (nation id, name or url)


/embed add command

Add a button to a discord embed from this bot which runs a command

Arguments:

<message> - Message

A discord message url

<label> - String

A single line of text

<behavior> - CommandBehavior

The behavior for a command button

<command> - ICommand

A discord slash command reference for the bot

[arguments] - String

The arguments and values you want to submit to the command Example: myarg1:myvalue1 myarg2:myvalue2 For placeholders: https://github.com/xdnw/locutus/wiki/nation_placeholders (A single line of text)

[-c channel] - MessageChannel

A discord channel name or mention

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed add modal

Add a modal button to a discord embed from this bot, which creates a prompt for a command

Arguments:

<message> - Message

A discord message url

<label> - String

A single line of text

<behavior> - CommandBehavior

The behavior for a command button

<command> - ICommand

A discord slash command reference for the bot

<arguments> - String

A comma separated list of the command arguments to prompt for Arguments can be one of the named arguments for the command, or the name of any {placeholder} you have for defaults (A single line of text)

[defaults] - String

The default arguments and values you want to submit to the command Example: myarg1:myvalue1 myarg2:myvalue2 For placeholders: https://github.com/xdnw/locutus/wiki/nation_placeholders (A single line of text)

[-c channel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed add raw

Add a button to a discord embed from this bot which runs a command Supports legacy commands and user command syntax. Unlike embed add button, this does not parse and validate command input.

Arguments:

<message> - Message

A discord message url

<label> - String

A single line of text

<behavior> - CommandBehavior

The behavior for a command button

<command> - String

[-c channel] - MessageChannel

A discord channel name or mention

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed commands

Generate a card which runs a command when users react to it. Put commands inside "quotes". Prefix a command with a #channel e.g. "#channel /embedcommand" to have the command output go there

Prefix the command with:~/command to remove the user's reaction upon use and keep the card _/command to remove ALL reactions upon use and keep the card ./command to keep the card upon use

Example: /embed 'Some Title' 'My First Embed' '~/fun say Hello {nation}' '/fun say "Goodbye {nation}"'

Arguments:

<title> - String

A single line of text

<body> - String

<commands> - List<String>[TextArea]

Multiple words or text separated by spaces Use quotes for multi-word arguments

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed create

Create a simple embed with a title and description

Arguments:

<title> - String

A single line of text

<description> - String

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed description

Set the description of an embed from this bot

Arguments:

<discMessage> - Message

A discord message url

<description> - String

A single line of text

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed info

Show the title, description and commands for a bot embed

Arguments:

<embedMessage> - Message

A discord message url

[copyToMessage] - Message

Show commands to updatecopyToMessage with the info from the embedMessage (A discord message url)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed remove button

Remove a button from an embed from this bot

Arguments:

<message> - Message

A discord message url

<labels> - List<String>[TextArea]

A comma separated list of button labels (Multiple words or text separated by spaces Use quotes for multi-word arguments)

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template ally_enemy_sheets

Generates sheets for a coalition war:- All enemies

  • Priority enemies
  • All allies
  • Underutilized allies

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

[allEnemiesSheet] - SpreadSheet

A google spreadsheet id or url

[priorityEnemiesSheet] - SpreadSheet

[allAlliesSheet] - SpreadSheet

[underutilizedAlliesSheet] - SpreadSheet

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template deposits

Discord embed for checking deposits, withdrawing funds, viewing your stockpile, depositing resources and offshoring funds

Arguments:

[bankerNation] - DBNation

Only applicable to corporate servers. The nation accepting trades for bank deposits. Defaults to the bot owner's nation (nation id, name or url)

[-c outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup
  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template econ_gov

Discord embed for Econ Staff to view deposits, stockpiles, revenue, tax brackets, tax income, warchest and offshore funds

Arguments:

[-c outputChannel] - MessageChannel

A discord channel name or mention

[-n useFlowNote] - DepositType

A note to use for a bank transfer

[-p includePastDepositors] - Set<Integer>

Include past depositors in deposits sheet

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/embed template guerilla

High infra targets where you are losing To find contestable range, see: strengthTierGraph

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template ia_gov

Discord embed for Internal Affairs Staff to auto-assign roles and view member activity, audit results, daychange, spy purchase, mmr

Arguments:

[-c outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/embed template member_econ

Econ panel for members

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

[-d showDepositsInDms] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template raid

Makes a raid panel, which is a discord embed with buttons for different options for finding raid targets

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template spy_enemy

Enemy espionage finder discord embed template

Arguments:

[coalition] - String[GuildCoalition]

A name for a default or custom Locutus coalition

[outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template spy_sheets

Discord embed for sheet to update ally and enemy spy counts, generate and send spy blitz targets

Arguments:

[allies=spyops] - String[GuildCoalition]

A name for a default or custom Locutus coalition

[outputChannel] - MessageChannel

A discord channel name or mention

[spySheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template unblockade_requests

Blockader Target & Requests discord embed template

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template war_contested_range

Enemy war targets where a score range is not contestable To find contestable range, see: strengthTierGraph

Arguments:

<greaterOrLess> - Operation

If the cutoff is greater or less than the score (Math comparison operation)

<score> - double

The score at which the conflict is not contestable (A decimal number)

[outputChannel] - MessageChannel

A discord channel name or mention

[-d resultsInDm] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed template war_winning

Enemy war targets when you are winning Prioritizes down declares To find contestable range, see: strengthTierGraph

Arguments:

[outputChannel] - MessageChannel

A discord channel name or mention

[-d resultsInDm] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed title

Set the title of an embed from this bot

Arguments:

<discMessage> - Message

A discord message url

<title> - String

A single line of text

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/embed update

Update a bot embed

Arguments:

[-r requiredRole] - Roles

A discord role name, mention or id

[-c color] - Color

A color name or hex code

[-t title] - String

A single line of text

[-d desc] - String

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/escrow add

Add funds to the escrow account for a set of nations Escrow funds can be withdrawn at a later date by the receiver, such as when a blockade ends To transfer funds from a nation's deposits into their escrow, see the transfer command

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-b amountBase] - Map<ResourceType, Double>

The base amount of resources to escrow If per city is set, the highest value of each resource is chosen (A comma separated list of resources and their amounts)

[-p amountPerCity] - Map<ResourceType, Double>

Amount of resources to escrow for each city the receiver has If base is set, the highest value of each resource is chosen This uses the city count now, not when the funds are withdrawn later (A comma separated list of resources and their amounts)

[-e amountExtra] - Map<ResourceType, Double>

Additional resources to escrow If a base or per city are set, this adds to what is calculated for that (A comma separated list of resources and their amounts)

[-s subtractStockpile] - boolean

Don't add escrow resources that the nation has in their stockpile

[-m subtractNationsUnits] - Set<MilitaryUnit>

When the nation has these units, don't add the resources equivalent to their cost Useful to only give resources to those missing units (A comma separated list of military units)

[-d subtractDeposits] - boolean

Do not add escrow resources that the nation has in their deposits

[expireAfter] - Long[Timediff]

Delete all receiver escrow after a time period Recommended: 5d (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/escrow set

Set the escrow account balances for a set of nations Escrow funds can be withdrawn at a later date by the receiver, such as when a blockade ends To transfer funds from a nation's deposits into their escrow, see the transfer command

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-b amountBase] - Map<ResourceType, Double>

The base amount of resources to escrow If per city is set, the highest value of each resource is chosen (A comma separated list of resources and their amounts)

[-p amountPerCity] - Map<ResourceType, Double>

Amount of resources to escrow for each city the receiver has If base is set, the highest value of each resource is chosen This uses the city count now, not when the funds are withdrawn later (A comma separated list of resources and their amounts)

[-e amountExtra] - Map<ResourceType, Double>

Additional resources to escrow If a base or per city are set, this adds to what is calculated for that (A comma separated list of resources and their amounts)

[-s subtractStockpile] - boolean

Don't add escrow resources that the nation has in their stockpile

[-m subtractNationsUnits] - Set<MilitaryUnit>

When the nation has these units, don't add the resources equivalent to their cost Useful to only give resources to those missing units (A comma separated list of military units)

[-d subtractDeposits] - boolean

Do not add escrow resources that the nation has in their deposits

[expireAfter] - Long[Timediff]

Delete all receiver escrow after a time period Recommended: 5d (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/escrow set_sheet

Set the escrow account balances for nation to the values in a spreadshet The sheet must have a nation column, and then a column for each resource type Escrow funds can be withdrawn at a later date by the receiver, such as when a blockade ends Use the deposits sheet command to get a spreadsheet of the current escrow balances

Arguments:

<sheet> - TransferSheet

A google spreadsheet id or url. Must have a nation or leader column as well as the names of each resource

[expireAfter] - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/escrow view_sheet

Create a google sheet of escrowed resources amounts for a set of nations

Arguments:

[nations] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-p includePastDepositors] - Set<Integer>

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/escrow withdraw

No description provided

Arguments:

<receiver> - DBNation

nation id, name or url

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[-f force] - boolean

Required Permissions:

  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup
  • Role(ECON_STAFF/ECON/ECON_WITHDRAW_SELF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/fun borg

This command is public

We are the borg

Arguments:

[msg] - String

A single line of text


/fun borgmas

This command is public

Making a list, checking it twice; Gonna find out whos naughty or nice. St Borgolas is coming to town

This command has no arguments


/fun joke

This command is public

Get a random joke from the joke file

This command has no arguments


/fun say

This command is public

Have the bot say the provided message, with placeholders replaced.

Arguments:

<msg> - String[TextArea]

A single line of text


/fun stealborgscity

This command is public

Steal one of borgs cities

This command has no arguments


/grant_template create build

Create a new build grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

[-c build] - CityBuild

Only grant this specific city build Defaults to allow any city build (City build json or url)

[-m mmr] - MMRInt

The MMR required for grants via this template (4 whole numbers representing barracks,factory,hangar,drydock)

[-o only_new_cities] - boolean

Only allow granting builds for new cities (Past 10 days)

[-t allow_after_days] - Integer

Allow grants to cities that have not received a build in the past X days Defaults to no limit (A whole number)

[-a allow_after_offensive] - boolean

Allow sending to cities after the receiver has had an offensive war e.g. For for switching builds after a counter Defaults to False

[-i allow_after_infra] - boolean

Allow sending to cities where infrastructure has been damaged Defaults to False

[-aa allow_all] - boolean

Always allow granting (even if they have received another city build grant)

[-lp allow_after_land_or_project] - boolean

Allow granting after purchasing land or a project Defaults to False

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-repeat repeatable] - boolean

If the template can be sent to the same receiver multiple times

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create city

Create a new city grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

<minCity> - Integer

The minimum city range allowed to receive grants (A whole number)

<maxCity> - Integer

The maximum city allowed to grant up to (A whole number)

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create infra

Create a new infra grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

<level> - Integer

The infra level allowed to grant to (A whole number)

[-n onlyNewCities] - boolean

Only allow grants to new cities (past 10 days) Defaults to false

[-o requireNOffensives] - Integer

Require N offensive wars before allowing infra grants (A whole number)

[-a allowRebuild] - boolean

Allow granting infra to cities that have received a grant in the past provided it has received damage

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-repeat repeatable] - boolean

If the template can be sent to the same receiver multiple times

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create land

Create a new land grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

<level> - Integer

The land level to grant up to (inclusive) (A whole number)

[-n onlyNewCities] - boolean

Only allow grants to new cities (past 10 days)

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-repeat repeatable] - boolean

If the template can be sent to the same receiver multiple times

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create project

Create a new project grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

<project> - Project

The project to grant (A project name. Replace spaces with _. See: https://politicsandwar.com/nation/projects/)

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create raws

Create a new raws grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

<days> - long

Allow disbursing raw resources to run cities for up to a number of days (A whole number)

[-o overdrawPercent] - Long

Allow oversupply of resources by a certain percent Defaults to: 20 (percent) (A whole number)

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-repeat nonRepeatable] - boolean

If the template can only sent to the same receiver once

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template create warchest

Create a new warchest grant template

Arguments:

<name> - String

The name of the template Alphanumerical (A single line of text)

<allowedRecipients> - NationFilter

A filter for nations allowed to receive this grant Use your alliance link for all nations See: https://github.com/xdnw/locutus/wiki/nation_placeholders (A comma separated list of filters (can include nations and alliances))

[-a allowancePerCity] - Map<ResourceType, Double>

The warchest allowed to grant (per city) Defaults to the guild setting: WARCHEST_PER_CITY (A comma separated list of resources and their amounts)

[-t trackDays] - long

Allow granting warchest if they have not received it in the past number of days (A whole number)

[-c subtractExpenditure] - boolean

Allow granting warchest that has been consumed in war

[-o overdrawPercent] - long

Allow granting a certain percent above the allowance to account for unintended losses (e.g. looting) Defaults to 0 (percent) (A whole number)

[-e econRole] - Role

The role that can grant this template to others Defaults to the ECON role (see {prefix}role setalias) (A discord role name or mention)

[-s selfRole] - Role

The role that can grant this template to itself Defaults to disabled (A discord role name or mention)

[-b bracket] - TaxBracket

The tax bracket account to use for withdrawals e.g. For a growth circle Defaults to None See: https://github.com/xdnw/locutus/wiki/tax_automation#tax-bracket-accounts (A tax id or url)

[-r useReceiverBracket] - boolean

If the receiver's tax bracket is used as the tax bracket account Defaults to false Alternative to bracket

[-mt maxTotal] - Integer

Global grants allowed for this template Defaults to unlimited (A whole number)

[-md maxDay] - Integer

Grants allowed for this template per day Defaults to unlimited (A whole number)

[-mgd maxGranterDay] - Integer

Grants allowed for this template per day by the same sender Defaults to unlimited (A whole number)

[-mgt maxGranterTotal] - Integer

Grants allowed for this template by the same sender Defaults to unlimited (A whole number)

[-expire allowExpire] - Long[Timediff]

Add a default expiry time to grants sent via this template e.g. 60d The granter can specify an expiry shorter than this value (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-ignore allowIgnore] - boolean

Do not include grants in member balances by default Defaults to false

[-repeat nonRepeatable] - boolean

If the template can be sent to the same receiver multiple times

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template delete

Delete a grant template

Arguments:

<template> - AGrantTemplate

The name of a created grant template

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template disable

Set an active grant template as disabled

Arguments:

<template> - AGrantTemplate

The name of a created grant template

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template enable

Set a disabled grant template as enabled

Arguments:

<template> - AGrantTemplate

The name of a created grant template

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template info

Full information about a grant template

Arguments:

<template> - AGrantTemplate

The name of a created grant template

[receiver] - DBNation

View additional info related to granting the template to this nation Such as cost/eligability (nation id, name or url)

[value] - String

The value to provide to the grant template Such as:

  • Number (infra, land, grant, city, raws)
  • City build json (build)
  • Resources (warchest) (A single line of text)

[-e show_command] - boolean

Show the command used to create this template i.e. If you want to copy or recreate the template

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template list

List all grant templates for the specified category

Arguments:

[category] - TemplateTypes

The category of templates to list Defaults to all categories (A category for a grant template)

[-d listDisabled] - boolean

List the disabled grant templates

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/grant_template send

No description provided

Arguments:

<template> - AGrantTemplate

The name of a created grant template

<receiver> - DBNation

nation id, name or url

[-e expire] - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

[-i ignore] - Boolean

[-p customValue] - String

A single line of text

[-em escrowMode] - EscrowMode

The mode for escrowing funds for a transfer, such as when a receiver is blockaded

[-f force] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/help argument

This command is public

No description provided

Arguments:

<argument> - Parser

[-s skipOptionalArgs] - boolean


/help command

This command is public

Show the description, usage information and permissions for a command

Arguments:

<command> - ICommand

A discord slash command reference for the bot


/help find_argument

Locate a nation placeholder you are looking for. Use keywords for relevant results, or ask a question.

Arguments:

<search> - String

A single line of text

[instructions] - String

[-g useGPT] - boolean

[-n numResults] - Integer

A whole number

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/help find_command

Locate a command you are looking for. Use keywords for relevant results, or ask a question.

Arguments:

<search> - String

A single line of text

[instructions] - String

[-g useGPT] - boolean

[-n numResults] - Integer

A whole number

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/help find_nation_placeholder

Locate a nation placeholder you are looking for. Use keywords for relevant results, or ask a question.

Arguments:

<search> - String

A single line of text

[instructions] - String

[-g useGPT] - boolean

[-n numResults] - Integer

A whole number

Required Permissions:

  • Role(AI_COMMAND_ACCESS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/help find_setting

This command is public

Locate a setting you are looking for. Use keywords for relevant results, or ask a question.

Arguments:

<query> - String

A single line of text

[num_results=5] - int

A whole number


/help moderation_check

This command is public

No description provided

Arguments:

<input> - String

A single line of text


/help nation_placeholder

This command is public

Show the description, usage information and permissions for a nation placeholder

Arguments:

<command> - ParametricCallable[NationAttributeCallable]

The name of a nation attribute See: https://github.com/xdnw/locutus/wiki/nation_placeholders


/help query

This command is public

No description provided

Arguments:

<input> - String

A single line of text


/infra cost

This command is public

Calculate the costs of purchasing infra (from current to max)

Arguments:

<currentInfra> - int

A whole number

<maxInfra> - int

[urbanization=false] - boolean

[center_for_civil_engineering=false] - boolean

[advanced_engineering_corps=false] - boolean

[government_support_agency=false] - boolean

[-c cities=1] - int


/interview adRanking

Ranking of nations by how many advertisements they have registered (WIP)

Arguments:

[-u uploadFile] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview create

This command is public

Create an interview channel

Arguments:

[user=%user%] - User

A discord user mention, or if a nation name, id or url if they are registered


/interview iacat

Set the discord category for an interview channel

Arguments:

<category> - Category

A discord category name or mention

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview iachannels

List the interview channels, by category + activity

Arguments:

<filter> - String

A single line of text

[time=1d] - long[Timediff]

Highlight channels inactive for longer than the time specified (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview incentiveRanking

Ranking of nations by how many incentives they have received Settings: REWARD_MENTOR and REWARD_REFERRAL

Arguments:

<timestamp> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview interviewMessage

Send a message to the interview channels of the nations specified

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<message> - String

A single line of text

[-p pingMentee] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview listMentors

List mentors, grouped by their respective mentees

Arguments:

[mentors=*] - Set<DBNation>

A comma separated list of nations, alliances and filters

[mentees=*] - Set<DBNation>

[timediff=2w] - long[Timediff]

Activity requirements for mentors (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-a includeAudit] - boolean

Include an audit summary with the list

[-u ignoreUnallocatedMembers] - boolean

Do NOT list members without a mentor

[-i listIdleMentors] - boolean

List mentors without any active mentees

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview mentee

Assign yourself as someone's mentor

Arguments:

<mentee> - DBNation

nation id, name or url

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview mentor

Assign a mentor to a mentee

Arguments:

<mentor> - DBNation

nation id, name or url

<mentee> - DBNation

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview mymentees

List mentees, grouped by their respective mentors

Arguments:

[mentees=*] - Set<DBNation>

A comma separated list of nations, alliances and filters

[timediff=2w] - long[Timediff]

Activity requirements for mentors (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview recruitmentRankings

This command is public

Rank alliances by their new members over a timeframe

Arguments:

<cutoff> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[topX=80] - int

Top X alliances to show in the ranking (A whole number)

[-u uploadFile] - boolean


/interview setReferrer

Set yourself as the referrer for a user

Arguments:

<user> - User

A discord user mention, or if a nation name, id or url if they are registered

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF/INTERVIEWER/MENTOR/RECRUITER, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview sortInterviews

Sort the interview channels to an audit category An appropriate discord category must exist in the form: interview-CATEGORY Allowed categories: INACTIVE,ENTRY,RAIDS,BANK,SPIES,BUILD,COUNTERS,TEST,ARCHIVE

Arguments:

[sortCategorized=true] - boolean

Sort channels already in a category

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview syncInterviews

Force an update of all interview channels and print the results

This command has no arguments

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/interview unassignMentee

Unassign a mentee from all mentors

Arguments:

<mentee> - DBNation

nation id, name or url

Required Permissions:

  • Role(INTERNAL_AFFAIRS_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/invite

This command is public

Return the discord invite link for the bot

This command has no arguments


/land cost

This command is public

Calculate the costs of purchasing land (from current to max)

Arguments:

<currentLand> - int

A whole number

<maxLand> - int

[rapidExpansion=false] - boolean

[arable_land_agency=false] - boolean

[advanced_engineering_corps=false] - boolean

[government_support_agency=false] - boolean

[-c cities=1] - int


/mail command

Bulk send the result of a bot command to a list of nations in your alliance The command will run as each user Nations which are not registered or lack permission to use a command will result in an error It is recommended to review the output sheet before confirming and sending the results

Arguments:

<nations> - Set<DBNation>

Nations to mail command results to (A comma separated list of nations, alliances and filters)

<subject> - String

A single line of text

<command> - String

The locutus command to run (A single line of text)

<body> - String[TextArea]

Message to send along with the command result (A single line of text)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/mail recruit

Test your alliance recruitment message by sending it to the bot creator's nation

This command has no arguments

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/mail reply

Reply to an in-game mail message Supports subject and body nation placeholders See: https://github.com/xdnw/locutus/wiki/nation_placeholders

Arguments:

<receiver> - DBNation

The nation you are replying to (nation id, name or url)

<url> - String

The url of the mail (A single line of text)

<message> - String

A single line of text

[-s sender] - DBNation

The account to reply with Must be the same account that received the mail (nation id, name or url)

Required Permissions:

  • Role(MAIL): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/mail send

This command is public

Send in-game mail to a list of nations Supports subject and body nation placeholders See: https://github.com/xdnw/locutus/wiki/nation_placeholders Append the channel id to the subject to direct responses there: Hello Nation/12345678910 (Note: DM Borg to setup mail responses)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<subject> - String

A single line of text

<message> - String[TextArea]

[-f confirm] - boolean

[-l sendFromGuildAccount] - boolean

Send from the api key registered to the guild

[-a apiKey] - String

The api key to use to send the mail (A single line of text)


/mail sheet

Bulk send in-game mail from a google sheet Columns: nation, subject, body Other bulk mail commands forward to this command

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url

[-f confirm] - boolean

Required Permissions:

  • HasApi(): Must be used in a guild with a valid API_KEY configured
  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/mail targets

Send spy or war blitz sheets to individual nations

Arguments:

[blitzSheet] - SpreadSheet

Url of the war blitz sheet to send (A google spreadsheet id or url)

[spySheet] - SpreadSheet

Url of the spy sheet to send (A google spreadsheet id or url)

[allowedNations=*] - Set<DBNation>

What nations to send to (A comma separated list of nations, alliances and filters)

[header=] - String

Text to prepend to the target instructions being sent (A single line of text)

[-l sendFromGuildAccount] - boolean

Send from the api key registered to the guild

[-a apiKey] - String

The api key to use to send the mail (A single line of text)

[-b hideDefaultBlurb] - boolean

Hide the default blurb from the message

[-f force] - boolean

[-d dm] - boolean

Send instructions as direct message on discord

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/me

This command is public

Get info about your own nation

This command has no arguments


/modal create

This command is public

Create a discord modal for a bot command This will make a popup prompting for the command arguments you specify and submit any defaults you provide Note: This is intended to be used in conjuction with the card command

Arguments:

<command> - ICommand

A discord slash command reference for the bot

<arguments> - String

A comma separated list of the command arguments to prompt for (A single line of text)

[defaults] - String

The default arguments and values you want to submit to the command Example: myarg1:myvalue1 myarg2:myvalue2 (A single line of text)


/nation TurnTimer

This command is public

Check how many turns are left in the city/project timer

Arguments:

<nation> - DBNation

nation id, name or url


/nation beigeTurns

This command is public

Return number of turns a nation has left of beige color bloc

Arguments:

<nation> - DBNation

nation id, name or url


/nation canIBeige

List your wars you are allowed to beige As set by this guild's configured beige policy: ALLOWED_BEIGE_REASONS

Arguments:

[nation] - DBNation

The nation which is beiging Defaults to your own nation (nation id, name or url)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation departures

This command is public

List the alliance rank changes of a nation or alliance members

Arguments:

<nationOrAlliance> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

[time] - Long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[filter] - NationList

Only include these nations (A comma separated list of nations, alliances and filters)

[-a ignoreInactives] - boolean

Ignore inactive nations (7 days)

[-v ignoreVM] - boolean

Ignore nations in vacation mode

[-m ignoreMembers] - boolean

Ignore nations currently a member of an alliance

[-i listIds] - boolean

Attach a list of all nation ids found


/nation list bans

This command is public

View the list of bans for a nation id

Arguments:

<nationId> - int

A whole number


/nation list inactive

This command is public

Get the top inactive players

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[days=7] - int

Required days inactive (A whole number)

[-a includeApplicants] - boolean

[-v includeVacationMode] - boolean

[-p page] - int

A whole number


/nation list multi

This command is public

Check if a nation shares networks with others Notes:

  • Sharing networks does not mean they are the same person (mobile networks, schools, public wifi, vpns, dynamic ips
  • A network not shared 'concurrently' or within a short timeframe may be a false positive
  • Having many networks, but only a few shared may be a sign of a VPN being used (there are legitimate reasons for using a VPN)
  • It is against game rules to use evidence to threaten or coerce others See: https://politicsandwar.com/rules/

Arguments:

<nation> - DBNation

nation id, name or url


/nation list rebuy

This command is public

Estimate a nation's rebuy time based on unit purchase history

Arguments:

<nation> - DBNation

nation id, name or url


/nation loot

Get nation or bank loot history Shows how much you will receive if you defeat a nation

Arguments:

<nationOrAlliance> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

[nationScore] - Double

Score of the defeated nation i.e. For determining bank loot percent (A decimal number)

[-p pirate] - boolean

Loot with pirate war policy Else: Uses your war policy

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation moneyTrades

This command is public

View an accumulation of all the net money trades a nation made, grouped by nation Money trades are selling resources for close to $0 or buying for very large money amounts

Arguments:

<nation> - DBNation

nation id, name or url

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-f forceUpdate] - boolean

[-a addBalance] - boolean

Return a deposits add command for each grouping


/nation reroll

This command is public

Check if a nation is a reroll and print their reroll date

Arguments:

<nation> - DBNation

nation id, name or url


/nation revenue

This command is public

Get the revenue of nations or alliances

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-t includeUntaxable] - boolean

Include the revenue of nations unable to be taxed

[-b excludeNationBonus] - boolean

Exclude the new nation bonus


/nation revenueSheet

Get a sheet of members and their revenue (compared to optimal city builds)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON_STAFF/ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/nation score

This command is public

Calculate the score of various things. Each argument is option, and can go in any order

Arguments:

[nation] - DBNation

nation id, name or url

[-c cities] - Integer

A whole number

[-b soldiers] - Integer

[-f tanks] - Integer

[-h aircraft] - Integer

[-d ships] - Integer

[-m missiles] - Integer

[-n nukes] - Integer

[-p projects] - Integer

[-a avg_infra] - Integer

[-i infraTotal] - Integer

[-mmr builtMMR] - MMRDouble

4 decimal numbers representing barracks, factory, hangar, drydock


/nation set rank

Set the in-game position of a player in the alliance.

Arguments:

<nation> - DBNation

nation id, name or url

<position> - DBAlliancePosition

An in-game position

[-f force] - boolean

[-d doNotUpdateDiscord] - boolean

Do NOT add/remove the corresponding locutus role

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/nation set taxbracket

List or set your tax bracket. Notes:

  • Internal tax rate affects what portion of taxes are not included in /deposits check (typically used when 100/100 taxes)
  • Set the alliance internal tax rate with: /settings key:TAX_BASE (retroactive)
  • This command is not retroactive and overrides the alliance internal taxrate

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[bracket] - TaxBracket

A tax id or url

[internalTaxRate] - TaxRate

A tax rate in the form of money/rss

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/nation set taxbracketAuto

Bulk set nation tax brackets as configured in the guild setting: REQUIRED_TAX_BRACKET

Arguments:

[nations] - Set<DBNation>

The nations to set tax brackets for If not specified, all nations in the alliance will be used (A comma separated list of nations, alliances and filters)

[-p ping] - boolean

Ping users if their brackets are modified

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(ECON_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation set taxinternal

Set nation's internal taxrate See also: /nation set taxbracket and /settings key:TAX_BASE

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<taxRate> - TaxRate

A tax rate in the form of money/rss

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/nation set taxinternalAuto

Bulk set nation internal taxrates as configured in the guild setting: REQUIRED_INTERNAL_TAXRATE

Arguments:

[nations] - Set<DBNation>

The nations to set internal taxrates for If not specified, all nations in the alliance will be used (A comma separated list of nations, alliances and filters)

[-p ping] - boolean

Ping users if their rates are modified

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(ECON_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation sheet NationSheet

A sheet of nations stats with customizable columns See https://github.com/xdnw/locutus/wiki/nation_placeholders for a list of placeholders

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<columns> - List<String>[TextArea]

A space separated list of columns to use in the sheet Can include NationAttribute as placeholders in columns All NationAttribute placeholders must be surrounded by {} e.g. {nation} (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-e updateSpies] - boolean

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/ECON/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation slots

This command is public

Check how many projects slots a nation has

Arguments:

<nation> - DBNation

nation id, name or url


/nation spies

Calculate spies for a nation. Nation argument can be nation name, id, link, or discord tag If spies-used is provided, it will cap the odds at using that number of spies safety defaults to what has the best net. Options: quick, normal, covert

Arguments:

<nation> - DBNation

nation id, name or url

[spiesUsed=60] - int

Show odds for this spy count (A whole number)

[requiredSafety] - Safety

Show odds for at least this safety level (Spy safety level)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/nation stats inflows

This command is public

List the public resource imports or exports of a nation or alliance to other nations or alliances over a period of time

Arguments:

<nationOrAlliances> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<cutoffMs> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-i hideInflows] - boolean

Do not show inflows

[-o hideOutflows] - boolean

Do not show outflows


/nation stats nationRanking

This command is public

Rank nations by an attribute

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<attribute> - NationAttributeDouble

A completed nation attribute that accepts no arguments and returns a number To get the attribute for an attribute with arguments, you must provide a value in brackets See: https://github.com/xdnw/locutus/wiki/nation_placeholders

[-a groupByAlliance] - boolean

[-r reverseOrder] - boolean

[-t total] - boolean

Total value instead of average per nation


/nation stats warStatusRankingByNation

This command is public

Generate ranking of war status by Nation

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

<defenders> - Set<DBNation>

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)


/nation stockpile

View the resources in a nation or alliance

Arguments:

<nationOrAlliance> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/nation unitHistory

This command is public

Get the military unit count history (dates/times) for a nation

Arguments:

<nation> - DBNation

nation id, name or url

<unit> - MilitaryUnit

Military unit name

[-p page] - Integer

A whole number


/nation wars

This command is public

Show war info for a nation

Arguments:

<nation> - DBNation

nation id, name or url


/nation who

This command is public

Get detailed information about a nation Nation argument can be nation name, id, link, or discord tag e.g. /who @borg

Arguments:

<nationOrAlliances> - Set<NationOrAlliance>

The nations to get info about (A comma separated list of nations and alliances)

[sortBy] - NationPlaceholder

Sort any listed nations by this attribute (See: https://github.com/xdnw/locutus/wiki/nation_placeholders)

[-l list] - boolean

List the nations instead of just providing a summary

[-a listAlliances] - boolean

List the alliances of the provided nation

[-r listRawUserIds] - boolean

List the discord user ids of each nation

[-m listMentions] - boolean

List the discord user mentions of each nation

[-i listInfo] - boolean

List paginated info of each nation

[-c listChannels] - boolean

List all interview channels of each nation

[-p page] - Integer

A whole number


/offshore accountSheet

Compare the stockpile in the offshore alliance in-game bank to the total account balances of all offshoring alliances/guilds

Arguments:

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/offshore add

Set the bot managed offshore for this guild The alliance must use a guild with locutus settings ALLIANCE_ID and API_KEY set, and the coalitions offshore and offshoring set to include the offshore alliance

Arguments:

<offshoreAlliance> - DBAlliance

An alliance name id or url

[-f force] - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/offshore find

Return potential offshores for a list of enemy alliances If allies are specified, only offshores that are not allied with any of the allies will be returned

Arguments:

<cutoff> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

<enemiesList> - Set<DBAlliance>

A comma separated list of alliances

[alliesList] - Set<DBAlliance>

Required Permissions:

  • Role(ECON/MILCOM, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/offshore findForCoalition

Find potential offshores used by an alliance

Arguments:

<alliance> - DBAlliance

An alliance name id or url

[cutoffMs] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/offshore markAsOffshore

This command is public

Mark an alliance as the offshore of another

Arguments:

<offshore> - DBAlliance

An alliance name id or url

<parent> - DBAlliance


/offshore send

Send the funds in the alliance bank to an alliance added to the offshore coalition in the bot Optionally specify warchest and offshoring account

Arguments:

[to] - DBAlliance

Offshore alliance to send funds to (An alliance name id or url)

[warchest={}] - Map<ResourceType, Double>

The amount of resources to keep in the bank (A comma separated list of resources and their amounts)

[account] - NationOrAllianceOrGuild

The account to offshore with (defaults to the sender alliance) (A nation or alliance name, url or id, or a guild id)

Required Permissions:

  • Role(MEMBER/ECON/ECON_STAFF, any, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/offshore unlockTransfers

Unlock transfers for an alliance or guild using this guild as an offshore Accounts are automatically locked if there is an error accessing the api, a game captcha, or if an admin of the account is banned in-game Only locks from game bans persist across restarts

Arguments:

<nationOrAllianceOrGuild> - NationOrAllianceOrGuild

A nation or alliance name, url or id, or a guild id

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/project cost

This command is public

Shows the cost of a project

Arguments:

<projects> - Set<Project>

A comma separated list of alliance projects

[technologicalAdvancement=false] - boolean

[governmentSupportAgency=false] - boolean


/project costsheet

This command is public

Generate csv file of project costs

This command has no arguments


/project sheet

Sheet of projects each nation has

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/project slots

This command is public

Check how many projects slots a nation has

Arguments:

<nation> - DBNation

nation id, name or url


/register

This command is public

Register your discord user with your Politics And War nation.

Arguments:

<nation> - DBNation

nation id, name or url


/report add

This command is public

Report a nation or user's game behavior to the bot for things such as fraud Note: Submitting spam or maliciously false reports may result in being locked out of reporting commands

Arguments:

<type> - ReportType

<message> - String[TextArea]

Description of report (A single line of text)

[nation] - DBNation

Nation to report (nation id, name or url)

[discord_user_id] - Long

Discord user to report (A whole number)

[-i imageEvidenceUrl] - String

Image evidence of report (A single line of text)

[-p forum_post] - String

Link to relevant forum post (A single line of text)

[-m news_post] - String

Link to relevant news post (A single line of text)

[-u updateReport] - Report

[-f force] - boolean


/report analyze

This command is public

Show an analysis of a nation's risk factors including: Reports, loans, discord & game bans, money trades and proximity with blacklisted nations, multi info, user account age, inactivity predictors

Arguments:

<nation> - DBNation

nation id, name or url


/report comment add

This command is public

Add a short comment to a report

Arguments:

<report> - Report

<comment> - String

A single line of text

[-f force] - boolean


/report comment delete

This command is public

Remove a comment on a report

Arguments:

<report> - Report[ReportPerms]

[nationCommenting] - DBNation

nation id, name or url

[-f force] - boolean


/report loan add

Add a loan for a nation or alliance

Arguments:

<receiver> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

[status] - Status

The status of a nation's loan

[-o overwriteLoan] - DBLoan[GuildLoan]

[-p principal] - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[-r remaining] - Map<ResourceType, Double>

[-c amountPaid] - Map<ResourceType, Double>

[-d dueDate] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-a allianceLending] - DBAlliance

An alliance name id or url

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan purge

Delete all loan information

Arguments:

[guildOrAllianceId] - Long

Purge all loans created by this guild or alliance id (A whole number)

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan remove

Delete a loan for a nation or alliance Note: To delete all loans use the loan purge command

Arguments:

<loan> - DBLoan[GuildLoan]

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan sheet

Generate a google sheet of all loan information banks and alliances have submitted If no nations are provided, only the loans for this server are returned If no loan status is provided, all loans are returned

Arguments:

[nations] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-l loanStatus] - Set<Status>

A comma separated list of the status of a nation's loan

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF/ECON_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan update

Update a loan for a nation or alliance If no other arguments are provided, only the last updated date will be set

Arguments:

<loan> - DBLoan[GuildLoan]

[-p principal] - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[-r remaining] - Map<ResourceType, Double>

[-c amountPaid] - Map<ResourceType, Double>

[-d dueDate] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan update_all

Mark all active loans by this guild as up to date It is useful for loan reporting to remain accurate

Arguments:

[loanStatus] - Set<Status>

A comma separated list of the status of a nation's loan

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report loan upload

Import loan report data from a google sheet Expects the columns: Receiver, Principal, Remaining, Status, Due Date, Loan Date, Paid, Interest This is not affect member balances and is solely for sharing information with the public

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url

[defaultStatus] - Status

The status of a nation's loan

[-o overwriteLoans] - boolean

[-m overwriteSameNation] - boolean

[-a addLoans] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report remove

This command is public

Remove a report of a nation or user

Arguments:

<report> - Report[ReportPerms]

[-f force] - boolean


/report search

This command is public

List all reports about or submitted by a nation or user

Arguments:

[-n nationIdReported] - Integer

A whole number

[-d userIdReported] - Long

[-i reportingNation] - Integer

[-u reportingUser] - Long


/report sheet generate

Generate a sheet of all the community reports for players

Arguments:

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(INTERNAL_AFFAIRS/INTERNAL_AFFAIRS_STAFF/ECON_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/report show

This command is public

View a report and its comments

Arguments:

<report> - Report


/role addRoleToAllMembers

Add a discord role to all users in a server

Arguments:

<role> - Role

A discord role name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role autoassign

Add or remove the configured auto roles to all users in this discord guild

Arguments:

[-f force] - boolean

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role autorole

This command is public

Give the configured bot auto roles to a user on discord

Arguments:

<member> - Member

A discord user mention, or if a nation name, id or url if they are registered

[-f force] - boolean


/role clearAllianceRoles

Clear the bot managed roles on discord

Arguments:

<type> - ClearRolesEnum

What role types do you want to remove (Types of users to clear roles of)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role clearNicks

Clear all nicknames on discord

Arguments:

[undo] - Boolean

Undo the last recent use of this command

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role hasRole

Lists the shared servers where a user has a role.

Arguments:

<user> - User

A discord user mention, or if a nation name, id or url if they are registered

<role> - Roles

A discord role name, mention or id

Required Permissions:

  • Role(INTERNAL_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role mask

Add or remove a role from a set of members on discord

Arguments:

<members> - Set<Member>

A comma separated list of discord user mentions, or if a nation name, id or url if they are registered

<role> - Role

A discord role name or mention

<value> - boolean

[-r toggleMaskFromOthers] - boolean

If the role should be added or removed from all other members If value is true, the role will be removed, else added

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role optOut

This command is public

Opt out of war room relays and ia channel logging

Arguments:

[optOut=true] - boolean


/role removeAssignableRole

Remove a role from adding/removing specified roles (having manage roles perm on discord overrides this)

Arguments:

<requireRole> - Role

A discord role name or mention

<assignableRoles> - Set<Role>

A comma separated list of discord role names or mentions

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role setAlias

Set the discord roles the bot uses for command permissions

Arguments:

[locutusRole] - Roles

A discord role name, mention or id

[discordRole] - Role

A discord role name or mention

[alliance] - DBAlliance

If the role mapping is only for a specific alliance (WIP) (An alliance name id or url)

[-r removeRole] - boolean

Remove the existing mapping instead of setting it

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/role unregister

Remove a discord role the bot uses for command permissions

Arguments:

<locutusRole> - Roles

A discord role name, mention or id

[alliance] - DBAlliance

Only remove a role mapping for this alliance (An alliance name id or url)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/self add

This command is public

Add discord role to a user See: /self list

Arguments:

<member> - Member

A discord user mention, or if a nation name, id or url if they are registered

<addRole> - Role

A discord role name or mention


/self create

Allow a role to add/remove roles from users

Arguments:

<requireRole> - Role

Require this role in order to use the specified self roles (A discord role name or mention)

<assignableRoles> - Set<Role>

A comma separated list of discord role names or mentions

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/self list

This command is public

List the self roles that you can assign yourself via the bot

This command has no arguments


/self remove

Remove a role to a user See: /self list

Arguments:

<member> - Member

A discord user mention, or if a nation name, id or url if they are registered

<addRole> - Role

A discord role name or mention

Required Permissions:

  • Role(INTERNAL_AFFAIRS_STAFF/INTERNAL_AFFAIRS/ECON_STAFF/ECON/MILCOM/MILCOM_NO_PINGS/FOREIGN_AFFAIRS/FOREIGN_AFFAIRS_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings delete

Delete an alliance or guild setting

Arguments:

[key] - GuildSetting

Locutus guild settings

Required Permissions:

  • Role(ADMIN/INTERNAL_AFFAIRS/ECON/MILCOM/FOREIGN_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings info

Configure any alliance or guild settings

Arguments:

[key] - GuildSetting

The setting to change or view (Locutus guild settings)

[value] - String[TextArea]

The value to set the setting to (A single line of text)

[-a listAll] - boolean

Required Permissions:

  • Role(ADMIN/INTERNAL_AFFAIRS/ECON/MILCOM/FOREIGN_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings sheets

View set or delete alliance or guild google sheets

This command has no arguments

Required Permissions:

  • Role(ADMIN/INTERNAL_AFFAIRS/ECON/MILCOM/FOREIGN_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_artificial_intelligence ENABLE_GITHUB_COPILOT

Enable GitHub Copilot for generating AI text responses See: https://github.com/features/copilot This is an alternative to an open ai key

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_artificial_intelligence GPT_USAGE_LIMITS

gpt user and guild usage limits, by turn and day Used to limit costs incurred from excessive usageUsage is only tracked per session, and is reset each time the bot restarts

Arguments:

<userTurnLimit> - int

A whole number

<userDayLimit> - int

<guildTurnLimit> - int

<guildDayLimit> - int

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_artificial_intelligence register_openai_key

OpenAI API key Used for chat responses and completion Get a key from: https://platform.openai.com/account/api-keys

Arguments:

<apiKey> - String

A single line of text

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit DISABLED_MEMBER_AUDITS

A comma separated list of audit types to ignore: { GRAY,HIGH_INFRA,UNPROFITABLE_FARMS,UNEVEN_INFRA,WIND_POWER,WAR_TYPE_NOT_RAID,WAR_POLICY,INACTIVE }

Arguments:

<audits> - Set<AutoAuditType>

A comma separated list of auto audit types

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit MEMBER_AUDIT_ALERTS

The #channel to ping members about audits

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit MEMBER_LEAVE_ALERT_CHANNEL

The channel to receive alerts when a member leaves

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit MEMBER_REBUY_INFRA_ALERT

The channel to receive alerts when a member buys infra

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit REQUIRED_MMR

Set the required MMR based on nation criteria See: https://github.com/xdnw/locutus/wiki/nation_placeholders Accepts a list of filters to the required MMR. In the form:

#cities<10:505X
#cities>=10:0250

Use * as the filter to match all nations.

Arguments:

<mmrMap> - Map<NationFilter, MMRMatcher>

A map of nation filters to MMR Use X for any military building All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit WARCHEST_PER_CITY

Amount of warchest to recommend per city in form {steel=1234,aluminum=5678,gasoline=69,munitions=420}

Arguments:

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_audit addRequiredMMR

Set the required MMR based on nation criteria See: https://github.com/xdnw/locutus/wiki/nation_placeholders Accepts a list of filters to the required MMR. In the form:

#cities<10:505X
#cities>=10:0250

Use * as the filter to match all nations.

Arguments:

<filter> - NationFilter

A comma separated list of filters (can include nations and alliances)

<mmr> - MMRMatcher

An string matching for a nation's military buildings (MMR) In the form 505X where X is any military building

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access BANKER_WITHDRAW_LIMIT

The daily withdraw limit (from the offshore) of non admins

Arguments:

<amount> - long

A whole number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access BANKER_WITHDRAW_LIMIT_INTERVAL

The time period the withdraw limit applies to (defaults to 1 day)

Arguments:

<timediff> - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access GRANT_LIMIT_DELAY

The timeframe the GRANT_TEMPLATE_LIMITS is for, which restricts max funds that a user can grant using templates over this timeframe.

Arguments:

<timediff> - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access MEMBER_CAN_OFFSHORE

Whether members can use </offshore send:1015168434847363132> (true/false)

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access MEMBER_CAN_WITHDRAW

Whether members can use </transfer resources:1015168434776051740> or !grant` to access their own funds (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access MEMBER_CAN_WITHDRAW_WARTIME

Whether members can withdraw during wartime (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access NON_AA_MEMBERS_CAN_BANK

Whether nations which are not a member of the alliance ingame can use any configured banking functions, such as withdrawals

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access PUBLIC_OFFSHORING

Public offshores allow other alliances to see and register to use this alliance as an offshore without approval

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access RESOURCE_CONVERSION

If members can convert resources to cash. This is done virtually in </deposits check:1015168434776051741>Resources are converted using market average Use #cash as the note when depositing or transferring funds

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access ROUTE_ALLIANCE_BANK

If true, all transfers from the offshore will send via the alliance bank

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access WITHDRAW_IGNORES_EXPIRE

Whether members's withdraw limit ignores their expiring grants (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access addGrantTemplateLimit

The global grant template send limits for each role, limiting how much each granter can send per interval. This applies in addition to any limits set in the individual template. The ECON role overrides grant template limits. See: </role setalias:1015168434847363134> The highest value for each resource will be usedFormat: role_id:resource1,resource2,resource3

Arguments:

<role> - Role

A discord role name or mention

<marketValue> - Double

A decimal number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access addResourceChannel

Set the resource withdrawal channel to the current channel Do not specify an alliance to set the default withdraw channel

Arguments:

<channel> - MessageChannel

A discord channel name or mention

[alliance] - DBAlliance

An alliance name id or url

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access removeResourceChannel

The #channel for users to request resources in. For multiple alliances, use the form:

#defaultChannel
alliance1:#channel

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_access toggleGrants

The id of the member you want to add to the blacklist

Arguments:

<nation> - DBNation

nation id, name or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info ADDBALANCE_ALERT_CHANNEL

The #channel to receive alerts when there is a large tranfer in the game or a nation VMs with resources

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info BANK_ALERT_CHANNEL

The #channel to receive alerts e.g. for custom !BankAlerts

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info DEPOSIT_ALERT_CHANNEL

The #channel to receive alerts when a nation makes a deposit (this will no longer reliably alert)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info DISPLAY_CONDENSED_DEPOSITS

Display deposits in a condensed format

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info DISPLAY_ITEMIZED_DEPOSITS

Whether members's deposits are displayed by default with a breakdown of each category (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info GRANT_REQUEST_CHANNEL

The #channel for users to request grants in

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bank_info WITHDRAW_ALERT_CHANNEL

The #channel to receive alerts when a nation requests a transfer

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts BEIGE_ALERT_CHANNEL

The #channel to receive alerts when a raid target leaves beige. /role setalias locutusrole: BEIGE_ALERT must also be set and have members in range

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts BEIGE_VIOLATION_MAIL

Whether to send a mail to the nation when a beige violation occurs Default: True

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts ENEMY_ALERT_CHANNEL

The #channel to receive alerts when an enemy nation leaves beige

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts ENEMY_ALERT_CHANNEL_MODE

The mode for the enemy alert channel to determine what alerts are posted and who is pinged Options:

  • PING_USERS_IN_RANGE
  • PING_ROLE_IN_RANGE
  • PING_ROLE_ALL

Arguments:

<mode> - EnemyAlertChannelMode

An alert mode for the ENEMY_ALERT_CHANNEL when enemies leave beige

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts ENEMY_ALERT_FILTER

A filter for enemies to alert on when they leave beige Defaults to #active_m<7200 (active in the past 5 days)

Arguments:

<filter> - NationFilter

A comma separated list of filters (can include nations and alliances)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts ENEMY_BEIGED_ALERT

The #channel to receive alerts when an enemy gets beiged

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts ENEMY_BEIGED_ALERT_VIOLATIONS

The #channel to receive alerts when an enemy gets beiged (without reason)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts addBeigeReasons

A list of city ranges to beige reasons that are permitted. In the form:

c1-9:*
c10+:INACTIVE,VACATION_MODE,APPLICANT

Options:

  • VACATION_MODE: You can beige enemies in Vacation Mode
  • NOT_AN_ENEMY: Non enemies are not subject to beige/cycle orders
  • INACTIVE: Nations who are inactive (2 days)
  • APPLICANT: Applicants aren't subject to beige/cycle orders
  • UNDER_C10_SLOG: If the enemy has less than 10 cities
  • OFFENSIVE_WAR: War is offensive
  • ALREADY_BEIGE_STACKED: Enemies already with enough beige to rebuild (6 days)
  • NO_ENEMY_OFFENSIVE_WARS: Enemies not declaring any offensive wars
  • MISSILE_TURRET: Enemies with high number of missiles
  • NUKE_TURRET: Enemies with high numbers of nukes
  • NO_RECENT_WARS: Enemy is has not declared a war in the past 20 days
  • NO_RECENT_3_CONSECUTIVE_LOGINS: Enemy has not had 3 consecutive logins in the past 120 days
  • NO_RECENT_5_CONSECUTIVE_LOGINS: Enemy has not had 5 consecutive logins in the past 120 days
  • INCORRECT_ENEMY_MMR: Enemy does not have 5 barracks/factories
  • USELESS: Enemy has no recent wars and no recent consecutive logins OR incorrect MMR
  • BEIGE_CYCLE: If the enemy does not have beige, and two other strong nations can sit them whilst beige. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_4D: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 4d. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_1: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 2d. DO NOT BEIGE DEFENSIVE WARS
  • BLOCKADED: If you are being sat on/blockaded and need to restock on warchest
  • LOW_RESISTANCE: Low resistance, at risk of getting beiged (use your best judgement)
  • LOW_RESISTANCE_OFFENSIVE: Low resistance, at risk of getting beiged (use your best judgement)
  • DO_NOT_RAID: Try to peace nations that are on the Do Not Raid list
  • NO_REASON:

Also set: </coalition create:1015168434906071114> with ENEMIES: Enemies

Arguments:

<range> - CityRanges

A range of city counts (inclusive)

<reasons> - Set<BeigeReason>

A comma separated list of beige reasons for defeating an enemy in war

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts removeBeigeReasons

A list of city ranges to beige reasons that are permitted. In the form:

c1-9:*
c10+:INACTIVE,VACATION_MODE,APPLICANT

Options:

  • VACATION_MODE: You can beige enemies in Vacation Mode
  • NOT_AN_ENEMY: Non enemies are not subject to beige/cycle orders
  • INACTIVE: Nations who are inactive (2 days)
  • APPLICANT: Applicants aren't subject to beige/cycle orders
  • UNDER_C10_SLOG: If the enemy has less than 10 cities
  • OFFENSIVE_WAR: War is offensive
  • ALREADY_BEIGE_STACKED: Enemies already with enough beige to rebuild (6 days)
  • NO_ENEMY_OFFENSIVE_WARS: Enemies not declaring any offensive wars
  • MISSILE_TURRET: Enemies with high number of missiles
  • NUKE_TURRET: Enemies with high numbers of nukes
  • NO_RECENT_WARS: Enemy is has not declared a war in the past 20 days
  • NO_RECENT_3_CONSECUTIVE_LOGINS: Enemy has not had 3 consecutive logins in the past 120 days
  • NO_RECENT_5_CONSECUTIVE_LOGINS: Enemy has not had 5 consecutive logins in the past 120 days
  • INCORRECT_ENEMY_MMR: Enemy does not have 5 barracks/factories
  • USELESS: Enemy has no recent wars and no recent consecutive logins OR incorrect MMR
  • BEIGE_CYCLE: If the enemy does not have beige, and two other strong nations can sit them whilst beige. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_4D: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 4d. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_1: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 2d. DO NOT BEIGE DEFENSIVE WARS
  • BLOCKADED: If you are being sat on/blockaded and need to restock on warchest
  • LOW_RESISTANCE: Low resistance, at risk of getting beiged (use your best judgement)
  • LOW_RESISTANCE_OFFENSIVE: Low resistance, at risk of getting beiged (use your best judgement)
  • DO_NOT_RAID: Try to peace nations that are on the Do Not Raid list
  • NO_REASON:

Also set: </coalition create:1015168434906071114> with ENEMIES: Enemies

Arguments:

<range> - CityRanges

A range of city counts (inclusive)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_beige_alerts setBeigeReasons

A list of city ranges to beige reasons that are permitted. In the form:

c1-9:*
c10+:INACTIVE,VACATION_MODE,APPLICANT

Options:

  • VACATION_MODE: You can beige enemies in Vacation Mode
  • NOT_AN_ENEMY: Non enemies are not subject to beige/cycle orders
  • INACTIVE: Nations who are inactive (2 days)
  • APPLICANT: Applicants aren't subject to beige/cycle orders
  • UNDER_C10_SLOG: If the enemy has less than 10 cities
  • OFFENSIVE_WAR: War is offensive
  • ALREADY_BEIGE_STACKED: Enemies already with enough beige to rebuild (6 days)
  • NO_ENEMY_OFFENSIVE_WARS: Enemies not declaring any offensive wars
  • MISSILE_TURRET: Enemies with high number of missiles
  • NUKE_TURRET: Enemies with high numbers of nukes
  • NO_RECENT_WARS: Enemy is has not declared a war in the past 20 days
  • NO_RECENT_3_CONSECUTIVE_LOGINS: Enemy has not had 3 consecutive logins in the past 120 days
  • NO_RECENT_5_CONSECUTIVE_LOGINS: Enemy has not had 5 consecutive logins in the past 120 days
  • INCORRECT_ENEMY_MMR: Enemy does not have 5 barracks/factories
  • USELESS: Enemy has no recent wars and no recent consecutive logins OR incorrect MMR
  • BEIGE_CYCLE: If the enemy does not have beige, and two other strong nations can sit them whilst beige. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_4D: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 4d. DO NOT BEIGE DEFENSIVE WARS
  • BEIGE_CYCLE_1: If the enemy does not have beige, and one other strong nation can sit them whilst beige for 2d. DO NOT BEIGE DEFENSIVE WARS
  • BLOCKADED: If you are being sat on/blockaded and need to restock on warchest
  • LOW_RESISTANCE: Low resistance, at risk of getting beiged (use your best judgement)
  • LOW_RESISTANCE_OFFENSIVE: Low resistance, at risk of getting beiged (use your best judgement)
  • DO_NOT_RAID: Try to peace nations that are on the Do Not Raid list
  • NO_REASON:

Also set: </coalition create:1015168434906071114> with ENEMIES: Enemies

Arguments:

<reasons> - Map<CityRanges, Set<BeigeReason>>

A map of city ranges to a list of beige reasons for defeating an enemy in war Priority is first to last (so put defaults at the bottom)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bounty BOUNTY_ALERT_CHANNEL

The channel to receive alerts when a bounty is placed

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_bounty TREASURE_ALERT_CHANNEL

The channel to receive alerts when a treasure moves to another nation or is about to reset

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_default DELEGATE_SERVER

The guild to delegate unset settings to

Arguments:

<guild> - Guild

A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_default registerAlliance

Your alliance id

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_default registerApiKey

API key found at the bottom of: https://politicsandwar.com/account/ Be sure to enable all access you wish the bot to have, and have a sufficient position in-game (e.g. leader) Needed for alliance functions and information access, such as calculating resource dispersal, sending mail Api Key Example

Arguments:

<apiKeys> - List<String>[TextArea]

Multiple words or text separated by spaces Use quotes for multi-word arguments

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_default unregisterAlliance

Your alliance id

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_foreign_affairs ALLIANCE_CREATE_ALERTS

The #channel to receive alerts for alliance creation

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_foreign_affairs DO_NOT_RAID_TOP_X

The number of top alliances to include in the Do Not Raid (DNR) list Members are not permitted to declare on members of these alliances or their direct allies Results in the DNR will be excluded from commands, and will alert Foreign Affairs if violated Defaults to 0

Arguments:

<topAllianceScore> - Integer

A whole number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_foreign_affairs EMBASSY_CATEGORY

The name or id of the CATEGORY you would like embassy channels created in (for </embassy:1015170851873763338>)

Arguments:

<category> - Category

A discord category name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_foreign_affairs FA_SERVER

The guild to defer coalitions to

Arguments:

<guild> - Guild

A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_foreign_affairs TREATY_ALERTS

The #channel to receive alerts for treaty changes

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_interview ARCHIVE_CATEGORY

The name or id of the CATEGORY you would like </channel close current:1015168434847363133> to move channels to

Arguments:

<category> - Category

A discord category name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_interview INTERVIEW_INFO_SPAM

The channel to receive info spam about expired interview channels

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_interview INTERVIEW_PENDING_ALERTS

The channel to receive alerts when a member requests an interview

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts AA_GROUND_TOP_X

Only do alliance ground unit alerts for the top X alliances (by active member score)

Arguments:

<topX> - int

A whole number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts AA_GROUND_UNIT_ALERTS

The channel to send alerts when alliance ground units increase by more than 2.5% See also setting AA_GROUND_TOP_X and coalition: GROUND_ALERTS and role alias: GROUND_MILITARIZE_ALERT

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ACTIVITY_ALERTS

The #channel to receive alerts for activity (e.g. pre blitz)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ALLIANCE_EXODUS_TOP_X

The rank threshold to post exodus alerts for

Arguments:

<rank> - int

A whole number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts BAN_ALERT_CHANNEL

The channel to receive alerts when any nation in the game is banned)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts DELETION_ALERT_CHANNEL

The channel to receive alerts when any nation in the game deletes

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ESCALATION_ALERTS

The #channel to receive alerts for war escalation alerts in orbis

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ORBIS_ALLIANCE_EXODUS_ALERTS

The #channel to receive alerts when multiple 5+ members leave an alliance See also: </settings_orbis_alerts alliance_exodus_top_x:1104571317719670894>

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ORBIS_LEADER_CHANGE_ALERT

The #channel to receive alerts when a nation is promoted to leader in an alliance (top 80)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ORBIS_OFFICER_LEAVE_ALERTS

The #channel to receive alerts when officers leave an alliance (top 50)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts ORBIS_OFFICER_MMR_CHANGE_ALERTS

The #channel to receive alerts when gov members increase MMR (top 80)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts REPORT_ALERT_CHANNEL

The channel to receive alerts when any nation or user is reported to the bot See </report add:1141362798606176256>

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_orbis_alerts REROLL_ALERT_CHANNEL

The #channel to receive alerts for nation rerolls

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_recruit RECRUIT_MESSAGE_CONTENT

The recruit message body Must also set </settings_recruit recruit_message_output:1104571317719670892>

Arguments:

<message> - String

A single line of text

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_recruit RECRUIT_MESSAGE_DELAY

The amount of time to delay recruitment messages by

Arguments:

<timediff> - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_recruit RECRUIT_MESSAGE_OUTPUT

The #channel to receive recruitment message output

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_recruit RECRUIT_MESSAGE_SUBJECT

The recruit message subject Must also set </settings_recruit recruit_message_content:1104571317719670892>

Arguments:

<value> - String

A single line of text

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_reward REWARD_MENTOR

The reward (resources) for mentoring a nation in the form {food=1,money=3.2}

Arguments:

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_reward REWARD_REFERRAL

The reward (resources) for referring a nation in the form {food=1,money=3.2}

Arguments:

<amount> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role ASSIGNABLE_ROLES

Map roles that can be assigned (or removed). See </self create:1015168434847363135> </role removeassignablerole:1015168434847363134> </self add:1015168434847363135> </self remove:1015168434847363135>

Arguments:

<value> - Map<Role, Set<Role>>

A map of a discord role to a set of roles (comma separated)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTONICK

Options: { FALSE,LEADER,NATION,DISCORD,NICKNAME } See also: </role clearnicks:1015168434847363134>

Arguments:

<mode> - AutoNickOption

Mode for automatically giving discord nicknames

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_ALLIANCES

Options: { FALSE,ALL,ALLIES } See also:

  • /coalition create coalitionname: MASKEDALLIANCES
  • </role clearallianceroles:1015168434847363134>
  • </settings_role autorole_alliance_rank:1104571317719670888>
  • </settings_role autorole_member_apps:1104571317719670888>
  • </settings_role autorole_top_x:1104571317719670888>

Arguments:

<mode> - AutoRoleOption

Mode for automatically giving discord roles

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_ALLIANCE_RANK

The ingame rank required to get an alliance role. Default: member Options: { LEADER,HEIR,OFFICER,MEMBER,APPLICANT,REMOVE,BAN,UNBAN,INVITE,UNINVITE }

Arguments:

<allianceRank> - Rank

One of the default in-game position levels

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_ALLY_GOV

Whether to give gov/member roles to allies (this is intended for coalition servers), true or false

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_ALLY_ROLES

List of roles to autorole from ally servers (this is intended for coalition servers to give gov roles to allies)

Arguments:

<roles> - Set<Roles>

A comma separated list of bot Roles

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_MEMBER_APPS

Whether member and applicant roles are automatically added or removed. Note: Set WAR_ALERT_FOR_OFFSHORES to false to not give member roles to offshore nations Cannot be used in conjuction with AUTOROLE_ALLY_GOV

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role AUTOROLE_TOP_X

The number of top alliances to provide roles for, defaults to 0 Alliances added to MASKEDALLIANCES: Additional alliances to mask with /role autoassign (if alliance masking is enabled)`` are still included outside this range

Arguments:

<topScoreRank> - Integer

A whole number

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role CONDITIONAL_ROLES

Auto assign roles based on conditions See: https://github.com/xdnw/locutus/wiki/nation_placeholders Accepts a list of filters to a role. In the form:

#cities<10:@someRole
#cities>=10:@otherRole

Use * as the filter to match all nations. Only alliance members can be given roles Use </role autoassign:1015168434847363134> to auto assign

Arguments:

<roleMap> - Map<NationFilter, Role>

Auto assign roles based on conditions See: https://github.com/xdnw/locutus/wiki/nation_placeholders Accepts a list of filters to a role. In the form:

#cities<10:@someRole
#cities>=10:@otherRole

Use * as the filter to match all nations. Only alliance members can be given role

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role addAssignableRole

Map roles that can be assigned (or removed). See </self create:1015168434847363135> </role removeassignablerole:1015168434847363134> </self add:1015168434847363135> </self remove:1015168434847363135>

Arguments:

<role> - Role

A discord role name or mention

<roles> - Set<Role>

A comma separated list of discord role names or mentions

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_role addConditionalRole

Auto assign roles based on conditions See: https://github.com/xdnw/locutus/wiki/nation_placeholders Accepts a list of filters to a role. In the form:

#cities<10:@someRole
#cities>=10:@otherRole

Use * as the filter to match all nations. Only alliance members can be given roles Use </role autoassign:1015168434847363134> to auto assign

Arguments:

<filter> - NationFilter

A comma separated list of filters (can include nations and alliances)

<role> - Role

A discord role name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax MEMBER_CAN_SET_BRACKET

Whether members can use </nation set taxbracket:1015168434776051733>

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax REQUIRED_INTERNAL_TAXRATE

This setting maps nation filters to internal tax rate for bulk automation. To list nations current rates: </tax listbracketauto:1015168434906071119> To bulk move nations: </nation set taxinternalauto:1015168434776051733> Tax rate is in the form: money/rss In the form:

#cities<10:100/100
#cities>=10:25/25

All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Arguments:

<value> - Map<NationFilter, TaxRate>

A map of nation filters to tax rates All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax REQUIRED_TAX_BRACKET

This setting maps nation filters to tax bracket for bulk automation. To list nations current rates: </tax listbracketauto:1015168434906071119> To bulk move nations: </nation set taxbracketauto:1015168434776051733> In the form:

#cities<10:1234
#cities>=10:2345

All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Arguments:

<brackets> - Map<NationFilter, Integer>

A map of nation filters to tax ids All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax TAX_BASE

The internal tax amount ($/rss) in the format e.g. 25/25 to be excluded in deposits. Defaults to 100/100 (i.e. no taxes are included in depos). Setting is retroactive. See also: </nation set taxinternal:1015168434776051733>

Arguments:

<taxRate> - TaxRate

A tax rate in the form of money/rss

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax addRequiredBracket

This setting maps nation filters to tax bracket for bulk automation. To list nations current rates: </tax listbracketauto:1015168434906071119> To bulk move nations: </nation set taxbracketauto:1015168434776051733> In the form:

#cities<10:1234
#cities>=10:2345

All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Arguments:

<filter> - NationFilter

A comma separated list of filters (can include nations and alliances)

<bracket> - TaxBracket

A tax id or url

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_tax addRequiredInternalTaxrate

This setting maps nation filters to internal tax rate for bulk automation. To list nations current rates: </tax listbracketauto:1015168434906071119> To bulk move nations: </nation set taxinternalauto:1015168434776051733> Tax rate is in the form: money/rss In the form:

#cities<10:100/100
#cities>=10:25/25

All nation filters are supported (e.g. roles) Priority is first to last (so put defaults at the bottom)

Arguments:

<filter> - NationFilter

A comma separated list of filters (can include nations and alliances)

<bracket> - TaxRate

A tax rate in the form of money/rss

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_trade TRADE_ALERT_CHANNEL

The #channel to receive alerts for trades

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts BLOCKADED_ALERTS

The #channel to receive alerts for blockades

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts DEFENSE_WAR_CHANNEL

The #channel to receive alerts for defensive wars Members and MILCOM are pinged for defensive wars To set the MILCOM role, see: /role setalias locutusrole: MILCOM discordrole:

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts ENEMY_MMR_CHANGE_ALERTS

The #channel to receive alerts when a member in enemies coalitions changes MMR

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts ESPIONAGE_ALERT_CHANNEL

The channel to get alerts when a member has their units spied successfully

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts HIDE_APPLICANT_WARS

Whether to hide war alerts for applicants

Arguments:

<value> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts LOST_WAR_CHANNEL

The #channel to post wars when our side loses a war

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts MENTION_MILCOM_FILTER

A nation filter to apply to limit what wars milcom gets pinged for.

Arguments:

<value> - NationFilter

A comma separated list of filters (can include nations and alliances)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts OFFENSIVE_WAR_CHANNEL

The #channel to receive alerts for offensive wars Members and FOREIGN_AFFAIRS role are pinged for Do Not Raid (DNR) violations To set the FOREIGN_AFFAIRS role, see: /role setalias locutusrole: FOREIGN_AFFAIRS discordrole: Wars against inactive nones do not create alerts

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts SHOW_ALLY_DEFENSIVE_WARS

Whether to show defensive war alerts for allies (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts SHOW_ALLY_OFFENSIVE_WARS

Whether to show offensive war alerts for allies (true/false)

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts UNBLOCKADED_ALERTS

The #channel to receive alerts for unblockades

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts UNBLOCKADE_REQUESTS

The #channel to receive alerts for unblockade requests

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts WAR_ALERT_FOR_OFFSHORES

Whether to do war alerts for offshore alliances

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts WAR_PEACE_ALERTS

The #channel to receive alerts for changes to any war peace offers

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts WAR_ROOM_FILTER

A an additional filter to limit which nations are allowed for a war room. War rooms are only created and maintained when attacker and defender match this filter

Arguments:

<value> - NationFilter

A comma separated list of filters (can include nations and alliances)

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_alerts WON_WAR_CHANNEL

The #channel to post wars when our side wins a war (only includes actives)

Arguments:

<channel> - MessageChannel

A discord channel name or mention

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_room ENABLE_WAR_ROOMS

If war rooms should be enabled (i.e. auto generate a channel for wars against active nations) Note: Defensive war channels must be enabled to have auto war room creation

Arguments:

<enabled> - boolean

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/settings_war_room WAR_SERVER

The guild to defer war rooms to

Arguments:

<guild> - Guild

A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ IngameNationTransfersByReceiver

Get a sheet of ingame transfers for nations, filtered by the receiver

Arguments:

<receivers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

[timeframe=%epoch%] - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ IngameNationTransfersBySender

Get a sheet of ingame transfers for nations, filtered by the sender

Arguments:

<senders> - Set<NationOrAlliance>

A comma separated list of nations and alliances

[timeframe=%epoch%] - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ ProjectSheet

Sheet of projects each nation has

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ getIngameNationTransfers

Get a sheet of in-game transfers for nations

Arguments:

<senders> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<receivers> - Set<NationOrAlliance>

[timeframe=%epoch%] - long[Timestamp]

Only transfers after timeframe (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ getNationsInternalTransfers

Get a sheet of internal transfers for nations

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[timeframe=999d] - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ projectCostCsv

This command is public

Generate csv file of project costs

This command has no arguments


/sheets_econ revenueSheet

Get a sheet of members and their revenue (compared to optimal city builds)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON_STAFF/ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_econ stockpileSheet

List all nations in the alliance and their in-game resource stockpile

Arguments:

[nationFilter] - NationList

Only include stockpiles from these nations (A comma separated list of nations, alliances and filters)

[-n normalize] - boolean

Divide stockpiles by city count

[-e onlyShowExcess] - boolean

Only show the resources well above warchest and city operation requirements

[-f forceUpdate] - boolean

Required Permissions:

  • Role(ECON_STAFF/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_econ taxBracketSheet

Generate a sheet of member tax brackets and internal tax rates note: internal tax rate is the TAX_BASE and determines what % of their taxes is excluded from deposits

Arguments:

[-f force] - boolean

[-a includeApplicants] - boolean

Required Permissions:

  • Role(ECON/ECON_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ taxRecords

Get a sheet of a nation tax deposits over a period

Arguments:

<nation> - DBNation

nation id, name or url

[startDate] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[endDate] - Long[Timestamp]

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_econ taxRevenue

Generate a google sheet of tax revenue for a list of nations

Arguments:

[nations] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-f forceUpdate] - boolean

[-u includeUntaxable] - boolean

Include the potential revenue of untaxable nations Assumes 100/100)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_econ warReimburseByNationCsv

Generate csv of war cost by nation between alliances (for reimbursement) Filters out wars where nations did not perform actions

Arguments:

<allies> - Set<DBAlliance>

The alliances with nations you want to reimburse (A comma separated list of alliances)

<enemies> - Set<DBAlliance>

The enemies during the conflict (A comma separated list of alliances)

<cutoff> - long[Timestamp]

Starting time of the conflict (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

<removeWarsWithNoDefenderActions> - boolean

If wars with no actions by the defender should NOT be reimbursed

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_econ warchestSheet

Get a sheet of members and their saved up warchest (can include deposits and potential revenue)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-c perCityWarchest] - Map<ResourceType, Double>

The required warchest per city. Else uses the guild default (A comma separated list of resources and their amounts)

[-g includeGrants] - boolean

Count current grants against warchest totals

[-n doNotNormalizeDeposits] - boolean

If negative deposits are NOT normalized (to ignore negatives)

[-d ignoreDeposits] - boolean

If deposits are NOT included in warchest totals

[-e ignoreStockpileInExcess] - boolean

Do not count resources above the required amount toward total warchest value

[-r includeRevenueDays] - Integer

Include days of potential revenue toward warchest resources (A whole number)

[-f forceUpdate] - boolean

Required Permissions:

  • Role(ECON_STAFF/ECON/MILCOM/MILCOM_NO_PINGS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_ia ActivitySheet

Generate a sheet of nation login activity from a nation id over a timeframe Days represent the % of that day a nation logs in (UTC) Numbers represent the % of that turn a nation logs in

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[trackTime=2w] - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_ia ActivitySheetFromId

Generate a sheet of nation login activity from a nation id over a timeframe Note: use the other activity sheet need info of a deleted nation Days represent the % of that day a nation logs in (UTC) Numbers represent the % of that turn a nation logs in

Arguments:

<nationId> - int

A whole number

[trackTime=2w] - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_ia AllianceSheet

Create a sheet of alliances with customized columns See https://github.com/xdnw/locutus/wiki/nation_placeholders for a list of placeholders

Arguments:

<nations> - Set<DBNation>

The nations to include in each alliance (A comma separated list of nations, alliances and filters)

<columns> - List<String>[TextArea]

The columns to use in the sheet (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/INTERNAL_AFFAIRS/ECON/FOREIGN_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/sheets_ia NationSheet

A sheet of nations stats with customizable columns See https://github.com/xdnw/locutus/wiki/nation_placeholders for a list of placeholders

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<columns> - List<String>[TextArea]

A space separated list of columns to use in the sheet Can include NationAttribute as placeholders in columns All NationAttribute placeholders must be surrounded by {} e.g. {nation} (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-e updateSpies] - boolean

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM/ECON/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_ia daychange

Generate a sheet of nations and their day change Nations not in an alliance registered to this guild can only show the public day change estimate based on unit purchases

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(INTERNAL_AFFAIRS_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/sheets_milcom DeserterSheet

Generate a sheet of nations who have left the provided alliances over a timeframe

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances

<cuttOff> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[filter=*] - Set<DBNation>

Only check these nations (A comma separated list of nations, alliances and filters)

[-a ignoreInactive] - boolean

Ignore inactive nations

[-v ignoreVM] - boolean

Ignore vacation mode nations

[-n ignoreMembers] - boolean

Ignore nations that are member in an alliance

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom IntelOpSheet

Generate a list of raidable targets to gather intel on <time>- filters out nations we have loot intel on in that period <attackers>- The nations to assign to do the ops (i.e. your alliance link) <ignore-topX>- filter out top X alliances (e.g. due to DNR), in addition to the set dnr coalition

Add -l to remove targets with loot history Add -d to list targets currently on the dnr

e.g. /sheets_milcom intelopsheet time:10d attacker:Rose dnrtopx:25

Arguments:

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

[dnrTopX] - Integer

Exclude nations in the top X alliances (or direct allies) (A whole number)

[-l ignoreWithLootHistory] - boolean

If nations with loot history are ignored

[-d ignoreDNR] - boolean

If the alliance Do Not Raid settings are checked

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom MMRSheet

Generate a sheet of alliance/nation/city military unit and building counts (MMR)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-f forceUpdate] - boolean

[-c showCities] - boolean

List the military building count of each city instead of each nation

Required Permissions:

  • Role(MILCOM/INTERNAL_AFFAIRS/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom SpySheet

Generate a spy blitz sheet with the defender on the left and attackers on the right

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

<defenders> - Set<DBNation>

[allowedTypes=nuke,missile,ships,aircraft,tanks,spies] - Set<Operation>

Allowed spy operations (A comma separated list of spy operation types)

[-f forceUpdate] - boolean

Force an update of all participant spy count

[-e checkEspionageSlots] - boolean

Check the defensive spy slots

[-k prioritizeKills] - boolean

Prioritize unit kills instead of damage

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-d maxDef=3] - Integer

Max Attackers to assign per defender (A whole number)

[-p prioritizeAlliances] - Set<DBAlliance>

Prioritize defenders in these alliances (A comma separated list of alliances)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom WarCostByAllianceSheet

War cost (for each alliance) broken down Damage columns:

  • net damage (unit, infrastructure, loot, consumption, total)
  • losses (unit, infrastructure, consumption, total)
  • damage inflicted (unit, infrastructure, consumption, total)
  • net resources (money, gasoline, munitions, aluminum, steel)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom WarCostByResourceSheet

Transfer sheet of war cost (for each nation) broken down by resource type Useful to see costs incurred by fighting for each nation, to plan for future wars, or to help with reimbursement

Arguments:

<attackers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<defenders> - Set<NationOrAlliance>

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-c excludeConsumption] - boolean

[-i excludeInfra] - boolean

[-l excludeLoot] - boolean

[-u excludeUnitCost] - boolean

[-g includeGray] - boolean

Include nations on the gray color bloc

[-d includeDefensives] - boolean

Include defensive wars

[-n normalizePerCity] - boolean

Use the average cost per city

[-w normalizePerWar] - boolean

Use the average cost per war

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom WarCostSheet

War cost (for each nation) broken down by war type

Arguments:

<attackers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<defenders> - Set<NationOrAlliance>

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[endTime] - Long[Timestamp]

[-c excludeConsumption] - boolean

[-i excludeInfra] - boolean

[-l excludeLoot] - boolean

[-u excludeUnitCost] - boolean

[-n normalizePerCity] - boolean

Average the cost by the nation's city count

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom combatantSheet

Generate a sheet of nations and their military units relative to the nations they are fighting

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-i includeInactive] - boolean

Include inactive nations (2 days)

[-a includeApplicants] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom convertHidudeSpySheet

Convert hidude's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom convertTKRSpySheet

Convert TKR's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom convertdtcspysheet

Convert dtc's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom listSpyTargets

Generate a subset of a spy sheet for only certain attackers or defenders

Arguments:

<spySheet> - SpreadSheet

The current spy sheet (A google spreadsheet id or url)

<attackers> - Set<DBNation>

Which attackers to include (A comma separated list of nations, alliances and filters)

[defenders=*] - Set<DBNation>

Which defenders to include Default: All (A comma separated list of nations, alliances and filters)

[-h headerRow] - Integer

The row the header is on Default: 1st row (A whole number)

[-s output] - SpreadSheet

Sheet to put the subset in (A google spreadsheet id or url)

[-a groupByAttacker] - boolean

Group the spy operations (left column) by attacker

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom lootValueSheet

Generate a list of nations and their expected raid loot e.g. /sheets_milcom lootvaluesheet #cities<10,#position>1,#active_m<2880,someAlliance

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom validateSpyBlitzSheet

Run checks on a spy blitz sheet. Checks that all nations are in range of their spy blitz targets and that they have no more than the provided number of offensive operations. Add true for the day-change argument to double the offensive op limit

Arguments:

[sheet] - SpreadSheet

A google spreadsheet id or url

[dayChange=false] - boolean

If the sheet is for attacks at day change

[filter=*] - Set<DBNation>

Only allow attacking these nations (A comma separated list of nations, alliances and filters)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom warSheet

Generate a sheet of active wars between two coalitions (allies, enemies) Add -i to list concluded wars

Arguments:

<allies> - Set<DBNation>

A comma separated list of nations, alliances and filters

<enemies> - Set<DBNation>

[cutoff=5d] - long[Timestamp]

Cutoff date for wars (default 5 days ago) (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-i includeConcludedWars] - boolean

[-s sheetId] - String

A single line of text

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/sheets_milcom warchestSheet

Get a sheet of members and their saved up warchest (can include deposits and potential revenue)

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-c perCityWarchest] - Map<ResourceType, Double>

The required warchest per city. Else uses the guild default (A comma separated list of resources and their amounts)

[-g includeGrants] - boolean

Count current grants against warchest totals

[-n doNotNormalizeDeposits] - boolean

If negative deposits are NOT normalized (to ignore negatives)

[-d ignoreDeposits] - boolean

If deposits are NOT included in warchest totals

[-e ignoreStockpileInExcess] - boolean

Do not count resources above the required amount toward total warchest value

[-r includeRevenueDays] - Integer

Include days of potential revenue toward warchest resources (A whole number)

[-f forceUpdate] - boolean

Required Permissions:

  • Role(ECON_STAFF/ECON/MILCOM/MILCOM_NO_PINGS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/simulate air

This command is public

Simulate an airstrike with the given attacker and defender aircraft

Arguments:

<attAircraft> - int

A whole number

<defAircraft> - int


/simulate casualties

This command is public

Simulate an attack between two nations and return the odds and casualties

Arguments:

<attack> - AttackType

An attack type

<warType> - WarType

A war declaration type

<enemy> - DBNation

nation id, name or url

[me=%user%] - DBNation

[attackerMilitary] - Map<MilitaryUnit, Long>

A comma separated list of units and their amounts

[defenderMilitary] - Map<MilitaryUnit, Long>

[-att_policy attackerPolicy] - WarPolicy

A war policy

[-def_policy defenderPolicy] - WarPolicy

[-f defFortified] - boolean

[-ac attAirControl] - boolean

[-dac defAirControl] - boolean

[-s selfIsDefender] - boolean

[-ua unequipAttackerSoldiers] - boolean

[-ud unequipDefenderSoldiers] - boolean

[-ap attackerProjects] - Set<Project>

A comma separated list of alliance projects

[-dp defenderProjects] - Set<Project>


/simulate fastBeige

This command is public

Return quickest attacks to beige an enemy at a resistance level

Arguments:

<resistance> - int

A whole number

[-g noGround] - boolean

Don't allow ground attacks

[-s noShip] - boolean

Don't allow naval attacks

[-a noAir] - boolean

Don't allow aircraft attacks

[-m noMissile] - boolean

Don't allow missile attacks

[-n noNuke] - boolean

Don't allow nuclear attacks


/simulate ground

This command is public

Simulate a ground attack with the given attacker and defender troops Halve the tank number if the opponent has air control Note: Use math via: 50/2

Arguments:

<attSoldiersUnarmed> - int

A whole number

<attSoldiers> - int

<attTanks> - int

<defSoldiersUnarmed> - int

<defSoldiers> - int

<defTanks> - int


/simulate naval

This command is public

Simulate a naval battle with the given attacker and defender ships

Arguments:

<attShips> - int

A whole number

<defShips> - int


/spy counter

Find nations to do a spy op against the specified enemy Op types: (INTEL,NUKE,MISSILE,SHIPS,AIRCRAFT,TANKS,SPIES,SOLDIER) or * (for all op types) The alliance argument is optional Use success>80 to specify a cutoff for spyop success

Arguments:

<enemy> - DBNation

The enemy to spy (nation id, name or url)

<operations> - Set<Operation>

The allowed spy operations (A comma separated list of spy operation types)

[counterWith] - Set<DBNation>

The nations doing the spy ops on the enemy Defaults to nations in the alliance (A comma separated list of nations, alliances and filters)

[-s minSuccess] - Integer

Required success rate for the spy op (A whole number)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy find fromNotification

See who was online at the time of a spy op (UTC)

Arguments:

<times> - String

A single line of text

<defenderSpies> - int

A whole number

[defender] - DBNation

nation id, name or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • Whitelist(): Must be run in a guild whitelisted by the bot developer

/spy find intel

Find nations to gather intel on (sorted by infra * days since last intel)

Arguments:

[dnrTopX] - Integer

Exclude nations in the top X alliances (or direct allies) (A whole number)

[-d ignoreDNR] - boolean

If the alliance Do Not Raid settings are ignore

[-n attacker] - DBNation

The nation gathering intel (nation id, name or url)

[-s score] - Double

The score range of the nation gathering intel (A decimal number)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy find target

List enemies and spy operation by the highest damage: Use * for the alliance to target enemies with active wars against allies Use * for op type to automatically find the best op type Use e.g. 80 as the requiredSuccess to only list operations above 80% success

e.g. /spy find target targets:enemies operations:spies

Arguments:

<targets> - Set<DBNation>

The allowed targets (A comma separated list of nations, alliances and filters)

<operations> - Set<Operation>

The allowed operations (A comma separated list of spy operation types)

[requiredSuccess=40] - int

The required chance of success for an operation (A whole number)

[-d directMesssage] - boolean

Return results as a discord direct message

[-k prioritizeKills] - boolean

Sort by unit kills instead of damage

[-n attacker] - DBNation

The nation doing the spy operation Defaults to your nation (nation id, name or url)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet convertHidude

Convert hidude's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet convertTKR

Convert TKR's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet convertdtc

Convert dtc's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet

A google spreadsheet id or url

[-s output] - SpreadSheet

[-a groupByAttacker] - boolean

If results (left column) are grouped by the attacker instead of the defender

[-f forceUpdate] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet copyForAlliance

Generate a subset of a spy sheet for only certain attackers or defenders

Arguments:

<spySheet> - SpreadSheet

The current spy sheet (A google spreadsheet id or url)

<attackers> - Set<DBNation>

Which attackers to include (A comma separated list of nations, alliances and filters)

[defenders=*] - Set<DBNation>

Which defenders to include Default: All (A comma separated list of nations, alliances and filters)

[-h headerRow] - Integer

The row the header is on Default: 1st row (A whole number)

[-s output] - SpreadSheet

Sheet to put the subset in (A google spreadsheet id or url)

[-a groupByAttacker] - boolean

Group the spy operations (left column) by attacker

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet free_ops

Generate a sheet of guild member nations that have free espionage spy operations Useful for finding who can participate in a spy blitz

Arguments:

[nations] - NationList

Nations to list in the sheet Defaults to the guild alliance (A comma separated list of nations, alliances and filters)

[addColumns] - List<String>[TextArea]

A space separated list of columns to add to the sheet Can include NationAttribute as placeholders in columns All NationAttribute placeholders must be surrounded by {} e.g. {nation} (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-r requireXFreeOps] - Integer

Number of free espionage ops required (A whole number)

[-s requireSpies] - Integer

Number of spies required (A whole number)

[-sheet sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • HasApi(): Must be used in a guild with a valid API_KEY configured

/spy sheet generate

Generate a spy blitz sheet with the defender on the left and attackers on the right

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

<defenders> - Set<DBNation>

[allowedTypes=nuke,missile,ships,aircraft,tanks,spies] - Set<Operation>

Allowed spy operations (A comma separated list of spy operation types)

[-f forceUpdate] - boolean

Force an update of all participant spy count

[-e checkEspionageSlots] - boolean

Check the defensive spy slots

[-k prioritizeKills] - boolean

Prioritize unit kills instead of damage

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-d maxDef=3] - Integer

Max Attackers to assign per defender (A whole number)

[-p prioritizeAlliances] - Set<DBAlliance>

Prioritize defenders in these alliances (A comma separated list of alliances)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet intel

Generate a list of raidable targets to gather intel on <time>- filters out nations we have loot intel on in that period <attackers>- The nations to assign to do the ops (i.e. your alliance link) <ignore-topX>- filter out top X alliances (e.g. due to DNR), in addition to the set dnr coalition

Add -l to remove targets with loot history Add -d to list targets currently on the dnr

e.g. /sheets_milcom intelopsheet time:10d attacker:Rose dnrtopx:25

Arguments:

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

[dnrTopX] - Integer

Exclude nations in the top X alliances (or direct allies) (A whole number)

[-l ignoreWithLootHistory] - boolean

If nations with loot history are ignored

[-d ignoreDNR] - boolean

If the alliance Do Not Raid settings are checked

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy sheet validate

Run checks on a spy blitz sheet. Checks that all nations are in range of their spy blitz targets and that they have no more than the provided number of offensive operations. Add true for the day-change argument to double the offensive op limit

Arguments:

[sheet] - SpreadSheet

A google spreadsheet id or url

[dayChange=false] - boolean

If the sheet is for attacks at day change

[filter=*] - Set<DBNation>

Only allow attacking these nations (A comma separated list of nations, alliances and filters)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/spy tierGraph

This command is public

Generate a graph of spy counts by city count between two coalitions Nations which are applicants, in vacation mode or inactive (2 days) are excluded

Arguments:

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-t total] - boolean

Graph the total spies instead of average per nation

[-j attachJson] - boolean


/stats_other allianceMetricsAB

This command is public

Graph an alliance metric over time for two coalitions

Arguments:

<metric> - AllianceMetric

A locutus metric for alliances

<coalition1> - Set<DBAlliance>

A comma separated list of alliances

<coalition2> - Set<DBAlliance>

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/stats_other allianceMetricsCompareByTurn

This command is public

Compare the metric over time between multiple alliances

Arguments:

<metric> - AllianceMetric

A locutus metric for alliances

<alliances> - Set<DBAlliance>

A comma separated list of alliances

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/stats_other allianceNationsSheet

Create a google sheet of nations, grouped by alliance, with the specified columns Prefix a column with avg: to force an average Prefix a column with total: to force a total

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<columns> - List<String>[TextArea]

The columns to have. See: https://github.com/xdnw/locutus/wiki/nation_placeholders (Multiple words or text separated by spaces Use quotes for multi-word arguments)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-t useTotal] - boolean

Use the sum of each nation's attributes instead of the average

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

Required Permissions:

  • Role(ECON/MILCOM/FOREIGN_AFFAIRS/INTERNAL_AFFAIRS, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/stats_other findProducer

This command is public

Get a ranking of alliances or nations by their resource production

Arguments:

<resources> - List<ResourceType>

The resources to rank production of (A comma separated list of resource types)

[nationList] - NationList

Nations to include in the ranking (A comma separated list of nations, alliances and filters)

[-m ignoreMilitaryUpkeep] - boolean

[-t ignoreTradeBonus] - boolean

Exclude color trade bloc bonus

[-b ignoreNationBonus] - boolean

Exclude the new nation bonus

[-n includeNegative] - boolean

Include negative resource revenue

[-a listByNation] - boolean

Rank by nation instead of alliances

[-s listAverage] - boolean

Rank by average per nation instead of total per alliance

[-u uploadFile] - boolean

[-i includeInactive] - boolean

Include inactive nations (2 days)


/stats_other inflows

This command is public

List the public resource imports or exports of a nation or alliance to other nations or alliances over a period of time

Arguments:

<nationOrAlliances> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<cutoffMs> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-i hideInflows] - boolean

Do not show inflows

[-o hideOutflows] - boolean

Do not show outflows


/stats_other nationRanking

This command is public

Rank nations by an attribute

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<attribute> - NationAttributeDouble

A completed nation attribute that accepts no arguments and returns a number To get the attribute for an attribute with arguments, you must provide a value in brackets See: https://github.com/xdnw/locutus/wiki/nation_placeholders

[-a groupByAlliance] - boolean

[-r reverseOrder] - boolean

[-t total] - boolean

Total value instead of average per nation


/stats_other radiationByTurn

This command is public

Create a graph of the radiation by turn

Arguments:

<continents> - Set<Continent>

A comma separated list of continents, or *

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-j attachJson] - boolean


/stats_other recruitmentRankings

This command is public

Rank alliances by their new members over a timeframe

Arguments:

<cutoff> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[topX=80] - int

Top X alliances to show in the ranking (A whole number)

[-u uploadFile] - boolean


/stats_other tradepricebyday

Generate a graph of average buy and sell trade price by day

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<numDays> - int

A whole number

[-j attachJson] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/stats_tier attributeTierGraph

This command is public

Graph the attributes of the nations of two coalitions by city count e.g. How many nations, soldiers etc. are at each city

Arguments:

<metric> - NationAttributeDouble

A completed nation attribute that accepts no arguments and returns a number To get the attribute for an attribute with arguments, you must provide a value in brackets See: https://github.com/xdnw/locutus/wiki/nation_placeholders

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-t total] - boolean

Compare the sum of each nation's attribute in the coalition instead of average


/stats_tier cityTierGraph

This command is public

Generate a bar char comparing the nation at each city count (tiering) between two coalitions

Arguments:

<coalition1> - NationList

A comma separated list of nations, alliances and filters

<coalition2> - NationList

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-j attachJson] - boolean


/stats_tier mmrTierGraph

This command is public

Generate a graph of nation military levels by city count between two coalitions

Arguments:

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-s sheet] - SpreadSheet

A google spreadsheet id or url

[-b buildings] - boolean

Graph the average military buildings instead of units


/stats_tier scoreTierGraph

This command is public

Generate a graph of nation counts by score between two coalitions

Arguments:

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-j attachJson] - boolean


/stats_tier spyTierGraph

This command is public

Generate a graph of spy counts by city count between two coalitions Nations which are applicants, in vacation mode or inactive (2 days) are excluded

Arguments:

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-a includeApplicants] - boolean

[-t total] - boolean

Graph the total spies instead of average per nation

[-j attachJson] - boolean


/stats_tier strengthTierGraph

This command is public

Generate a graph of nation military strength by score between two coalitions

Arguments:

<coalition1> - Set<DBNation>

A comma separated list of nations, alliances and filters

<coalition2> - Set<DBNation>

[-i includeInactives] - boolean

[-n includeApplicants] - boolean

[-a col1MMR] - MMRDouble

Use the score/strength of coalition 1 nations at specific military unit levels (4 decimal numbers representing barracks, factory, hangar, drydock)

[-b col2MMR] - MMRDouble

Use the score/strength of coalition 2 nations at specific military unit levels (4 decimal numbers representing barracks, factory, hangar, drydock)

[-c col1Infra] - Double

Use the score of coalition 1 nations at specific average infrastructure levels (A decimal number)

[-d col2Infra] - Double

Use the score of coalition 2 nations at specific average infrastructure levels (A decimal number)

[-j attachJson] - boolean


/stats_war counterStats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance

An alliance name id or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/stats_war myloot

This command is public

War costs stats between two coalitions

Arguments:

<coalition2> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<timeStart> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[timeEnd] - Long[Timestamp]

[-u ignoreUnits] - boolean

[-i ignoreInfra] - boolean

[-c ignoreConsumption] - boolean

[-l ignoreLoot] - boolean

[-b ignoreBuildings] - boolean

[-id listWarIds] - boolean

Return a list of war ids

[-t showWarTypes] - boolean

Return a tally of war types

[-w allowedWarTypes] - Set<WarType>

A comma separated list of war declaration types

[-s allowedWarStatus] - Set<WarStatus>

A comma separated list of war statuses

[-a allowedAttackTypes] - Set<AttackType>

A comma separated list of attack types


/stats_war warCost

This command is public

War costs of a single war (use warsCost for multiple wars)

Arguments:

<war> - DBWar

A war id or url

[-u ignoreUnits] - boolean

[-i ignoreInfra] - boolean

[-c ignoreConsumption] - boolean

[-l ignoreLoot] - boolean

[-b ignoreBuildings] - boolean


/stats_war warCostRanking

This command is public

Rank war costs between two parties

Arguments:

<timeStart> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[timeEnd] - Long[Timestamp]

[coalition1=*] - Set<NationOrAlliance>

A comma separated list of nations and alliances

[coalition2] - Set<NationOrAlliance>

[-i excludeInfra] - boolean

[-c excludeConsumption] - boolean

[-l excludeLoot] - boolean

[-b excludeBuildings] - boolean

[-u excludeUnits] - boolean

[-t total] - boolean

Return total war costs instead of average per war

[-p netProfit] - boolean

Rank by net profit

[-d damage] - boolean

Rank by damage

[-n netTotal] - boolean

Rank by net

[-g groupByAlliance] - boolean

Rank alliances

[-s scalePerCity] - boolean

Scale rankings by city count

[-kills unitKill] - MilitaryUnit

Military unit name

[-deaths unitLoss] - MilitaryUnit

[-attack attackType] - AttackType

An attack type

[-wartype allowedWarTypes] - Set<WarType>

A comma separated list of war declaration types

[-status allowedWarStatuses] - Set<WarStatus>

A comma separated list of war statuses

[-attacks allowedAttacks] - Set<AttackType>

A comma separated list of attack types

[-a onlyRankCoalition1] - boolean

[-r resource] - ResourceType

Rank the specific resource costs (The name of a resource)

[-f uploadFile] - boolean


/stats_war warRanking

This command is public

Rank the number of wars between two coalitions by nation or alliance Defaults to alliance ranking

Arguments:

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

<attackers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<defenders> - Set<NationOrAlliance>

[-o onlyOffensives] - boolean

Only include offensive wars in the ranking

[-d onlyDefensives] - boolean

Only include defensive wars in the ranking

[-n normalizePerMember] - boolean

Rank the average wars per alliance member

[-i ignore2dInactives] - boolean

Ignore inactive nations when determining alliance member counts

[-a rankByNation] - boolean

Rank by nation instead of alliance

[-t warType] - WarType

Only rank these war types (A war declaration type)

[-s statuses] - Set<WarStatus>

Only rank wars with these statuses (A comma separated list of war statuses)


/stats_war warStatusRankingByAA

This command is public

Generate ranking of war status by Alliance

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

<defenders> - Set<DBNation>

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)


/stats_war warStatusRankingByNation

This command is public

Generate ranking of war status by Nation

Arguments:

<attackers> - Set<DBNation>

A comma separated list of nations, alliances and filters

<defenders> - Set<DBNation>

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)


/stats_war warattacksbyday

This command is public

Display a graph of the number of attacks by the specified nations per day over a time period

Arguments:

[nations] - Set<DBNation>

A comma separated list of nations, alliances and filters

[cutoff] - Long[Timestamp]

Period of time to graph (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[allowedTypes] - Set<AttackType>

Restrict to a list of attack types (A comma separated list of attack types)


/stats_war warsCost

This command is public

War costs between two coalitions over a time period

Arguments:

<coalition1> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<coalition2> - Set<NationOrAlliance>

<timeStart> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[timeEnd] - Long[Timestamp]

[-u ignoreUnits] - boolean

[-i ignoreInfra] - boolean

[-c ignoreConsumption] - boolean

[-l ignoreLoot] - boolean

[-b ignoreBuildings] - boolean

[-id listWarIds] - boolean

[-t showWarTypes] - boolean

[-w allowedWarTypes] - Set<WarType>

A comma separated list of war declaration types

[-s allowedWarStatus] - Set<WarStatus>

A comma separated list of war statuses

[-a allowedAttackTypes] - Set<AttackType>

A comma separated list of attack types


/tax bracketsheet

Generate a sheet of member tax brackets and internal tax rates note: internal tax rate is the TAX_BASE and determines what % of their taxes is excluded from deposits

Arguments:

[-f force] - boolean

[-a includeApplicants] - boolean

Required Permissions:

  • Role(ECON/ECON_STAFF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/tax deposits

Get a sheet of a nation tax deposits over a period If a tax base is set for the nation or alliance then only the portion within member holdings are included by default

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[baseTaxRate] - TaxRate

Set to 0/0 to include all taxes (A tax rate in the form of money/rss)

[startDate] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[endDate] - Long[Timestamp]

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/tax info

View a nation's taxability, in-game tax rate, and internal tax-rate

Arguments:

<nation> - DBNation

nation id, name or url

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/tax listBracketAuto

List the assigned taxrate if REQUIRED_TAX_BRACKET or REQUIRED_INTERNAL_TAXRATE are set Note: this command does set nations brackets. See: /tax setNationBracketAuto and /nation set taxinternalAuto

Arguments:

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(ECON_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/tax records

Get a sheet of a nation tax deposits over a period

Arguments:

<nation> - DBNation

nation id, name or url

[startDate] - Long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[endDate] - Long[Timestamp]

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/tax setNationBracketAuto

Bulk set nation tax brackets as configured in the guild setting: REQUIRED_TAX_BRACKET

Arguments:

[nations] - Set<DBNation>

The nations to set tax brackets for If not specified, all nations in the alliance will be used (A comma separated list of nations, alliances and filters)

[-p ping] - boolean

Ping users if their brackets are modified

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(ECON_STAFF): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/test dummy

This command is public

Dummy command. No output

This command has no arguments


/test test_image

This command is public

No description provided

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url


/trade accept

Deposit your pending trades into your nation's holdings for this guild The receiver must be authenticated with the bot and have bank access in an alliance Only resources sold for $0 or food bought for cash are accepted

Arguments:

<receiver> - DBNation

nation id, name or url

[amount] - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[-a useLogin] - boolean

[-f force] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade average

This command is public

Get the average trade price of resources over a period of time

Arguments:

<time> - long[Timestamp]

Time to average over (from today) (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)


/trade compareStockpileValueByDay

Generate a graph comparing market values of two resource amounts by day

Arguments:

<stockpile1> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

<stockpile2> - Map<ResourceType, Double>

<numDays> - int

A whole number

[-j attachJson] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade findProducer

This command is public

Get a ranking of alliances or nations by their resource production

Arguments:

<resources> - List<ResourceType>

The resources to rank production of (A comma separated list of resource types)

[nationList] - NationList

Nations to include in the ranking (A comma separated list of nations, alliances and filters)

[-m ignoreMilitaryUpkeep] - boolean

[-t ignoreTradeBonus] - boolean

Exclude color trade bloc bonus

[-b ignoreNationBonus] - boolean

Exclude the new nation bonus

[-n includeNegative] - boolean

Include negative resource revenue

[-a listByNation] - boolean

Rank by nation instead of alliances

[-s listAverage] - boolean

Rank by average per nation instead of total per alliance

[-u uploadFile] - boolean

[-i includeInactive] - boolean

Include inactive nations (2 days)


/trade findTrader

List nations who have bought and sold the most of a resource over a period

Arguments:

<type> - ResourceType

The name of a resource

<cutoff> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[buyOrSell] - String

A single line of text

[-a groupByAlliance] - boolean

Group rankings by each nation's current alliance

[-p includeMoneyTrades] - boolean

Include trades done outside of standard market prices

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade margin

This command is public

Get the margin between buy and sell for each resource

Arguments:

[-p usePercent] - boolean

Display the margin percent instead of absolute difference


/trade marginByDay

Generate a graph of average trade buy and sell margin by day

Arguments:

<numDays> - int

A whole number

[percent=true] - boolean

Use the margin percent instead of absolute difference

[-j attachJson] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade moneyTrades

This command is public

View an accumulation of all the net money trades a nation made, grouped by nation Money trades are selling resources for close to $0 or buying for very large money amounts

Arguments:

<nation> - DBNation

nation id, name or url

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-f forceUpdate] - boolean

[-a addBalance] - boolean

Return a deposits add command for each grouping


/trade offer buy

Create a bot trade offer on discord for buying a resource

Arguments:

<resource> - ResourceType

The name of a resource

<quantity> - Long

The quantity of the resource you are receiving (A whole number)

[-minPPU minPPU] - Integer

The minimum price per unit you are exchanging for (A whole number)

[-maxPPU maxPPU] - Integer

The maximum price per unit you are exchanging for (A whole number)

[-n negotiable] - Boolean

If prices are negotiable

[-e expire] - Long[Timediff]

When the offer is no longer available (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-x exchangeFor] - List<ResourceType>

The resources you will exchange for (A comma separated list of resource types)

[-p exchangePPU] - Map<ResourceType, Double>

The equivalent price per unit you will accept for each resource (A comma separated list of resources and their amounts)

[-f force] - boolean

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/trade offer buy_list

List the bot offers nations have on discord for you buying a given resource

Arguments:

<youBuy> - ResourceType

The name of a resource

[youProvide=MONEY] - ResourceType

[allowedTraders] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-l sortByLowestMinPrice] - boolean

Sort the offers by the lowest minimum offer price Comparison prices for resources are converted to weekly average cash equivalent

[-h sortByLowestMaxPrice] - boolean

Sort the offers by the lowest maximum offer price Comparison prices for resources are converted to weekly average cash equivalent

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade offer delete

Delete one of your bot trade offers on discord

Arguments:

[deleteResource] - ResourceType

The resource you want to remove all your offers of (The name of a resource)

[buyOrSell] - String

Remove BUYING or SELLING of that resource (A single line of text)

[-i deleteId] - Integer

The offer id you want to delete (A whole number)

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade offer info

View the details of a bot trade offer on discord

Arguments:

<offerId> - int

The id of a trade offer (A whole number)

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade offer my_offers

List the bot trade offers you have on discord

This command has no arguments

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade offer sell

Create a bot trade offer on discord for selling a resource

Arguments:

<resource> - ResourceType

The name of a resource

<quantity> - Long

The quantity of the resource you are sending (A whole number)

[-minPPU minPPU] - Integer

The minimum price per unit you are exchanging for (A whole number)

[-maxPPU maxPPU] - Integer

The maximum price per unit you are exchanging for (A whole number)

[-n negotiable] - Boolean

If prices are negotiable

[-e expire] - Long[Timediff]

When the offer is no longer available (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-x exchangeFor] - List<ResourceType>

The resources you will exchange for (A comma separated list of resource types)

[-p exchangePPU] - Map<ResourceType, Double>

The equivalent price per unit you will accept for each resource (A comma separated list of resources and their amounts)

[-f force] - boolean

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/trade offer sell_list

List the bot offers nations have on discord for you selling a given resource

Arguments:

<youSell> - ResourceType

The name of a resource

[youReceive=MONEY] - ResourceType

[allowedTraders] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-l sortByLowestMinPrice] - boolean

Sort the offers by the lowest minimum offer price Comparison prices for resources are converted to weekly average cash equivalent

[-h sortByLowestMaxPrice] - boolean

Sort the offers by the lowest maximum offer price Comparison prices for resources are converted to weekly average cash equivalent

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade offer update

Update one of your bot trade offers on discord

Arguments:

<offerId> - int

The id of your trade offer (A whole number)

<quantity> - Long

The quantity of the resource you are exchanging (A whole number)

[-minPPU minPPU] - Integer

The minimum price per unit you are exchanging for (A whole number)

[-maxPPU maxPPU] - Integer

The maximum price per unit you are exchanging for (A whole number)

[-n negotiable] - Boolean

If prices are negotiable

[-e expire] - Long[Timediff]

When the offer is no longer available (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-x exchangeFor] - List<ResourceType>

The resources you will accept in return (A comma separated list of resource types)

[-p exchangePPU] - Map<ResourceType, Double>

The equivalent price per unit you will accept for each resource (A comma separated list of resources and their amounts)

[-f force] - boolean

Required Permissions:

  • Role(MEMBER, guild: 672217848311054346): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup

/trade price

This command is public

Get the current top buy and sell price of each resource

This command has no arguments


/trade priceByDay

Generate a graph of average buy and sell trade price by day

Arguments:

<resources> - List<ResourceType>

A comma separated list of resource types

<numDays> - int

A whole number

[-j attachJson] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade profit

This command is public

View an accumulation of all the net trades nations have made over a time period

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)


/trade ranking

This command is public

View an accumulation of all the net trades a nation made, grouped by nation.

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-a groupByAlliance] - boolean

Group by alliance instead of nation

[-u uploadFile] - boolean


/trade totalByDay

Generate a graph of average trade buy and sell total by day

Arguments:

<numDays> - int

A whole number

[-j attachJson] - boolean

[-r resources] - List<ResourceType>

A comma separated list of resource types

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade trending

Generate a google sheet of the amount traded of each resource at each price point over a period of time Credits are grouped by 10,000, food by 10, everything else is actual price

Arguments:

<time> - long[Timestamp]

Date to start from (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/trade value

This command is public

Show the total market value of resource amounts

Arguments:

<resources> - Map<ResourceType, Double>

A comma separated list of resources and their amounts

[-n normalize] - boolean

Remove negative amounts and return the scaled resource amounts of equivalent value

[-b useBuyPrice] - boolean

Use the average buying price

[-s useSellPrice] - boolean

Use the average selling price

[-t convertType] - ResourceType

Show total value in a resource instead of money (The name of a resource)


/trade volume

This command is public

Get the change in trade volume of each resource over a period of time

This command has no arguments


/trade volumebyday

Generate a graph of average trade buy and sell volume by day

Arguments:

<numDays> - int

A whole number

[-j attachJson] - boolean

[-r resources] - List<ResourceType>

A comma separated list of resource types

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer bulk

Send multiple transfers to nations/alliances according to a sheet The transfer sheet columns must be nations (which has the nations or alliance name/id/url) and then there must be a column named for each resource type you wish to transfer OR use a column called resources which has a resource list (e.g. a json object of the resources)

Arguments:

<sheet> - TransferSheet

A google spreadsheet id or url. Must have a nation or leader column as well as the names of each resource

<depositType> - DepositTypeInfo

A DepositType optionally with a value and a city tag

[-n depositsAccount] - DBNation

The nation account to deduct from (nation id, name or url)

[-a useAllianceBank] - DBAlliance

The alliance bank to send from Defaults to the offshore (An alliance name id or url)

[-o useOffshoreAccount] - DBAlliance

The alliance account to deduct from Alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url)

[-t taxAccount] - TaxBracket

The tax account to deduct from (A tax id or url)

[-ta existingTaxAccount] - boolean

Deduct from the receiver's tax bracket account

[-e expire] - Long[Timediff]

Have the transfer ignored from nation holdings after a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-m convertToMoney] - boolean

[-em escrow_mode] - EscrowMode

The mode for escrowing funds (e.g. if the receiver is blockaded) Defaults to never (The mode for escrowing funds for a transfer, such as when a receiver is blockaded)

[-b bypassChecks] - boolean

[-f force] - boolean

[-k key] - UUID

Universally Unique IDentifier

Required Permissions:

  • Role(ECON_WITHDRAW_SELF/ECON, any, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer internal alliance

Send from your alliance offshore account to another account (internal transfer)

Arguments:

<amount> - Map<ResourceType, Double>[AllianceDepositLimit]

A comma separated list of resources and their amounts, which will be restricted by an alliance's account balance

<receiver> - NationOrAllianceOrGuild

A nation or alliance name, url or id, or a guild id

[receiverGuild] - Guild

The guild to send to Else it will use the guild of the receiver (A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID)

[receiverAlliance] - DBAlliance

The alliance to send to Else it will use the alliance of the receiver (An alliance name id or url)

[senderAlliance] - DBAlliance

The alliance to send from Else it will use the alliance of the sender (An alliance name id or url)

[senderNation] - DBNation

The nation to send from Else it will use the nation of the sender (nation id, name or url)

[-f confirm] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer internal nation

Send from your nation's deposits) to another account (internal transfer

Arguments:

<amount> - Map<ResourceType, Double>[AllianceDepositLimit]

A comma separated list of resources and their amounts, which will be restricted by an alliance's account balance

<receiver> - NationOrAllianceOrGuild

A nation or alliance name, url or id, or a guild id

[receiverGuild] - Guild

The guild to send to Else it will use the guild of the receiver (A discord guild id. See: https://en.wikipedia.org/wiki/Template:Discord_server#Getting_Guild_ID)

[receiverAlliance] - DBAlliance

The alliance to send to Else it will use the alliance of the receiver (An alliance name id or url)

[senderAlliance] - DBAlliance

The alliance to send from Else it will use the alliance of the sender (An alliance name id or url)

[-f confirm] - boolean

Required Permissions:

  • Role(ECON): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer offshore

Send the funds in the alliance bank to an alliance added to the offshore coalition in the bot Optionally specify warchest and offshoring account

Arguments:

[to] - DBAlliance

Offshore alliance to send funds to (An alliance name id or url)

[warchest={}] - Map<ResourceType, Double>

The amount of resources to keep in the bank (A comma separated list of resources and their amounts)

[account] - NationOrAllianceOrGuild

The account to offshore with (defaults to the sender alliance) (A nation or alliance name, url or id, or a guild id)

Required Permissions:

  • Role(MEMBER/ECON/ECON_STAFF, any, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/transfer raws

Disburse raw resources needed to operate cities

Arguments:

<nationList> - NationList

A comma separated list of nations, alliances and filters

<daysDefault> - double

Days of operation to send (A decimal number)

[depositType=#tax] - DepositTypeInfo

The transfer note Use #IGNORE to not deduct from deposits (A DepositType optionally with a value and a city tag)

[-d noDailyCash] - boolean

Do not send money below the daily login bonus

[-c noCash] - boolean

Do not send ANY money

[-n depositsAccount] - DBNation

The nation account to deduct from (nation id, name or url)

[-a useAllianceBank] - DBAlliance

The alliance bank to send from Defaults to the offshore (An alliance name id or url)

[-o useOffshoreAccount] - DBAlliance

The alliance account to deduct from Alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url)

[-t taxAccount] - TaxBracket

The tax account to deduct from (A tax id or url)

[-ta existingTaxAccount] - boolean

Deduct from the receiver's tax bracket account

[-e expire] - Long[Timediff]

Have the transfer ignored from nation holdings after a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-m convertToMoney] - boolean

Have the transfer valued as cash in nation holdings

[-em escrow_mode] - EscrowMode

The mode for escrowing funds (e.g. if the receiver is blockaded) Defaults to never (The mode for escrowing funds for a transfer, such as when a receiver is blockaded)

[-b bypassChecks] - boolean

[-f force] - boolean

Required Permissions:

  • Role(ECON_WITHDRAW_SELF/ECON, any, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/transfer resources

Transfer from the alliance bank (alliance deposits)

Arguments:

<receiver> - NationOrAlliance

A nation or alliance name, url or id. Prefix with AA: or nation: to avoid ambiguity if there exists both by the same name or id

<transfer> - Map<ResourceType, Double>[AllianceDepositLimit]

A comma separated list of resources and their amounts, which will be restricted by an alliance's account balance

<depositType> - DepositTypeInfo

A DepositType optionally with a value and a city tag

[-n nationAccount] - DBNation

The nation account to deduct from (nation id, name or url)

[-a senderAlliance] - DBAlliance

The alliance bank to send from Defaults to the offshore (An alliance name id or url)

[-o allianceAccount] - DBAlliance

The alliance account to deduct from Alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url)

[-t taxAccount] - TaxBracket

The tax account to deduct from (A tax id or url)

[-ta existingTaxAccount] - boolean

Deduct from the receiver's tax bracket account

[-m onlyMissingFunds] - boolean

Only send funds the receiver is lacking from the amount

[-e expire] - Long[Timediff]

Have the transfer ignored from nation holdings after a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-g token] - UUID

Universally Unique IDentifier

[-c convertCash] - boolean

Transfer valued at cash equivalent in nation holdings

[-em escrow_mode] - EscrowMode

The mode for escrowing funds (e.g. if the receiver is blockaded) Defaults to never (The mode for escrowing funds for a transfer, such as when a receiver is blockaded)

[-b bypassChecks] - boolean

[-f force] - boolean

Required Permissions:

  • Role(ECON/ECON_WITHDRAW_SELF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer self

Withdraw from the alliance bank (your deposits)

Arguments:

<transfer> - Map<ResourceType, Double>[NationDepositLimit]

A comma separated list of resources and their amounts, which will be restricted by an nations's account balance

[depositType=#deposit] - DepositTypeInfo

A DepositType optionally with a value and a city tag

[-n depositsAccount] - DBNation

The nation account to deduct from (nation id, name or url)

[-a useAllianceBank] - DBAlliance

The alliance bank to send from Defaults to the offshore (An alliance name id or url)

[-o useOffshoreAccount] - DBAlliance

The alliance account to deduct from Alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url)

[-t taxAccount] - TaxBracket

The tax account to deduct from (A tax id or url)

[-ta existingTaxAccount] - boolean

Deduct from the receiver's tax bracket account

[-m onlyMissingFunds] - boolean

Only send funds the receiver is lacking from the amount

[-e expire] - Long[Timediff]

Have the transfer ignored from nation holdings after a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-g token] - UUID

Universally Unique IDentifier

[-c convertCash] - boolean

Transfer valued at cash equivalent in nation holdings

[-em escrow_mode] - EscrowMode

The mode for escrowing funds (e.g. if the receiver is blockaded) Defaults to never (The mode for escrowing funds for a transfer, such as when a receiver is blockaded)

[-b bypassChecks] - boolean

[-f force] - boolean

Required Permissions:

  • Role(ECON_WITHDRAW_SELF/ECON, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/transfer warchest

Transfer the missing resource amounts per city to a list of nations

Arguments:

<nations> - NationList

A comma separated list of nations, alliances and filters

<resourcesPerCity> - Map<ResourceType, Double>

The resources each nation needs for each city Only resources they are missing is sent (A comma separated list of resources and their amounts)

[note] - DepositTypeInfo

The transfer note to use Defaults to #WARCHEST (A DepositType optionally with a value and a city tag)

[-s skipStockpile] - boolean

Do not check nation stockpile Sends the full amount of resources to each nation

[-n depositsAccount] - DBNation

The nation account to deduct from (nation id, name or url)

[-a useAllianceBank] - DBAlliance

The alliance bank to send from Defaults to the offshore (An alliance name id or url)

[-o useOffshoreAccount] - DBAlliance

The alliance account to deduct from Alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url)

[-t taxAccount] - TaxBracket

The tax account to deduct from (A tax id or url)

[-ta existingTaxAccount] - boolean

Deduct from the receiver's tax bracket account

[-e expire] - Long[Timediff]

Have the transfer ignored from nation holdings after a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date)

[-m convertToMoney] - boolean

Have the transfer valued as cash in nation holdings

[-em escrow_mode] - EscrowMode

The mode for escrowing funds (e.g. if the receiver is blockaded) Defaults to never (The mode for escrowing funds for a transfer, such as when a receiver is blockaded)

[-b bypassChecks] - boolean

[-f force] - boolean

Required Permissions:

  • Role(ECON/ECON_WITHDRAW_SELF, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.
  • HasOffshore(): Must be used in a Guild with a valid Locutus managed offshore setup
  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance

/treaty approve

Approve a pending treaty from an alliance

Arguments:

<senders> - Set<DBAlliance>

Alliance that sent the treaty (A comma separated list of alliances)

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/treaty cancel

Cancel a treaty in-game

Arguments:

<senders> - Set<DBAlliance>

The other alliance the treaty is with (A comma separated list of alliances)

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/treaty list

This command is public

List the treaties of the provided alliances Note: If you have the FORIEGN_AFFAIRS role you can view the pending treaties of your own alliance from its guild

Arguments:

<alliances> - Set<DBAlliance>

A comma separated list of alliances


/treaty send

Send a treaty to an alliance

Arguments:

<receiver> - DBAlliance

Alliance to send treaty to (An alliance name id or url)

<type> - TreatyType

An in-game treaty type

<days> - int

A whole number

[message] - String

A single line of text

Required Permissions:

  • IsAlliance(): Must be used in a guild registered to a valid in-game alliance
  • Role(FOREIGN_AFFAIRS, alliance): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/unit cost

This command is public

Get the cost of military units and their upkeep

Arguments:

<units> - Map<MilitaryUnit, Long>

A comma separated list of units and their amounts

[wartime] - Boolean

Show the upkeep during war time


/unit history

This command is public

Get the military unit count history (dates/times) for a nation

Arguments:

<nation> - DBNation

nation id, name or url

<unit> - MilitaryUnit

Military unit name

[-p page] - Integer

A whole number


/unregister

This command is public

Unregister a nation to a discord user

Arguments:

[nation=%user%] - DBNation

nation id, name or url

[-f force] - boolean


/war blockade cancelRequest

Cancel your requests to have your blockades broken

This command has no arguments

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war blockade find

Find nations blockading your allies Allies with requests to have their blockade lifted are prioritized

Arguments:

[allies] - Set<DBNation>

The nations to check for blockades (A comma separated list of nations, alliances and filters)

[targets=*] - Set<DBNation>

The list of enemies to check blockading Defaults to all nations (A comma separated list of nations, alliances and filters)

[-s myShips] - Integer

The number of ships used to break the blockade Defaults to your current number of ships (A whole number)

[-r numResults=5] - Integer

A whole number

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war blockade request

Request your blockade be broken within a specific timeframe e.g. /war blockade request diff:4day note:i am low on warchest

Arguments:

<diff> - long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

<note> - String[TextArea]

A single line of text

[-f force] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war canIBeige

List your wars you are allowed to beige As set by this guild's configured beige policy: ALLOWED_BEIGE_REASONS

Arguments:

[nation] - DBNation

The nation which is beiging Defaults to your own nation (nation id, name or url)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war card

This command is public

Show a war card embed on discord for a war by id

Arguments:

<warId> - int

A whole number


/war counter auto

Auto generate counters Add -p to ping users that are added Add -a to skip adding users Add -m to send standard counter messages

Arguments:

<enemy> - DBNation

nation id, name or url

[attackers] - Set<DBNation>

Nations to counter with Default: This guild's alliance nations (A comma separated list of nations, alliances and filters)

[max=3] - int

Max number of nations to counter with (A whole number)

[-p pingMembers] - boolean

Ping the countering nations on discord

[-a skipAddMembers] - boolean

Do not add countering nations to a war room for the enemy

[-m sendMail] - boolean

Send counter message ingame to the nations countering

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war counter nation

Get a list of nations to counter an enemy Add -o to ignore nations with 5 offensive slots Add -w to filter out weak attackers Add -a to only list active nations (past hour)

Arguments:

<target> - DBNation

nation id, name or url

[counterWith] - Set<DBNation>

Nations to counter with Default: This guild's alliance nations (A comma separated list of nations, alliances and filters)

[-o allowAttackersWithMaxOffensives] - boolean

Show counters from nations at max offensive wars i.e. They can counter when they finish a war

[-w filterWeak] - boolean

Remove countering nations weaker than the enemy

[-a onlyActive] - boolean

Remove countering nations that are inactive (2 days)

[-d requireDiscord] - boolean

Remove countering nations NOT registered with Locutus

[-p ping] - boolean

Include the discord mention of countering nations

[-s allowSameAlliance] - boolean

Include counters from the same alliance as the defender

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war counter sheet

Generate a sheet with a list of nations attacking allies (Defaults to those attacking allies) Please still check the war history in case it is not valid to counter (and add a note to the note column indicating such) Add -a to filter out applicants Add -i to filter out inactive members Add -e to include enemies not attacking

Arguments:

[enemyFilter] - Set<DBNation>

Only include these attackers (A comma separated list of nations, alliances and filters)

[allies] - Set<DBAlliance>

Show attackers against these alliances (A comma separated list of alliances)

[-a excludeApplicants] - boolean

Exclude applicants

[-i excludeInactives] - boolean

Exclude inactive nations (3.4 days)

[-e includeAllEnemies] - boolean

Include enemies not attacking

[-s sheetUrl] - String

A single line of text

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war counter stats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance

An alliance name id or url

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war counter url

Get a list of nations to counter a war Add -o to ignore nations with 5 offensive slots Add -w to filter out weak attackers Add -a to only list active nations (past hour)

Arguments:

<war> - DBWar

A war id or url

[counterWith] - Set<DBNation>

Nations to counter with Default: This guild's alliance nations (A comma separated list of nations, alliances and filters)

[-o allowAttackersWithMaxOffensives] - boolean

Show counters from nations at max offensive wars i.e. They can counter when they finish a war

[-w filterWeak] - boolean

Remove countering nations weaker than the enemy

[-a onlyActive] - boolean

Remove countering nations that are inactive (2 days)

[-d requireDiscord] - boolean

Remove countering nations NOT registered with Locutus

[-p ping] - boolean

Include the discord mention of countering nations

[-s allowSameAlliance] - boolean

Include counters from the same alliance as the defender

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war dnr

This command is public

Check if declaring war on a nation is allowed by the guild's Do Not Raid (DNR) settings

Arguments:

<nation> - DBNation

nation id, name or url


/war find blitztargets

Generate a list of possible alliance blitz targets (for practice) Target alliances are sorted by free war slots

Arguments:

<topX> - int

Exclude the top X alliances (by active nation score) (A whole number)

[-p page] - Integer

A whole number

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find bounty

Find nations with high bounties within your war range

Arguments:

[-r onlyWeaker] - boolean

Only list enemies with less ground than you

[-d ignoreDNR] - boolean

Ignore the do not raid settings for this server

[-b bountyTypes] - Set<WarType>

A comma separated list of war declaration types

[-n numResults=5] - Integer

A whole number

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find damage

Find a high infrastructure target optional alliance and sorting (default: active nations, sorted by damage stimate). To see a list of coalitions, use /coalition list. Damage estimate is based on attacks you can perform (i.e. if you are stronger or have the project for missiles/nukes), and chance of success

Arguments:

<nations> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-a includeApps] - boolean

Include targets which are applicants

[-i includeInactives] - boolean

Include targets which are inactive

[-w filterWeak] - boolean

Remove nations with stronger ground than you

[-n noNavy] - boolean

Only include enemies with no navy

[-m targetMeanInfra] - boolean

Sort results by average infrastructure instead of damage estimate

[-c targetCityMax] - boolean

Sort results by top city infrastructure instead of damage estimate

[-b includeBeige] - boolean

Include targets currently on beige

[-d resultsInDm] - boolean

[-s warRange] - Double

Score to search for targets within war range of Defaults to your score (A decimal number)

[-r relativeNavalStrength] - Double

Exclude targets with ships equal to this multiple relative to yours i.e. 1.0 would be nations with ships equal or less than yours (A decimal number)

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find enemy

Find a war target that you can hit Defaults to enemies coalition

Arguments:

[targets=~enemies] - Set<DBNation>

A comma separated list of nations, alliances and filters

[numResults=8] - int

A whole number

[-r attackerScore] - Double

Score to search for targets within war range of Defaults to your score (A decimal number)

[-i includeInactives] - boolean

Include inactive nations in the search Defaults to false

[-a includeApplicants] - boolean

Include applicants in the search Defaults to false

[-p onlyPriority] - boolean

Only list targets with offensive wars they are winning

[-w onlyWeak] - boolean

Only list targets weaker than you

[-e onlyEasy] - boolean

Sort by easiest targets

[-c onlyLessCities] - boolean

Only list targets with less cities than you

[-d resultsInDm] - boolean

Return results in direct message

[-s includeStrong] - boolean

Include nations much stronger than you in the search Defaults to false

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find raid

Find targets to raid Sorted by best nation loot Defaults to 7d inactive

Arguments:

[targets=*] - Set<DBNation>

A comma separated list of nations, alliances and filters

[-r numResults=5] - Integer

A whole number

[-a activeTimeCutoff] - Long[Timediff]

A time difference or unix timestamp which will resolve as a difference relative to the current date

[-w weakground] - boolean

[-b beigeTurns] - Integer

[-v vmTurns] - Integer

[-n nationScore] - Double

A decimal number

[-s defensiveSlots] - Integer

[-d ignoreDNR] - boolean

[-l ignoreBankLoot] - boolean

[-c ignoreCityRevenue] - boolean

Required Permissions:

  • Role(MEMBER/APPLICANT, any): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find treasure

Find nations in war range that have a treasure

Arguments:

[-r onlyWeaker] - boolean

Only list enemies with less ground than you

[-d ignoreDNR] - boolean

Ignore the do not raid settings for this server

[-n numResults=5] - Integer

A whole number

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find unblockade

Find nations blockading your allies Allies with requests to have their blockade lifted are prioritized

Arguments:

[allies] - Set<DBNation>

The nations to check for blockades (A comma separated list of nations, alliances and filters)

[targets=*] - Set<DBNation>

The list of enemies to check blockading Defaults to all nations (A comma separated list of nations, alliances and filters)

[-s myShips] - Integer

The number of ships used to break the blockade Defaults to your current number of ships (A whole number)

[-r numResults=5] - Integer

A whole number

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war find unprotected

Find nations who aren't protected, or are in an alliance unable to provide suitable counters Not suitable if you have no military

Arguments:

<targets> - Set<DBNation>

A comma separated list of nations, alliances and filters

[-r numResults=10] - Integer

A whole number

[-d ignoreDNR] - boolean

Ignore the configured Do Not Raid list

[-a includeAllies] - boolean

Include allies for finding suitable counters

[-n nationsToBlitzWith] - Set<DBNation>

The nations attacking Defaults to your nation (A comma separated list of nations, alliances and filters)

[-s maxRelativeTargetStrength=1.2] - Double

The maximum allowed military strength of the target nation relative to you (A decimal number)

[-c maxRelativeCounterStrength=1.2] - Double

The maximum allowed military strength of counters relative to you (A decimal number)

[-w withinAllAttackersRange] - boolean

Only list targets within range of ALL attackers

[-f force] - boolean

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war info

This command is public

Show war info for a nation

Arguments:

<nation> - DBNation

nation id, name or url


/war room create

Create a war room Add -p to ping users that are added Add -a to skip adding users Add -f to force create channels (if checks fail) Add -m to send standard counter messages

Arguments:

<enemy> - DBNation

nation id, name or url

<attackers> - Set<DBNation>

Nations to counter with Default: This guild's alliance nations (A comma separated list of nations, alliances and filters)

[max=3] - int

Max number of nations to counter with (A whole number)

[-f force] - boolean

[-w excludeWeakAttackers] - boolean

Remove countering nations weaker than the enemy

[-d requireDiscord] - boolean

Remove countering nations NOT registered with Locutus

[-o allowAttackersWithMaxOffensives] - boolean

Show counters from nations at max offensive wars i.e. They can counter when they finish a war

[-p pingMembers] - boolean

Ping the countering nations on discord

[-a skipAddMembers] - boolean

Do not add countering nations to a war room for the enemy

[-m sendMail] - boolean

Send counter message ingame to the nations countering

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war room from_sheet

Create war rooms from a blitz sheet

Arguments:

<blitzSheet> - SpreadSheet

A google spreadsheet id or url

[customMessage] - String

Custom message to send in each created war room (A single line of text)

[-c addCounterMessage] - boolean

If the default counter message should be sent

[-p ping] - boolean

If the added member should be pinged in the channel

[-m addMember] - boolean

If the member should be added to the war room

[-a allowedNations] - Set<DBNation>

The nations from the blitz sheet to create war rooms for Defaults to everyone (A comma separated list of nations, alliances and filters)

[-h headerRow] - Integer

The row the blitz sheet header is one Defaults to first row (A whole number)

[-f force] - boolean

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war room pin

Update the pin in the current war room channel

This command has no arguments

Required Permissions:

  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war room setCategory

Run this command in a war room to assign it to a category /war room setcategory category:raid

Arguments:

<category> - Category

The category to move this channel to (A discord category name or mention)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war room sort

Sorts the war rooms into the correct discord category e.g. warcat-c1-10

This command has no arguments

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet ReimburseByNation

Generate csv of war cost by nation between alliances (for reimbursement) Filters out wars where nations did not perform actions

Arguments:

<allies> - Set<DBAlliance>

The alliances with nations you want to reimburse (A comma separated list of alliances)

<enemies> - Set<DBAlliance>

The enemies during the conflict (A comma separated list of alliances)

<cutoff> - long[Timestamp]

Starting time of the conflict (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

<removeWarsWithNoDefenderActions> - boolean

If wars with no actions by the defender should NOT be reimbursed

Required Permissions:

  • Role(ADMIN): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet blitzSheet

Generates a a blitz sheet A blitz sheet contains a list of defenders (left column) and auto assigns attackers (right columns) Note: If the blitz sheet generated has a lot of city updeclares or unslotted enemies it is recommended to go through and remove low priority defenders

  • Low priority could be enemies without a recent offensive war, inactive, low military, or poor activity
  • Example defNations: ~enemies,#position>1,#active_m<4880,#dayssincelastoffensive>200,#dayssince3consecutivelogins>120,#aircraftpct<0.8,#tankpct<=0.6Note: To avoid updeclares enable onlyEasyTargets

Arguments:

<attNations> - NationList

Nations that should be used for the attackers It is recommended to use a google sheet of the attackers available (A comma separated list of nations, alliances and filters)

<defNations> - NationList

Nations that should be used for the defenders It is recommended to use a google sheet of the priority defenders (unless you are sure you can hit every nation) (A comma separated list of nations, alliances and filters)

[maxOff=3] - int

How many offensive slots a nation can have (defaults to 3) (A whole number)

[sameAAPriority=0] - double

Value between 0 and 1 to prioritize assigning a target to nations in the same alliance Default: 0 (A decimal number)

[sameActivityPriority=0] - double

Value between 0 and 1 to prioritize assigning targets to nations with similar activity patterns Recommended not to use if you know who is attacking (A decimal number)

[turn=-1] - int

The turn in the day (between 0 and 11) when you expect the blitz to happen (A whole number)

[attActivity=0] - double

A value between 0 and 1 to filter out attackers below this level of daily activity (default: 0, which is 0%) Recommend using if you did not provide a sheet of attackers (A decimal number)

[defActivity=0] - double

A value between 0 and 1 to filter out defenders below this level of activity (default: 0) Recommend using if you did not provide a sheet of defenders (A decimal number)

[-w processActiveWars=true] - boolean

Factor in existing wars of attackers and defenders i.e. To determine slots available and nation strength

[-e onlyEasyTargets] - boolean

Only assign down declares

[-c maxCityRatio] - Double

Maximum ratio of defender cities to attacker e.g. A value of 1.5 means defenders can have 1.5x more cities than the attacker (A decimal number)

[-g maxGroundRatio] - Double

Maximum ratio of defender ground strength to attacker e.g. A value of 1.5 means defenders can have 1.5x more ground strength than the attacker (A decimal number)

[-a maxAirRatio] - Double

Maximum ratio of defender aircraft to attacker e.g. A value of 1.5 means defenders can have 1.5x more aircraft than the attacker (A decimal number)

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet costByResource

Transfer sheet of war cost (for each nation) broken down by resource type Useful to see costs incurred by fighting for each nation, to plan for future wars, or to help with reimbursement

Arguments:

<attackers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<defenders> - Set<NationOrAlliance>

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[-c excludeConsumption] - boolean

[-i excludeInfra] - boolean

[-l excludeLoot] - boolean

[-u excludeUnitCost] - boolean

[-g includeGray] - boolean

Include nations on the gray color bloc

[-d includeDefensives] - boolean

Include defensive wars

[-n normalizePerCity] - boolean

Use the average cost per city

[-w normalizePerWar] - boolean

Use the average cost per war

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet costSheet

War cost (for each nation) broken down by war type

Arguments:

<attackers> - Set<NationOrAlliance>

A comma separated list of nations and alliances

<defenders> - Set<NationOrAlliance>

<time> - long[Timestamp]

A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

[endTime] - Long[Timestamp]

[-c excludeConsumption] - boolean

[-i excludeInfra] - boolean

[-l excludeLoot] - boolean

[-u excludeUnitCost] - boolean

[-n normalizePerCity] - boolean

Average the cost by the nation's city count

[-s sheet] - SpreadSheet

A google spreadsheet id or url

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet validate

Run checks on a blitz sheet Check that all nations are in range of their blitz targets, are still in the alliance and have no more than the provided number of offensive wars

Arguments:

<sheet> - SpreadSheet

A google spreadsheet id or url

[maxWars=3] - int

Max wars per attacker (A whole number)

[nationsFilter=*] - Set<DBNation>

Only allow attacking these nations (A comma separated list of nations, alliances and filters)

[-h headerRow] - Integer

Which row of the sheet has the header Default: 1st row (A whole number)

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/war sheet warSheet

Generate a sheet of active wars between two coalitions (allies, enemies) Add -i to list concluded wars

Arguments:

<allies> - Set<DBNation>

A comma separated list of nations, alliances and filters

<enemies> - Set<DBNation>

[cutoff=5d] - long[Timestamp]

Cutoff date for wars (default 5 days ago) (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

[-i includeConcludedWars] - boolean

[-s sheetId] - String

A single line of text

Required Permissions:

  • Role(MILCOM): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/web grants

No description provided

Arguments:

<nation> - DBNation

nation id, name or url

Required Permissions:

  • Whitelist(): Must be run in a guild whitelisted by the bot developer
  • Role(MEMBER): Has the aliased roles on discord. any = has any of the roles. root = has role on bot's main guild. guild = has role on that guild. alliance = has role on alliance's guild.

/who

This command is public

Get detailed information about a nation Nation argument can be nation name, id, link, or discord tag e.g. /who @borg

Arguments:

<nationOrAlliances> - Set<NationOrAlliance>

The nations to get info about (A comma separated list of nations and alliances)

[sortBy] - NationPlaceholder

Sort any listed nations by this attribute (See: https://github.com/xdnw/locutus/wiki/nation_placeholders)

[-l list] - boolean

List the nations instead of just providing a summary

[-a listAlliances] - boolean

List the alliances of the provided nation

[-r listRawUserIds] - boolean

List the discord user ids of each nation

[-m listMentions] - boolean

List the discord user mentions of each nation

[-i listInfo] - boolean

List paginated info of each nation

[-c listChannels] - boolean

List all interview channels of each nation

[-p page] - Integer

A whole number


Clone this wiki locally