CalRef Development Journal

Started by Luca, December 14, 2018, 03:13:42 PM

Previous topic - Next topic

Luca

#20
Dot 3.1.0: Growing Pains Update

Hello all, this update is more of a "Part II" of the last update. But here goes~

When Dot was made, obviously her intended scope was the CalRef server. Over time, people asked if they could add her to other servers and I made adjustments to make that happen. The intended range then was still pretty small, like five servers and maybe 75 members. However, CalRef has grown, and so has the number of servers that Dot's in. And every time I go to improve something, it's basically a linear progression to make something as good as it can be in the current code structure before saying "Well, this isn't going to work anymore". Then there's nuking, paving and starting over with something that works a lot better. And that's what the last month of rewrite and improvements have been geared towards: Making Dot able to keep functioning better and pick up new abilities, as new servers decide they want her help.

A lot of the changes for this update are still mostly on my end and not a lot to be talked about here, but there are a few marked changes that we should talk about. I guess I'll get the bad news out of the way first and talk about the features that are going away.

Finally Impostor-Free
Dot's amogus feature, the sus minigame, has been retired as of this update. I very, very genuinely hope that you all have enjoyed it for the time that it's been around, which was quite a while. Apparently since last March, which is before I even started putting Dot's update post here on the forum.

Originally Dot's amogus mini-game was created as a shitpost I made up in a sleep-deprived delirium, based on some simple comprehension of save data and pre-preparing player profile concepts. Optimistically, I thought that it might get some use for a single month, but it kept getting used a whole lot for fourteen. However, I'm not going to re-write it for the structure we're moving into.

While everything was functionally working, this particular command is pretty poorly made. Its data generation and organisation methodology is also pretty barbaric. So rather than rewrite the 1,200 lines of code that make it up, since the joke of the game is thoroughly spent, I'm just going to let it go and work on adding things that are nicer.

Retired Chatbot Functions
Speaking of things that are thoroughly spent, I'm also retiring the F auto-response, the laughs in auto-response, and the ping or mention auto-response. Their admin options in set are similarly removed. Still active are the thanking and good/bad dot/bot and nods responses. However, it's almost certain that in a future update, those will also be retired or restricted to only CalRef/whitelisted servers.

The reasoning is that, while I still think the burden of responsibility for regulating conduct on a given server lies with that server's staff, the fact is that these auto-responses are easily (and frequently) abused by operators anyway, and can cause Dot to generate spam, herself. So rather than rework those into a complicated cooldown system, since Discord is already attempting to curtail message content access (which those require), it makes more sense for them to be cut.

Command Name Changes
I'm moving the commands local avatar into display for ease of my internal organisation. It's not strictly a do or die situation, but it makes things a bit easier for me to deal with.

For the same reason, I'm moving top endos into top.

You can use the command as you normally would.

New Error and Reporting System
I've noticed a lot of times in #simplebots or a couple other servers I'm in that have Dot, sometimes people get "Invocation Error"s and never mention anything. But that kind of error is different from "Information" errors like command not found or missing context. This one means that something's actually wrong with my code which is preventing the function from being used correctly. Sometimes it signals that no one can use the command at all. Previously, a lot of bugs would be fixed from me scanning through our #simplebots channel looking for problems, because people would probably only ping me for like 10% of serious issues. But since Dot's in a variety of larger servers and I'm not there, and since I've re-written....uh...maybe 80% of Dot this month? We need a better system.

Starting now, whenever you get an "Invocation Error" or a "Brain Explodes" error, there is a button for you to report it, (which you do not have to use (although it would be nice if you did)). If you do choose to report an error, it will be sent directly to CalRef, in a new bug report receiving area in floor-7. The bug report will ask what command you used when something broke, what happened, and how it can be reproduced (if possible). Sending it off will also attach what Dot thinks are the most relevant areas of the error log to send with it, to help make fixing it easier for me. Those reports look like this.

You can also manually trigger these reports by using a new "I cast report" command. I'm even fine with you using this to give feedback about what new commands you think would be neat, or what sort of improvements that could be made to 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.

Assisted Recruitment Is Back
And this time, functions a bit differently. Namely by being a lot easier on my server.

One thing that I noticed while watching other people recruit with this function is that there was a habit to call for assisted recruitment (which delivered all current nations) and then they would spend like ten minutes sending the telegrams in that opening batch. This isn't super useful -- generally if you're not telegram number one to five in a player's inbox, they're already gone. So what I'm going to do instead is dump all current nations into the bin immediately, wait thirty seconds, give you whatever was founded in that time, and then start checking back at whatever interval you set from there onwards.

