Skip to content

Commands

test edited this page May 1, 2024 · 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 Bot coalition names

Permission:


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use


/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

Permission:


/admin sync syncinterviews

Force an update of all interview channels and print the results

This command has no arguments

Permission:


/admin sync warrooms

Sync and debug war rooms

Arguments:

[-f force] - boolean

Permission:


/alerts audit optout

Opt out of audit alerts

This command has no arguments

Permission:


/alerts bank min_value

Set the required transfer market value required for automatic bank alerts Defaults to $100m, minimum value of 100m

Arguments:

<requiredValue> - double Require the bank transfer to be worth this much Resources are valued at weekly market average prices (A decimal number)

Permission:


/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

Permission:


/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

Permission:


/alerts beige beigeAlertOptOut

Opt out of beige alerts

This command has no arguments

Permission:


/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)

Permission:


/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

Permission:


/alerts beige beigeReminders

List your current beige reminders

This command has no arguments

Permission:


/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

Permission:


/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)

Permission:


/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)

Permission:


/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)

Permission:


/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)

Permission:


/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)

Permission:


/alliance cost

This command is public

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

Arguments:

<nations> - NationList A comma separated list of nations, alliances and filters [-u update] - boolean [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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 [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use


/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]

Permission:


/alliance listAllianceMembers

List all in-game alliance members

Arguments:

<page> - int A whole number

Permission:


/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 Equilibrium taxrate is where the value of raws consumed matches the value taxed

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 [-r rads] - Double A decimal number [-w forceAtWar] - boolean [-p forceAtPeace] - boolean [-c includeWarCosts] - Long[Timediff] The amount of time to use to add average DAILY war cost This includes raid profit (A time difference or unix timestamp which will resolve as a difference relative to the current date) [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/alliance sheets stockpileSheet

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

Arguments:

Optional: Specify Nations:

[nationFilter] - NationList Only include stockpiles from these nations (A comma separated list of nations, alliances and filters) Display Options: [-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

Permission:


/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

Permission:


/alliance stats allianceMetricsAB

This command is public

Graph an alliance metric over time for two coalitions

Arguments:

<metric> - AllianceMetric A Bot 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 [-c attachCsv] - boolean


/alliance stats allianceMetricsCompareByTurn

This command is public

Compare the metric over time between multiple alliances

Arguments:

<metric> - AllianceMetric A Bot 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 [-c attachCsv] - 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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t useTotal] - boolean Use the sum of each nation's attributes instead of the average [-i includeInactives] - boolean [-a includeApplicants] - boolean

Permission:


/alliance stats counterStats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance An alliance name id or url

Permission:


/alliance stats merges

No description provided

Arguments:

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t threshold] - Double Required percent of departures percent(between 0 and 1) Default: 0.3 (A decimal number) [-w dayWindow] - Integer Number of days to check the departures over Default: 30 (A whole number) [-m minMembers] - Integer Minimum number of starting members per alliance Default: 10 (A whole number)

Permission:


/alliance stats metricsByTurn

This command is public

Graph the metric over time for a coalition

Arguments:

<metric> - AllianceMetric A Bot 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 [-c attachCsv] - boolean


/alliance stats militarization

This command is public

Get the militirization levels of top 80 alliances. Each bar is segmented into four sections, from bottom to top: (soldiers, tanks, planes, ships) Each alliance is grouped by sphere and color coded.

Arguments:

[nations2] - NationList A comma separated list of nations, alliances and filters [-n top_n_alliances] - Integer A whole number [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t removeUntaxable] - boolean [-i removeInactive] - boolean [-a includeApplicants] - boolean [-l snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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 Bot 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 Bot 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

Permission:


/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)

Permission:


/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)

Permission:


/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 [treatyFilter] - Predicate<Treaty> TODO CM REF


/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

Permission:


/announcement archive

Set the archive status of the bot's announcement

Arguments:

<announcementId> - int A whole number [archive] - Boolean

Permission:


/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

Permission:


/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)

Permission:


/announcement find

Find the announcement closest matching a message

Arguments:

<announcementId> - int A whole number <message> - String A single line of text

Permission:


/announcement find_invite

Find the announcement for the closest matching invite

Arguments:

<invite> - String A single line of text

Permission:


/announcement invite

Create, send and record unique invites to a set of nations The invite can be sent via discord direct message, mail, viewed from an embed, or command If allowCreation is not enabled, only a single invite will be created per nation; invites may expire and no new invites are permitted.

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 Allow creating an invite when any nation matches sendTo, when they don't already have an invite, or theirs has expired Invites can be created by using viewing the announcement embed or running the announcement view command Defaults to false [-f force] - boolean

Permission:


/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

Permission:


/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

Permission:


/announcement watermark

This command is public

Add a watermark to a discord image Use \n to add a new line Default color will be light gray if image is dark and dark gray if image is light Set repeat: True to repeat the watermark down the entire image

Arguments:

<imageUrl> - String A single line of text <watermarkText> - String [color] - Color A color name or hex code [opacity=0.05] - double A decimal number [font=Arial] - Font A font name [-r repeat] - boolean


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/bank deposit

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

Arguments:

<nations> - Set<DBNation> A comma separated list of nations, alliances and filters Mode 1: Using a Sheet:

[-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) Mode 2: Specify an Amount: [-a amount] - Map<ResourceType, Double> Exact amount of resources to deposit (capped at resources on nation) Cannot be used with other deposit modes are set (A comma separated list of resources and their amounts) Mode 3: Calculate an Amount: [-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 Requires rawsDays to be set [-c rawsNoCash] - boolean Do not keep any money Requires rawsDays to be set [-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) Message Settings: [-n note] - DepositTypeInfo Note to add to the deposit Defaults to deposits (A DepositType optionally with a value and a city tag See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes) Deposit Via Api: [-cm customMessage] - String The message to append to the mail or dm message You must specify either mailResults or dm if this is set (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 Use the API to do a deposit instead of sending a message

[-f force] - boolean

Permission:


/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

Permission:


/bank records

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

Arguments:

<nationOrAllianceOrGuild> - NationOrAllianceOrGuildOrTaxid A nation or alliance name, url or id, or a guild id, or a tax id or url Optional: Specify timeframe:

[timeframe=%epoch%] - long[Timestamp] Only show transactions after this time (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) Display Options: [useTaxBase=false] - boolean Do NOT include the tax record resources below the internal tax rate Default: False [useOffset=true] - boolean Include balance offset records (i.e. from commands) Default: True

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-o onlyOffshoreTransfers] - boolean

Permission:


/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 [-a unlockAll] - boolean

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/build get

Print the current city builds being used by a nation

Arguments:

<nation> - DBNation nation id, name or url

Permission:


/build listall

List the currently set build categories

This command has no arguments

Permission:


/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

Permission:


/channel close current

Close a war room, interview or embassy discord channel

Arguments:

[-f forceDelete] - boolean

Permission:


/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

Permission:


/channel count

list channels

This command has no arguments

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/channel members

List all guild channels and what members have access to each

This command has no arguments

Permission:


/channel move Down

Move a discord channel down 1 position

This command has no arguments

Permission:


/channel move Up

Move a discord channel up 1 position

This command has no arguments

Permission:


/channel open

Move an interview channel from the interview-archive category

Arguments:

[category] - Category A discord category name or mention

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-e excludeCategories] - Set<Category> A comma separated list of discord categories [-c includeCategories] - Set<Category> [-f force] - boolean [-j popCultureQuotes] - boolean

Permission:


/channel setCategory

Set the category for a discord channel

Arguments:

<category> - Category A discord category name or mention

Permission:


/chat conversion delete

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

Arguments:

<source> - EmbeddingSource The name of an data set

Permission:


/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

Permission:


/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

Permission:


/chat conversion resume

Resume conversion for a google document to a chat dataset

Arguments:

<source> - EmbeddingSource The name of an data set

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use <document_name> - String A single line of text [-f force] - boolean

Permission:


/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

Permission:


/chat dataset select

This command is public

Set the data sources you want to use to generate natural language responses for chat queries

Arguments:

<excludeTypes> - Set<EmbeddingType> A comma separated list of embedding types [-w includeWikiCategories] - Set<String>[WikiCategory] A comma separated list of wiki categories [-n excludeWikiCategories] - Set<String>[WikiCategory] [-e excludeSources] - Set<EmbeddingSource> A comma separated list of data sets [-a addSources] - Set<EmbeddingSource>


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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>

Permission:


/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

Permission:


/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

Permission:


/chat providers resume

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

Arguments:

<provider> - GPTProvider

Permission:


/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

Permission:


/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) Optional: City Build Parameters:

[days] - Integer Set the days the build is expected to last before replacement (or destruction) This factors in the cost to switch builds Defaults to None (A whole number) [-x buildMMR] - String Set the MMR (military building counts) of the city to optimize Defaults to the current MMR of the build provided, else 0000 (A single line of text) [-a age] - Integer Set the age of the city to optimize Defaults to the current city age, else 0 You can also specify age: 1234 in the city json (A whole number) [-i infra] - Integer Set the infrastructure level of buildings in the city to optimize Defaults to the current infrastructure level You can also specify infra:1234 in the city json (A whole number) [-b baseReducedInfra] - Integer Set the damaged infrastructure level of the city to optimize i.e. To simulate a city with a infra level required for its buildings Defaults to the infra level (A whole number) [-l land] - Integer Set the land level of the city to optimize Defaults to the current land level, else the infra level You can specify land: 1234 in the city json (A whole number) [-r radiation] - Double Set the radiation level Defaults to the cities current radiation, or your nation's radiation level (A decimal number) Optional: Optimization restrictions: [-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) [-u useRawsForManu] - boolean Require the city to produce all raw resources it uses for manufacturing [-m moneyPositive] - boolean Require the city build to be cash positive Optional: Nation Setting (Continent, Projects, Tax Rate): [-n nationalProjects] - Set<Project> Set the projects a city has access to Defaults to the projects of the nation (A comma separated list of nation projects) [-g geographicContinent] - Continent Set the continent the city is in Defaults the the continent of the nation (Continent name) [-t taxRate] - TaxRate Maximize untaxed revenue for a tax rate Defaults to 0/0 (A tax rate in the form of money/rss) Display Options: [-w writePlaintext] - boolean Return a result on discord in plain text


/city revenue

This command is public

Get the revenue of a city or build json Accepts land and age as json attributes

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 [-l land] - Double A decimal number [-a age] - Integer A whole number


/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 Bot coalition

Permission:


/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

Permission:


/coalition delete

Delete an entire coalition

Arguments:

<coalitionName> - String[GuildCoalition] A name for a default or custom Bot coalition

Permission:


/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)

Permission:


/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

Permission:


/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 Bot coalition

Permission:


/color revenue

This command is public

List the color blocs and their revenue Optionally switch nations or alliances to a color to view potential revenue changes

Arguments:

[set_aqua] - Set<DBNation> A comma separated list of nations, alliances and filters [set_black] - Set<DBNation> [set_blue] - Set<DBNation> [set_brown] - Set<DBNation> [set_green] - Set<DBNation> [set_lime] - Set<DBNation> [set_maroon] - Set<DBNation> [set_olive] - Set<DBNation> [set_orange] - Set<DBNation> [set_pink] - Set<DBNation> [set_purple] - Set<DBNation> [set_red] - Set<DBNation> [set_white] - Set<DBNation> [set_yellow] - Set<DBNation> [set_gray_or_beige] - Set<DBNation>


