by Max Barry

Latest Forum Topics

Advertisement

39

DispatchMetaReference

by The Dichromatic Mechanism of August. . 1,195 reads.

AugustinAndroid v2 Public Release

Last updated on Wednesday September 9th, 2020. If you find this dispatch helpful, please upvote.

| ABOUT | CREATIVE USES | OPEN SOURCE | NSNEXUS | NSVERIFY | STATISTICS |


It is finally here: the AugustinAndroid NS-based Discord bot! This project is under active development.

LinkInvite the bot to your server
LinkJoin the support server
Technical thread

User tag: @AugustinAndroid v2#1723
User ID: 459227558274138133

Return to top


Why should I invite this bot to my server?

Because this is the only NS-based bot you will ever need. For one, it has some marquee features that you cannot find anywhere else. It also has the standard set of tools that any good server needs, but fully-integrated and improved. It is powerful, flexible, and if it were any smarter, it would take your day job so you could play NS full-time. Not that you would. Let me elaborate a bit: Anyone can set up a few crude functions with Dyno. Almost anyone can download Red, stick it on some cheap hardware, find a couple cogs online, and call it a "custom bot." That is not what you are looking at here. AugustinAndroid v2 (AAbot for short) is the first-ever complete and publicly-available Discord bot created exclusively for this game, and it requires no technical expertise to use. Read on!

What can this bot do?

You mean, what can it not do? The full documentation is too long to include here, but the >help command provides information on all available commands. Notable features include:

  1. NSVerify. This one is the crown jewel, the most important of the bot's onboard systems. In a nutshell, NSV ties a player's Discord account to their nation(s). With its database of nation records, it automatically assigns Discord roles to unverified accounts, region residents, organization members, visitors, and CTE players, depending on your server's settings. For maximum security, unverified accounts can be prevented from seeing your public channels and memberlist. Residency and CTE status, along with the corresponding roles, are updated daily. The more servers the bot runs on, the easier NSV will be to use, because many users will be pre-verified from other servers when they enter a new one. Rejoin a server you left previously, and you will not have to re-verify. (Relax, spies and R/Ders: privacy is important to us too. The bot will never leak your identity on one server to another server, and you can remove your identity from the database at any time.)

  2. NSNexus. This is a powerful feature that links all Discord servers that operate any edition of the bot, allowing for easy and seamless inter-server communication between their members. Servers can connect to any or all of the following: the global news stream, which permits official updates from regions and organizations; the global chat stream, which permits general chatter; and embassies, which are two-way portals between a pair of servers.

  3. Join/leave/ban messages. Technically this is part of NSV, but it is worth mentioning separately. If you have ever wondered about the mysterious @invalid-user who just left your server, or found the built-in join notification inadequate, this is for you. Sure, other bots offer join/leave messages... but not like this.

  4. Power User tools. This group contains everything you want to give your trusted officials, but keep out of reach of ordinary players. That means command scheduling, DM alerts, polls/surveys, and a lot more. One of Discord's more frustrating limitations is that roles can be @mentioned by anyone or no one, with no settings in between. With AAbot, Power Users and above can ping roles that are not set to mentionable.

  5. Moderation tools. All the usual warn/kick/ban commands are here, plus a few other handy features. The mod system is tied to the same user database as NSV, simplifying the backend and enabling server moderators to more effectively monitor users. Trying to check someone's warning record, but they keep changing their Discord username? Just enter their nation name instead.

  6. Administration tools. Sometimes the power of a Discord admin role is not enough for you, and you feel the need to benevolently address everyone with a certain role via DM, or just kick everyone with that role out of the server. Mass Actions let you handle a batch of users or roles in a single command. You can also automate admin actions by placing commands on a schedule. For example, a particular channel could be automatically opened on Saturdays only and hidden the rest of the week.

  7. Backups and logging. Admin took an early retirement and deleted all your roles and channels? A user under investigation went back and edited all their incriminating posts? Missing timestamps for an event that did not show up in the Audit Log? The bot can recover everything with a single command.

  8. NationStates data. Request real-time information about a nation, a region, the world, or the WA. The >swap command, which shows you a list of nations you have not endorsed, is especially popular.

  9. General-purpose commands. This one is a catch-all: "general-purpose" refers to reminders, user profiles, a random number generator, and more.

  10. Developer support. A support ticket command allows servers to report issues as they arise, and I will personally troubleshoot them as fast as possible. In addition, all users have access to commands showing the ping response, uptime percentage, server information, and bot documentation.

Can this bot steal my nation?

No. The verification feature uses the NS API, with token authentication. It is not possible for a third party to impersonate you or steal your nation using this system.

Can it spy on my conversations or damage my server?

Yes, just like any other bot. You use this software at your own risk, but the risk is minimal. The number of servers the bot has destroyed is actually in the negatives--its backup system can be used to recover a server even from total erasure by a rogue admin or bot.

Due to the quantity and scope of all the complicated features on board, the bot does require the Administrator permission to function. However, the owner of each Discord server, and any administrators they designate, will be the only people controlling this bot on their own server. I am the only person with host/database access, and I promise unconditionally that I will not use it for malicious purposes.

As a side note, it should go without saying that it is a bad idea to send sensitive information to a Discord user (human or bot) that you do not control or know personally. I often read the bot's private messages for troubleshooting purposes. It never asks for anything sensitive, so do not send it!

Why should I trust you?

  1. The NS bot alone is running on hundreds of servers with thousands of unique users. If you include the non-NS version, there are nearly 130k unique users across all servers. It has been public for an entire year, and running on beta-test servers for nine months before that. Not once has the bot kicked someone it should not have kicked, deleted content it should not have deleted, revealed information it should not have revealed, or otherwise been the cause of a security incident.

  2. I retired from NS in March 2019. Up to that point, I had only worked for myself in my own organization. After that point, I have had no political ambitions at all.

  3. I have over a decade of clean history and a Commendation, for whatever that is worth.

  4. I am an engineer who writes code as a hobby, not a twelve-year-old troll. The only benefit I receive from hosting this bot is the satisfaction of seeing it used.

Is it legal by NS rules?

100%. An internal rate-limiter keeps the bot well under the 100/min ceiling for API calls. Our quota of over 130k calls per day should be more than sufficient, even when distributed across a large number of servers. Much of the heavy lifting is done by the daily dumps anyway.

Can you add a feature that posts memes whenever I @ my friend???

That exists already! They are called aliases and triggers, and you can make them do all sorts of things. The bot is highly flexible, and the creative potential is endless.

If you have a suggestion for a new feature, please post it in this thread. If you send me a telegram or Discord DM, it may get lost. I will consider all reasonable suggestions for features that would benefit most or all servers using this bot. I am not likely to custom-build something for a single server, because this has backfired in the past and cost me significant time and effort.

I am a nerd. Can I get more details?

Absolutely. The program is written in Python 3.8, with user and configuration data stored in an instance of MongoDB. Everything is hosted on my local server, which is on a UPS and has 99.9% uptime. The underlying library is discord.py 1.4. Other than that library and a small handful of dependencies, everything under the hood is original. If you have any questions, concerns, or curiosities over the way it works, I am very happy to discuss the details with you.

Return to top

Created by August. Do not reproduce, in whole or in part, without explicit permission.

RawReport