Along the way, I'm adding a button to cancel assisted recruitment when you get a report back. So if you want to make something your last batch, you can cancel it there without having to type anything. You can still end the session with "I cast r finish", just like you *can* still get the opening volley of nations by starting with a regular "I cast r" if you *really* want that.

Anyway, that's all for now. See you next time :jump:
Report all errors to the local authority.

Luca

#21
CalRef VI

What? We're Still Doing These?


Why, yes.

As it turns out, expecting that even constant small updates could replace periodic larger ones was very short-sighted. In previous upgrade phases, we rolled out everything at the same time and surprised people with it, but that's not really in my power to do anymore. There's too much stuffs. Between this and the 3.0 update for Dot, I've spent about eight to ten hours working on the server or coding things for it, every. single. day. for the last month. So, there's probably some level of obligation for me to talk about it. So here we are, hope you enjoy.


Regarding Carbon


The name "Carbon" has been tossed around for well longer than it ever should have been; however, at this point, I am pleased to announce that I have now accomplished what the G20 could not: Removing Carbon.

This server was thrown together four years ago in a more or less rushed situation, as I got the sites back up after the domains were yoinked. I wasn't super knowledgeable about how network administration worked back then, so the result was poorly structured and put together. But it did work and that's what mattered.

Still, the issue was that a lot of the transferred-in software was old as hell and aging rapidly in a time where the systems it needed to run on were increasingly unsupported. These forums, for example, were intensely modified from the standard SMF base, in a determined attempt to keep our forum software modern and relevant when so many other admins sell their soul to subscription-based, closed-source, proprietary software solutions like TapaTalk. The creation of Dot required systems that were current and modern, and that finally forced the issue of bringing everything up to (then) 2021 standards if we wanted to grow.

During the CalRef V update, many systems were transferred off of Carbon and into a newer server of similar hardware specs, called Hydrogen. Regrettably, the forums and wikis could not be taken out of their functional time capsule, no matter what I tried at the time. There were just too many modifications to account for. Consequently, Carbon remained until last week when I finally completed the last of the migrations.

So, for real now, farewell Carbon and rest in carbonite. Thanks for serving us for four years, but your monthly fees will not be missed.


Overview: Hydrogen


Without needing to divide resources, hydrogen was roughly doubled in specs, including using DigitalOcean's newest CPUs, such that even Nightly is able to run about 30% faster. Because the capacity has been so dramatically expanded, Hydrogen now runs all of the administration's sites and services, while all of the hosted sites remain on Xenon. For fun trivia, Calamity Refuge is now on its ninth server and sixth domain, in a freshly minted Debian 11. With some hefty security upgrades that makes the server more resilient to a variety of different attacks, we now boast a better security rating than my government.

The CalRef Network site has gotten a fresh remodel during this upgrade phase, and you can scroll to the bottom of the page and see an overview on these two servers, and that's where any additional ones we'll use in the future will be as well.


The Wiki that was used for the original CalRef RPs and side projects (OldWiki.CalRef) is now deprecated.

It turns out that running an alpha build of wiki software that came out in 2014 has some drawbacks eight years later. It was split for, among other reasons, some privacy concerns regarding our past members, but retained because a lot of the content there is still the basis for how we theme some of our modern stuff, especially in Refugia. So, we're solving both the privacy issues and continuity issues by transferring the article texts and imagery, sans-history and user information, directly into the modern wiki, at Wiki.CalRef. You can visit any time, but registering an account still requires you to contact an admin directly, as previously directed.


Forum Changes


Functionally, the thing that made this update possible was that SMF development has resumed after about a five two year hiatus. The much-awaited 2.1 update made vanilla a lot of the functions that we had put a whole load of effort into modifying in. Such revolutionary breakthroughs include native support for IPv6 addresses. In 2022. Eight years after CalRef first modded the functionality in the database, and seven years after IPv4 exhaustion actually occurred in North America. But this is a welcome reversal from the previous developer line of "Just block access to all IPv6 users". But our rickety homebrew setup couldn't be transferred off of Carbon previously, so I'll take it.

Other abilities gained include the float tag, which I previously wrote in as [floatleft] and [floatright] -- no need to keep that anymore. With the native float tag, you can simply use [float=left] and [float=right]. You can also provide more detailed specifications such as [float=left max=45%], to mark what width the floated item should not exceed.

The [youtube] tag is also a native feature instead of a modification now.

The [tt] tag, which I have used for ages to denote commands or code, and which was used heavily in the FTaWSotR RP, is deprecated by SMF. That's is unfortunate, so I've added a [key] tag to provide the same font, since tt is still a taken namespace.