/conflict alliance add

This command is public

No description provided

Arguments:

<conflict> - Conflict The name of a stored conflict between two coalitions <alliances> - Set<DBAlliance> A comma separated list of alliances [-col1 isCoalition1] - boolean [-col2 isCoalition2] - boolean


/conflict list

This command is public

No description provided

Arguments:

[-i includeInactive] - boolean


/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

Permission:


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use <note> - String The transaction note to use (A single line of text) [-f force] - boolean [-n negative] - boolean Subtract the amounts instead of add

Permission:


/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

Permission:


/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 Optional: Resources to convert:

If no resources are specified, all negative resources are converted to money [negativeResources=manu,raws,food] - List<ResourceType> The resources to convert (A comma separated list of resource types) [convertTo=money] - ResourceType What resource to convert to Conversion uses weekly market average prices (The name of a resource) Optional (max 1): Specify the deposit notes to convert: Defaults to all types, except grants [-g includeGrants] - boolean If grants are also converted [-t depositType] - DepositTypeInfo Convert transfers of this note category (A DepositType optionally with a value and a city tag See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes) Conversion Options: [-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) [-n note] - String The transfer note to use for the adjustment (A single line of text)

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/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)

Permission:


/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 Reset Options:

[-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

Permission:


/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 grants Add -p to 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 offsets [-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

Permission:


/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) [expireTime] - Long[Timestamp] Make the funds expire (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) [decayTime] - Long[Timestamp] Make the funds decay (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/embed create

Create a simple embed with a title and description

Arguments:

<title> - String A single line of text <description> - String

Permission:


/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

Permission:


/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)

Permission:


/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)

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [priorityEnemiesSheet] - SpreadSheet [allAlliesSheet] - SpreadSheet [underutilizedAlliesSheet] - SpreadSheet

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/embed template member_econ

Econ panel for members

Arguments:

[outputChannel] - MessageChannel A discord channel name or mention [-d showDepositsInDms] - boolean

Permission:


/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

Permission:


/embed template spy_enemy

Enemy espionage finder discord embed template

Arguments:

[coalition] - String[GuildCoalition] A name for a default or custom Bot coalition [outputChannel] - MessageChannel A discord channel name or mention

Permission:


/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 Bot coalition [outputChannel] - MessageChannel A discord channel name or mention [spySheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/embed template unblockade_requests

Blockader Target & Requests discord embed template

Arguments:

[outputChannel] - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/escrow view_sheet

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

Arguments:

Optional 1: Specific Nations:

[nations] - Set<DBNation> Specify the nations to include in the sheet Defaults to current members (A comma separated list of nations, alliances and filters) Optional 2: Include past members: [-p includePastDepositors] - Set<Integer> Include all nations that have deposited in the past

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/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 expireTime] - 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) [-decay decayTime] - Long[Timediff] Add a default decaying 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

Permission:


/grant_template delete

Delete a grant template

Arguments:

<template> - AGrantTemplate The name of a created grant template [-f force] - boolean

Permission:


/grant_template disable

Set an active grant template as disabled

Arguments:

<template> - AGrantTemplate The name of a created grant template [-f force] - boolean

Permission:


/grant_template enable

Set a disabled grant template as enabled

Arguments:

<template> - AGrantTemplate The name of a created grant template

Permission:


/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

Permission:


/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

Permission:


/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 [-d decay] - Long[Timediff] [-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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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


/infra roi

This command is public

Calculate how many days it takes to ROI on the last improvement slot for a specified infra level

Arguments:

<city> - DBCity City url <infraLevel> - int A whole number [-c continent] - Continent Continent name [-r rads] - Double A decimal number [-p forceProjects] - Set<Project> A comma separated list of nation projects [-d openMarkets] - boolean [-m mmr] - MMRInt 4 whole numbers representing barracks,factory,hangar,drydock [-l land] - Double


/interview adRanking

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

Arguments:

[-u uploadFile] - boolean

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/interview mentee

Assign yourself as someone's mentor

Arguments:

<mentee> - DBNation nation id, name or url [-f force] - boolean

Permission:


/interview mentor

Assign a mentor to a mentee

Arguments:

<mentor> - DBNation nation id, name or url <mentee> - DBNation [-f force] - boolean

Permission:


/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)

Permission:


/interview questions set

Set the interview message

Arguments:

<message> - String A single line of text

Permission:


/interview questions view

View the interview message

This command has no arguments

Permission:


/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

Permission:


/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

Permission:


/interview syncInterviews

Force an update of all interview channels and print the results

This command has no arguments

Permission:


/interview unassignMentee

Unassign a mentee from all mentors

Arguments:

<mentee> - DBNation nation id, name or url

Permission:


/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


/land roi

This command is public

Calculate how many days it takes to ROI on the last 50 land for a specified level

Arguments:

<city> - DBCity City url <landLevel> - double A decimal number [-c continent] - Continent Continent name [-r rads] - Double [-p forceProjects] - Set<Project> A comma separated list of nation projects [-d openMarkets] - boolean [-m mmr] - MMRInt 4 whole numbers representing barracks,factory,hangar,drydock [-l infra] - Double


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-d sendDM] - boolean Send as a discord direct message [-m skipMail] - boolean Skip sending in-game mail (only valid if sendDM is true)

Permission:


/mail recruit

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

This command has no arguments

Permission:


/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)

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-f force] - boolean [-d dm] - boolean [-m skipMail] - boolean

Permission:


/mail targets

Send spy or war blitz sheets to individual nations Blitz Sheet Columns: nation, attacker 1, attacker 2, attacker 3

Arguments:

[blitzSheet] - SpreadSheet Url of the war blitz sheet to send (A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) [spySheet] - SpreadSheet Url of the spy sheet to send (A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) [allowedNations=*] - Set<DBNation> What attacker nations to send to (A comma separated list of nations, alliances and filters) [allowedEnemies] - Set<DBNation> What defender nations to include (default: all) (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) [-g 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 [-l useLeader] - boolean Parse nation leader instead of nation name [-d dm] - boolean Send instructions as direct message on discord

Permission:


/me

This command is public

Get info about your own nation

Arguments:

[-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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)

Permission:


/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 [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use


/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

Permission:


/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 Equilibrium taxrate is where the value of raws consumed matches the value taxed

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 [-r rads] - Double A decimal number [-w forceAtWar] - boolean [-p forceAtPeace] - boolean [-c includeWarCosts] - Long[Timediff] The amount of time to use to add average DAILY war cost This includes raid profit (A time difference or unix timestamp which will resolve as a difference relative to the current date) [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/nation revenueSheet

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

Arguments:

<nations> - NationList A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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> - NationList 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) [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-e updateSpies] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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)

Permission:


/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> - NationList 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 [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-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

Permission:


/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] - NationAttributeDouble Sort any listed nations by this attribute (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) [-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 [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-p page] - Integer A whole number


/newsletter auto

Setup a reminder to send a newsletter at an interval

Arguments:

<newsletter> - Newsletter <interval> - long[Timediff] A time difference or unix timestamp which will resolve as a difference relative to the current date [pingRole] - Role A discord role name or mention

Permission:


/newsletter channel add

Add a channel to a newsletter

Arguments:

<newsletter> - Newsletter <channel> - TextChannel A discord guild channel name or mention

Permission:


/newsletter channel remove

Remove a channel from a newsletter

Arguments:

<newsletter> - Newsletter <channel> - TextChannel A discord guild channel name or mention

Permission:


/newsletter create

Create a new newsletter with a name After creating, you need to add channels to the newsletter, and subscribe users

Arguments:

<name> - String A single line of text

Permission:


/newsletter delete

Delete a newsletter

Arguments:

<newsletter> - Newsletter [-f force] - boolean

Permission:


/newsletter info

View information about a newsletter

Arguments:

<newsletter> - Newsletter [-u listNations] - boolean

Permission:


/newsletter list

List all newsletters

This command has no arguments

Permission:


/newsletter send

Compile and send a newsletter to the subscribed nations If no time period is specified, the newsletter will be compiled from the messages since the last compilation If there is no previous compilation, the newsletter creation date will be used

Arguments:

<newsletter> - Newsletter [sendSince] - Long[Timediff] A time difference or unix timestamp which will resolve as a difference relative to the current date [-d document] - GoogleDoc A google document id or url [-e endDate] - Long A whole number

Permission:


/newsletter subscribe

Subscribe yourself or a set of nations to a newsletter

Arguments:

<newsletter> - Newsletter [nations] - Set<DBNation> A comma separated list of nations, alliances and filters

Permission:


/newsletter unsubscribe

Unsubscribe yourself or a set of nations from a newsletter

Arguments:

[newsletter] - Newsletter [nations] - Set<DBNation> A comma separated list of nations, alliances and filters

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 [-n newAccount] - boolean [-i importAccount] - boolean [-f force] - boolean

Permission:


/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>

Permission:


/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

Permission:


/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:

Account Settings:

[to] - DBAlliance Specify an alternative Offshore alliance to send funds in-game to Defaults to the currently set offshore coalition (An alliance name id or url) [account] - NationOrAllianceOrGuild Specify an alternative account to offshore with Defaults to the sender alliance (A nation or alliance name, url or id, or a guild id) Resource Amounts: [keepAmount={}] - Map<ResourceType, Double> The amount of resources to keep in the bank Defaults to keep nothing (A comma separated list of resources and their amounts) [sendAmount] - Map<ResourceType, Double> Specify specific resource amounts to offshore Defaults to all resources The send amount is auto capped by the resources available and keepAmount (A comma separated list of resources and their amounts)

Permission:


/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 [-a unlockAll] - boolean

Permission:


/project cost

This command is public

Shows the cost of a project

Arguments:

<projects> - Set<Project> A comma separated list of nation projects [technologicalAdvancement=false] - boolean [governmentSupportAgency=false] - boolean [-n nations] - Set<DBNation> A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-p ignoreProjectSlots] - boolean [-r ignoreRequirements] - boolean [-c ignoreProjectCity] - 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> - NationList A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-l loanStatus] - Set<Status> A comma separated list of the status of a nation's loan

Permission:


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [defaultStatus] - Status The status of a nation's loan [-o overwriteLoans] - boolean [-m overwriteSameNation] - boolean [-a addLoans] - boolean

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/role autoassign

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

Arguments:

[-f force] - boolean

Permission:


/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 alliance roles on discord UNUSED: Alliance name roles which have no members ALLIANCE: All alliance name roles DELETED_ALLIANCES: Alliance name roles with no valid in-game alliance INACTIVE_ALLIANCES: Alliance name roles with no active members NOT_ALLOW_LISTED: Alliance name roles not in the allow list (defined by settings:AUTOROLE_ALLIANCES,AUTOROLE_TOP_X and coalition:MASKEDALLIANCES`` NON_MEMBERS: Users who are not in the alliance in-game NON_ALLIES: `Users who are not in the alliance, or the `allies` / `offshore` coalition in-game`

Arguments:

<type> - ClearRolesEnum What role types do you want to remove (Types of users to clear roles of)

Permission:


/role clearNicks

Clear all nicknames on discord

Arguments:

[undo] - Boolean Undo the last recent use of this command

Permission:


/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

Permission:


/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

Permission:


/role mask_sheet

Add or remove a role from a set of members on discord based on a spreadsheet By default only roles will be added, specify removeRoles to remove roles from users not assigned the role in the sheet Specify listMissing to list nations that are not assigned a role in the sheet Columns:

  • nation, leader, user, member (at least one)
  • role, role1, roleN (multiple, or use comma separated values in one cell)

Arguments:

<sheet> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-u removeRoles] - Set<Role> Remove these roles from users not assigned the role in the sheet (A comma separated list of discord role names or mentions) [-ra removeAll] - boolean Remove all roles mentioned in the sheet [-ln listMissing] - Set<DBNation> List nations that are not assigned a role in the sheet (A comma separated list of nations, alliances and filters) [-f force] - boolean

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/selection_alias add alliance

