Dot!

Calamity Refuge's multi-purpose, quality-of-life Discord chat bot

    Lucabaduka

    @Luca#0004

    🍁 28, nonbinary Canadian

    CalRef Admin & NationStates enthusiast. The farm kid to coder pipeline is real.


    Overview

      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. So, naturally, this is the one feature I have never written. Instead, Dot takes over a number of other functions that our previous chatbot, Ligrev, provided until 2018. Dot is written in python and hosted on CalRef's "Hydrogen" server in Toronto.

      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 version 3.3.0, and development is pretty constant. You can follow my updates and project progress by keeping up with the CalRef Development Journal.

      If you are viewing this page on a mobile device -- consider not doing that.

      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", and most commands (as well as the prefix) are case-insensitive.

        Bring up the full command list with I cast commands. Click the command word to jump to its relevant section of the documentation.

        Some commands are only designed for Calamity Refuge. They are still documented here, marked by the CalRef tag, and cannot be used elsewhere.

        Server Commands

          Commands to assist interfacing with Discord, itself

          avatar Allows you to see a requested user's avatar, or your own
          display Allows you to see a requested user's server-specific, or your own
          info Information about your Discord account, or another's
          roster Displays the total members who have a given role
          CalRef rotate Allows you to "adjust" the server icon, for some reason
          server Tells you information about your server or another one
          timestamp Provides the exact time a given message was sent

          Admin Commands

            All commands require the "Administrator" permission to activate

            prune Clears up to the last 50 posts from a channel
            set autopins Configures the autopins feature to specifications
            set farewell Configure a message to post on member departure
            set recruiter Designates a role for authorised members to do NS recruitment
            set welcome Configures a message to welcome members to your server
            CalRef spin up/down Activates, rotates, or deactivates server invites
            CalRef vanquish Immediately terminate Dot in the event of a critical malfunction

            NationStates Commands

              Regarding the browser-based political simulator, NationStates.net

              ga / sc Gives a passed World Assembly resolution
              mobile A handy recruitment function designed for mobile users
              nation Gives you information about an NationStates nation
              population Digs up all the population records in a region's history
              recruit Call for aid in your manual recruitment endeavours
              region Gives you information about an NationStates region
              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

              Economy Commands

                Commands focused on Dot's in-universe economy

                bank Displays the bank information of the member or another member
                buy/sell Exchange planets and stock in the stock market
                give Gives planets from your bank account to a target member
                infinity A charity agency rewriting spacetime and destroying evil
                stocks Displays all stock information from the Refuge Securities Exchange
                study Look at historical trend data for all available stocks

                Utility Commands

                  Extra help, tools, and utility functions

                  colour Spits out a big bright display of a given hex code
                  fortune Delivers a prophecy specific to you. Limit 1 per day
                  report Send bug reports, suggestions, and feedback about Dot
                  roll Rolls dice, size and quantity determined by the user
                  version Provides current info about Dot and the software she runs on

                  Coming Soon

                    Features for server mods and admins

                    Deprecated Features

                    A non-comprehensive list of somewhat notable things which I recall are no longer things:

                      euro This seasonal event ran from June 23 to July 10, 2021 and allowed for UEFA Euro 2020 match betting
                      sus Dot's amogus minigame for sussing out impostors in your server for sweet cash (or death)
                      auto responses Messages posted as automatic responses to something like being thanked or pinged, while humanising, were often exploited in poorly managed servers.

                      Server Commands

                      Commands to assist interfacing with Discord, itself

                      Optional arguments: ⚪
                      Required arguments: 🟡
                        Avatar ⚪
                          Demonstration

                          This is a function to display a member's full resolution avatar and post a URL to it's actual file. All images are converted to png where possible. You can say I cast avatar, and this will bring up your own avatar image. You can also pull up someone else's avatar by attaching their ID, username, or server nick to the command. Remember that Discord will delete old avatars after members change them, so past URLs will not lead to old avatar files after they're gone.

                          For example I cast avatar Aang will bring up that member's profile picture, if they can be located

                          Display ⚪
                            Demonstration

                            This command is similar to avatar, except instead of displaying the global profile picture of yourself or a target, you can see their server-specific avatar. If there is no server-specific avatar, the global one will be returned. This is also a functionality of info.

                            Use with, I cast display or I cast display someone else

                            Info ⚪
                              Demonstration

                              This is a function to detail information about a member. The information provided includes the member's username, nickname, ID, account creation date, current activity, server roles, and avatar. If the member does not have an ongoing activity, they will be listed as existing in a perpetual state. By default, using I cast info will bring up information about your own account. To select a different member of the server you're in, you can use that member's ID, username, or nick.

                              For example, I cast info Natalie will provide information on this very suspicious user

                              Roster 🟡
                                Demonstration

                                This is a function to list the total members who have a given role. The output will display their ID and their username + discriminator. If the role has a colour attached to it, the sidebar of the response will have that colour, otherwise, it will have Dot's default blue. The total number of users is displayed in the footer text. You can search by role name, ID, or ping.

                                For example, I cast roster councillor or I cast roster 755244583100612669

                                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

                                  Server
                                    Demonstration

                                    This is a function to detail information about a server. Such information includes who the root admin is, members and channel volumes, creation date, ID, locale, boost status, as well as classification info, server icon, and splash banner (if available). Dot will also take the liberty of rating the quality of the selected server. For all servers that require two-factor mobile authentication, the quality will be listed as "😅". For all others, it will be listed as "Fantastic".

                                    Activate with I cast server

                                    Timestamp 🟡
                                      Demonstration

                                      As discord only provides timestamps 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

                                      Admin Commands

                                      All commands require the "Administrator" permission to activate

                                      Optional arguments: ⚪
                                      Required arguments: 🟡
                                        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.

                                          Set Autopins 🟡
                                            Demonstration

                                            Allows you to control autopins, a feature for when you'd like to give your users more control over their chat environment, or have a hard time determining which shitposts are worthy of being uselessly pinned. The autopins feature will take care of pinning messages which have had a requisite number of 📌 reactions within a reasonable amount of time after the message was posted. If the message falls under that threshold again within the same span of time, the message will be unpinned.

                                            The default state of the feature is off, and activating it enforces a standard threshold of 5 📌 reactions, which can be changed.

                                            Turn on autopins with I cast set autopins active. Turn it off with I cast set autopins inactive.

                                            Change the pin threshold with I cast set autopins 10 to change the threshold to 10 reactions, or any other number that you want.

                                            Set Farewell ⚪
                                              Demonstration

                                              Provides an automatic message posted to a pre-set channel when a member leaves the server. The base command, set farewell, provides a built-in help message to guide users through the process. With this command, you will get postings for a former member's username, ID, when they left as a discord time object, and what roles (if any) they previously held.

                                              You can say I cast set farewell channel 🟡, where 🟡 is either tagging the channel, or the channel's ID. For example, I cast set farewell channel #landing

                                              With the channel set, you can turn messages on or off with I cast set farewell active or inactive.

                                              You can also customise the output with an image, using I cast set farewell image 🟡, where 🟡 is a URL.

                                              Set Recruiter 🟡
                                                Demonstration

                                                Allows an administrator to designate one of the roles on their server as containing members authorised to use Dot's recruitment functions for their NationStates region. In the required field, you can tag the role by mention or you can post the role's name or ID.

                                                For example, I cast set recruiter @Recruiter, I cast set recruiter LABOURER, or I cast set recruiter 862846879611617280, etc.

                                                Set Welcome ⚪
                                                  Demonstration

                                                  Provides and automatic message posted to a pre-set channel when a member joins the server. The welcome message will always mention the user and post their username in case of client-side caching issues. The base set welcome command provides a built-in help message to guide users through the process. Begin by designating a channel you would like the post to appear in. Begin by saying I cast set welcome channel 🟡, where 🟡 is either tagging the channel, or the channel's ID. For example, I cast set welcome channel #landing

                                                  With the channel set, you can turn messages on or off with I cast set welcome active or inactive. The default message is pretty vague, so let's customise it further.

                                                  Set the title of your welcome message with I cast set welcome title 🟡.

                                                  Set the URL that surrounds this title with I cast set welcome URL 🟡.

                                                  Set welcome message body with I cast set welcome message 🟡.

                                                  Set an image running across the bottom of the message with I cast set welcome image 🟡.

                                                  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.

                                                    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

                                                      NationStates Commands

                                                      Regarding the browser-based political simulator, NationStates.net

                                                      Optional arguments: ⚪
                                                      Required arguments: 🟡
                                                        GA/SC 🟡
                                                          Demonstration

                                                          The GA 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 you choose. 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

                                                          Mobile ⚪
                                                            Demonstration

                                                            This command also has the alias: m

                                                            This feature facilitates recruitment for any NationStates region in a manner similar to recruit. However, since manual recruitment on mobile devices is notoriously difficult, this has been engineered to provide a slightly easier time.

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

                                                            The recruit / r command and the mobile / m command use the same system. So, if you have already set up a template, or if you are taking over for someone who just clocked out of recruitment for the day, you can still use your existing template and your nations will also not overlap or duplicate with the previous operator.

                                                            If you do not already have a template set, you should set one up for best practices. Use I cast m 🟡, where 🟡 is your template code, so that the command will attach it to each recruitment message in case it falls out of your browser's cache and you need to re-copy it. The codes are unique to each user, and unique to each server. So if you are recruiting regularly for more than one region at a time, you can have unique templates set for each.

                                                            On your browser, paste your template into the telegram message box, and preview the message. Leave the page and come back and click the "New Telegram" button, so that the message will automatically populate the template. It will remain until your cache is cleared or until you click inside the message body. So avoid doing that.

                                                            You can run this command one at a time with I cast m and recieve new nations, broken into batches of eight. For each batch, the nations will be inside an embed. On a mobile device, you only need to tap and hold an embed to copy its contents to your clipboard and paste into the recipient box. When you use the command again, you'll get nation that have been founded since the last time you ran it. So each response message will be unique and you won't be sending two messages to the same person.

                                                            You can also use the command with assisted checks and reminders. To use the assisted reminders, say I cast m 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" buton 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. So, ideally:

                                                            1. Click the new telegram button, paste in your template and preview the page.
                                                            2. Leave the telegram page and go back to it. Click open the new telegram button and your template should be there.
                                                            3. Do not touch the message body so NS will pre-load the template every time.
                                                            4. Start the assisted recruitment command with I cast m start 🟡 where 🟡 is your desired interval.
                                                            5. Tap and hold the addressees Dot provided to copy them.
                                                            6. Switch back to the NS page, paste into the recipient box, send the message, and open a new telegram.
                                                            7. Tap the "Acknowledge" button to proceed.

                                                            You can use I cast m finish or press the last response's "Finish" button to end the assistance session.

                                                            Nation 🟡
                                                              Demonstration

                                                              Nation reports information for the current status of a NationStates nation. This information includes the full name with pretitle, inside a URL to the account, the nation's classification and region it is presently in, as well as its ID, flag, issues answered, World Assembly status, and date founded as a relative and absolute discord time object.

                                                              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 World Assembly votes.

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

                                                              Population 🟡 ⚪
                                                                Demonstration

                                                                This command also has the alias: pop

                                                                This command delivers a graph similar to that on regional history pages, providing the history of the region's population. However, with this tool, you can see much further back than NationStates' graph limit (2016), and instead see as far back as 2012. You also have the option to get the history of the current iteration of a region, or the entirety of the time the name has been used since 2012, including across all refounds. In both cases, you'll also be given the spreadsheet of the data, if you'd like to do something extra with it, yourself.

                                                                You can say I cast population Greece for the incarnation, or I cast population Greece, all for all the history of that namespace.

                                                                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 set recruiter, designating what role is authorised for recruitment in your server.

                                                                  The recruit / r command and the mobile / m command use the same system. So, if you have already set up a template, or if you are taking over for someone who just clocked out of recruitment for the day, you can still use your existing template and your nations will also not overlap or duplicate with the previous operator.

                                                                  If you do not already have a template set, you should set one up for best practices. Use I cast r 🟡, where 🟡 is your template code, so that the command will attach it to each recruitment message in case it falls out of your browser's cache and you need to re-copy it. The codes are unique to each user, and unique to each server. So if you are recruiting regularly for more than one region at a time, you can have unique templates set for each.

                                                                  On your browser, paste your template into the telegram message box, and preview the message. Leave the page and come back and click the "New Telegram" button, so that the message will automatically populate the template. It will remain until your cache is cleared or until you click inside the message body. So avoid doing that.

                                                                  You can run this command one at a time with I cast r and recieve new nations, broken into batches of eight. For each line in the output, you can tripple click the line to select it entirely, and copy it over the the recepient box. When you use the command again, you'll get nation that have been founded since the last time you ran it. So each response message will be unique and you won't be sending two messages to the same person.

                                                                  You can also use the command with assisted checks and reminders. To use the assisted reminders, say 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" buton 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. So, ideally:

                                                                  1. Click the new telegram button, paste in your template and preview the page.
                                                                  2. Leave the telegram page and go back to it. Click open the new telegram button and your template should be there.
                                                                  3. Do not touch the message body so NS will pre-load the template every time.
                                                                  4. Start the assisted recruitment command with I cast r start 🟡 where 🟡 is your desired interval.
                                                                  5. Tripple-click the telegram lines and ctrl+c to copy them entirely.
                                                                  6. Switch back to the NS page, paste into the recipient box, send the message, and open a new telegram.
                                                                  7. Tap the "Acknowledge" button to proceed.

                                                                  You can use I cast r finish or press the last response's "Finish" button to end the assistance session.

                                                                  Region 🟡
                                                                    Demonstration

                                                                    This reports information for the current status of a NationStated region. This 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 World Assembly resolutions at vote. You'll also receive the region's last updated time and found date as a relative and absolute Discord time object.

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

                                                                    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

                                                                      This archive has been specifically 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 my generated population 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.

                                                                      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.

                                                                        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 information. 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. This is a button whose name and link will change with every click. 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.

                                                                          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 how many other regions are actively recruiting and how difficult your own time will be.

                                                                            The vast majority of all telegrams in this queue are recruitment-tagged telegrams. While the volume at which they are sent is heavily contingent on the spawn rate for new nations at the time, the higher the number is in a given queue, the lower the odds that your recruitment telegram, in that queue, is going to reach them. For example, unless there's a massive rush of new nations, if there are 25,000 telegrams in the stamp queue, stamp-based recruitment methods will be functionally worthless for the time being.

                                                                            Simply activate with I cast telegrams

                                                                            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. So if you're still sending telegrams from your new nation a year from now, the timer will adjust to your gradually ageing nation, and give you the duration you need at the time.

                                                                              After your nation is set, you can use the timer by saying I cast timer or I cast t

                                                                              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 an embeded 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.

                                                                                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.

                                                                                  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 and combines them into a graphic display of how the vote is going, similar to how it appears on the actual World Assembly page.

                                                                                    Simply activate with I cast WA

                                                                                    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.

                                                                                      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.

                                                                                          Buy/Sell 🟡 🟡
                                                                                            Demonstration

                                                                                            Allows you to buy or sell shares of stock on the Refuge Securities Exchange. A list of stocks can be found by using the stocks command, or by trying to buy or sell something that doesn't exist. Since remembering syntax for things like this is notoriously difficult, it does not matter whether the number or target stock is first in the command, as long as both are present.

                                                                                            For example:

                                                                                            I cast buy THI 1 or I cast buy 1 THI

                                                                                            I cast sell THI 1 or I cast sell 1 THI

                                                                                            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

                                                                                              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, novelty, or in other ways extraordinary, but always done with the justification that it will create a utopia across the galaxy and across dimensions. The base infinity command will display the command overview. You can attach any number to donate that many of your planets to the project, or use the command to display the program's leaderboard.

                                                                                                Refugi who donate ten million planets across their lifetime will receive a forum badge that highlights their incredible contribution:

                                                                                                For example:

                                                                                                I cast infinity, I cast infinity donate 1, or I cast infinity leaderboard

                                                                                                Stocks
                                                                                                  Demonstration

                                                                                                  This command also has the alias: stonks

                                                                                                  This command gives the current price of all stocks in the Refuge Securities Exchange. Stock names and their ticker symbols are provided, alongside the direction the price has been trending over the last week. Stock prices are refreshed every six hours, at 00:00, 06:00, 12:00, and 18:00.

                                                                                                  Get the latest with I cast stocks

                                                                                                  Study 🟡
                                                                                                    Demonstration

                                                                                                    While the stocks command provides the latest information, the study command provides more detailed information about a stock's price history. The ticker symbol of the stock you wish to study is a required field for this feature.

                                                                                                    Selecting a stock, Dot will return the stock's name, slogan, logo, current price, and weekly trending direction. For analysing purposes, a snapshot of the stock's price across the last three days (12 updates) is provided in text form. A graph featuring every available six hour data point across the last three months of time is also provided, where available.

                                                                                                    For example, I cast study THI to get study information about Tim Hortons Inc

                                                                                                    Utility Commands

                                                                                                    Extra help, tools, and utility functions

                                                                                                    Optional arguments: ⚪
                                                                                                    Required arguments: 🟡
                                                                                                      Colour/color 🟡
                                                                                                        Demonstration

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

                                                                                                        For example, I colour #0099FF to a large print inspection of Refugi BlueTM

                                                                                                        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

                                                                                                          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

                                                                                                            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.

                                                                                                              Version
                                                                                                                Demonstration

                                                                                                                If you are abundantly curious about the current iteration of Dot and the software on which she runs, you can use the version command to display her version number, the discord.py iteration, python version, operating system, and whatever the server name is on which she's running. You'll also get the local time there.

                                                                                                                Activate with I cast version

                                                                                                                Copyright 2008-2022

                                                                                                                Powered by CalRef