All the previous tags, such as background, nation, region, box, sidebar are still in and good to go, and accessible through a new and much more pleasant post editor. Members also pick up the ability to do quick edits of their posts while remaining on the same page, leaving edit messages again and quick-quoting highlighted text in posts. Users, mods, and admins now have a more sensible way with dealing with IP addresses which made their way into accidental screenshots a couple years back.

Oh my god and we now have the ability to search content inside threads instead of the entire forum. You will observe the search bar in the upper right, which provides this functionality whenever you need it.

We now have a notification system, where users can be pinged on mention. For example, you can use @Luca and an alert will pop up in my upper left alert menu in the forum bar. This @ method is an alias of the new [member] tag, which you can also use if you wish.

Karma has been removed as a feature and, although we had this since the beginning, I feel like it was never really used much, except when Gabriel's was manually set to -6000 karma. So that's out, and has been replaced with a more modern-standard post "Like" system. As with mentions, you'll get notified whenever a member has liked a post you've made.


Dot 3.2.0: CalRef VI Update


A Dot update too? Sure why not.


Going forward, if you're interested in finding out about Dot, I'm shuttering the old forum thread that served as Dot's documentation and from here on out, everything you could ever possibly want will be hosted on Dot.CalRef. This site is also going to be linked in Dot's bio, future update posts, and there's even a handy link to the site in the "Network" button at the top of this forum's navigation. Every command is linked in the new docs site, with an MP4 video modal of every command being demonstrated. So, if you can't figure out how something is supposed to work, hopefully this will help.

This site also contains a privacy overview for the information that is collected by Dot. Or, more specifically, a declaration of things that are not. If you're interested in adding Dot to your server, you can do so by the large blue buttons that are at the upper right of these pages, or by the invite link that's been attached to Dot's bio.


The commands menu has been changed to provide hyperlinks to the relevant section of the docs for every command registered. The restored help command will also direct to the doc site.


If you've ever been curious about a region's population history history, or liked the graphing features of save, have I got some sweet news for you: You can now get that any time you want.
There's a new command now, called population, or 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, 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.


Minor fixes:
  • Fixed an issue in save, where XMLs were not being properly shipped with the zip file
  • Fixed an issue in the wa command, where verification that NS was down wasn't triggering the right checks.


That's probably all for now.
Report all errors to the local authority.

Luca

#22
Dot 3.3.0 Endotarting Update

Luca, didn't you just post an update?


Oh, you got me there. I was planning on bundling this feature with the next one I'm working on, but I feel like the next one will take me several weeks to finish, while this one is done now. So let's have some free stuff!

Sadly, I will say that as of this update, I'm following through with the forecast I gave in the 3.1 update. As of now, all remaining auto response messages like being thanked are being restricted to only interact with the CalRef server. For everywhere else, they are now deprecated. Ah well, they had a good run. What's next?

Originally, Dot was created to provide CalRef an in-server ability to endorse all the World Assembly nations within Refugia. It's been about two years since then and it never happened, such that it became a bit of a meme. After I got the CalRef VI work off my chest, I felt I had a mental road map to getting this feature out and, naturally, that meant I couldn't rest until I made it. With an absolutely minimal amount of testing, I'm done as of yesterday.


Cross! Cross! Cross! Cross!


There is (finally) a new command called tart.  This command pulls all of the nations that you have not endorsed as of NationStates' last Major update (21:00-22:30 PST), or at least after Nightly has processed it, and compiles it in a way you can easily use.

The nation you would like to get information on is a required argument for this command. The output is an embed of nations, hyperlinked to the closest anchor to their endorse button, and paginated by discord buttons below the message. To the right of the navigation buttons is a link to the web sheet, a procedurally generated webpage which presents the same information, but without leaving your web browser. So you can use whichever platform you find easier.

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 previous Major.


Setable Autopins


Whether 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, there's now a feature to handle that for you. The autopins feature allows a message to be pinned if it receives a requisite number of 📌 emoji reactions within a reasonable amount of time after being posted. Similarly within that time, if the message falls under the required number of reactions, the message will be unpinned.

You may be thinking that looks familiar. Quite so! But now server admins can control it with the new setting added to set, called set autopins. With this, you can toggle this behaviour on or off, or set the threshold to something equitable to the population of your server, or change it as it grows or shrinks. The default state of autopins is off, so if you previously enjoyed this feature, you'll need to set server preferences to use it again.


This feature is the first of a series of updates that will be coming out in the coming months to improve server features and accessibility. Dot will be shifting away from empowering NationStates-specific services, and more to empower server admins who want to make things easier and more pleasant to their members and staff.