Add an alias for a selection of alliances

Arguments:

<name> - String A single line of text <alliances> - Set<DBAlliance> A comma separated list of alliances

Permission:


/selection_alias add attacktype

Add an alias for a selection of attack types

Arguments:

<name> - String A single line of text <attack_types> - Set<AttackType> A comma separated list of attack types

Permission:


/selection_alias add audittype

Add an alias for a selection of Audit Types

Arguments:

<name> - String A single line of text <audit_types> - Set<AuditType> A comma separated list of audit types

Permission:


/selection_alias add ban

Add an alias for a selection of bans

Arguments:

<name> - String A single line of text <bans> - Set<DBBan> TODO CM REF

Permission:


/selection_alias add bounty

Add an alias for a selection of bounties

Arguments:

<name> - String A single line of text <bounties> - Set<DBBounty> TODO CM REF

Permission:


/selection_alias add building

Add an alias for a selection of Buildings

Arguments:

<name> - String A single line of text <Buildings> - Set<Building> A comma separated list of building types

Permission:


/selection_alias add city

Add an alias for a selection of cities

Arguments:

<name> - String A single line of text <cities> - Set<DBCity> TODO CM REF

Permission:


/selection_alias add continent

Add an alias for a selection of continents

Arguments:

<name> - String A single line of text <continents> - Set<Continent> A comma separated list of continents, or *

Permission:


/selection_alias add guild

Add an alias for a selection of guilds

Arguments:

<name> - String A single line of text <guilds> - Set<GuildDB> TODO CM Ref

Permission:


/selection_alias add guildsetting

Add an alias for a selection of guild settings

Arguments:

<name> - String A single line of text <settings> - Set<GuildSetting> TODO CM REF

Permission:


/selection_alias add iattack

Add an alias for a selection of attacks

Arguments:

<name> - String A single line of text <attacks> - Set<IAttack> TODO CM REF

Permission:


/selection_alias add militaryunit

Add an alias for a selection of Military Units

Arguments:

<name> - String A single line of text <military_units> - Set<MilitaryUnit> A comma separated list of military units

Permission:


/selection_alias add nation

Add an alias for a selection of Nations

Arguments:

<name> - String A single line of text <nations> - Set<DBNation> A comma separated list of nations, alliances and filters

Permission:


/selection_alias add nationcolor

Add an alias for a selection of Nation Colors

Arguments:

<name> - String A single line of text <colors> - Set<NationColor> TODO CM REF

Permission:


/selection_alias add nationlist

Add an alias for a selection of nationlists

Arguments:

<name> - String A single line of text <nationlists> - Set<NationList> TODO CM REF

Permission:


/selection_alias add nationoralliance

Add an alias for a selection of NationOrAlliances

Arguments:

<name> - String A single line of text <nationoralliances> - Set<NationOrAlliance> A comma separated list of nations and alliances

Permission:


/selection_alias add project

Add an alias for a selection of Projects

Arguments:

<name> - String A single line of text <projects> - Set<Project> A comma separated list of nation projects

Permission:


/selection_alias add resourcetype

Add an alias for a selection of resources

Arguments:

<name> - String A single line of text <resources> - Set<ResourceType> TODO CM REF

Permission:


/selection_alias add taxbracket

Add an alias for a selection of tax brackets

Arguments:

<name> - String A single line of text <taxbrackets> - Set<TaxBracket> TODO CM REF

Permission:


/selection_alias add taxdeposit

Add an alias for a selection of tax records

Arguments:

<name> - String A single line of text <taxes> - Set<TaxDeposit> TODO CM REF

Permission:


/selection_alias add treasure

Add an alias for a selection of Treasures

Arguments:

<name> - String A single line of text <treasures> - Set<DBTreasure> TODO CM REF

Permission:


/selection_alias add treaty

Add an alias for a selection of treaties

Arguments:

<name> - String A single line of text <treaties> - Set<Treaty> TODO CM REF

Permission:


/selection_alias add treatytype

Add an alias for a selection of Treaty Types

Arguments:

<name> - String A single line of text <treaty_types> - Set<TreatyType> TODO CM REF

Permission:


/selection_alias add user

Add an alias for a selection of users

Arguments:

<name> - String A single line of text <users> - Set<UserWrapper> TODO CM REF

Permission:


/selection_alias add war

Add an alias for a selection of wars

Arguments:

<name> - String A single line of text <wars> - Set<DBWar> TODO CM REF

Permission:


/selection_alias list

This command is public

List selection aliases for this guild

Arguments:

[type] - Class[PlaceholderType] An entity type for a placeholder Used for sheets or formatted messages


/selection_alias remove

View a custom sheet

Arguments:

<selection> - SelectionAlias A selection alias name that has been created in this guild Used to reference a list of nations or other entities that can be used in commands and sheets If the command supports it, you can specify a new selection alias inline e.g. nation:*,#cities>10

Permission:


/selection_alias rename

Rename a selection alias

Arguments:

<sheet> - SelectionAlias A selection alias name that has been created in this guild Used to reference a list of nations or other entities that can be used in commands and sheets If the command supports it, you can specify a new selection alias inline e.g. nation:*,#cities>10 <name> - String A single line of text

Permission:


/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

Permission:


/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

Permission:


/settings delete

Delete an alliance or guild setting

Arguments:

[key] - GuildSetting Bot guild settings

Permission:


/settings info

Configure any alliance or guild settings

Arguments:

[key] - GuildSetting The setting to change or view (Bot guild settings) [value] - String[TextArea] The value to set the setting to (A single line of text) [-a listAll] - boolean

Permission:


/settings sheets

View set or delete alliance or guild google sheets

This command has no arguments

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_audit MEMBER_AUDIT_ALERTS

The #channel to ping members about audits

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/settings_audit MEMBER_LEAVE_ALERT_CHANNEL

The channel to receive alerts when a member leaves

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/settings_bank_access ALLOW_UNVERIFIED_BANKING

Allow unregistered nations to withdraw via a web banking portal

Arguments:

<value> - boolean

Permission:


/settings_bank_access BANKER_WITHDRAW_LIMIT

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

Arguments:

<amount> - long A whole number

Permission:


/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

Permission:


/settings_bank_access DEFAULT_OFFSHORE_ACCOUNT

The default account to offshore into via </offshore send:1015168434847363132>

Arguments:

<natOrAA> - GuildOrAlliance A guild or alliance name, url or id. Prefix with AA: or guild: to avoid ambiguity if there exists both by the same name or id

Permission:


/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

Permission:


/settings_bank_access MEMBER_CAN_OFFSHORE

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

Arguments:

<value> - boolean

Permission:


/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

Permission:


/settings_bank_access MEMBER_CAN_WITHDRAW_WARTIME

Whether members can withdraw during wartime (true/false)

Arguments:

<enabled> - boolean

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_bank_access ROUTE_ALLIANCE_BANK

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

Arguments:

<value> - boolean

Permission:


/settings_bank_access WITHDRAW_IGNORES_EXPIRE

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

Arguments:

<enabled> - boolean

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_bank_access toggleGrants

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

Arguments:

<nation> - DBNation nation id, name or url

Permission:


/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

Permission:


/settings_bank_info BANK_ALERT_CHANNEL

The #channel to receive alerts for transfers when a nation goes into VM

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/settings_bank_info DISPLAY_CONDENSED_DEPOSITS

Display deposits in a condensed format

Arguments:

<enabled> - boolean

Permission:


/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

Permission:


/settings_bank_info GRANT_REQUEST_CHANNEL

The #channel for users to request grants in. No additional functionality is added, you can setup a ticket bot or an embed there

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/settings_bank_info LARGE_TRANSFERS_CHANNEL

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

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/settings_beige_alerts BEIGE_VIOLATION_MAIL

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

Arguments:

<value> - boolean

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/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)

Permission:


/settings_bounty BOUNTY_ALERT_CHANNEL

The channel to receive alerts when a bounty is placed

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/settings_default registerAlliance

Your alliance id

Arguments:

<alliances> - Set<DBAlliance> A comma separated list of alliances

Permission:


/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

Permission:


/settings_default unregisterAlliance

Your alliance id

Arguments:

<alliances> - Set<DBAlliance> A comma separated list of alliances

Permission:


/settings_foreign_affairs ALLIANCE_CREATE_ALERTS

The #channel to receive alerts for alliance creation

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_foreign_affairs TREATY_ALERTS

The #channel to receive alerts for treaty changes

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/settings_interview INTERVIEW_INFO_SPAM

The channel to receive info spam about expired interview channels

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_orbis_alerts ALLIANCE_EXODUS_TOP_X

The rank threshold to post exodus alerts for

Arguments:

<rank> - int A whole number

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_orbis_alerts REROLL_ALERT_CHANNEL

The #channel to receive alerts for nation rerolls

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/settings_recruit RECRUIT_MESSAGE_OUTPUT

The #channel to receive recruitment message output

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/settings_recruit add_timed_message

Add a timed message to be sent to new members after a delay

  • CREATION
  • When a nation is created
  • Messages will not send to nations that are inactive, or created before the message was created
  • MEMBER_DEPARTURE
  • When an applicant or member (but not officer) leaves an alliance
  • Messages will not send if another message has been sent recently, if the nation is inactive, or it was created recently
  • GRAVEYARD_ACTIVE
  • When a nation not part of a functioning alliance becomes active
  • Nations must be inactive for at least the time specified to be sent the custom messageMessages will not send if another message has been sent recently

Note: If multiple messages qualify, only the last one will be sent. This task runs every 5 minutes

Arguments:

<timeDelay> - long[Timediff] A time difference or unix timestamp which will resolve as a difference relative to the current date <subject> - String A single line of text <message> - String [-t trigger=CREATION] - MessageTrigger

Permission:


/settings_recruit remove_timed_message

Remove a timed message with a specific time-delay for a trigger

Arguments:

<trigger> - MessageTrigger The type of message to remove The default type is CREATION <timeDelay> - long[Timediff] The time delay of the message to remove (A time difference or unix timestamp which will resolve as a difference relative to the current date)

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/settings_role AUTONICK

Options: { FALSE,LEADER,NATION,DISCORD,NICKNAME } See also: </role clearnicks:1015168434847363134>

Arguments:

<mode> - AutoNickOption Mode for automatically giving discord nicknames

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_sheet list

List the sheet keys in use

This command has no arguments

Permission:


/settings_sheet set

Set the url used for a sheet key

Arguments:

<key> - SheetKey The name of a premade sheet Premade sheet commands assign a google sheet to a key, so subsequent commands use the same sheet <sheetId> - String A single line of text [tab] - String

Permission:


/settings_tax MEMBER_CAN_SET_BRACKET

