News: Catholics Celebrate Worldwide as Pope Francis Wakes from Hibernation — Watch the Cardinals Deliver Consecrated Deer Carcasses to the Papal Lair in This Heartwarming Clip

Main Menu

CalRef Development Journal

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

Previous topic - Next topic



Dot 2.10: Adaptation Update
Long ago, in twinkledy twinkledy eight, one lone Arch-Administrator vaporised an entire forum by channelling raw html magic into a signature field. Naturally, it's no wonder that the distant admins of NationStates were spooked, despite Dot's great skill, and banned this practice of internet magic altogether. No worries, CalRef has never struggled to roll with the punches and change with the times -- it is possibly one of our greatest strengths. So, after a bit of an absence, I am back with a more rejuvenated development schedule and bring you this fine-tuned update.

The Return of Recruit
One thing you might have noticed is when the policy was floated to make the URL-based recruitment illegal, the recruitment command was dropped from Dot immediately. This command has now returned, although it operates with some restrictions. As requested, magic URLs are no longer used. Instead, you're expected to have Discord and the NS telegram page up. Dot will feed you the nations, broken into batches of eight (if there are more than eight new nations) when you check. Your template will also be posted so you can re-copy that if you need to. As before, you can use I cast recruit or I cast r to manually pull these nations.

Remember that a server admin will still need to set up a recruiter role with set. If you don't know what that means, it would be a good idea to flip through the docs.

This new system is slightly more inconvenient, especially for mobile users. To help, I've added a mobile version, which you can use with I cast m. The m command uses the same unified recruitment system, which means your template from recruit is the same one that will be used here, without having to set it again. Nations that you process with m do not repeat if you leave and someone on the desktop-oriented command pick up after you.
What makes the mobile command helpful is that each telegram batch is placed in its own separate embed. On mobile, you just need to tap and hold the embed for a second to copy it to your clipboard. So, ideally:

  • Run the command, then tap and hold the template to copy it
  • Switch to the NS telegram window in your browser
  • Paste the template, and close the window
  • Open a new window and go to the telegram page
  • Do not touch the message body so NS will pre-load the template every time
  • Tap and hold the addressees Dot provided to copy them
  • Switch back to the NS page, paste into the recipient box
  • Press send and re-run the command as needed.

In the desktop version, all batches are in the same embed, and you can just triple-click each line to copy that line to your clipboard and send. Both the new r and m commands can be used with automated check and ping intervals. As before, to run these commands on semi-automatic mode, use I cast r start X or I cast m start X, where X is the interval you'd like to use in minutes (between 1 and 10).

Timer Is Its Own Command
If you have been missing the timer function of the old recruitment command, that's returning as well, but in a much more useful way. 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). Consequently, it doesn't make any sense for us to use fixed durations. So we won't!

As of this update, there's a new command called timer, with an alias of t. To use it, input what nation you'll be sending telegrams from by saying I cast timer base X, where X 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 Endorsements
A brand new command in this update allows you to instantly check what nations have sent out the most endorsements in any given region. This is called the top endos command, and it's designed to make endotarting programs easier to manage and track, not only for Refugia, but all other regions as well. 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 endos Refugia.

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