Bug Fixes

  • Fixed an bug in button interactions where someone other than the operator would cause an interaction to fail for a button that wasn't theirs.
  • Fixed an bug where running timer without a base would invocation error.
  • Fixed an issue in buy/sell where the database got very laaaaaarge.
  • Fixed an bug in set where certain subcommands would fail in barebones server configurations.
  • Fixed and issue in WA where disruptive tabs appeared in the stats areas on mobile.
Report all errors to the local authority.

Luca

#23
Hello!

It's been a while since I did a blog-style update post, which is what this thread was originally made for, but as I was typing this out in the announcements channel, I thought the thread would be a better medium.

It has been fourteen long months since I first came out with Dot's economy and stock system. In that time, it's had a lot of weirdness, incentives, and events. My favourite of which was probably the euros minigame. After so long, however, we've reached a point where some people have tens of millions and some people have absolutely nothing, as any system with a stock market is wont to induce. It's very cool to me that people have gotten so much use out of the economy, but I'm somewhat interested in reinvigorating competition, and that's not really possible with this environment. It is also not incredibly fair to just delete everything you've done so far.

So, here's my compromise:

We are currently on Dot 3.3.2: Endotarting Update. When Dot 3.5 comes out (so not the next feature update, but the one after that), all stocks owned by all players will be liquidated and all bank + Infinity account data will be exported to a "Generation 1 Final Leaderboard", probably pruned to the top 50 players. The top 20 players will be awarded the renamed Gen 1 Economy badge on their forum account (if they have one), and any other place we'll use these in the future. At that time, the economy will reset. All bank accounts and stock data will be deleted entirely, and the stock and study functions will probably be retired. Infinity will be reset but not retired.

This post gives you some time to prepare for that, in the event you're dissatisfied where you are and want to brute-force a change. But I'll also tell you that I have done zero coding for 3.5 at this time, so what will the timeline look like for 3.5? I have no idea. It depends on how IRL goes and how much I can keep my spirits up. I'd like to have it done by September, but I also don't know how realistic that is considering I'd like 3.5 to be games-oriented and and some of the ideas I have for that are probably a little too ambitious for me.

We'll see how it goes!

Luca

#24
Dot 3.4.0 Rolling Rolling Rolling Update

I am running! I mean, rolling!


It's long been a request that Dot get more admin-oriented or role-management abilities, so this update is dedicated to just that. 3.4 adds some nifty new role-granting abilities, as well as refurbishes existing admin menus to make interfacing with Dot's settings easier than navigating a command line. I'm pretty happy with these changes, so I hope you will be too.


First thing's first: For CalRef-only, the I am rolling system has been retired. It was difficult to use at times, since you needed to type things very specifically, and still relied on an on_message structure, with hard-coded roles in Dot's main launcher. Not ideal with how the rest of Dot works. Now there's a new way of doing things which you can access with I cast determination, to bring up a new role menu.

The menu has two drop downs, the first for which role colour you'd like to select (you can only pick one) and the second drop down is for all other self-assigned roles, and you can select as many of those as you want. When you're done, close those dropdowns and hit the Add Roles or Remove Roles buttons, depending on what you want. Alternatively, you can use the Clear All button to remove all your colour and opt-in roles in one click.

For this and other command demonstrations, check the demonstrations on the sidebar, linked to the commands' section in the docs, which has demo videos for everything.


Magical New Admin Abilities: Autoroles


If your server lifestyle finds it prudent to automatically role members upon their arrival, Dot can now help you out with this. Use the new autorole(s) function to summon a menu of roles. Select between one and ten roles that members should receive upon their arrival, close the menu, and click the Set Active or Set Inactive buttons to toggle the feature on or off. If you'd like to delete the set entries, simply bypass the dropdown and click Clear All.

If you need more than ten roles applied to a member on their arrival, probably reconsider your server structure at that point, or let me run your WAA ministry.

Dot's generic invite link does not ask for Manage Role permissions, so if you want to set up autoroles, she will need that permission to actually apply them. Dot will mention this if you try to set them up when she doesn't have the right permissions in your server. You can either grant them to her bot role, or give her another role which has the permissions.


Magical New Admin Abilities: Reaction Roles


Admins now have the ability to set up reaction roles in their server. These are typically static messages in locked channels where members can click certain reactions and receive whatever roles you say they go to. The set reactions command allows you to add, drop, or end reaction role messages.

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

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

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

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

You can use set reacts add on the same message link to keep adding react settings to it. If you forget what messages you've set up or wish there were some kind of overview command, well have I got some sweet news for you -- there is.