Whether members can use </nation set taxbracket:1015168434776051733>

Arguments:

<value> - boolean

Permission:


/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)

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_trade TRADE_ALERT_CHANNEL

The #channel to receive alerts for trades

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/settings_war_alerts BLOCKADED_ALERTS

The #channel to receive alerts for blockades

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/settings_war_alerts HIDE_APPLICANT_WARS

Whether to hide war alerts for applicants

Arguments:

<value> - boolean

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/settings_war_alerts SHOW_ALLY_DEFENSIVE_WARS

Whether to show defensive war alerts for allies (true/false)

Arguments:

<enabled> - boolean

Permission:


/settings_war_alerts SHOW_ALLY_OFFENSIVE_WARS

Whether to show offensive war alerts for allies (true/false)

Arguments:

<enabled> - boolean

Permission:


/settings_war_alerts UNBLOCKADED_ALERTS

The #channel to receive alerts for unblockades

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/settings_war_alerts UNBLOCKADE_REQUESTS

The #channel to receive alerts for unblockade requests

Arguments:

<channel> - MessageChannel A discord channel name or mention

Permission:


/settings_war_alerts WAR_ALERT_FOR_OFFSHORES

Whether to do war alerts for offshore alliances

Arguments:

<enabled> - boolean

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/sheet_custom add_tab

Add a tab to a custom sheet Tabs are named and are comprised of a selection alias (rows) and a sheet template (columns) You must create a selection alias and sheet template first Sheets must be generated/updated with the update command

Arguments:

<sheet> - CustomSheet A custom sheet name that has been created in this guild Custom sheets have named tabs comprised of template-selection pairs <tabName> - String A single line of text <select> - SelectionAlias A selection alias name that has been created in this guild Used to reference a list of nations or other entities that can be used in commands and sheets If the command supports it, you can specify a new selection alias inline e.g. nation:*,#cities>10 <columns> - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [-f force] - boolean

Permission:


/sheet_custom auto

Generate or update a spreadsheet from a url Each tab must be a valid selection, prefixed by the type e.g. nation:* The first row must have placeholders in each column, such as {nation} {cities} {score}

Arguments:

<sheet> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s saveSheet] - boolean

Permission:


/sheet_custom list

List custom sheets for this guild

This command has no arguments

Permission:


/sheet_custom remove_tab

Unregister a tab from a custom sheet The tab wont be deleted from the google sheet, but it will no longer be updated. You may manually delete it from the google sheet

Arguments:

<sheet> - CustomSheet A custom sheet name that has been created in this guild Custom sheets have named tabs comprised of template-selection pairs <tabName> - String A single line of text

Permission:


/sheet_custom update

Update the tabs in a custom sheet and return the url A sheet update may produce errors if a selection is no longer valid Tabs in the google sheet which aren't registered will be ignored

Arguments:

<sheet> - CustomSheet A custom sheet name that has been created in this guild Custom sheets have named tabs comprised of template-selection pairs

Permission:


/sheet_custom view

Get the google sheet url and view the tabs for a custom sheet, and their respective selection alias (rows) and sheet template (columns)

Arguments:

<sheet> - CustomSheet A custom sheet name that has been created in this guild Custom sheets have named tabs comprised of template-selection pairs

Permission:


/sheet_template add alliance

Add columns to a Alliance sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [column1] - TypedFunction<DBAlliance, String> https://github.com/xdnw/locutus/wiki/alliance_placeholders [column2] - TypedFunction<DBAlliance, String> [column3] - TypedFunction<DBAlliance, String> [column4] - TypedFunction<DBAlliance, String> [column5] - TypedFunction<DBAlliance, String> [column6] - TypedFunction<DBAlliance, String> [column7] - TypedFunction<DBAlliance, String> [column8] - TypedFunction<DBAlliance, String> [column9] - TypedFunction<DBAlliance, String> [column10] - TypedFunction<DBAlliance, String> [column11] - TypedFunction<DBAlliance, String> [column12] - TypedFunction<DBAlliance, String> [column13] - TypedFunction<DBAlliance, String> [column14] - TypedFunction<DBAlliance, String> [column15] - TypedFunction<DBAlliance, String> [column16] - TypedFunction<DBAlliance, String> [column17] - TypedFunction<DBAlliance, String> [column18] - TypedFunction<DBAlliance, String> [column19] - TypedFunction<DBAlliance, String> [column20] - TypedFunction<DBAlliance, String> [column21] - TypedFunction<DBAlliance, String> [column22] - TypedFunction<DBAlliance, String> [column23] - TypedFunction<DBAlliance, String> [column24] - TypedFunction<DBAlliance, String>

Permission:


/sheet_template add attacktype

Add columns to a AttackType sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<AttackType, String> TODO CM REF [b] - TypedFunction<AttackType, String> [c] - TypedFunction<AttackType, String> [d] - TypedFunction<AttackType, String> [e] - TypedFunction<AttackType, String> [f] - TypedFunction<AttackType, String> [g] - TypedFunction<AttackType, String> [h] - TypedFunction<AttackType, String> [i] - TypedFunction<AttackType, String> [j] - TypedFunction<AttackType, String> [k] - TypedFunction<AttackType, String> [l] - TypedFunction<AttackType, String> [m] - TypedFunction<AttackType, String> [n] - TypedFunction<AttackType, String> [o] - TypedFunction<AttackType, String> [p] - TypedFunction<AttackType, String> [q] - TypedFunction<AttackType, String> [r] - TypedFunction<AttackType, String> [s] - TypedFunction<AttackType, String> [t] - TypedFunction<AttackType, String> [u] - TypedFunction<AttackType, String> [v] - TypedFunction<AttackType, String> [w] - TypedFunction<AttackType, String> [x] - TypedFunction<AttackType, String>

Permission:


/sheet_template add audittype

Add columns to a Audit Type sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<AuditType, String> TODO CM REF [b] - TypedFunction<AuditType, String> [c] - TypedFunction<AuditType, String> [d] - TypedFunction<AuditType, String> [e] - TypedFunction<AuditType, String> [f] - TypedFunction<AuditType, String> [g] - TypedFunction<AuditType, String> [h] - TypedFunction<AuditType, String> [i] - TypedFunction<AuditType, String> [j] - TypedFunction<AuditType, String> [k] - TypedFunction<AuditType, String> [l] - TypedFunction<AuditType, String> [m] - TypedFunction<AuditType, String> [n] - TypedFunction<AuditType, String> [o] - TypedFunction<AuditType, String> [p] - TypedFunction<AuditType, String> [q] - TypedFunction<AuditType, String> [r] - TypedFunction<AuditType, String> [s] - TypedFunction<AuditType, String> [t] - TypedFunction<AuditType, String> [u] - TypedFunction<AuditType, String> [v] - TypedFunction<AuditType, String> [w] - TypedFunction<AuditType, String> [x] - TypedFunction<AuditType, String>

Permission:


/sheet_template add ban

Add columns to a Ban sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<DBBan, String> TODO CM REF [b] - TypedFunction<DBBan, String> [c] - TypedFunction<DBBan, String> [d] - TypedFunction<DBBan, String> [e] - TypedFunction<DBBan, String> [f] - TypedFunction<DBBan, String> [g] - TypedFunction<DBBan, String> [h] - TypedFunction<DBBan, String> [i] - TypedFunction<DBBan, String> [j] - TypedFunction<DBBan, String> [k] - TypedFunction<DBBan, String> [l] - TypedFunction<DBBan, String> [m] - TypedFunction<DBBan, String> [n] - TypedFunction<DBBan, String> [o] - TypedFunction<DBBan, String> [p] - TypedFunction<DBBan, String> [q] - TypedFunction<DBBan, String> [r] - TypedFunction<DBBan, String> [s] - TypedFunction<DBBan, String> [t] - TypedFunction<DBBan, String> [u] - TypedFunction<DBBan, String> [v] - TypedFunction<DBBan, String> [w] - TypedFunction<DBBan, String> [x] - TypedFunction<DBBan, String>

Permission:


/sheet_template add bounty

Add columns to a bounty sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<DBBounty, String> TODO CM REF [b] - TypedFunction<DBBounty, String> [c] - TypedFunction<DBBounty, String> [d] - TypedFunction<DBBounty, String> [e] - TypedFunction<DBBounty, String> [f] - TypedFunction<DBBounty, String> [g] - TypedFunction<DBBounty, String> [h] - TypedFunction<DBBounty, String> [i] - TypedFunction<DBBounty, String> [j] - TypedFunction<DBBounty, String> [k] - TypedFunction<DBBounty, String> [l] - TypedFunction<DBBounty, String> [m] - TypedFunction<DBBounty, String> [n] - TypedFunction<DBBounty, String> [o] - TypedFunction<DBBounty, String> [p] - TypedFunction<DBBounty, String> [q] - TypedFunction<DBBounty, String> [r] - TypedFunction<DBBounty, String> [s] - TypedFunction<DBBounty, String> [t] - TypedFunction<DBBounty, String> [u] - TypedFunction<DBBounty, String> [v] - TypedFunction<DBBounty, String> [w] - TypedFunction<DBBounty, String> [x] - TypedFunction<DBBounty, String>

Permission:


/sheet_template add building

Add columns to a Building sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<Building, String> TODO CM REF [b] - TypedFunction<Building, String> [c] - TypedFunction<Building, String> [d] - TypedFunction<Building, String> [e] - TypedFunction<Building, String> [f] - TypedFunction<Building, String> [g] - TypedFunction<Building, String> [h] - TypedFunction<Building, String> [i] - TypedFunction<Building, String> [j] - TypedFunction<Building, String> [k] - TypedFunction<Building, String> [l] - TypedFunction<Building, String> [m] - TypedFunction<Building, String> [n] - TypedFunction<Building, String> [o] - TypedFunction<Building, String> [p] - TypedFunction<Building, String> [q] - TypedFunction<Building, String> [r] - TypedFunction<Building, String> [s] - TypedFunction<Building, String> [t] - TypedFunction<Building, String> [u] - TypedFunction<Building, String> [v] - TypedFunction<Building, String> [w] - TypedFunction<Building, String> [x] - TypedFunction<Building, String>

Permission:


/sheet_template add city

Add columns to a City sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<DBCity, String> TODO CM REF [b] - TypedFunction<DBCity, String> [c] - TypedFunction<DBCity, String> [d] - TypedFunction<DBCity, String> [e] - TypedFunction<DBCity, String> [f] - TypedFunction<DBCity, String> [g] - TypedFunction<DBCity, String> [h] - TypedFunction<DBCity, String> [i] - TypedFunction<DBCity, String> [j] - TypedFunction<DBCity, String> [k] - TypedFunction<DBCity, String> [l] - TypedFunction<DBCity, String> [m] - TypedFunction<DBCity, String> [n] - TypedFunction<DBCity, String> [o] - TypedFunction<DBCity, String> [p] - TypedFunction<DBCity, String> [q] - TypedFunction<DBCity, String> [r] - TypedFunction<DBCity, String> [s] - TypedFunction<DBCity, String> [t] - TypedFunction<DBCity, String> [u] - TypedFunction<DBCity, String> [v] - TypedFunction<DBCity, String> [w] - TypedFunction<DBCity, String> [x] - TypedFunction<DBCity, String>

Permission:


/sheet_template add continent

