Dot!

Calamity Refuge's Discord Chat Bot

    Development

    Recent Changes and Updates


    Feb 04 2023 - 3.8.0
    Brought back infinity for a donation leaderboard, and the only way to get the Gen II Economy Badge.
    Added feature inequality for non-donated bank leaderboard.
    Added feature BOAT to lodge bets in the Battle of All Things.

    Jan 29 2023
    Telegrams now have a view button to display new nation history.

    Jan 21 2023
    Fixed recruit not working as a slash command.
    Fixed roster not working if used on a role with an icon.

    Jan 10 2023
    Fixed an issue in save where RMB's BB Code errors could cause a bot crash.
    Version no longer generates graphs with hard-coded data intervals.

    Jan 09 2023
    Fixed being unable to handle or report certain errors.
    Fixed tart having no files at the websheet destination (Transitional Council).

    Jan 08 2023
    Fixed hail being unable to activate in DM channels.
    Fixed eyebeast no longer reporting who deletes a message.

    The name "Dot" had been a testing account that I've used to check forum permissions since 2014, with the name based on Halo Reach's AI by the same name. Dot as a Discord bot, however, was created in November of 2020 and has a much more human persona. Originally, she was created to provide the Calamity Refuge Discord server with a NationStates endotarting feature. Over time, Dot's services were increasingly requested for use in other servers, and the 2.0 rewrite made this possible. Every update since then has been to the end goal of expanding Dot's capabilities and providing more powers and abilities to her operators.

    Because Dot has picked up so many features and abilities for a variety of needs, this page now serves as the documentation for Dot and how to operate her functions. If you run into any trouble, want to report a bug of some kind, or require additional help, you are free to drop by the CalRef Server where myself and the other admins spend a good bit of our time.

    Currently we're on Dot v3.8 and development is pretty constant. You can follow our projects' progress, 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

      If you enjoy what you see here and didn't fancy the large blue button at the top of the page, you can add Dot to your server through this handy [invite link]

      Command List

      Dot's command prefix is I cast, case insensitive, or you can use them as slash commands. Bring up the full command list with I cast commands.

      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
        eyebeast Mod utilities to monitor message edits, deletions, and user changes
        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
        CalRef vanquish Immediately terminate Dot in the event of a critical malfunction

        Economy Commands

          Commands focused on Dot's in-universe economy

          bank Displays the bank information of the member or another member
          boat Allows you to place a bet in the Battle of All Things
          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
            was Collects the nations in or out of the World Assembly in a region

            Standard Commands

              Standard base commands for a Discord server

              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

              Deprecated Features

              This hasn't been tracked well, but I seem to recall the following things which are no longer things:

                euro This seasonal event ran from June 23 to July 10, 2021 and allowed for UEFA Euro 2020 match betting Dot 2.6 - 2.7
                sus Dot's amogus minigame for sussing out impostors in your server for sweet cash (or death) Dot 2.1 - 3.1
                buy
                sell
                stocks
                study
                A simulated stock market, using real world data to generate fluctuating prices for profit, eventually leading to 1:108th levels of inequality. As stocks tend to do. Dot 2.4 - 3.5
                mobile A makeshift command to make recruitment available to mobile users during NationStates' stint at freaking out about custom URLs. It will return if they freak out again. Dot 2.10 - 3.5
                population A command to (very slowly) compile population records for a region's current incarnation, or its total namespace history. Dot 2.10 - 3.5
                avatar
                display
                Output the user's avatar and server-specific avatar, respectively, as an embedded attachment. Merged into info via button options. Dot 1.0 (Dec 5) - 3.7

                Admin Commands

                Commands to help server admins manage their server

                Optional arguments: ⚪
                Required arguments: 🟡
                  Assets
                    Demonstration

                    This command allows an operator with the "Manage Server" permission to collect all of the graphical assets within their server. 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.

                    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 provides that help and allows you to retrieve your data to conveniently dump your graphics into a new server, or just save them for future projects.

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

                    Activate with /assets or I cast assets

                      Added in Dot 3.7: Backup Plan Update

                      Autopins
                        Demonstration

                        Allows you to control autopins, a feature which gives your users more control over their chat environment, or which renders moot an inability to determine what shitposts should be uselessly pinned. The autopins feature will pin any message which has reached a requisite number of 📌 reactions within a reasonable amount of time after the message was posted. If a pinned message falls back below the pin threshold within the same window of time, it will be unpinned again.

                        This command requires Dot to have the Manage Messages permission to pin something in a given channel.

                        Activate the command by using I cast autopins, which will open the admin menu.

                        The Set Active button will summon a modal letting you input the threshold of reactions a message has to reache before being pinned, and the Set Inactive button will turn the feature off once again.

                          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 to use this feature.

                            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 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, 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 I cast autoroles

                              Added in Dot 3.4: Rolling Rolling Rolling Update

                              Eyebeast ⚪
                                Demonstration

                                Eyebeast messages are utilities for mods and admins. You can receive information about messages that have been deleted or changed, which is useful for when a user is being malicious and trying to dispose of the evidence. You can also receive information about users, such as username and discord discriminator changes, in case a user is trolling in that regard, or attempting to evade moderation.

                                This command requires Dot to have the "View Audit Log" permission, which is not conveyed in the standard invite link. Add it to Dot's bot role, or provide her with another role which has this permission.

                                The eyebeast settings are controlled via buttons in the console menu. In order for the console menu to display, you need to first designate a channel where the alert messages would post. For best results, have these post in a channel that mods have viewable access to, but do not have the "Manage Messages" permission in, so that logs created by their own deletions cannot be covered up.

                                Set a channel with I cast eyebeast 🟡, where 🟡 is the channel you wish to set. After the channel is set, you can use the console buttons to turn features on or off, individually, by repeating I cast eyebeast.

                                  Added in Dot 3.6: Fade to Black 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 I cast farewell #landing, or whatever channel you want to use.

                                    From here, you can re-run the command, I cast 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 I cast 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, I cast 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 select. The drop down menu will only populate with the lowest 25 roles in a given server. If your desired recruiter role is not within that 25, consider relocating it.

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

                                                When you have selected the role, click Set Recruiter to save your setting, or Clear Data to clear this server preference.

                                                  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.

                                                    Establish or add to a reaction message with I cast set add [message url], [emoji], [role ID or ping]

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

                                                    Terminate a reaction message setting with I cast set end [message url]

                                                    For example: I cast set add https://discord.com/channels/869038758299861064/954649444391993395/991133353929609296, :heppy:, @9

                                                      Added in Dot 3.4: Rolling Rolling Rolling Update

                                                      Spin 🟡 CalRef
                                                        Demonstration

                                                        Allows a Calamity Refuge staff member or a Refugia Councillor 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 I cast spin down to terminate existing invites, and I cast spin up to generate new ones.

                                                          Added in Dot 2.6: UEFA Euro 2020 Update

                                                          Vanquish CalRef
                                                            Demonstration

                                                            Allows a Calamity Refuge staff member or a Refugia Councillor to terminate Dot in the event that of a critical malfunction.

                                                            Activate with I cast vanquish

                                                              Added in Dot 2.0: Rewrite 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.

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

                                                                From here, you can re-run the command, I cast 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. You can set any of these to update them, and the interface will update in real time to show 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, I cast bank for your own or, I cast bank Emily for Emily's account.

                                                                        Added in Dot 2.4: Economy Update

                                                                        Boat
                                                                          Demonstration

                                                                          This command allows you to place bets in the limited-time, ongoing Refugia-based tournament, The Battle of All Things II.

                                                                          In each round, you can make a costless bet where a correct answer yields 5,000 planets, the in-game currency. You may change your bet as many times as you like, up to the time that the competition you are betting on begins. There is no penalty for incorrect guesses.

                                                                          At any time, you can also lodge a prediction of who you think will be the final and ultimate champion of the Battle of All Things. You can change your answer whenever you want and as often as you want; however, the earlier you make a correct prediction, the higher your reward will be. The rewards timeline is tied to what the match is when you place or change a bet.

                                                                          For a correct final bet placed placed during...
                                                                           • Round A: 150,000 Planets
                                                                           • Round B: 120,000 Planets
                                                                           • Round C: 100,000 Planets
                                                                           • Round D:  82,500 Planets
                                                                           • Round E:  68,500 Planets
                                                                           • Round F:  55,500 Planets
                                                                           • Round G:  46,000 Planets
                                                                           • Round H:  38,000 Planets
                                                                           • Round I:  31,000 Planets
                                                                           • Round J:  25,300 Planets
                                                                           • Round K:  20,500 Planets
                                                                           • Round L:  17,000 Planets
                                                                           • Round M:  15,000 Planets
                                                                           • Round N:  10,000 Planets

                                                                          Because of the exponential system, it is prudent to try to reach the correct prediction as early as possible. Since answers can be changed, players whose original choice of champion was defeated may continue playing and guess again for a lesser prize. It also gives players with surviving champions the decision to stick with them to the end, or jump ship to a more likely champion as The Battle of All Things goes on.

                                                                          Activate the command with /boat or I cast boat

                                                                            Added in Dot 3.8: Economy II 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. The player you wish to target is a required field, and can be selected by referenced by ID, username, or server nickname. Like buy/sell, you can use the target first or the amount you're trying to send.

                                                                              For example:

                                                                              I cast give Luca 1 or I cast give 1 Luca

                                                                                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.

                                                                                  Using inequality 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 I cast 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 lost 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. Only the top 2% of donors will receive the Gen II Economy badge and, in contrast to Gen I, this will be the only way that a player can obtain it.

                                                                                      Activate this command with /infinity or I cast 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 I cast delegates

                                                                                              Added in Dot 3.7: Backup Plan Update

                                                                                              GA/SC 🟡
                                                                                                Demonstration

                                                                                                This command also has the alias: 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 recieve 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:

                                                                                                I cast GA 1 or I cast GAR 1 to bring up General Assembly resolution #1.

                                                                                                I cast 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.

                                                                                                    Hail first requires an admin to set it up. The command is controlled by a console of buttons which will only populate if it makes sense for them to. Only admins will be able to use the the management buttons, which include setting a region, setting authorised roles, and resetting the list of seen nations. Once a nation has been seen once, it won't appear on this list again even if the nation moves out and back. So, to ensure that we're not ignoring nations by people running the command on their own, designating a role that's authorised to run the command is a best practice, if you need more operators to help with integration.

                                                                                                    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 set role that's authorised to use the command, the Welcome button will appear. This will allow the operator to pull the list of nations that have arrived since the region was set or the last time the command was run. Clicking this button also adds new arrivals to the seen nations list so that they won't appear again. If needed, admins have the ability to reset that list to the region's current residents.

                                                                                                    The preferences and nation data for this command are stored by server. If you have more than one region in your server, consider having a single user take responsibility for welcomes in the secondary region and having them run this command in a DM.

                                                                                                    Run the command by typing I cast hail

                                                                                                      Added in Dot 3.6: Fade to Black Update

                                                                                                      Map CalRef
                                                                                                        Demonstration

                                                                                                        Map is a command to quickly hotlink to the Refugia 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 map version looks like (Discord's aggressive image caching system notwithstanding).

                                                                                                        In the CalRef server, activate with /map or I cast map

                                                                                                          Added in Dot 1.0 (Nov 5 2020 Update)

                                                                                                          Nation 🟡
                                                                                                            Demonstration

                                                                                                            Nation reports information for the current details of a NationStates nation. This information includes the full name and pretitle, linked to the nation's on-site account, its classification and region of residence, as well as its ID, residency stat, influence, issues answered, World Assembly status, and date founded as a relative and absolute discord time object. The nation's flag is embedded within the message as an attachment, so you can always come back to the message and download it later if you need to.

                                                                                                            For nations which are in the World Assembly, the command will also report WA information, including how many endorsements the nation has, and which way it has voted (if at all), for any current General Assembly or Security Council votes.

                                                                                                            Activate with, for example, I cast nation Refuge Isle for the current status of Refuge Isle.

                                                                                                              Added in Dot 2.0: Rewrite Update

                                                                                                              Recruit ⚪
                                                                                                                Demonstration

                                                                                                                This command also has the alias: 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 I cast r template 🟡, where 🟡 is your template code, so that it will get attached to each telegram link. 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. If you have already set up a template, or taking over after someone's clocked out of their session, you can use your existing template and your nation batches won't overlap or duplicate with the previous operator.

                                                                                                                You can manually run this command one interval at a time with I cast r and receive new nations in the form of URL batches, where each link has up to eight nations. The URL places recepients automatically into the addressee spot, and your template into the message body slot. Presuming you have set your template, simply click the URL and then click the send button to fire off your messages. Consider using the timer command if you need to pace yourself between batches of eight.

                                                                                                                You can also (and probably should) use the command with assisted checks and reminders. To start an assisted recruitment session, use I cast r start 🟡, where 🟡 is the interval in minutes you want to wait between checks. You can use any interval between 1 and 10. Press the "Acknowlege" button once you've seen the telegram to initiate another check cycle. If Dot doesn't find anything in a cycle, she'll repeat the cycle until she does or until you've said you're done.

                                                                                                                You can use a response's Finish button to end the current recruitment session.

                                                                                                                  Added in Dot 2.7: Recruitment Update

                                                                                                                  Region 🟡
                                                                                                                    Demonstration

                                                                                                                    This function reports information for the current details of a NationStated region. Such information includes the URL, flag, founder, population, delegate (if any), how many votes an applicable delegate casts in the World Assembly, number of embassies, regional power, and ID. It also reports how many votes for and against have come out of the region in any General Assembly or Security Council resolution at vote. You'll also receive the region's last updated time and found date as a relative and absolute Discord time object.

                                                                                                                    If the region has a banner, that banner will be posted to the response message as an attachment, so you can always download it later.

                                                                                                                    Activate with, for example, I cast region Refugia for the current status of Refugia.

                                                                                                                      Added in Dot 2.0: Rewrite Update

                                                                                                                      RRS ⚪
                                                                                                                        Demonstration

                                                                                                                        RRS is a command to link to the Refugia Revised Statutes when you have no idea where they are or cannot be bothered to find them. You can use the command by itself to bring up a link to the main law dispatch, or can use the command with a statute name to cite that statute's specific text.

                                                                                                                        For example, I cast rrs or I cast rrs 2a

                                                                                                                          Added in Dot 1.0 (Nov 5 2020 Update)

                                                                                                                          Save 🟡
                                                                                                                            Demonstration

                                                                                                                            The save command 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. To activate it, say I cast save 🟡, where 🟡 is your desired region. For example, I cast 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.

                                                                                                                            When the archive is ready, Dot will provide you the link to a zip file that contains your region's archive. That archive will be retained on CalRef servers so that if you happen to lose it, your region will still not be gone forever. Note that, depending on how large the region is, archival could take several minutes.

                                                                                                                            There is an example of what a saved region looks like, available on the network site.

                                                                                                                              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, I cast 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 you have not endorsed as of NationStates' last Major update (21:00-22:30 PST) and compiles it in a way you can easily use.

                                                                                                                                    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 proceedurally 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.

                                                                                                                                    The discord message's buttons may be operated for up to ten minutes after the command has been called, after which they will deactivate. Similarly, for privacy's sake, the generated webpage (which already has a hashed name) will be deleted from the server an hour after its creation.

                                                                                                                                    To activate, you can say for example, I cast 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

                                                                                                                                        The telegrams command allows you 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 are 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 is probably dead as nails.

                                                                                                                                        Because of this strong correlation, there is a button attached to this command which will let you see the history of new nation foundings on the site over the last 28 days.

                                                                                                                                        Simply activate with /telegrams or I cast telegrams

                                                                                                                                          Added in Dot 2.0: Rewrite Update

                                                                                                                                          Timer ⚪
                                                                                                                                            Demonstration

                                                                                                                                            This command also has the alias: t

                                                                                                                                            On NationStates, the cooldown that you experience in between sending telegrams is a duration that is proportionate to your nation age. 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 I cast timer base 🟡, where 🟡 is your nation name. Dot will then look up your nation and give you an estimated timer based on your nation age every time you use the command. 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, you can use the timer by saying I cast timer or I cast 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 really weird.

                                                                                                                                                To use this command, say for example I cast 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 I cast 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 0, 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 I cast truesight 🟡, where 🟡 is a dispatch's URL or its ID.

                                                                                                                                                      Added in Dot 2.0: Rewrite Update

                                                                                                                                                      WA
                                                                                                                                                        Demonstration

                                                                                                                                                        The wa command gives you the current status of the World Assembly by displaying what resolutions are at vote. Displayed data includes a linked resolution title, category, scope, linked author, when it began, how many hours remain, and what the total and popular vote stats are. Dot takes the total voting percentages for each chamber to produce a graphical display of how the vote is going, similarly to how it appears on the actual World Assembly page.

                                                                                                                                                        Simply activate with I cast WA

                                                                                                                                                          Added in Dot 2.5: Region Saver Update

                                                                                                                                                          WAs 🟡
                                                                                                                                                            Demonstration

                                                                                                                                                            This command helps World Assembly development programs by generating a list of members and non-members in a given region.

                                                                                                                                                            You can use WAs 🟡, where 🟡 is the target region, to get a list of all the World Assembly nations that reside there in both a telegram batch response and pre-formatted table response. Alternatively, you can use WAs not 🟡 to get the same thing, but for nations not in the World Assembly.

                                                                                                                                                            For example, I cast was Refuiga, for Refugia's WA members or I cast was not Refugia for Refugia's non-WA members.

                                                                                                                                                              Added in Dot 3.0: Rewrite2 Update

                                                                                                                                                              Standard Commands

                                                                                                                                                              Standard base commands for a Discord server

                                                                                                                                                              Optional arguments: ⚪
                                                                                                                                                              Required arguments: 🟡
                                                                                                                                                                Banish ⚪
                                                                                                                                                                  Demonstration

                                                                                                                                                                  Banish something to another dimension with this compact and venerable command. Target something by saying I cast banish landlords to subject inspecific landlords to punishment by relocation. Use the command by itself to target yourself.

                                                                                                                                                                  Fun facts:

                                                                                                                                                                  ✦ That's literally it.

                                                                                                                                                                    Added in 1.0 (Dec 28 2020 Update)

                                                                                                                                                                    Colour/color 🟡
                                                                                                                                                                      Demonstration

                                                                                                                                                                      The colour command gives a large-scale visual display of a given three, six, or eight digit hex code. The hex code is, naturally, a required field and it can feature a "#" symbol or not. Whichever it is.

                                                                                                                                                                      You can say, for example, I colour #0099FF or I colour #09F to a large print of Refugi Sky BlueTM.

                                                                                                                                                                      In fact, you can use any colour from the CalRef palette, such as katze, wisdom, callie, and more. Use a two character opacity amount to specify transparency, if you with. For example, I colour #0099FF50 to display that colour at 50% opacity.

                                                                                                                                                                        Added in 1.0 (Nov 8 2020 Update)

                                                                                                                                                                        Determination CalRef
                                                                                                                                                                          Demonstration

                                                                                                                                                                          Determination is the replacement for the previous "I am" system or role assignments. Simply use the command and use the first dropdown menu to select a custom role colour that you'd like to select. Use the second dropdown to select any additional opt-in roles that you'd like to select.

                                                                                                                                                                          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.

                                                                                                                                                                            Added in Dor 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 I cast fade

                                                                                                                                                                                Added in Dot 3.6: Fade to Black Update

                                                                                                                                                                                Fortune
                                                                                                                                                                                  Demonstration

                                                                                                                                                                                  Fortune allows the user to have one of hundreds of available prophecies, delivered to their door, for a low-low price (none). 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, I cast 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 command also has the 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 information 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 I cast info with or without a target. You can, alternatively, right-click / 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 command also has the 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 something like:

                                                                                                                                                                                          • I cast remind me to do something in an hour and a half

                                                                                                                                                                                          • I cast remind me in 5.7 minutes to do something

                                                                                                                                                                                          • I cast 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 magin for error.

                                                                                                                                                                                          You can manage all of your reminders by using the command by itself, I cast 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

                                                                                                                                                                                              Although you are able to report bugs like "Invocation Failure" and "Brain Explodes" errors directly from the error message when it happens, you do not necessarily need to wait for an error to send a report. You can manually trigger the same form with the report command. You are also free to use these to give feedback about what new commands you think would be neat, or what sort of improvements could be built into an existing one.

                                                                                                                                                                                              If your bug report or feedback directly results in an issue being fixed or a feature being added or improved, I'll send a message back through Dot replying to the original submission saying that the issue was fixed or the suggestion was accepted.

                                                                                                                                                                                              Activate with, I cast 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, I cast 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 it's 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, I cast roster councillor or I cast roster 755244583100612669

                                                                                                                                                                                                        Added in Dot 2.7: Recruitment Update

                                                                                                                                                                                                        Rotate CalRef

                                                                                                                                                                                                          This command also has the aliases: potato, tomato, rotato, 🥔, 🍅

                                                                                                                                                                                                          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 I cast rotate or any of this commands 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 I cast 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, I cast timestamp https://discord.com/channels/869038758299861064/896070008424267847/914326034978054174 or I cast 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, python version, operating system, and whatever name of the host server is. You'll also get the number of servers she's in and the combined population of those servers.

                                                                                                                                                                                                                      Activate with I cast version

                                                                                                                                                                                                                        Added in Dot 3.0: Rewrite2 Update

                                                                                                                                                                                                                        Copyright 2008-2023

                                                                                                                                                                                                                        Powered by CalRef