You can use the new reacts command to show everything you've set up so far, with links to all messages, and what emotes go with what roles. You can use this menu to terminate individual reaction role messages, or to terminate all of them. So reacts to overview, set reacts to add or edit. Hopefully that's pretty straight forward.

Better Menus


If you're picking up a trend between the autoroles and reacts admin commands, you're quite onto something. Going forward, as many admin commands as possible are going to try to follow this interface template: a simple title reminding you what you're looking at, a colour-coded sidebar and light bulb at the bottom corner of the embed that lets you know if it's active or not, and simple buttons or dropdowns allowing you to control all the settings with ease. To this end, I've revised a couple of the existing admin commands, and improve how Dot handles their data internally.

This means that set autopins is being moved to autopins, and set recruiter is being moved to recruiter. Making settings using those should now be super incredibly unbelievably easy.

The rest will take a bit, but we'll get there.


Minor Changes and Bug Fixes

  • Fixed an issue in rotato where an image may have repeated.
  • Added region banners to the region command (if a region has one set)
  • Fixed an issue in bouncer where CalRef re-roles would give up if a role could not be added (such as nitro).
  • Added an error handler to report issues with commands that require permissions Dot has not been granted in the local server.
  • CalRef-only commands now report as "command not found" when used in other servers.
  • Errors triggered through repeaters now present the same error content as through the error handler.
  • Fixed an error in eyebeast where bulk deletions would break on logging.
  • The sidebar of embeds in colour will now present as the requested colour, in addition to the embedded colour image.
  • Fixed an issue in recruit where manually running the command without a set template would disrupt the output.
  • Docs now show what update a command was added.
  • New footer banner in the command menu.
Report all errors to the local authority.

Luca

#25
Eyebeast
Eldritch Archival Utility


Greetings Refugi "and normies"!

Heard about the hot, hot, hot new Detag locator that came out a couple weeks ago? Wouldn't it be a dream if there were a comprehensive utility that could go along with it so detagging would be 10% the effort of before? Sweet baby jesus, that time has come.

For the last year (yikes), you may have been hearing of a tool called "Eyebeast", which recorded flags and other data in the most inconvenient way possible. While it's cool that some people found this useful and worked it into their routines, it really wasn't meant to be public, since I never wrote a user interface and the way we were storing data was rather archaic. I have since found the time to rewrite this draft idea into a proper web app.

Behold[er], the new Eyebeast, a supernatural and magical eyeball with many other eyeball appendages. Floating, unmoving, unchanging, in a pocket dimension between the floors of the Admin Tower. We enter its space-folding room and ply it with questions. With grace and precision, it stares longingly into our souls. It screams, we scream, become filled with knowledge of the ancients, and 37% hearing loss for the next six hours.

Eyebeast is also a site that is designed to be mobile-friendly, except on any device or browser where there are problems. Access this 10/10 experience by visiting the nav link on the Network Site, or by going to Eyebeast directly. On the landing page, you're met with a search bar. This is for searching. So type in a region, or copy-paste a region's entire URL, idgaf, Eyebeast consumes all.

On the results page, provided there is one, you'll see all of the snapshots for that region which exist within the database. There are flags, WFEs, tags, ROs, and the banner the region had at the time, if any of those apply. Use the forward and backward buttons to switch between snapshots until you find one that looks like it was written by the native population. Use the copy button to load the WFE onto your clipboard. Want to download a flag or banner? No worries, just tap the flags or banners and download them in one click. What else...Uhm? Idk. The WFE results return things like emoji and other special characters, if the were in the data, so that's an improvement.

But Luca, there's only one snapshot right now!

Indeed. Unfortunately, we can't go back in time to download flags and banners that have already been deleted, nor can we get old tag data. I don't see much of a purpose of a snapshot when most of the data will be missing, so we shall simply wait for new snapshots to be added. The perk of Eyebeast is that it's a longer term tool that will be around for quite a while, so this time of limited data is temporary.

Starting now, every Wednesday, a new snapshot will be added to the database. After a snapshot is six months old, it will be consumed by the Eyebeast and lost forever. This means that you will effectively have six months to detag a region before its native data is lost.
Have a blast!
Report all errors to the local authority.

Luca

#26
Dot 3.4.3 Rolling Rolling Rolling Update

Greetings!

Normally a minor update wouldn't warrant its own post, especially since nothing really "new" is being added. At this point, however, I thought that it would be a good time to just push this out. I'd rather keep these posts simple instead of omnibus packs where everything changes all at once. So, instead of big new features, this update is primarily about the enhancement of existing ones, everything since 3.4.0, as well as talking about Dot's medium-term viability.


Slash Commands Are Now Supported


Ripu, mobile users, except it's not my fault this time!