Add columns to a Continent sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<Continent, String> TODO CM REF [b] - TypedFunction<Continent, String> [c] - TypedFunction<Continent, String> [d] - TypedFunction<Continent, String> [e] - TypedFunction<Continent, String> [f] - TypedFunction<Continent, String> [g] - TypedFunction<Continent, String> [h] - TypedFunction<Continent, String> [i] - TypedFunction<Continent, String> [j] - TypedFunction<Continent, String> [k] - TypedFunction<Continent, String> [l] - TypedFunction<Continent, String> [m] - TypedFunction<Continent, String> [n] - TypedFunction<Continent, String> [o] - TypedFunction<Continent, String> [p] - TypedFunction<Continent, String> [q] - TypedFunction<Continent, String> [r] - TypedFunction<Continent, String> [s] - TypedFunction<Continent, String> [t] - TypedFunction<Continent, String> [u] - TypedFunction<Continent, String> [v] - TypedFunction<Continent, String> [w] - TypedFunction<Continent, String> [x] - TypedFunction<Continent, String>

Permission:


/sheet_template add guild

Add columns to a Guild sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<GuildDB, String> TODO CM Ref [b] - TypedFunction<GuildDB, String> [c] - TypedFunction<GuildDB, String> [d] - TypedFunction<GuildDB, String> [e] - TypedFunction<GuildDB, String> [f] - TypedFunction<GuildDB, String> [g] - TypedFunction<GuildDB, String> [h] - TypedFunction<GuildDB, String> [i] - TypedFunction<GuildDB, String> [j] - TypedFunction<GuildDB, String> [k] - TypedFunction<GuildDB, String> [l] - TypedFunction<GuildDB, String> [m] - TypedFunction<GuildDB, String> [n] - TypedFunction<GuildDB, String> [o] - TypedFunction<GuildDB, String> [p] - TypedFunction<GuildDB, String> [q] - TypedFunction<GuildDB, String> [r] - TypedFunction<GuildDB, String> [s] - TypedFunction<GuildDB, String> [t] - TypedFunction<GuildDB, String> [u] - TypedFunction<GuildDB, String> [v] - TypedFunction<GuildDB, String> [w] - TypedFunction<GuildDB, String> [x] - TypedFunction<GuildDB, String>

Permission:


/sheet_template add guildsetting

Add columns to a Guild Setting sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<GuildSetting, String> TODO CM REF [b] - TypedFunction<GuildSetting, String> [c] - TypedFunction<GuildSetting, String> [d] - TypedFunction<GuildSetting, String> [e] - TypedFunction<GuildSetting, String> [f] - TypedFunction<GuildSetting, String> [g] - TypedFunction<GuildSetting, String> [h] - TypedFunction<GuildSetting, String> [i] - TypedFunction<GuildSetting, String> [j] - TypedFunction<GuildSetting, String> [k] - TypedFunction<GuildSetting, String> [l] - TypedFunction<GuildSetting, String> [m] - TypedFunction<GuildSetting, String> [n] - TypedFunction<GuildSetting, String> [o] - TypedFunction<GuildSetting, String> [p] - TypedFunction<GuildSetting, String> [q] - TypedFunction<GuildSetting, String> [r] - TypedFunction<GuildSetting, String> [s] - TypedFunction<GuildSetting, String> [t] - TypedFunction<GuildSetting, String> [u] - TypedFunction<GuildSetting, String> [v] - TypedFunction<GuildSetting, String> [w] - TypedFunction<GuildSetting, String> [x] - TypedFunction<GuildSetting, String>

Permission:


/sheet_template add iattack

Add columns to an Attack sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<IAttack, String> TODO CM REF [b] - TypedFunction<IAttack, String> [c] - TypedFunction<IAttack, String> [d] - TypedFunction<IAttack, String> [e] - TypedFunction<IAttack, String> [f] - TypedFunction<IAttack, String> [g] - TypedFunction<IAttack, String> [h] - TypedFunction<IAttack, String> [i] - TypedFunction<IAttack, String> [j] - TypedFunction<IAttack, String> [k] - TypedFunction<IAttack, String> [l] - TypedFunction<IAttack, String> [m] - TypedFunction<IAttack, String> [n] - TypedFunction<IAttack, String> [o] - TypedFunction<IAttack, String> [p] - TypedFunction<IAttack, String> [q] - TypedFunction<IAttack, String> [r] - TypedFunction<IAttack, String> [s] - TypedFunction<IAttack, String> [t] - TypedFunction<IAttack, String> [u] - TypedFunction<IAttack, String> [v] - TypedFunction<IAttack, String> [w] - TypedFunction<IAttack, String> [x] - TypedFunction<IAttack, String>

Permission:


/sheet_template add militaryunit

Add columns to a Military Unit sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<MilitaryUnit, String> TODO CM REF [b] - TypedFunction<MilitaryUnit, String> [c] - TypedFunction<MilitaryUnit, String> [d] - TypedFunction<MilitaryUnit, String> [e] - TypedFunction<MilitaryUnit, String> [f] - TypedFunction<MilitaryUnit, String> [g] - TypedFunction<MilitaryUnit, String> [h] - TypedFunction<MilitaryUnit, String> [i] - TypedFunction<MilitaryUnit, String> [j] - TypedFunction<MilitaryUnit, String> [k] - TypedFunction<MilitaryUnit, String> [l] - TypedFunction<MilitaryUnit, String> [m] - TypedFunction<MilitaryUnit, String> [n] - TypedFunction<MilitaryUnit, String> [o] - TypedFunction<MilitaryUnit, String> [p] - TypedFunction<MilitaryUnit, String> [q] - TypedFunction<MilitaryUnit, String> [r] - TypedFunction<MilitaryUnit, String> [s] - TypedFunction<MilitaryUnit, String> [t] - TypedFunction<MilitaryUnit, String> [u] - TypedFunction<MilitaryUnit, String> [v] - TypedFunction<MilitaryUnit, String> [w] - TypedFunction<MilitaryUnit, String> [x] - TypedFunction<MilitaryUnit, String>

Permission:


/sheet_template add nation

Add columns to a Nation sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [column1] - TypedFunction<DBNation, String> /help find_nation_placeholder [column2] - TypedFunction<DBNation, String> [column3] - TypedFunction<DBNation, String> [column4] - TypedFunction<DBNation, String> [column5] - TypedFunction<DBNation, String> [column6] - TypedFunction<DBNation, String> [column7] - TypedFunction<DBNation, String> [column8] - TypedFunction<DBNation, String> [column9] - TypedFunction<DBNation, String> [column10] - TypedFunction<DBNation, String> [column11] - TypedFunction<DBNation, String> [column12] - TypedFunction<DBNation, String> [column13] - TypedFunction<DBNation, String> [column14] - TypedFunction<DBNation, String> [column15] - TypedFunction<DBNation, String> [column16] - TypedFunction<DBNation, String> [column17] - TypedFunction<DBNation, String> [column18] - TypedFunction<DBNation, String> [column19] - TypedFunction<DBNation, String> [column20] - TypedFunction<DBNation, String> [column21] - TypedFunction<DBNation, String> [column22] - TypedFunction<DBNation, String> [column23] - TypedFunction<DBNation, String> [column24] - TypedFunction<DBNation, String>

Permission:


/sheet_template add nationcolor

Add columns to a Nation Color sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<NationColor, String> TODO CM REF [b] - TypedFunction<NationColor, String> [c] - TypedFunction<NationColor, String> [d] - TypedFunction<NationColor, String> [e] - TypedFunction<NationColor, String> [f] - TypedFunction<NationColor, String> [g] - TypedFunction<NationColor, String> [h] - TypedFunction<NationColor, String> [i] - TypedFunction<NationColor, String> [j] - TypedFunction<NationColor, String> [k] - TypedFunction<NationColor, String> [l] - TypedFunction<NationColor, String> [m] - TypedFunction<NationColor, String> [n] - TypedFunction<NationColor, String> [o] - TypedFunction<NationColor, String> [p] - TypedFunction<NationColor, String> [q] - TypedFunction<NationColor, String> [r] - TypedFunction<NationColor, String> [s] - TypedFunction<NationColor, String> [t] - TypedFunction<NationColor, String> [u] - TypedFunction<NationColor, String> [v] - TypedFunction<NationColor, String> [w] - TypedFunction<NationColor, String> [x] - TypedFunction<NationColor, String>

Permission:


/sheet_template add nationlist

Add columns to a NationList sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<NationList, String> TODO CM REF [b] - TypedFunction<NationList, String> [c] - TypedFunction<NationList, String> [d] - TypedFunction<NationList, String> [e] - TypedFunction<NationList, String> [f] - TypedFunction<NationList, String> [g] - TypedFunction<NationList, String> [h] - TypedFunction<NationList, String> [i] - TypedFunction<NationList, String> [j] - TypedFunction<NationList, String> [k] - TypedFunction<NationList, String> [l] - TypedFunction<NationList, String> [m] - TypedFunction<NationList, String> [n] - TypedFunction<NationList, String> [o] - TypedFunction<NationList, String> [p] - TypedFunction<NationList, String> [q] - TypedFunction<NationList, String> [r] - TypedFunction<NationList, String> [s] - TypedFunction<NationList, String> [t] - TypedFunction<NationList, String> [u] - TypedFunction<NationList, String> [v] - TypedFunction<NationList, String> [w] - TypedFunction<NationList, String> [x] - TypedFunction<NationList, String>

Permission:


/sheet_template add nationoralliance

Add columns to a NationOrAlliance sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<NationOrAlliance, String> TODO [b] - TypedFunction<NationOrAlliance, String> [c] - TypedFunction<NationOrAlliance, String> [d] - TypedFunction<NationOrAlliance, String> [e] - TypedFunction<NationOrAlliance, String> [f] - TypedFunction<NationOrAlliance, String> [g] - TypedFunction<NationOrAlliance, String> [h] - TypedFunction<NationOrAlliance, String> [i] - TypedFunction<NationOrAlliance, String> [j] - TypedFunction<NationOrAlliance, String> [k] - TypedFunction<NationOrAlliance, String> [l] - TypedFunction<NationOrAlliance, String> [m] - TypedFunction<NationOrAlliance, String> [n] - TypedFunction<NationOrAlliance, String> [o] - TypedFunction<NationOrAlliance, String> [p] - TypedFunction<NationOrAlliance, String> [q] - TypedFunction<NationOrAlliance, String> [r] - TypedFunction<NationOrAlliance, String> [s] - TypedFunction<NationOrAlliance, String> [t] - TypedFunction<NationOrAlliance, String> [u] - TypedFunction<NationOrAlliance, String> [v] - TypedFunction<NationOrAlliance, String> [w] - TypedFunction<NationOrAlliance, String> [x] - TypedFunction<NationOrAlliance, String>

Permission:


/sheet_template add project

Add columns to a Project sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<Project, String> TODO CM REF [b] - TypedFunction<Project, String> [c] - TypedFunction<Project, String> [d] - TypedFunction<Project, String> [e] - TypedFunction<Project, String> [f] - TypedFunction<Project, String> [g] - TypedFunction<Project, String> [h] - TypedFunction<Project, String> [i] - TypedFunction<Project, String> [j] - TypedFunction<Project, String> [k] - TypedFunction<Project, String> [l] - TypedFunction<Project, String> [m] - TypedFunction<Project, String> [n] - TypedFunction<Project, String> [o] - TypedFunction<Project, String> [p] - TypedFunction<Project, String> [q] - TypedFunction<Project, String> [r] - TypedFunction<Project, String> [s] - TypedFunction<Project, String> [t] - TypedFunction<Project, String> [u] - TypedFunction<Project, String> [v] - TypedFunction<Project, String> [w] - TypedFunction<Project, String> [x] - TypedFunction<Project, String>