Minor 2.10 Changes:

  • Fixed a bug where Dot thought every member had every colour role on demasking.
  • Improved startup routine, recruitment that is unexpectedly terminated now resets.
  • Completely rewrote the stocks and study commands to be remarkably more efficient.
  • Added logos for FLIT, SKY, and SHIT stocks.
  • You can now use whole URLs in the truesight command.
  • The buy feature will now tell you the maximum number of shares you can buy in inadequate funds errors.
  • The base infinity message now invites users to check the leaderboard (in case they didn't know it existed).
  • Fixed a bug in the assisted recruitment system where switching operators quickly would duplicate the process.
  • Stocks update four times a day once again.
  • Fixed an error where not supplying arguments to the buy and sell commands would not trigger missing arg errors.
  • Fixed a bug in recruit where only puppets being detected would break automation.
  • Fixed a bug in welcome related to messages where a URL was not set.
  • Added a test option to set welcome and set farewell whereby an administrator may preview the welcome/farewell messages for a given server.
  • Substantial improvements to how frequently used functions work.
  • Fixed a bug in bank where a player who did not own FLIT stock would be unable to access their account.
  • Added NCS to the economy as stock I.
  • Fixed a bug related to start up routines that clear hanging recruitment loops.
  • Fixed a bug in set where setting a welcome URL did not support wizard enunciation.
Report all errors to the local authority.


Dot 3.0.0: Rewrite² UpdateThe last time I put in this much work into Dot, it was last year during a ground-up rewrite to move functions into the command system. Unfortunately for present-day me, Dot's a little bigger now, so rewriting her takes increasingly long hours. But hey! here we are. Although most of this update is focused on just keeping Dot working by migrating to the 2.0 version of, I've also carried out a wide swath of work on Dot's performance and quality of life features.

I will hopefully be back with another update in the not too distant future with more improvements, but since I've changed so much, as least on my end, I'd like to get all this stuff off my chest and out of the way and go from there. For a similar reason, the famed assisted recruitment functions are temporarily disabled. You can continue using the manual mobile and desktop recruitment functions in the interim. If you notice any errors, let me know, some stuff was axed and rebuilt from scratch and hasn't been tested beyond what I've done the last few days.

For the purposes of this update post, I will consolidate all changes into three categories.

New Features
  • Avatar still displays a target member's global profile picture, so I'm adding a local avatar command to display what the user's server-specific profile picture is where the command is triggered. You can target another member per usual, or leave it blank to target yourself.
  • There is now a version command, to display whatever the current software details are for Dot,, Python, and the operating system on which Dot is running at the time. This command also shows the device name, as well as what the local time is there.
  • If you are like me...well, don't be, it's a really bad idea. But if you're like me, you'd like to be lazy when running your World Assembly development programs. And now we have a command to help with that. You can now use was X, where X is the target region, to get a list of all the World Assembly nations there in both a telegram batch response and pre-formatted table response. You can also use was not X to get the same thing, but for nations not in the World Assembly.
Despite these new features, Dot's source code is about 10KB smaller :heppy:

Feature Improvements
  • The Command menu's style has been adjusted for better accessibility. The version number, update post url, and taglines are no longer hard-coded.
  • GAR now has GA as an alias.
  • GA and SC now indicate if a resolution has been repealed, and links to the repeal if it exists.
  • GA and SC now provide per cent information with a newly installed thousands separator.
  • GA and SC now link to the target resolution when querying repeals.
  • GA and SC text preview lengths have been increased by 100 characters.
  • Roll now has grammatical cases for rolling one, two, or more than two numbers.
  • Welcome now reports the member's username to avoid the client-side caching issue where new members would be unknown.
  • Info has been rewritten to provide the target's local avatar and display banner (if there is one). The sidebar will be determined by the target member's top role colour in the server
  • Info now displays a target's creation date in absolute and relative time.
  • Info now provides discord account member profile badges, like Hypesquad teams and server boosters. Bots are recognised here as well.
  • Info now provides a user's activity details or custom statuses if there is no activity.
  • Save will now ship archives with a zip file of all original xml data for their RMBs and history pages, so if a superior utility is developed in the future, they can work with what I have to work with.
  • Study will now display graphs dynamically instead of hard-coded dates. Currently, this will be the last 120 updates (30 days), but this will gradually be expanded to three months once data builds up again.
  • Server Eyebeast message edits now only display the before message, length limit doubled, links made tidy.
  • Region now displays the target's last update timestamp.
  • Server now reports substantially more information about the current server or a relay server, including bot count, voice channels, emotes, stickers, roles, and locale.
  • GA, SC, Truesight, Telegrams, Server, and Server Eyebeast timestamps are now displayed as discord time objects instead of local server time.
  • Rewrote the economy functions and features to use a database system.

Bug Fixes
  • Fixed an error where set welcome active reported twice if welcomes are already on.
  • Fixed an error where timer died unexpectedly if the base nation was unknown.
  • Fixed an issue where buy and sell did not work with commas in the user input.
  • Fixed an issue where an insufficient funds error in buy did not report the correct number of obtainable shares.
  • Fixed an issue in GA and SC where unresolved BB code made the text difficult to read.
  • Fixed a bug in set farewell where a farewell message could not be reactivated if it were ever set and deactivated previously.
  • Fixed a bug in top endos where requesting more than 25 nations to be bolded would cause all of them to be bolded.
  • Fixed a bug in eyebeast nick changes where the feature never worked in the last two years and now does.
  • Fixed a bug where study was not displaying the newest stock prices.
  • Fixed an issue where an operator could not use commas in infinity donations.
Report all errors to the local authority.


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.


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.


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.



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!


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, :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.


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.