I am "pleased" to say that as of this update, the 50+ commands of Dot have been converted to hybrid commands. This means that that every server will pick up the option to use Dot's commands with Discord's new and bug-prone "slate" system, using / as a command-initiator. Since all these commands are pre-registered, you'll be able to see all the commands that are available for your server, their short description, and most of their programmed options from the slash context menu, directly.

Lucabaduka, why have you done this?

Excellent question, me.

The answer is that we are very close to Discord's server cap. At that point, I will have to verify Dot and Dot, herself, will lose access to data that makes both development and operation easy. Access to data like the message content intent, which is what the "I cast" system uses to figure out what you want. Dot 3.1 was the "Growing Pains" update, but what I'm finding is that every update is effectively now a growing pains update, as I need to keep adjusting how things work to deal with an increasing user base. Although it is not my preference, Slash commands do not use message content, and are the most expedient way to make sure everything remains working.

I do not see slash commands in my server!

They did not come in the original URL that you invited Dot with, so if you want to enable them, click the Add to Server button in her profile. You do not have to kick her out and re-add, just click the Add button again, which now comes with the "app commands" permission.


Famine Is On The Horizon


In keeping with the "Growing Pains" theme, I'm running into a bit of a problem, as Dot's usage is not how I anticipated it. Unfortunately the time has come to address that.

The recruitment command was developed to accommodate a team of people working in shifts while remaining in one unified server. In practice, however, what people have been doing is making dozens of micro-servers for just themself and their use, alone. Why does this happen? I literally have no idea. Maybe their home server won't permit a recruitment channel, maybe they do not trust my coding within the sacred confines of their server, I could not say. But with just a few server slots of breathing room before Discord starts making demands, this phenomenon is starting to impact Dot's operations.

My first thought is to say "if you don't trust my coding, why are you using my service?" but really, the answer doesn't matter. Instead, I have a compromise for you. Up to now, DM commands have been blocked as I considered the concept troublesome. Gun to my head, we are changing that. I have modified all commands which could work in DMs to be expanded for use there. This means that for the majority of non-server-essential commands, you can just DM Dot and get the same effect (slash commands and all).

Since effectively every message in a DM is also a ping, I recognise this may be unideal for recruitment and its perk of auto-reminders, but there are really few other options. Discord will not verify a bot that's in a hundred 1-person servers, and I am running out of the ability to let Dot keep expanding to legitimate servers while she's being used in the current manner.

To that end, in addition to the aforementioned economy reset, Dot will also be pruned from servers with fewer than 6 members in the 3.5 update. This currently accounts for 1/3rd of all servers. I am hoping to release 3.5 in September. Take the time between now and then to decide whether you want to integrate Dot into a real server, or switch to using the recruitment functions via DMs. Real servers would be ideal, as it would help Dot's odds of being verified 👍


Feature Enhancements: Discord-Based Data Retention


In lighter, news, this update comes with a variety of enhancements which will make things "better" (!)

One thing that has bothered me with the image-generation commands like avatar and display is that they're not super useful in the long run, regardless of what bot you run these types of commands on. This is because 99% of the time, discord bots just hyperlink the image URL. So, when people run these commands hoping to save their data for a temporary style switch, they come back to find their files are dead and gone because a third party (like discord) deleted it off their servers.

Well, we can fix that actually, by including the file itself in the message. So, to that end:
  • avatar - now posts your global avatar as an attachment
  • display - now posts your server-specific avatar as an attachment
  • server - now posts the server's splash (invite background) image as an attachment
  • info - now posts your banner as an attachment
  • roster - now posts the queried role's icon as an attachment
  • nation - now posts the nation's flag as an attachment
  • region - now posts the region's banner as an attachment

Since these files are now a component of the embedded message, itself, you can return at any time (even a year later) and download them for your use again.


Bug Fixes and Minor Changes


  • Fixed an issue where certain commands that used the member finder repeater would fail on pings.
  • Fixed a bug where setting multiple reaction messages would cause earlier ones to be ignored.
  • Fixed a bug in nation where nations with SVG flags would not display.
  • Fixed a bug in avatar and display where animated images would not display correctly.
  • Fixed an invocation failure in avatar when used on a target without an avatar.
  • Added reset timestamps to fortune if it's used more than once by the same person in the same day.
  • Improved the processing speed of the WAs and WA commands.
  • Fixed a bug where the server owner would not have a badge in info.
  • Determination no longer works for operators with the visitor role.
  • Added support for the calref palette to colour -- Aqua, Lilac, Lonk, etc.


Report all errors to the local authority.

Luca

#27
Dot 3.4.5: Rolling Rolling Rolling Update