Permission:


/sheet_template add resourcetype

Add columns to a Resource sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<ResourceType, String> TODO CM REF [b] - TypedFunction<ResourceType, String> [c] - TypedFunction<ResourceType, String> [d] - TypedFunction<ResourceType, String> [e] - TypedFunction<ResourceType, String> [f] - TypedFunction<ResourceType, String> [g] - TypedFunction<ResourceType, String> [h] - TypedFunction<ResourceType, String> [i] - TypedFunction<ResourceType, String> [j] - TypedFunction<ResourceType, String> [k] - TypedFunction<ResourceType, String> [l] - TypedFunction<ResourceType, String> [m] - TypedFunction<ResourceType, String> [n] - TypedFunction<ResourceType, String> [o] - TypedFunction<ResourceType, String> [p] - TypedFunction<ResourceType, String> [q] - TypedFunction<ResourceType, String> [r] - TypedFunction<ResourceType, String> [s] - TypedFunction<ResourceType, String> [t] - TypedFunction<ResourceType, String> [u] - TypedFunction<ResourceType, String> [v] - TypedFunction<ResourceType, String> [w] - TypedFunction<ResourceType, String> [x] - TypedFunction<ResourceType, String>

Permission:


/sheet_template add taxbracket

Add columns to a TaxBracket sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<TaxBracket, String> TODO CM REF [b] - TypedFunction<TaxBracket, String> [c] - TypedFunction<TaxBracket, String> [d] - TypedFunction<TaxBracket, String> [e] - TypedFunction<TaxBracket, String> [f] - TypedFunction<TaxBracket, String> [g] - TypedFunction<TaxBracket, String> [h] - TypedFunction<TaxBracket, String> [i] - TypedFunction<TaxBracket, String> [j] - TypedFunction<TaxBracket, String> [k] - TypedFunction<TaxBracket, String> [l] - TypedFunction<TaxBracket, String> [m] - TypedFunction<TaxBracket, String> [n] - TypedFunction<TaxBracket, String> [o] - TypedFunction<TaxBracket, String> [p] - TypedFunction<TaxBracket, String> [q] - TypedFunction<TaxBracket, String> [r] - TypedFunction<TaxBracket, String> [s] - TypedFunction<TaxBracket, String> [t] - TypedFunction<TaxBracket, String> [u] - TypedFunction<TaxBracket, String> [v] - TypedFunction<TaxBracket, String> [w] - TypedFunction<TaxBracket, String> [x] - TypedFunction<TaxBracket, String>

Permission:


/sheet_template add taxdeposit

Add columns to a Bank TaxDeposit sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<TaxDeposit, String> TODO CM REF [b] - TypedFunction<TaxDeposit, String> [c] - TypedFunction<TaxDeposit, String> [d] - TypedFunction<TaxDeposit, String> [e] - TypedFunction<TaxDeposit, String> [f] - TypedFunction<TaxDeposit, String> [g] - TypedFunction<TaxDeposit, String> [h] - TypedFunction<TaxDeposit, String> [i] - TypedFunction<TaxDeposit, String> [j] - TypedFunction<TaxDeposit, String> [k] - TypedFunction<TaxDeposit, String> [l] - TypedFunction<TaxDeposit, String> [m] - TypedFunction<TaxDeposit, String> [n] - TypedFunction<TaxDeposit, String> [o] - TypedFunction<TaxDeposit, String> [p] - TypedFunction<TaxDeposit, String> [q] - TypedFunction<TaxDeposit, String> [r] - TypedFunction<TaxDeposit, String> [s] - TypedFunction<TaxDeposit, String> [t] - TypedFunction<TaxDeposit, String> [u] - TypedFunction<TaxDeposit, String> [v] - TypedFunction<TaxDeposit, String> [w] - TypedFunction<TaxDeposit, String> [x] - TypedFunction<TaxDeposit, String>

Permission:


/sheet_template add treasure

Add columns to a treasure sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<DBTreasure, String> TODO CM REF [b] - TypedFunction<DBTreasure, String> [c] - TypedFunction<DBTreasure, String> [d] - TypedFunction<DBTreasure, String> [e] - TypedFunction<DBTreasure, String> [f] - TypedFunction<DBTreasure, String> [g] - TypedFunction<DBTreasure, String> [h] - TypedFunction<DBTreasure, String> [i] - TypedFunction<DBTreasure, String> [j] - TypedFunction<DBTreasure, String> [k] - TypedFunction<DBTreasure, String> [l] - TypedFunction<DBTreasure, String> [m] - TypedFunction<DBTreasure, String> [n] - TypedFunction<DBTreasure, String> [o] - TypedFunction<DBTreasure, String> [p] - TypedFunction<DBTreasure, String> [q] - TypedFunction<DBTreasure, String> [r] - TypedFunction<DBTreasure, String> [s] - TypedFunction<DBTreasure, String> [t] - TypedFunction<DBTreasure, String> [u] - TypedFunction<DBTreasure, String> [v] - TypedFunction<DBTreasure, String> [w] - TypedFunction<DBTreasure, String> [x] - TypedFunction<DBTreasure, String>

Permission:


/sheet_template add treaty

Add columns to a Treaty sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<Treaty, String> TODO CM REF [b] - TypedFunction<Treaty, String> [c] - TypedFunction<Treaty, String> [d] - TypedFunction<Treaty, String> [e] - TypedFunction<Treaty, String> [f] - TypedFunction<Treaty, String> [g] - TypedFunction<Treaty, String> [h] - TypedFunction<Treaty, String> [i] - TypedFunction<Treaty, String> [j] - TypedFunction<Treaty, String> [k] - TypedFunction<Treaty, String> [l] - TypedFunction<Treaty, String> [m] - TypedFunction<Treaty, String> [n] - TypedFunction<Treaty, String> [o] - TypedFunction<Treaty, String> [p] - TypedFunction<Treaty, String> [q] - TypedFunction<Treaty, String> [r] - TypedFunction<Treaty, String> [s] - TypedFunction<Treaty, String> [t] - TypedFunction<Treaty, String> [u] - TypedFunction<Treaty, String> [v] - TypedFunction<Treaty, String> [w] - TypedFunction<Treaty, String> [x] - TypedFunction<Treaty, String>

Permission:


/sheet_template add treatytype

Add columns to a TreatyType sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<TreatyType, String> TODO CM REF [b] - TypedFunction<TreatyType, String> [c] - TypedFunction<TreatyType, String> [d] - TypedFunction<TreatyType, String> [e] - TypedFunction<TreatyType, String> [f] - TypedFunction<TreatyType, String> [g] - TypedFunction<TreatyType, String> [h] - TypedFunction<TreatyType, String> [i] - TypedFunction<TreatyType, String> [j] - TypedFunction<TreatyType, String> [k] - TypedFunction<TreatyType, String> [l] - TypedFunction<TreatyType, String> [m] - TypedFunction<TreatyType, String> [n] - TypedFunction<TreatyType, String> [o] - TypedFunction<TreatyType, String> [p] - TypedFunction<TreatyType, String> [q] - TypedFunction<TreatyType, String> [r] - TypedFunction<TreatyType, String> [s] - TypedFunction<TreatyType, String> [t] - TypedFunction<TreatyType, String> [u] - TypedFunction<TreatyType, String> [v] - TypedFunction<TreatyType, String> [w] - TypedFunction<TreatyType, String> [x] - TypedFunction<TreatyType, String>

Permission:


/sheet_template add user

Add columns to a User sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<UserWrapper, String> TODO CM REF [b] - TypedFunction<UserWrapper, String> [c] - TypedFunction<UserWrapper, String> [d] - TypedFunction<UserWrapper, String> [e] - TypedFunction<UserWrapper, String> [f] - TypedFunction<UserWrapper, String> [g] - TypedFunction<UserWrapper, String> [h] - TypedFunction<UserWrapper, String> [i] - TypedFunction<UserWrapper, String> [j] - TypedFunction<UserWrapper, String> [k] - TypedFunction<UserWrapper, String> [l] - TypedFunction<UserWrapper, String> [m] - TypedFunction<UserWrapper, String> [n] - TypedFunction<UserWrapper, String> [o] - TypedFunction<UserWrapper, String> [p] - TypedFunction<UserWrapper, String> [q] - TypedFunction<UserWrapper, String> [r] - TypedFunction<UserWrapper, String> [s] - TypedFunction<UserWrapper, String> [t] - TypedFunction<UserWrapper, String> [u] - TypedFunction<UserWrapper, String> [v] - TypedFunction<UserWrapper, String> [w] - TypedFunction<UserWrapper, String> [x] - TypedFunction<UserWrapper, String>

Permission:


/sheet_template add war

Add columns to a War sheet

Arguments:

[-s sheet] - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline [a] - TypedFunction<DBWar, String> TODO CM REF [b] - TypedFunction<DBWar, String> [c] - TypedFunction<DBWar, String> [d] - TypedFunction<DBWar, String> [e] - TypedFunction<DBWar, String> [f] - TypedFunction<DBWar, String> [g] - TypedFunction<DBWar, String> [h] - TypedFunction<DBWar, String> [i] - TypedFunction<DBWar, String> [j] - TypedFunction<DBWar, String> [k] - TypedFunction<DBWar, String> [l] - TypedFunction<DBWar, String> [m] - TypedFunction<DBWar, String> [n] - TypedFunction<DBWar, String> [o] - TypedFunction<DBWar, String> [p] - TypedFunction<DBWar, String> [q] - TypedFunction<DBWar, String> [r] - TypedFunction<DBWar, String> [s] - TypedFunction<DBWar, String> [t] - TypedFunction<DBWar, String> [u] - TypedFunction<DBWar, String> [v] - TypedFunction<DBWar, String> [w] - TypedFunction<DBWar, String> [x] - TypedFunction<DBWar, String>

Permission:


/sheet_template list

List sheet templates for this guild

Arguments:

[type] - Class[PlaceholderType] An entity type for a placeholder Used for sheets or formatted messages

Permission:


/sheet_template remove

Delete a sheet template

Arguments:

<sheet> - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline

Permission:


/sheet_template remove_column

Remove columns in a sheet template

Arguments:

<sheet> - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline <columns> - List<Integer> A list of whole numbers (comma separated)

Permission:


/sheet_template rename

Rename a sheet template

Arguments:

<sheet> - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline <name> - String A single line of text

Permission:


/sheet_template view

View a sheet template

Arguments:

<sheet> - SheetTemplate A sheet template name that has been created in this guild Sheet templates are column formats for a sheet Templates, each with a selection can be used to generate multi-tabbed spreadsheets If the command supports it, you can specify a new template inline

Permission:


/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 Optional: Specify timeframe:

