Dot!

Calamity Refuge's Discord Chat Bot


Development

Recent Changes and Updates


May 18 2023 - 3.9.4
Added ability to set excluded regions to Recruiter, improved data handling.

May 16 2023 - 3.9.3
Added command for Refuge staff to manually run Nightly outside of its cron cycle.
Fixed a bug where Info said everyone was a bot.

May 15 2023
Handled an invocation failure for attempting to call Info from the context menu on a departed user.

May 14 2023
Fixed a bug where familiar would cause a *brain explodes* error.

May 08 2023 - 3.9.2
Added links to CalRef's Ko-fi for people who want to financially support Dot.
Improved familiar's random number generator to be a little less """random""".
Made familiar moods milder by reducing operator roll intensity. Added support for PTB+Canary to set.
Fixed a bug where give wouldn't correctly report a transfer succeeded.
Added a button in region to take over WAs functions.
Retired WAs.

Apr 18 2023 - 3.9.1
Added support for NationStates' frontiers update to nation and region.
Improved icons in info and added the ability to tell verified bots apart.
Many familiar typo fixes.

Apr 10 2023 - 3.9
Added familiar command to provide a probably unwanted companion daily.
Removed eyebeast due to loss of message content.
Removed all restrictions on what and how many servers can add Dot.

Dot is a Discord chatbot, originally created to assist Calamity Refuge with NationStates integration. Over time, Dot's services were increasingly requested for use in other servers, leading up to the 2.0 rewrite which made that possible. Since then, Dot has grown from being a help to a small chatroom of 50 people to one of the most widely-used Discord bots for NationStates servers. Every update works to expand her abilities or improve existing ones.

This is the main documentation and demonstration site for Dot and her many functions. If you run into any trouble, want to report a bug, or need any additional help, you are free to drop by our Discord, where myself and the other admins spend a good bit of our time.

We are currently on Dot v3.9 and development is pretty constant. You can follow Calamity Refuge's project developments, which includes Dot's latest feature updates, by keeping up with the CalRef Development Journal. Dot is written in python and hosted on CalRef's "Hydrogen" server in Toronto.

Add Dot to your server today, with this invite link.


Dot and all of her commands are free for everyone, like the rest of CalRef's software, but they still take time to develop and cost money to host. If you enjoy using Dot, if she's helped out your server, or if you want to support Dot's maintenance and future development, consider sending a donation through Ko-fi.

Command List

Dot's command prefix, by default is a ping/mention of Dot, i.e @Dot, and all commands are available as slash commands. Bring up the full command list with /help or @Dot help.

Click the command word to jump to its section of the docs. Some commands are only designed for Calamity Refuge. They are marked by the CalRef tag, and cannot be used elsewhere.