Another minor update that gets its own post? What next? RPing???


This update is primarily a backend rework, and the good news is you're already using it. To the servers who were helping me to test this new structure and iron out its bugs over the last week: Sorry for the bullshit! But now we have some important scalability fixes to deal with the increased use. In particular, the way that we're processing data as well queueing API calls have been rebuilt substantially.

For you, this will mean three things:
  • All commands are faster, and commands that interact with NationStates will be much faster in particular
  • Dot can handle bursts of traffic much better, and can deal with being in a lot more servers at the same time
  • Slash commands no longer periodically fail for unknowable reasons. Only knowable reasons.

The bothersome cooldowns have been nerfed substantially, no longer binding to individual servers, but to individual operators. Each operator can now use up to five commands over the course of ten seconds, shared across all NationStates commands. This means that the average operator will rarely ever encounter a cooldown message, and probably only when they would be spamming.

The recruit command has been made "not shit" as a number of bugs are fixed, including race conditions involving switching operators or restarting quickly. But most importantly, recruitment is no longer bound to individual servers, but to individual channels. You can use recruitment not only in DMs but also concurrently in the same server, probably for frontiers. You can (and will have to) set unique templates for each channel. These templates still persist across recruitment sessions.

As a component of the fixes, the I cast r finish subcommand has been removed, but in exchange, I have added "Finish" buttons to every "waiting for new nations" post, as well as the "Lights Already On" warning, in case you want to stop early or perform an override, respectively. So that's probably useful.

Improved Bouncers

If you were thinking that the previous way of creating automated welcome and farewell messages through fourteen sub-commands of set was clunky: You were correct, and they are removed.

welcome and farewell are the latest commands to join the improved admin UI system, which lets you control most aspects of the function from a single interactable console. The first step with either of these commands is to set a channel using the base command, plus an argument. For example I cast farewell #landing and I cast welcome #landing, tagging whatever channel you want to use.

From here, you can re-run the commands I cast farewell / I cast welcome to create a preview of the farewell or welcome message, accompanied by control buttons in the usual admin interface. These buttons allow you to activate or deactivate the feature. The farewell command is accompanied by a button to set an image to embed with the message. The welcome command is accompanied by a button to set the content of the message in its entirety, or reset components individually. In the welcome command, you can send in data for just one field without affecting the others, and in the farewell command, you can send in an empty field to clear the image.

The interface will update in real time when your preferences are set. This should let admins have more customisation options and be substantially easier to use.


Bug Fixes and Minor Changes

  • Retired the population command, as it will take a substantial amount of time to optimise. It will likely return next year with a more robust region history/analysis command
  • Retired the mobile command, as recruit is already mobile-accessible and is no longer being threatened for the time being
  • Retired the help command, the namespace is now an alias of commands
  • Nightly now makes daily (or nightly) backups of Dot's saves so we can be sure there is no data loss now or in the future.
  • The commands menu has been reorganised to be less cluttered and (very slightly) more mobile friendly
  • The Info command no longer reports user activity or online status, so Dot can work without the presences intent
  • Documentation has been improved and demo videos for some ten commands have been updated
  • Error messages are now sleeker and slimmed down
  • Added an error handler for Discord being down (what?)
  • Added an error handler for commands invoked in channels that Dot does not have access to (what?)
  • Added more verbose information to the version command, including servers and members served
  • Added a notice to tart and top of when the last update was, and when the next one will be.
  • Fixed a bug in truesight where certain inputs caused the command to fail
  • Fixed a bug in region where responses might have been provided without valid banners

Report all errors to the local authority.

Luca

#28
Dot 3.5: When

Some might ask: Luca, Dot 3.5 when? To which I say, correct!


I'd like to start by issuing my apologies that this update was not out sooner. I had originally planned a more elaborate feature addition for this update, but after a couple hundred hours and seventeen hundred lines, I think I came to the conclusion that it may be a bit above my skill level for the moment.

Since there are many other things that we'd like to see happen with Dot, I'd rather not have all of that continue to be tied up, with progress locked off. So, that command has been postponed and our main changes this update are largely administrative. I do have one item which might be helpful for you, as it has already proven helpful for me.

If you have trouble remembering anything, there's an app [command] for that, called remind

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.

When it comes time to remind you, Dot will DM you the reminder with the contents of your message. If Dot is unable to DM you because you don't accept DMs or have blocked her, she will attempt to ping-reply the original message where the reminder was set. If that fails for one reason or another, that reminder will be unceremoniously deleted.

Dot Left My Server!


Right.