[startTime] - Long[Timestamp] Only list transfers after this time (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) [endTime] - Long[Timestamp] Only list transfers before this time (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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/sheets_econ ProjectSheet

Sheet of projects each nation has

Arguments:

<nations> - NationList A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/sheets_econ getNationsInternalTransfers

Get a sheet of internal transfers for nations

Arguments:

<nations> - Set<DBNation> A comma separated list of nations, alliances and filters Optional: Specify timeframe:

[startTime] - Long[Timestamp] Only list transfers after this time (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) [endTime] - Long[Timestamp] Only list transfers before this time (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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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> - NationList A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Permission:


/sheets_econ stockpileSheet

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

Arguments:

Optional: Specify Nations:

[nationFilter] - NationList Only include stockpiles from these nations (A comma separated list of nations, alliances and filters) Display Options: [-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

Permission:


/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

Permission:


/sheets_econ taxRecords

Get a sheet of a nation's in-game tax records and full resource amounts 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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-f forceUpdate] - boolean [-u includeUntaxable] - boolean Include the potential revenue of untaxable nations Assumes 100/100)

Permission:


/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

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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> - NationList 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) [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-e updateSpies] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/sheets_milcom MMRSheet

Generate a sheet of alliance/nation/city military unit and building counts (MMR)

Arguments:

<nations> - NationList A comma separated list of nations, alliances and filters [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-f forceUpdate] - boolean [-c showCities] - boolean List the military building count of each city instead of each nation [-t snapshotTime] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-d maxDef=3] - Integer Max Attackers to assign per defender (A whole number) [-o doubleOps] - boolean Double the offensive spy ops, e.g. two sets of ops at day change Note: You should also set maxDef to e.g. 6 [-r removeSheets] - Set<SpreadSheet> Remove the available spy ops in another spreadsheet (A comma separated list of spreadsheets) [-p prioritizeAlliances] - Set<DBAlliance> Prioritize defenders in these alliances (A comma separated list of alliances) [-aw attackerWeighting] - NationAttributeDouble Fine grained control over attacker priority e.g. (#warpolicy=ARCANE?1.2:1)*(#active_m<1440?1.2:1)*(#hasProject(SS)?1.2:1) (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) [-dw defenderWeighting] - NationAttributeDouble Fine grained control over defender priority (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)

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/sheets_milcom WarCostSheet

War cost (for each nation) broken down by war type The sheet is divided into groups for:

  • Raids: Attacking nations which do not fight back
  • Defenses: Attacked by a nation and fighting back
  • Offenses: Attacking a nation which fights back
  • Wars: Combination of defensive and offensive wars (not raids)

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 [-leader useLeader] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/sheets_milcom convertHidudeSpySheet

Convert hidude's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f forceUpdate] - boolean

Permission:


/sheets_milcom convertTKRSpySheet

Convert TKR's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f force] - boolean

Permission:


/sheets_milcom convertdtcspysheet

Convert dtc's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f forceUpdate] - boolean

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) <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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) [-a groupByAttacker] - boolean Group the spy operations (left column) by attacker

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [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) [-l useLeader] - boolean Parse nation leader instead of nation name

Permission:


/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> Additional War Options:

[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 If concluded wars within the timeframe should be included

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/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 nation 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)

Permission:


/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

Permission:


/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)

Permission:


/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)

Permission:


/spy sheet convertHidude

Convert hidude's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f forceUpdate] - boolean

Permission:


/spy sheet convertTKR

Convert TKR's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f force] - boolean

Permission:


/spy sheet convertdtc

Convert dtc's spy sheet format to the bot's format

Arguments:

<input> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-s output] - SpreadSheet [-a groupByAttacker] - boolean If results (left column) are grouped by the attacker instead of the defender [-f forceUpdate] - boolean

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) <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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use) [-a groupByAttacker] - boolean Group the spy operations (left column) by attacker

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-d maxDef=3] - Integer Max Attackers to assign per defender (A whole number) [-o doubleOps] - boolean Double the offensive spy ops, e.g. two sets of ops at day change Note: You should also set maxDef to e.g. 6 [-r removeSheets] - Set<SpreadSheet> Remove the available spy ops in another spreadsheet (A comma separated list of spreadsheets) [-p prioritizeAlliances] - Set<DBAlliance> Prioritize defenders in these alliances (A comma separated list of alliances) [-aw attackerWeighting] - NationAttributeDouble Fine grained control over attacker priority e.g. (#warpolicy=ARCANE?1.2:1)*(#active_m<1440?1.2:1)*(#hasProject(SS)?1.2:1) (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) [-dw defenderWeighting] - NationAttributeDouble Fine grained control over defender priority (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)

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [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) [-l useLeader] - boolean Parse nation leader instead of nation name

Permission:


/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> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-i includeInactives] - boolean [-a includeApplicants] - boolean [-t total] - boolean Graph the total spies instead of average per nation [-b barGraph] - boolean [-j attachJson] - boolean [-c attachCsv] - boolean


/stats_other allianceMetricsAB

This command is public

Graph an alliance metric over time for two coalitions

Arguments:

<metric> - AllianceMetric A Bot 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 [-c attachCsv] - boolean


/stats_other allianceMetricsCompareByTurn

This command is public

Compare the metric over time between multiple alliances

Arguments:

<metric> - AllianceMetric A Bot 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 [-c attachCsv] - 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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-t useTotal] - boolean Use the sum of each nation's attributes instead of the average [-i includeInactives] - boolean [-a includeApplicants] - boolean

Permission:


/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) [-d snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/stats_other global_metrics by_time

This command is public

Get a game graph by day

Arguments:

<metrics> - Set<OrbisMetric> A comma separated list of beige reasons for defeating an enemy in war [start] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [end] - Long[Timestamp] [-j attachJson] - boolean [-c attachCsv] - boolean


/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> - NationList 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 [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-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 [-c attachCsv] - 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 [-c attachCsv] - boolean

Permission:


/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> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-i includeInactives] - boolean [-a includeApplicants] - boolean [-t total] - boolean Compare the sum of each nation's attribute in the coalition instead of average [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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 [-b barGraph] - boolean [-a includeApplicants] - boolean [-j attachJson] - boolean [-c attachCsv] - boolean [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/stats_tier metric_by_group

This command is public

No description provided

Arguments:

<metrics> - Set<NationAttributeDouble> A comma separated list of numeric nation attributes <nations> - NationList A comma separated list of nations, alliances and filters [groupBy=getCities] - 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 [-i includeInactives] - boolean [-a includeApplicants] - boolean [-t total] - boolean [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-j attachJson] - boolean [-c attachCsv] - boolean


/stats_tier mmrTierGraph

This command is public

Generate a graph of nation military levels by city count between two coalitions

Arguments:

<coalition1> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-i includeInactives] - boolean [-a includeApplicants] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-b buildings] - boolean Graph the average military buildings instead of units [-t snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/stats_tier scoreTierGraph

This command is public

Generate a graph of nation counts by score between two coalitions

Arguments:

<coalition1> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-i includeInactives] - boolean [-a includeApplicants] - boolean [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-j attachJson] - boolean [-c attachCsv] - 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> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-i includeInactives] - boolean [-a includeApplicants] - boolean [-t total] - boolean Graph the total spies instead of average per nation [-b barGraph] - boolean [-j attachJson] - boolean [-c attachCsv] - boolean


/stats_tier strengthTierGraph

This command is public

Generate a graph of nation military strength by score between two coalitions

Arguments:

<coalition1> - NationList A comma separated list of nations, alliances and filters <coalition2> - NationList [-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) [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-j attachJson] - boolean [-v attachCsv] - boolean


/stats_war attack_breakdown sheet

This command is public

Create a google sheet of nations and the number of bad attacks they did over a timeframe

Arguments:

<attackers> - Set<NationOrAlliance> A comma separated list of nations and alliances <defenders> - Set<NationOrAlliance> <start> - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [end] - Long[Timestamp] [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [-a checkActivity] - boolean Also checks defender activity, to provide more fine grained attack information, but takes longer


/stats_war counterStats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance An alliance name id or url

Permission:


/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 [-v allowedVictoryTypes] - Set<SuccessType> A comma separated list of attack success 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:

Time period:

The time period to rank the wars [timeStart=7d] - long[Timestamp] Start time of the period to rank Defaults to 7d (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) [timeEnd] - Long[Timestamp] End time of the period to rank Defaults to now (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) Nations: The nations/alliances to include [coalition1=*] - Set<NationOrAlliance> Nations required to be in the conflicts Defaults to all existing nations (A comma separated list of nations and alliances) [coalition2] - Set<NationOrAlliance> Nations required to be in the conflicts against coalition1 Defaults to all nations (A comma separated list of nations and alliances) [-a onlyRankCoalition1] - boolean Only rank the nations in coalition1 Defaults to false Ranking Statistic: The statistic and mode to rank by [-t type] - WarCostMode Cost Type (The mode for calculating war costs) [-s stat] - WarCostStat Rank a specific stat, such as soldiers Defaults to DAMAGE (A war attack statistic) Cost Exclusions: Exclude certain kinds of costs from the ranking [-i excludeInfra] - boolean Exclude infrastructure [-c excludeConsumption] - boolean Exclude consumption [-l excludeLoot] - boolean Exclude loot [-b excludeBuildings] - boolean Exclude building losses [-u excludeUnits] - boolean Exclude unit losses Grouping/Scaling: City, war scaling, and enable ranking by alliance (instead of nation) [-g groupByAlliance] - boolean Rank alliances [-w scalePerWar] - boolean Scale rankings per war [-p scalePerCity] - boolean Scale rankings by city count War Filtering: Specify the kind of wars to include [-wartype allowedWarTypes] - Set<WarType> Filter the war types included (A comma separated list of war declaration types) [-status allowedWarStatuses] - Set<WarStatus> Filter the war statuses included (A comma separated list of war statuses) [-attacks allowedAttacks] - Set<AttackType> Filter the attack types included (A comma separated list of attack types) [-off onlyOffensiveWars] - boolean Only include wars declared by coalition1 [-def onlyDefensiveWars] - boolean Only include wars declared by coalition2

[-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:

The Sides Fighting:

<coalition1> - Set<NationOrAlliance> Nations required to be in the conflict against coalition2 (A comma separated list of nations and alliances) <coalition2> - Set<NationOrAlliance> Nations required to be in the conflicts against coalition1 (A comma separated list of nations and alliances) Time period: <timeStart> - long[Timestamp] Start time of the period to include (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) [timeEnd] - Long[Timestamp] End time of the period to rank Defaults to now (A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date) Cost Exclusions: [-u ignoreUnits] - boolean Exclude unit costs [-i ignoreInfra] - boolean Exclude infrastructure costs [-c ignoreConsumption] - boolean Exclude consumption costs [-l ignoreLoot] - boolean Exclude loot costs [-b ignoreBuildings] - boolean Exclude building costs Display Options: [-id listWarIds] - boolean Attach a list of war ids [-t showWarTypes] - boolean Attach a tally of war types War and attack type filters: [-w allowedWarTypes] - Set<WarType> Filter the war types included (A comma separated list of war declaration types) [-s allowedWarStatus] - Set<WarStatus> Filter the war statuses included (A comma separated list of war statuses) [-a allowedAttackTypes] - Set<AttackType> Filter the attack types included (A comma separated list of attack types) [-v allowedVictoryTypes] - Set<SuccessType> Filter the success types included (A comma separated list of attack success types) [-o onlyOffensiveWars] - boolean Only include wars declared by coalition1 [-d onlyDefensiveWars] - boolean Only include wars declared by coalition2 [-oa onlyOffensiveAttacks] - boolean Only include attacks done by coalition1 [-da onlyDefensiveAttacks] - boolean Only include attacks done by coalition2


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/tax info

View a nation's taxability, in-game tax rate, and internal tax-rate

Arguments:

<nation> - DBNation nation id, name or url

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/tax records

Get a sheet of a nation's in-game tax records and full resource amounts 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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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

Permission:


/test dummy

This command is public

Dummy command. No output

This command has no arguments


/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

Permission:


/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 [-c attachCsv] - boolean

Permission:


/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) [-d snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date


/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

Permission:


/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 [-c attachCsv] - boolean

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/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)

Permission:


/trade offer my_offers

List the bot trade offers you have on discord

This command has no arguments

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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 [-c attachCsv] - boolean

Permission:


/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 [-c attachCsv] - boolean [-r resources] - List<ResourceType> A comma separated list of resource types

Permission:


/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)