Admin Commands

    Commands to help server admins manage their server

    assets Download your server's graphical assets for backup
    autopins Configures crowd-sourced automatic pinning to specifications
    autopins Configures crowd-sourced automatic pinning to specifications
    autoroles Set what roles members should receive on their arrival
    farewell Configure a message to post on member departure
    prune Clears up to the last 50 posts from a channel
    reacts Overview all reaction role messages in your server
    recruiter Designates a role for authorised members to do NS recruitment
    set Establish or edit reaction role messages
    welcome Configures a message to welcome members to your server
    CalRef spin Activates, rotates, or deactivates server invites

    Economy Commands

      Commands focused on Dot's in-universe economy

      bank Displays the bank information of the member or another member
      familiar Summon a familiar to accompany you throughout the day
      give Gives planets from your bank account to a target member
      inequality Displays a leaderboard of the wealthiest players
      infinity A charity agency, rewriting spacetime and destroying evil

      NationStates Commands

        Regarding the browser-based political simulator, NationStates.net

        delegates Gives a NationStates delegate leaderboard and telegram list
        ga / sc Gives a passed World Assembly resolution
        hail Generate a welcome roster for nations that have arrived to a given region
        CalRef map Provides a link to the current Refugia map dispatch and image
        nation Gives you information about an NationStates nation
        recruit Call for aid in your manual recruitment endeavours
        region Gives you information about an NationStates region
        rrs Links to the Refugia Revised Statutes, or cites specific statutes
        save Builds an archive of a region's message board and history
        slackers Locates WA nations in a region not endorsing a target
        tart Generates sheets of all nation a target hasn't endorsed
        telegrams Displays how many queued telegrams are in the pipe
        timer Sets up or runs the shortest possible timers for your nation age
        top Leaderboards for who has endorsed the most in a given region
        truesight Displays the real score of a dispatch downvoted below 1
        wa Shows the current World Assembly's vote status with stats and graphs

        Standard Commands

          Standard base commands for a Discord server

          annoy Generate a meme or annoying someone with your silly words
          banish Relocate a target to a random alternate dimension
          colour Spits out a big bright display of a given hex code
          CalRefdetermination Set your own CalRef role colour, pronoun, status and more
          fade Generate BBCode colour gradients through text for forums and more
          fortune Delivers a prophecy specific to you. Limit 1 per day
          info Get a target user's profile details, or your own
          remind Set reminders for things you know you won't remember
          report Send bug reports, suggestions, and feedback about Dot
          roll Rolls dice, size and quantity determined by the user
          roster Displays the total members who have a given role
          CalRef rotate Allows you to "adjust" the server icon, for some reason
          server Display information about your server
          timestamp Provides the exact time a given message was sent
          version Provides current info about Dot and the software on which she runs

          Admin Commands

          Commands to help server admins manage their server

          Optional arguments: ⚪
          Required arguments: 🟡

          Assets
            Demonstration

            Although Discord has made it easier to copy a server for backup or re-launch, these "template" settings extend only to channels, roles, and permissions. However, there is no easy way to save your server's graphics, except for emotes, without help. And even emotes are time-consuming to save.

            This command allows an operator with the "Manage Server" permission to collect all of the graphical assets within their server and quickly dump them into a new server or save them for future projects. This includes the icon, invite splash, banner, stickers, role icons, and emotes, if any of them exist. They will be arranged in an organised folder and posted as one convenient Zip archive. The time the command takes to complete will be proportional to the volume of content that needs to be saved.

            The zip file will be posted to the channel you call the command in. If that post is destroyed, there are no additional backups, as the archive zip's files are not retained on CalRef servers. The command has a one-hour cooldown.

            Activate with /assets or @Dot assets

              Added in Dot 3.7: Backup Plan Update

              Autopins
                Demonstration

                After being set up, the autopins feature will pin any message which has reached a requisite number of 📌 reactions within a twelve-hour span of time from the message first being posted. If a pinned message falls back below the pin threshold due to un-reacts within the same time window, it will be unpinned again.

                This command requires both Dot and the original operator to have the Manage Messages permission.

                Use /autopins or @Dot autopins to open the console menu. The Set Active button will let you set the threshold of reactions needed, and the Clear Data button will wipe your autopins settings.

                  Added in Dot 3.3: Endotarting Update

                  Autoroles
                    Demonstration

                    Autoroles automatically apply between one and ten roles to members upon their arrival in your server. Consequently, Dot requires the Manage Roles permission, and the operator is required to be an administrator to use this command.

                    Use the dropdown menu to select the roles members should receive. Then, close the menu and menu and press Set Active to turn them on. You can also bypass the dropdown and toggle the feature on or off with both Set Active and Set Inactive. If you would like to clear the data, there is a Clear Data which wipes your autorole settings.

                    A role will only populate in the list of roles if it is available to be assigned. So if the role you want is higher than Dot's highest role or there is a role that cannot be assigned manually, it will be absent. Additionally, only the lowest 25 roles will populate in the dropdown, so if it is still missing, consider moving some things around.

                    Activate the command with /autoroles or @Dot autoroles

                      Added in Dot 3.4: Rolling Rolling Rolling Update

                      Farewell ⚪
                        Demonstration

                        Farewells are messages that pop up in pre-set channels when members depart your server. This can be useful in letting you know how things are going with your moderation, or to record a member's roles in case you need to reapply them in the future.

                        To begin, set a designated channel by adding an argument to the base command. For example: /farewell #landing, or whatever channel you want to use.

                        From here, you can re-run the command, /farewell, to create a preview of the farewell message, accompanied by control buttons in the usual admin interface. These buttons allow you to activate or deactivate the feature, as well as setting an image to embed with the posts. If you wish to clear an image, simply leave the box blank. The interface will update in real time when your preferences are set.

                          Added in Dot 2.0: Rewrite Update

                          Prune 🟡
                            Demonstration

                            This function clears a specified number of messages from the channel that it is used in. You can activate the command by saying @Dot prune 🟡 where 🟡 is the number of messages you wish to clear. There is a hard coded limit of 50 messages for each use of the command.

                            For example, /prune 25 or @Dot prune 25 to remove the last 25 messages from the channel.

                              Added in Dot 2.0: Rewrite Update

                              Reacts
                                Demonstration

                                This command allows an administrator to view and manage all of the reaction role messages that they have set up across their server.

                                If any reaction messages are set, a dropdown menu will be populated with them, indexed by the embed fields. You can cancel them individually by selecting one or more messages with the dropdown, closing the dropdown, and pressing End Selected. You can also press End All to delete all reaction role entries, or That's Fine to exit.

                                Establish new reaction role messages or edit existing ones by using the set command.

                                  Added in Dot 3.4: Rolling Rolling Rolling Update

                                  Recruiter
                                    Demonstration

                                    Allows an administrator to designate one of the roles on their server as members authorised to use Dot's recruit functions for a given server. Simply type the command and use the dropdown menu in the interface to select the role you want to designate. You can also type the role in the box, if that's easier. When you click a role, you've marked it, and need to do nothing else.

                                    You can use the Set Excluded Regions button to remove nations which were founded in regions you are disinclined or treaty-obligated not to recruit from. When using the modal the button creates, you can enter region names or their NationStates URLs. When entering more than one region, separate your entries with either commas or linebreaks.

                                    At any time, you can remove your settings by using the command again and using the Clear Data button.

                                    If your recruitment takes place in a DM channel with Dot, this command is not necessary, and you can use recruitment straight away.

                                      Added in Dot 2.7: Recruitment Update

                                      Set ⚪
                                        Demonstration

                                        This command allows you to establish reaction role messages in your server or edit existing ones. Reaction role messages provide a user with a role automatically when they react to it, and remove the role when they unreact. Consequently, Dot requires the Manage Roles permission to carry out this function. You can use the reacts command for an overview of all reaction role messages which are active in your server.

                                        The syntax for adding a react role is: /set add [message url], [emoji], [role ID or ping].

                                        When you successfully set a react role, Dot will attempt to add it to the message if it's a standard emoji or an emote in a server that Dot has access to. If you set an emote from a server Dot's not in, you'll have to add the reaction to the message yourself but it will otherwise behave the same.

                                        Drop a reaction role from a reaction message with /set drop [message url], [emoji]

                                        Terminate a reaction message setting with /set end [message url]

                                          Added in Dot 3.4: Rolling Rolling Rolling Update

                                          Spin 🟡 CalRef
                                            Demonstration

                                            Allows a Calamity Refuge staff member to terminate all existing invites to the CalRef server, replace them, or switch out invites that already exist. Dot will instantly publish any new invites to the designated CalRef server invite URL so no hard coded intervention is ever needed.

                                            Activate in the CalRef server with /spin down or @Dot spin down to terminate existing invites. Use /spin up or @Dot spin down to generate a new one.

                                              Added in Dot 2.6: UEFA Euro 2020 Update

                                              Welcome ⚪
                                                Demonstration

                                                Welcomes are messages that post when a new member arrives in your server. You can use them to provide opening instructions, give links, a server overview, or anything else you wish. You can also use this function to ping a "welcome squad" to help integrate new members.

                                                To begin, set a designated channel by adding an argument to the base command. For example: /welcome #landing, or whatever channel you want to use.

                                                From here, you can re-run /welcome to create a preview of the welcome message, accompanied by control buttons in the usual admin interface. These buttons allow you to activate or deactivate the feature, as well as setting the welcome message's content in its entirety, including a title, URL, image, and message body, and welcome squad ping. When you update any of them, the interface's preview will update in real time with your current settings.

                                                You can adjust any field of the modal to adjust it individually. If you don't want to change anything, leave it blank.

                                                  Added in Dot 2.0: Rewrite Update

                                                  Economy Commands

                                                  Commands focused on Dot's in-universe economy

                                                  Optional arguments: ⚪
                                                  Required arguments: 🟡

                                                  Bank ⚪
                                                    Demonstration

                                                    Produces the contents of your bank within Dot's economy, including your balance in planets, stocks, and any seasonal extras which are in your portfolio. By default, the bank command shows your account; however, you can also target other players and see their portfolios by using their ID, username, or nick.

                                                    For example, /bank for your own or, /bank Emily for Emily's account.

                                                      Added in Dot 2.4: Economy Update

                                                      Familiar
                                                        Demonstration

                                                        This command is a sort of cross between the fortune command, and many other bot's "dailies" payout commands.

                                                        It allows you to have a "familiar", or guardian, assigned to you for the day, where a "familiar" is an entity, location, or conceptual idea. That familiar will provide a static payout in planets, according to its innate quality. There are five* quality levels, with the lowest level paying out at 100 planets, while the highest pays out at 1,000.

                                                        In addition to the payouts, the familiar also comes with a certain stance or attitude towards you. This attitude is determined by the innate disposition of the particular familiar, the day's global dice roll (is it a good day, bad day, or middling?), and the operator's personal roll. Some familiars are innately hostile, but can be encountered as superfriendly if the dice rolls aligned, just as the reverse is true as well.

                                                        Activate the command with /familiar or @Dot boat

                                                          Added in Dot 3.9: Sounds Familiar Update

                                                          Give
                                                            Demonstration

                                                            This command allows you to carry out a transfer of planets from your account to another player's account, without transaction fees. Since 3.8.3, the command now only has a single form. The output will have a user select dropdown where you can either type or otherwise locate and click the member they wish to send funds to, then close the dropdown, and click the Give button. This button summons a popup modal where the operator can specify the amount to send.

                                                            Activate with /give or @Dot give

                                                              Added in Dot 2.6: UEFA Euro 2020 Update

                                                              Inequality
                                                                Demonstration

                                                                This is a command to check how the wealthiest players are progressing within the Generation II economy, and see if you, yourself, are of that number.

                                                                This command will display a paginated leaderboard of the top 100 players within the system, along with navigation buttons to traverse it. The bottom of the output displays what your rank is within the system, even if you are not among the top 100 players. Only the top 1% of players will receive the legendary Gen II Shitlord Badge of Extreme Wealth Hoarding. Whether this is something you are aiming to obtain or aiming to avoid is up to you.

                                                                Activate this command with /inequality or @Dot inequality

                                                                  Added in Dot 3.8: Economy II Update

                                                                  Infinity
                                                                    Demonstration

                                                                    The Infinity project is a way for members to donate money to an In-Character charity project. The types of work Infinity carries out is always strange, supernatural, or in some way extraordinary, but it is always done with the justification that it will create a utopia across the galaxy and space-time.

                                                                    The base command will show you their current projects, what their total fundraising numbers are, as well as what you have contributed, yourself. You can use the Donate button to turn in your in-game planets to the cause. Using the Leaderboard buttons, you can receive a paginated list of the top 100 donors within the Infinity project and see if you are among that number.

                                                                    The bottom of the output displays what your rank is within the system, even if you are not among the top 100 players. At the end of the economy season, Gen II Economy badges will be awarded to the top Infinity donors and, in contrast to Gen I, this will be the only way that a player can obtain it. The number of badges will be equal to the number of inequality badges, OR the top 5% of Infinity donors. Whichever is greater.

                                                                    Activate this command with /infinity or @Dot infinity

                                                                      Added in Dot 2.4: Economy Update

                                                                      NationStates Commands

                                                                      Regarding the browser-based political simulator, NationStates.net

                                                                      Optional arguments: ⚪
                                                                      Required arguments: 🟡

                                                                      Delegates
                                                                        Demonstration

                                                                        This command generates a paginated leaderboard of regions with their ranked position, ordered by delegate voting power. You can traverse the leaderboard with the buttons below the output. Additionally, there is a button that will return a .txt file with the names of all delegates, separated by commas and broken into lines of eight.

                                                                        You can use this output along with the timer command to speed through manual telegram World Assembly campaigning.

                                                                        Activate with /delegates or @Dot delegates

                                                                          Added in Dot 3.7: Backup Plan Update

                                                                          GA/SC 🟡
                                                                            Demonstration

                                                                            GA also has a message-command alias of GAR

                                                                            This function locates and links to a General Assembly or Security Council resolution, passed at some point by the World Assembly, and provides some summary information about it. Such information includes its title, URL, tagline, category, scope or target, author, votes (and per cent) for and against, ID. You'll also receive the date passed as a discord time object, and a short blurb from the actual resolution content with BB code translated to discord's markup. If the resolution has been repealed, that information is provided and linked, and for actual repeals, you'll receive information about its target.

                                                                            You can include a #, or not, whichever. Just make sure there's a space between the command and the resolution number.

                                                                            For example:

                                                                            /GA 1 or @Dot GA 1 to bring up General Assembly resolution #1.

                                                                            /SC 1 or @Dot SC 1 to bring up Security Council resolution #1.

                                                                              Added in Dot 2.0: Rewrite Update

                                                                              Hail
                                                                                Demonstration

                                                                                This is a command for welcoming recent arrivals in a given region. It requires an admin to set it up, and only they will be able to use the management buttons. These include setting a region, setting authorised roles, and resetting the list of seen nations if necessary.

                                                                                A nation will never be welcomed twice, even if that nation moves out and back, unless an admin resets the seen list. Consequently, designating a role that's authorised to use hail is a best practice to prevent members from running the command randomly and with new arrivals being lost.

                                                                                Once a region has been set, the region's current roster of nations is also set, and the hailing can begin. If the operator is a server admin or has the authorised role set earlier, the Welcome button will appear. This button will pull the list of nations that have arrived since the region was set, reset, or the last time the command was run.

                                                                                The preferences and nation data for this command are stored by server, but can also be used in a direct message channel.

                                                                                Run the command by with /hail or @Dot hail

                                                                                  Added in Dot 3.6: Fade to Black Update

                                                                                  Map CalRef
                                                                                    Demonstration

                                                                                    This command links to Refugia's primary RP map. It is useful when you have no idea where it is or otherwise cannot be bothered to find it. The title will link to the dispatch URL and the output embed will contain an image, linked to whatever the current state map image is, Discord's aggressive image caching notwithstanding.

                                                                                    In the CalRef server, activate with /map or @Dot map

                                                                                      Added in Dot 1.0 (Nov 5 2020 Update)

                                                                                      Nation 🟡
                                                                                        Demonstration

                                                                                        This command reports a host of information about a current NationStates nation. Twenty-three different metrics are pulled from its data that's available on-site like dispatches, influence, and C&C status, to things that are not, such as issues answered, telegram preferences, and ID. For nations which are World Assembly members, you can also see their endorsements and which way they have voted in any ongoing General Assembly or Security Council votes.

                                                                                        Additionally, this command pulls top's data to show how many endorsements a nation has given out, as well as delegates' data, showing an applicable delegate's respective power rank. Nation flags are posted as an attachment to the output embed. If that image is an SVG, Dot will render that SVG with reasonable dimensions as a lossless PNG.

                                                                                        Activate with, for example, /nation Testlandia or @Dot nation Testlandia for the current status of Testlandia.

                                                                                          Added in Dot 2.0: Rewrite Update

                                                                                          Recruit ⚪
                                                                                            Demonstration

                                                                                            This function also has a message-command alias of r

                                                                                            This feature facilitates recruitment for any NationStates region.

                                                                                            SERVER ADMINS: You need to set up this command with recruiter, designating what role is authorised for recruitment in your server.

                                                                                            Set your recruitment template with /recruit 🟡, where 🟡 is your template code, so that your links will be more convenient. The saved templates are unique to each user, and unique to each channel. This means you can recruit for more than one region at a time by having different saved templates in each region's respective recruitment channel. When someone finishes up a recruitment session, a new operator can begin immediately without any overlap or duplicated nations.

                                                                                            You can manually run this command one interval at a time with /recruit and receive new nations in the form of URL batches, where each link contains up to eight recipients. The URL will preload a template you have set into the message body, to populate the field on page-load. Consider using the timer command if you need to pace yourself between batches of eight.

                                                                                            You can use the command with assisted checks and reminders. To start an assisted recruitment session, use /recruit start 🟡, where 🟡 is the interval in minutes you want to wait between checks. You can use any interval between 1 and 10. When you get a response and send off the usual links, press the "Acknowledge" button to initiate another check cycle. If Dot doesn't find anything in a cycle, she'll repeat the cycle until she does, until you've said you're done, or until a batch goes unacknowledge for ten minutes.

                                                                                            You can use any active Finish button to end the current recruitment session.

                                                                                              Added in Dot 2.7: Recruitment Update

                                                                                              Region 🟡
                                                                                                Demonstration

                                                                                                This is a command to provide a variety of overview data for a given NationStates region. This information includes things like how many nations are in the region, how many World Assembly members are in the region, how many endorsements they collectively have, and so their expected influence gain rates, and other vital stats like dates and update times.

                                                                                                If the region has uploaded a custom banner, that banner is provided as a permanent attachment to the output embed, so you can always download it later.

                                                                                                Activate with, for example, /region Refugia or @Dot region Refugia for the current status of Refugia.

                                                                                                  Added in Dot 2.0: Rewrite Update

                                                                                                  RRS ⚪
                                                                                                    Demonstration

                                                                                                    You can use this command to link to the Refugia Revised Statutes when you have no idea where they are or cannot be bothered to find them. Using the command by itself will link to the law dispatch in its entirety, but you can also use it with an argument of a specific statute to post that statute's text if you need it in particular.

                                                                                                    Activate with /rrs or /rrs 2a

                                                                                                      Added in Dot 1.0 (Nov 5 2020 Update)

                                                                                                      Save 🟡
                                                                                                        Demonstration

                                                                                                        This function allows you to back up any user-created region on NationStates by copying its RMB, recording its regional history, and compiling it into an archive that can be unzipped and hosted on any server. Use /save 🟡, where 🟡 is your desired region. For example, /save Refugia.

                                                                                                        The archive is designed to replicate as much of the original RMB post environment as is feasible, so you'll not only have your data, you'll have some of the original experience as well. This archive splits the RMB history into 100 messages per page, with a handy nav bar at the top and bottom of the screen. Bold, italics, underline, strike, nation tags, region tags, quote tags, and url tags are all supported and translated from bbcode to html.

                                                                                                        At the top of every RMB page, there will be a link to a replica of your region's history. All major events like delegate changes, embassy movements, Security Council action and more will be located here. The top of this history page features a chart, which will show you a graph of your region's population history, similarly to the way NationStates displays one. If you want to take that data and use it somewhere else, there is a "Source" link below the chart, so you can get the compiled spreadsheet. Inside the "Resources" directory of the output, there's also a "RawData" zip, which contains the original XML post data from Dot's API calls, so that if a more advanced regional archival tool is developed in the future, you will have access to what I have access to right now.

                                                                                                        There is an example of what a saved region looks like, available here.

                                                                                                          Added in Dot 2.5: Region Saver Update

                                                                                                          Slackers 🟡
                                                                                                            Demonstration

                                                                                                            This command locates all of the World Assembly nations inside a target's region which are not endorsing that target. The output will consist of two uploaded text files, where one contains the list of names, broken into lines of eight in case you wish to manually telegram them to ask for an endorsement. The second file will be the same output, but with the nations pre-organised into a no-headers BB code table, so you can drop it directly into a dispatch.

                                                                                                            The last line will always be blank so you can click and drag to select the whole list on Discord's desktop client, at least whenever the output from your target isn't massive.

                                                                                                            You can say, for example, /slackers Sylh Alanor for all the nations not currently endorsing Sylh Alanor.

                                                                                                              Added in Dot 2.8: Slackers' QoL Update

                                                                                                              Tart 🟡
                                                                                                                Demonstration

                                                                                                                This command pulls all of the nations that a given nation has not endorsed as of NationStates' last Major update (21:00-22:30 PST) and compiles it in a way you can easily use. It operates gives a similar functionality to Tart.CalRef, but for a Discord server.

                                                                                                                The required field is the target nation about which you would like to examine. The output is an embed of nations, hyperlinked to the closest anchor to their endorse button, and paginated by buttons below the message. To the right of the navigation buttons is a link to the web sheet, a procedurally generated webpage which presents the same information, but without leaving your web browser.

                                                                                                                The web sheet contains two methods, the first is an assistance button. On Chrome and Edge, you can hold ctrl and click the button until it has cycled through all the nations you've missed. Regrettably, Firefox does not permit this functionality, but you can still left-click, endorse, back-button, and repeat if you find it convenient. The second method is a table of buttons for all nations you have yet to endorse, which you can ctrl+click through individually. With every click, the button will turn green so you can visually keep track of where you are and not lose your progress.

                                                                                                                This command works off a database that is generated once per day, typically at midnight, PDT (UTC-8).

                                                                                                                To activate, you can say for example, /tart Refuge Isle to bring up all the nations in Refuge Isle's region that it didn't endorse by the Major prior.

                                                                                                                  Added in Dot 3.3: Endotarting Update

                                                                                                                  Telegrams
                                                                                                                    Demonstration

                                                                                                                    You can use this command to see how many telegrams are currently pending across NationStates, by type.

                                                                                                                    This allows you to glean some manner of insight into both how many other regions are recruiting, as well as what the approximate found rate is. If the number of telegrams in the stamp queue is over 25,000, there's a good chance that nations are being founded at a higher than average rate. If stamps are lower than 10,000, it's probably dead as nails.

                                                                                                                    Because of strong correlation between nation founds and queued telegrams, there is a button attached to this command generate a graph of the volume of nations that have been founded over the previous 21 days, not counting the current day.

                                                                                                                    Simply activate with /telegrams or @Dot telegrams

                                                                                                                      Added in Dot 2.0: Rewrite Update

                                                                                                                      Timer ⚪
                                                                                                                        Demonstration

                                                                                                                        This function also has the message-command alias t

                                                                                                                        On NationStates, the cooldown that you experience in between sending telegrams is a duration proportionate to the age of your nation. If you have a very new nation, your telegram cooldown is much higher (over a minute and a half for a batch of eight). If your nation is very old (even if the population is low), your cooldown is shorter (down to 40s for a batch of eight). In order to ensure the least wasted time, this command exists to give you a timer that is appropriate for a given operator.

                                                                                                                        To use it, input what nation you'll be sending telegrams from by saying /timer base 🟡, where 🟡 is your nation name. Dot will then look up your nation and give you an estimated timer based on its age every time you use the command. That means that if you're still sending telegrams from your new nation a year from now, there's no need to set the base nation again; the timer will adjust to what you need as your nation ages.

                                                                                                                        After your nation is set, use /timer or @Dot t.

                                                                                                                          Added in Dot 2.10: Adaptation Update

                                                                                                                          Top 🟡 ⚪
                                                                                                                            Demonstration

                                                                                                                            This command allows an operator to instantly check what nations have sent out the most endorsements in any given region, for use in WA development programs.

                                                                                                                            The output generated is a list of the top 25 players, sorted by endorsements given, with an additional uploaded bbcode table for all nations' endorsements in the target region. You can use this table in forums, dispatches, RMB posts, and telegrams. The bbcode table acknowledges ties, so if you have a nation in first place with 100 endorsements out, but three players with 99, all three players will be reported as being tied for 2nd. The next line will be 3rd and not 5th because I think doing it any other way is kinda weird.

                                                                                                                            To use this command, say for example /top Refugia

                                                                                                                            If you need to have a certain number of nations highlighted for some kind of competition or acknowledgement, you can use a , 🟡 modifier, where 🟡 is how many nations you want to bold in the bbcode table. For example /top Refugia, 20 will give the normal output, but with each cell in the top 20 rows of the bbcode table set to bold.

                                                                                                                              Added in Dot 2.10: Adaptation Update

                                                                                                                              Truesight 🟡
                                                                                                                                Demonstration

                                                                                                                                For dispatches and factbooks on NationStates, players can upvote or downvote to get them to populate the trending dispatches feed, or just demonstrate support. The upvotes appear in the upper right of the screen. However, if a dispatch becomes downvoted below 1, a minimum score of 1 will still be displayed. The dispatch's true score is still available through an API call, and Dot's truesight command can provide that real number if it is ever desired.

                                                                                                                                Activate by using /truesight 🟡, where 🟡 is a dispatch's URL or its ID.

                                                                                                                                  Added in Dot 2.0: Rewrite Update

                                                                                                                                  WA
                                                                                                                                    Demonstration

                                                                                                                                    This command gives you the current status of the World Assembly by displaying what resolutions are at vote. Displayed data includes linked resolution titles, category, scopes, linked authors, when voting began, how many hours remain, and what the total and popular vote stats are.

                                                                                                                                    Dot will also produce a nifty and dramatic graphic output depicting the for and against votes against the backdrop of the not-UN, in a way similar to how it appears on-site.

                                                                                                                                    Simply activate with /wa

                                                                                                                                      Added in Dot 2.5: Region Saver Update

                                                                                                                                      Standard Commands

                                                                                                                                      Standard base commands for a Discord server

                                                                                                                                      Optional arguments: ⚪
                                                                                                                                      Required arguments: 🟡

                                                                                                                                      Annoy 🟡
                                                                                                                                        Demonstration

                                                                                                                                        Generate a meme image, where a quote of yourself annoys someone with the block of text of your choosing. Naturally, both a target and a quote are mandatory fields.

                                                                                                                                        In this command, you can provide those by separating them with a comma. The speaker will always be the display/nick of the operator, so you can spoof the speaker name in the image by changing your nick. If you are in a server where you are not allowed to have a desired nick, consider leaving that server.

                                                                                                                                        For example: /annoy Luca: Please explain the command again. or @Dot annoy Luca: I'll DEFINITELY be turning in a BOAT application tomorrow.

                                                                                                                                          Added in 3.8 Economy II Update

                                                                                                                                          Banish ⚪
                                                                                                                                            Demonstration

                                                                                                                                            Banish something to another dimension with this compact and venerable command. Target something by saying /banish landlords to subject unspecified landlords to punishment by relocation. Use the command without additional arguments to target yourself.

                                                                                                                                            Fun facts:

                                                                                                                                            ✦ That's literally it.

                                                                                                                                              Added in 1.0 (Dec 28 2020 Update)

                                                                                                                                              Colour 🟡
                                                                                                                                                Demonstration

                                                                                                                                                This function also has the message-command alias color

                                                                                                                                                The colour command gives a large-scale visual display of a given three, six, or eight digit (transparency) hex code. You can render up to eight colours at a time by separating them with commas, and they'll all be stacked neatly into an output image. Whenever you generate colours, Dot will also tell you their names, or the names which have the closest distance to your input. You can use those names as arguments in the command and generate the colours that way, too.

                                                                                                                                                Using the command with an uploaded attachment will pull the prominent colours of an image, in case you need to get a colour code fast. In this case, use the command with a pasted image of your choosing, or upload it in the slash command interface. You will get up to eight colours, within a reasonable buffer margin, and the per cent by which they occur.

                                                                                                                                                You can say things like: /colour #0099FF for one colour /colour 09F, refugia, #7B68EE for multiple, or /colour with an attached image to get the prominent colours of that image.

                                                                                                                                                  Added in 1.0 (Nov 8 2020 Update)

                                                                                                                                                  Determination CalRef
                                                                                                                                                    Demonstration

                                                                                                                                                    Determination is the primary command for self-assigning roles in the Calamity Refuge discord server. Simply run the command and use the first dropdown menu to select a custom role colour. Use the second dropdown to select any additional opt-in roles that you want. When you are done, close the menu and use the Add Roles or Remove Roles buttons, depending on what you want.

                                                                                                                                                    Alternatively, you can use the Clear All button to remove all colour and opt-in roles in one click.

                                                                                                                                                    Activate with /determination

                                                                                                                                                      Added in Dot 3.4: Rolling Rolling Rolling Update

                                                                                                                                                      Fade
                                                                                                                                                        Demonstration

                                                                                                                                                        This command helps you create a BBCode output for text that you'd like to fade through two or more colour gradients.

                                                                                                                                                        You can use the command's dropdown menu to select how many colours you would like to blend, and then press the Fade button. From here, you'll receive a popup modal that will allow you to input your colours and the text you would like to pass through them. Enter colours either through hex codes or with the names of colours from the CalRef palette, like "legendary" or "california".

                                                                                                                                                        Alternatively, you can skip the dropdown box and colour entry by clicking the Rainbow button, which will pass whatever text you have through a premade rainbow palette.

                                                                                                                                                        Activate the command with /fade or @Dot fade

                                                                                                                                                          Added in Dot 3.6: Fade to Black Update

                                                                                                                                                          Fortune
                                                                                                                                                            Demonstration

                                                                                                                                                            This command allows the user to have one of hundreds of available prophecies, delivered to their door, for a low-low price (nothing). When a user requests a fortune, one is randomly selected at the time the command is sent and, consequently, cannot be known beforehand. RNG spirits may take this opportunity to influence the result, should they be so inclined. The operator's fortune will remain the same for the rest of the day, and reset at midnight, Pacific Time.

                                                                                                                                                            Activate with, /fortune. If you used the command earlier in the day, you'll receive a reminder about when the reset happens.

                                                                                                                                                              Added in Dot 2.4: Economy Update

                                                                                                                                                              Info ⚪
                                                                                                                                                                Demonstration

                                                                                                                                                                This function also has the message-command aliases avatar and display

                                                                                                                                                                This is a function to provide an overview about a member. The base command will return your own information, but you can also use another server member's nick, username, or ID to bring up their profile if Dot is able to locate them.

                                                                                                                                                                The information provided includes the member's username, nickname, ID, account creation date, server roles, and avatar, as well as the date that they last arrived in the server. You will also receive the banner of the member as an attached file, embedded within the message. Buttons to download a member's global avatar or their server-specific avatar will appear if either of those stats apply to the member.

                                                                                                                                                                Activate with /info or @Dot info. If you do not include an argument, you will target yourself. You can, alternatively, right-click or long-tap a member's name or avatar and select Info from the "Apps" context menu to activate the command without typing anything.

                                                                                                                                                                  Added in 1.0 (Dec 6 2020 Update)

                                                                                                                                                                  Remind ⚪
                                                                                                                                                                    Demonstration

                                                                                                                                                                    This function also has the message-command aliases reminder and reminders

                                                                                                                                                                    Reminders are messages that you can send yourself through space and time to post at a point in the future. This command is designed to accept a variety of human inputs as valid entries as long as they contain some relevant keywords that cause the sentence to make sense. Generally, though, you'll probably be using things like:

                                                                                                                                                                    /remind me to do something in an hour and a half
                                                                                                                                                                    /remind me in 5.7 minutes to do something
                                                                                                                                                                    /remind me that I should do something next week

                                                                                                                                                                    You can use most time references such as, minutes, hours, days, weeks, years, etc, and you can use ranges in digits (1, 2, 3.5, etc) or words (one, two, three and a half, etc). There is a limit of 25 reminders per operator, which can be set between one minute and five years. Dot only polls for reminders to deliver once a minute, so if you want something within a very short range, there will be up to 59 seconds of a margin for error.

                                                                                                                                                                    Manage all of your reminders by using the command by itself, @Dot remind, or any of its aliases (including /remind). The remind command will give you a list of everything you have actively set, when it's due and what the message was. In this interface, you can use the dropdown to select any or all reminders that you'd like to cancel early, or exit if you wish.

                                                                                                                                                                      Added in Dot 3.5: When Update

                                                                                                                                                                      Report
                                                                                                                                                                        Demonstration

                                                                                                                                                                        If you need help with an issue that can't be solve with the report button that appears from a broken command, you can use this command to send a report to:

                                                                                                                                                                        • Lodge a report about any bugs or broken commands.
                                                                                                                                                                        • Send a suggestion for a new feature or feature improvement.
                                                                                                                                                                        • Get help with privacy concerns or abuse of Dot's TOS guidelines.

                                                                                                                                                                        If your bug report or feedback directly results in an issue being fixed or a feature being added or improved, or if your request needs some kind of follow-up, I'll send a message back. Dot will relay that by replying to the original submission with the response.

                                                                                                                                                                        Activate with /report or @Dot report.

                                                                                                                                                                          Added in Dot 3.1: Growing Pains Update

                                                                                                                                                                          Roll 🟡d🟡
                                                                                                                                                                            Demonstration

                                                                                                                                                                            This is a function to roll one or multiple sets of dice. The dice specifications are a required field. The first number is how many dice you want to roll. The second number is how many sides all of the dice have. This function is limited to 100 separate rolls per command, after some enthusiastic testing.

                                                                                                                                                                            For example, /roll 8d12 will return eight comma-separated dice rolls, where all of the dice have 12 sides.

                                                                                                                                                                              Added in 1.0 (Dec 3 2020 Update)

                                                                                                                                                                              Roster 🟡
                                                                                                                                                                                Demonstration

                                                                                                                                                                                This function will list all of the members in a server who have a queried role, and post their sum total. The output will include all nicknames with the target role inside a code box for easy-copying, if you need it for record keeping. If a role colour has been set, the sidebar will match that colour and display its hex code. Other response will have that colour, otherwise, it will have Dot's default blue. If a role has a special icon, you'll receive that as an attachment embedded inside the thumbnail of the response.

                                                                                                                                                                                You can search by role name, ID, or ping.

                                                                                                                                                                                For example, /roster councillor or @Dot roster 755244583100612669

                                                                                                                                                                                  Added in Dot 2.7: Recruitment Update

                                                                                                                                                                                  Rotate CalRef

                                                                                                                                                                                    This function also has the message-command aliases potato, tomato, rotato, 🥔, and 🍅

                                                                                                                                                                                    Demonstration

                                                                                                                                                                                    This command allows any user to switch out the current server icon with a different icon from a pool of pre-set possibilities. The new icon will be randomly selected, but continuously rerolled until it is different from whatever the current icon is. This feature has a server-wide cooldown of five minutes.

                                                                                                                                                                                    Activate in the CalRef server with /rotate or any of this command's other aliases

                                                                                                                                                                                      Added in 1.0 (Dec 7 2020 Update)

                                                                                                                                                                                      Server
                                                                                                                                                                                        Demonstration

                                                                                                                                                                                        This is a function to detail information about a server. Such information includes who owns the server, members and channel volumes, creation date, ID, locale, boost status, as well as classification info, server icon, and splash banner (as an attached file, if available).

                                                                                                                                                                                        Dot will also take the liberty of rating the quality of the selected server. For all servers that do not require two-factor mobile authentication, the quality will be listed as "Fantastic".

                                                                                                                                                                                        Activate with /server

                                                                                                                                                                                          Added in 1.0 (Dec 6 2020 Update)

                                                                                                                                                                                          Timestamp 🟡
                                                                                                                                                                                            Demonstration

                                                                                                                                                                                            As default message timestamps are only accurate down to the minute, this is a function to provide timestamps down to the second, for whenever precision at this level becomes a point of dispute. You can use a full message's URL or just the message ID, whichever you like.

                                                                                                                                                                                            For example, /timestamp https://discord.com/channels/869038758299861064/896070008424267847/914326034978054174
                                                                                                                                                                                            Or @Dot timestamp 914326034978054174

                                                                                                                                                                                            You can, alternatively, right-click / long-tap on any message and select Timestamp from the "App" context menu to activate the command without typing anything. The timestamp will be a jump link to the message so that it remains clear what message is being checked.

                                                                                                                                                                                              Added in Dot 2.8: Slackers' QoL Update

                                                                                                                                                                                              Version
                                                                                                                                                                                                Demonstration

                                                                                                                                                                                                If you are abundantly curious about the current iteration of Dot and the environment in which she runs, you can use the version command to display her version, the discord.py version, operating system, and host. You'll also get the number of servers she's in and the combined population of those servers, along with uptime, general command usage, and most used commands.

                                                                                                                                                                                                There are buttons, attached to the output embed, which will allow you to generate a graph of her server and member history, as well as command usage. The command usage is over the last 60 rolling days, above smaller graphs which depict the ten most-used commands over the last 30 rolling days.

                                                                                                                                                                                                Activate with /version or @Dot version

                                                                                                                                                                                                  Added in Dot 3.0: Rewrite2 Update