As mentioned in the last post, Dot has been pruned from servers that had five or fewer members and, for the time being, they are unable to re-invite her. While I'm happy that people found the recruitment command to be useful, unfortunately these empty recruitment servers accounted for 45% of all servers Dot's in. I'm only allowed 75-100 server slots before Dot needs to get verified and cannot be admitted into any new servers until she is.

Since Discord will not verify a bot that is in so many shell servers, hopefully you can see this is quite a pickle and we should solve this now before a legitimate wants to add her and can't, while we're stuck with the loss of the "I cast" prefix. It would be ideal if you wished to re-add her to your region's main server to improve Dot's odds of getting verified, but if you cannot or are unwilling to add her to your main region's server, the last update brought with it the ability to use most commands (including the recruitment command) in a DM. So at the very least, you can continue your normal routine there instead.


The End of the Gen 1 Economy


The following commands have been retired: buy, sell, stocks, study

Amazingly, the economy has been around ever since Dot 2.4, in April of 2021. In it, we added not only a currency system, but a stock market. Interest in running a simulated stock market was actually what drove me to making the economy commands in the first place. But we've had a year and a half of that and the conclusion of the simulation is: Stocks make inequality go exponential in ways that basically few other things can dream of and eventually devastate the entire economic system. I suppose that was to be expected.

Time for a hard reset. Everyone's stocks have been sold off, everyone's Infinity contributions have been merged with their bank accounts, and all of this produces a list of players that have generated the most planets since we got started. Of this leaderboard of 50 people, the top 25 who did not already have it from ten million in Infinity contributions have been given a Gen 1 Economy badge for being the most successful players over its duration. Since seven people acquired the badge via the Infinity project while it was in service, the top 32 players will receive the badge.

Those badges will be here on the forum, if they have an account, and they will be made available to planned future profile features where we can make better use of stuff like this.

Here's the leaderboard:

Rank
Operator
Balance
Badge
-
1derp#9479564,631,577
2walrus#868995,291,603
3Luca#000426,134,714
4Cat⁴#063510,225,255
5Arsenic#89076,325,344
6Natalie#00414,944,748
7fox#59403,478,004
8Emilytacular#68072,368,925
9JavaneseTornado#20881,320,606
10Daryn#93891,006,316
11warrantgames#8834901,649
12Cubic#1608845,091
13HumanSanity#9270681,493
14Liphia#8780489,254
15Raskuly#1113336,252
16Aquila#3129326,830
17DγΙ#4608319,890
18Sir Merlin#6879287,070
19Sudanna#3578265,022
20Volchok#8727255,130
21Lemon#2156215,010
22dengopaiv#6268188,760
23Aav#7546162,788
24Tru7h#7223160,015
25Durm#7075135,958
26Cinema#3111120,275
27MediocrePony#4186116,970
28Nydaymos#3492105,986
29Yeet#971997,571
30upc#548391,064
31Egg#377883,060
32Paleocacher#988880,074
33Neo is Best Girl#400267,423
34Astrobolt#436467,310
35Jeromulus#301760,456
36Aramantha#429059,729
37Catherine#000255,677
38Freen#000154,231
39Tim#644251,649
40Mrkawaipotatocat#008144,406
41BowShot118#458642,808
42Hailu#327141,102
43Raziel#329340,826
44Nuevas Ideas Creeper#137640,356
45The Islamic Country of Honour#656738,881
46Cat Overlord#662537,890
47William!#113636,262
48Copernicus#851236,228
49Whatermelons#1781235,307
50Alt#040534,842

Per usual, congrats to the wealthy and condolences to the poor. 564 million is no small number, and it is well beyond anything I thought would be possible. If I missed awarding you the Gen 1 Economy badge, I might not know you have a forum account (or I might have spaced out entirely), so send me a message if you were missed.

With this conclusion and badge distribution, the economy is functionally suspended, in the next update, we'll start to bring some of it back in a new system that will make competition possible again.


Bug Fixes and Minor Changes

  • Info now posts a member's role by mention
  • Added Security Council resolution statuses to the nation and region commands, with matching embed colours and regional pretitles
  • The region command now has better formatting and displays endorsement rate and total endorsements.
  • The nation command now has better formatting and displays the nation's primary banner or a random banner if no primary is set
  • Added a link to the last update post in the version command
  • Error messages no longer ask for the command used, for they are reported (along with its alias and invocation method) automatically
  • The colour command now supports image transparency
  • Fixed roll not allowing 100 dice, as intended
  • Fixed an issue where hypesquad brilliance's badges were not reporting in info
  • The server command is slightly more cohesive
  • Fixed a bug in rotato where loading the oldest file in the set caused the command to fail
  • Fixed an issue where version could not be used in a DM

Report all errors to the local authority.