Permission:


/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 [-c attachCsv] - boolean [-r resources] - List<ResourceType> A comma separated list of resource types

Permission:


/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 See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes [-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) [-d decay] - Long[Timediff] Have the transfer decrease linearly over 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

Permission:


/transfer internal from_nation_account

Send from your nation's deposits) to another account (internal transfer

Arguments:

Amount to send:

<amount> - Map<ResourceType, Double>[AllianceDepositLimit] The amount to send (A comma separated list of resources and their amounts, which will be restricted by an alliance's account balance) Required: Send To: Pick a receiver account, nation, or both [receiver_account] - GuildOrAlliance The offshore alliance or guild account to send to Defaults to this guild (A guild or alliance name, url or id. Prefix with AA: or guild: to avoid ambiguity if there exists both by the same name or id) [receiver_nation] - DBNation The alliance or guild nation account to send to Defaults to None (nation id, name or url) Optional: Send From: If there are multiple alliances registered to this guild [sender_alliance] - DBAlliance The offshore alliance account to send from Defaults to your alliance (if valid) (An alliance name id or url)

[-f force] - boolean

Permission:


/transfer internal from_offshore_account

Send from your alliance offshore account to another account (internal transfer)

Arguments:

Amount to send:

<amount> - Map<ResourceType, Double>[AllianceDepositLimit] The amount to send (A comma separated list of resources and their amounts, which will be restricted by an alliance's account balance) Required: Send To: Pick a receiver account, nation, or both [receiver_account] - GuildOrAlliance The offshore alliance or guild account to send to Defaults to this guild (A guild or alliance name, url or id. Prefix with AA: or guild: to avoid ambiguity if there exists both by the same name or id) [receiver_nation] - DBNation The alliance or guild nation account to send to Defaults to None (nation id, name or url) Optional: Send From: If using a different account to send from [sender_alliance] - DBAlliance The offshore alliance account to send from Defaults to your alliance (if valid) (An alliance name id or url) [sender_nation] - DBNation The nation to send from Defaults to your nation (nation id, name or url)

[-f force] - boolean

Permission:


/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:

Account Settings:

[to] - DBAlliance Specify an alternative Offshore alliance to send funds in-game to Defaults to the currently set offshore coalition (An alliance name id or url) [account] - NationOrAllianceOrGuild Specify an alternative account to offshore with Defaults to the sender alliance (A nation or alliance name, url or id, or a guild id) Resource Amounts: [keepAmount={}] - Map<ResourceType, Double> The amount of resources to keep in the bank Defaults to keep nothing (A comma separated list of resources and their amounts) [sendAmount] - Map<ResourceType, Double> Specify specific resource amounts to offshore Defaults to all resources The send amount is auto capped by the resources available and keepAmount (A comma separated list of resources and their amounts)

Permission:


/transfer raws

Disburse raw resources needed to operate cities

Arguments:

<nationList> - NationList The nations to send to (A comma separated list of nations, alliances and filters) Amount Options:

<days> - double Days of operation to send (A decimal number) [-dc no_daily_cash] - boolean Do not send money below the daily login bonus [-c no_cash] - boolean Do not send ANY money Optional: Bank Note: [bank_note=#tax] - DepositTypeInfo Transfer note Use #IGNORE to not deduct from deposits (A DepositType optionally with a value and a city tag See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes) [-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) [-d decay] - Long[Timediff] Have the transfer decrease linearly from balances over a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date) [-m deduct_as_cash] - boolean Have the transfer valued as cash in nation holdings Optional: Nation Account: [-n nation_account] - DBNation The guild's nation account to deduct from Defaults to None if bulk disburse, else the receivers account (nation id, name or url) [-em escrow_mode] - EscrowMode How to handle the transfer if the receiver is blockaded Defaults to never escrow (The mode for escrowing funds for a transfer, such as when a receiver is blockaded) Optional: Specify Offshore/Bank: [-a ingame_bank] - DBAlliance The in-game alliance bank to send from Defaults to the offshore set (An alliance name id or url) [-o offshore_account] - DBAlliance The account with the offshore to use The alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url) Optional: Tax Bracket Account (pick either or none): [-t tax_account] - TaxBracket The tax account to deduct from (A tax id or url) [-ta use_receiver_tax_account] - boolean Deduct from the receiver's tax bracket account [-b bypass_checks] - boolean Skip checking receiver activity, blockade, VM etc.

[-f force] - boolean

Permission:


/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 See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes [-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) [-d decay] - Long[Timediff] Have the transfer decrease linearly to zero for balances over 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

Permission:


/transfer self

Withdraw from the alliance bank (nation balance)

Arguments:

Amount Options:

<amount> - Map<ResourceType, Double>[NationDepositLimit] Amount to send (A comma separated list of resources and their amounts, which will be restricted by an nations's account balance) [-m only_send_missing] - boolean Only send funds the receiver is lacking from the amount Optional: Bank Note: [bank_note=#deposit] - DepositTypeInfo Transfer note (A DepositType optionally with a value and a city tag See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes) [-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) [-d decay] - Long[Timediff] Have the transfer decrease linearly from balances over a timeframe (A time difference or unix timestamp which will resolve as a difference relative to the current date) [-c deduct_as_cash] - boolean Transfer valued at cash equivalent in nation balance Specify Offshore/Bank: [-a ingame_bank] - DBAlliance The in-game alliance bank to send from Defaults to the offshore set (An alliance name id or url) [-o offshore_account] - DBAlliance The account with the offshore to use The alliance must be registered to this guild Defaults to all the alliances of this guild (An alliance name id or url) Optional: Nation Account: [-n nation_account] - DBNation The guild's nation account to use Defaults to your nation (nation id, name or url) [-em escrow_mode] - EscrowMode How to handle the transfer if the receiver is blockaded Defaults to never escrow (The mode for escrowing funds for a transfer, such as when a receiver is blockaded) Optional: Tax Bracket Account (pick either or none): [-t tax_account] - TaxBracket The guild's tax account to deduct from Defaults to None (A tax id or url) [-ta use_receiver_tax_account] - boolean OR deduct from the receiver's tax bracket account Defaults to false [-b bypass_checks] - boolean Skip checking receiver activity, blockade, VM etc.

[-f force] - boolean

Permission:


/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 See: https://github.com/xdnw/locutus/wiki/deposits#transfer-notes) [-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) [-d decay] - Long[Timediff] Have the transfer decay linearly in balances over 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

Permission:


/treaty approve

Approve a pending treaty from an alliance

Arguments:

<senders> - Set<DBAlliance> Alliance that sent the treaty (A comma separated list of alliances)

Permission:


/treaty cancel

Cancel a treaty in-game

Arguments:

<senders> - Set<DBAlliance> The other alliance the treaty is with (A comma separated list of alliances)

Permission:


/treaty gw_nap

This command is public

No description provided

This command has no arguments


/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 [treatyFilter] - Predicate<Treaty> TODO CM REF


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/war counter nation

Get a list of nations to counter an enemy

Arguments:

<target> - DBNation nation id, name or url Counter Options:

By default active alliance members with free war slots will be used [counterWith] - Set<DBNation> Nations to counter with Default: This guild's alliance nations (A comma separated list of nations, alliances and filters) [-o allowMaxOffensives] - 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 onlyOnline] - boolean Remove countering nations that are inactive (2 days) [-d requireDiscord] - boolean Remove countering nations NOT registered with Locutus [-s allowSameAlliance] - boolean Don't filter out counters from the same alliance as the defender

[-i includeInactive] - boolean [-m includeNonMembers] - boolean Display Info:

[-p ping] - boolean Include the discord mention of countering nations

Permission:


/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

Permission:


/war counter stats

View the percent times an alliance counters in-game wars

Arguments:

<alliance> - DBAlliance An alliance name id or url

Permission:


/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 [-s allowSameAlliance] - boolean Include counters from the same alliance as the defender [-i includeInactive] - boolean [-m includeNonMembers] - boolean [-p ping] - boolean Include the discord mention of countering nations

Permission:


/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

Permission:


/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

Permission:


/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)

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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

Permission:


/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 [-o ignoreODP] - boolean [-f force] - boolean

Permission:


/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

Permission:


/war room from_sheet

Create war rooms from a blitz sheet

Arguments:

<blitzSheet> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [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) [-l useLeader] - boolean Parse nation leader instead of nation name [-f force] - boolean

Permission:


/war room list

This command is public

List war rooms for an ally or enemy

Arguments:

<nation> - DBNation nation id, name or url


/war room pin

Update the pin in the current war room channel

This command has no arguments

Permission:


/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)

Permission:


/war room sort

Sorts the war rooms into the correct discord category e.g. warcat-c1-10

This command has no arguments

Permission:


/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

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/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 For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/war sheet costSheet

War cost (for each nation) broken down by war type The sheet is divided into groups for:

  • Raids: Attacking nations which do not fight back
  • Defenses: Attacked by a nation and fighting back
  • Offenses: Attacking a nation which fights back
  • Wars: Combination of defensive and offensive wars (not raids)

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 [-leader useLeader] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/war sheet raid

Generate a sheet of raid targets

Arguments:

<attackers> - Set<DBNation> A comma separated list of nations, alliances and filters <targets> - Set<DBNation> [-i includeInactiveAttackers] - boolean [-a includeApplicantAttackers] - boolean [-b includeBeigeAttackers] - boolean [-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/war sheet validate

Run checks on nations in a blitz sheet

  • In range of their blitz targets- Still in the alliance- Have no more than the provided number of offensive wars Sheet columns: nation, att1, att1, att3

Arguments:

<sheet> - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use [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) [attackerFilter] - Set<DBNation> A comma separated list of nations, alliances and filters [-l useLeader] - boolean Parse nation leader instead of nation name [-h headerRow] - Integer Which row of the sheet has the header Default: 1st row (A whole number)

Permission:


/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> Additional War Options:

[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 If concluded wars within the timeframe should be included

[-s sheet] - SpreadSheet A google spreadsheet id or url For shorthand, use a comma when specifying the sheet tab e.g. sheet:ID,TAB_NAMEFor a url, append #gid=1234 or #tab=tabName to specify the id of the tab to use

Permission:


/web grants

No description provided

Arguments:

<nation> - DBNation nation id, name or url

Permission:


/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] - NationAttributeDouble Sort any listed nations by this attribute (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) [-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 [-s snapshotDate] - Long[Timestamp] A unix timestamp, a DMY date or a time difference that will resolve to a timestamp from the current date [-p page] - Integer A whole number


Clone this wiki locally