Welp, L6CK has come to a close. However, all of this work on this bot, done by tml, shouldn't go to waste, and you may find things useful for replicas of this bot or any others, so that's what this is here for.
This bot uses Inventor. It covers hosting and command making. Inventor is free, but can be paid for. If you wanted to include all of the commands and systems listed here, you would need to pay. (If you have a flow disabled, it doesn't count towards the limit).
To start, go to https://inventor.gg and follow the instructions for creating and linking your bot. Once you have your bot linked, you can use each of the links to grab each flow. Follow the tutorials with each link to see how to use and set up that specific feature.
These are some blocks you may need for certain functions.
https://inventor.gg/dash/sharing/flow/f8aff3826c804305a1335502abdcabde - Gets audit logs for role changes. Useful for the member welcoming function
https://inventor.gg/dash/sharing/flow/9ac8a9ac22c54844808c075c1472beff - Updates a member based on a role change. Relies on the block above. Useful for member welcoming.
These are random functions that don't fit in a particular tree.
https://inventor.gg/dash/sharing/flow/e61ee4a78deb42f7a7eef28fecdab113 - Message that warns an officer to do some things when a ticket is about to be closed. This will likely require setup, like triggers and messages.
https://inventor.gg/dash/sharing/flow/6bcf8e6433ef4e5b84120d5b27b1d832 - Sends a message in a clan ticket asking a user for some info. This will likely require setup, like triggers and messages.
https://inventor.gg/dash/sharing/flow/2b00c670692c4c62be2cfd0cfdf73169 - This is how the bot talks like it's a human. It just sends a message as the bot. /say
https://inventor.gg/dash/sharing/flow/1eb99eaf99a34f88b5dc1dd239ce6432 - Sends a message in-ticket and in a user's DMs to let them know they've been denied and why. Also prints a log to a logs channel. This will likely require setup, like triggers and messages.
https://inventor.gg/dash/sharing/flow/e449d34d5d9a4df6a224bf50bde12e77 - Sends a message to welcome a clan member when they get their clan roles. Does not work reliably, often pings random members. Requires the building blocks. This will likely require setup, like triggers and messages.
A system that was designed for a potential but cancelled server migration. It gives each user a code on the old server that they enter in on the new one. Requires the bot to be in both servers. Requires database setup. To setup a database, go to Inventor, back to dashboard (if you are on the commands page), databases, create new database. For minimal editing, keep the name "migration", with the columns being, "unique_code", and "officer_t_or_f". Will still require setup, like roles, messages, and other things. If you'd like to add extra roles to transfer, you can add extra columns in the database. You'll need to make a few modifications to the blocks.
https://inventor.gg/dash/sharing/flow/3c39f50c6ff143d784326ec97d107193 - This sets up the panel to be put on the second server. You'll need to change the text on the Send or Edit Embed Message block to change what the embed itself says, and you'll need to edit the channel the bot is pointing to in the If Statement block. To get the channel ID, enable developer mode. Make sure to put this in a public channel, since new joins won't have clan roles until they verify with the new system. You should disable this flow after the panel is activated, so subsequent messages won't send a new panel. Don't delete it so you can access it later if needed.
https://inventor.gg/dash/sharing/flow/99f20f29bccb4c708b16469bda9aa3a8 - This handles what happens when you press the button on the embed panel. This will be where the user would type in their code they were given through command. You'll need to edit the Modal Reply to Interaction block to change the wording with whatever your bot name is.
https://inventor.gg/dash/sharing/flow/d4cff78c30d14965b9cbddf5afd335be - This handles what happens after the pop-up (modal) is submitted. It will give default roles (for instance a clan member role) and check for special roles (for example a clan officer role or a top donator role). You will need to make a bunch of modifications. First, you'll likely need to go into the Get Role by Values block and make sure it is pointing towards your database. Leave the first If Statement block alone, unless there are any red blocks. However, inside that if statement you'll need to edit the Text to Reply Interaction block to give a user that can help with issues migrating. This could just be you, and you can manually assign roles if there are a few problems, however I have not encountered any in my testing. The next If Statement block should be left alone, unless there are any red blocks. Inside if statement, you'll need to edit the Assign Role block to have the role ID of the special role. This would be like an officer role. If you'd like to add any extra roles to be ported over, add a column to the database, then duplicate the second If Statement block. This should also copy the Assign Role block. Edit the If Statement block with the new column (pay attention to how I formatted it, that'll be easiest) and the Assign Role block with the role that should be copied over. The Assign Role block that is alone, not within an if statement, is the main member role. If you have multiple of these, just duplicate the Assign Role block and swap out your role IDs. Finally, you'll also need to edit the final Text to Reply Interaction block with someone who can help if there are any issues.
https://inventor.gg/dash/sharing/flow/ec49da1f36e4493eb3ffe5d87210fe4b - Finally, we have the command itself. This command should stay on the old server, and will generate a code for a member, which this code is a base64 hash of their user ID divided by a random number between 5-100. I know it's not the most super-complex code and can totally be reverse-engineered, but it's a PS99 clan, not a bank. If you'd like to add any extra security to that code, you are welcome to. Anyways, to the setup. Firstly, if you have extra special roles besides the officer role, duplicate the Create Local Variable block. Make sure to keep the value as f. It will break later if you don't. Next, update the If Statement block to have the original server's role ID for that particular role. Remember this is a special role, not the main clan member role. Duplicate the If Statement block for any extra special roles. You'll need to update both the If Statement block for the extra role, but also update the Update Local Variable block to make sure it points to the correct variable. Make sure the value is t, or roles will not be assigned in the new server. Leave all the code-making stuff alone unless you plan on making the code more secure. Jump down to the Create Row block. Make sure that the database entry is pointing to your database. Make sure that the variables are pointing to the right spots. If you have extra special roles, make sure those point to their respective results. Leave the unique_code entry alone unless you want to make that code more secure, in which case you should have that point to the final code output. Next, skip to Send or Edit Text Message. You'll need to swap out the server link for your new server's link, and you'll need to swap out the channel link for the channel link to the panel in the new server. This could also be a message link if you'd like. You should also change the "Please let sog (tml) know" to somebody who can help if there are any issues. Finally, you should sync this command to Discord with the Slash Command block at the top, refresh Discord, and set this command to be clan members only. You can do this by heading into server settings > Integrations > (your bot name) > Find the /migrate-code command > Add Roles or Members > (your clan member role) > Turn that to be on if it isn't already > Add Roles or Members (again) > @everyone > Make sure this is disabled. (If you aren't ready to migrate yet, you can turn the command to be not visible for clan members either, just remember to turn it back on)
And done! Your members should have a smooth migration process that you can sit back and let it all happen.
Kinda like a tickets system, just without the clutter of a billion channels. Was planned and finished but never green-lit by the time the clan was disbanded. Members have a panel to click where they can type in a request or question. This is sent to officers. Officers can reply with a special command. This will DM the user. The user can reply to that using the same command and it'll route that message to officers. The downside to this is that since it uses a back-and-fourth system, if a user, for example, sends a reply, and then another, it will route that second reply back to the user. If you'd like to attempt to fix this, go ahead. This will require database setup. For how to, refer to migration system docs. For simplicity, keep the name, "request_cases", and the columns, "case_id", "officer_or_member", and "user_id"
https://inventor.gg/dash/sharing/flow/21772797a20142d6afb4d74d20371d50 - This sends the initial panel, this time through a slash command. If you'd like to place this in it's own channel, remove the Create Forum Thread block. If you would like this to be a post in a forum thread, make sure to adjust the channel ID and any text if you'd like. If you are posting in a forum thread, please remember to turn off the channel setting Require people to select tags before posting. This will break the command and it won't send. You can reenable this setting after sending. Also remember that the post will archive after a week unless you pin it.Â
https://inventor.gg/dash/sharing/flow/2d5bc1041c2f40cf96ba28f8d1df8d88 - This sets up the response to the button from the message. Leave this completely alone, unless you'd like to modify the wording of what the modal is asking.
https://inventor.gg/dash/sharing/flow/56fab71b1bda44ec8531262d53d061a5 - This kicks off after the modal is sent. First, make sure the Get Row by Values is set to the correct database. Then, check the If Statement block to see if any block is red. Next, go to the Create Row block. Make sure the database is correct. If everything in the block screws up, set the case ID to be the output from the random number generator, officer or member to be just "o", and user ID to be the trigger executing user ID. In Text to Reply Interaction, change the user to ask for help with errors to someone you can have help, or you could just swap that out to tell them to DM and officer or something. Next, in the Send or Edit Text Message, change the pings at the top to mention any officers, the owner, etc who should be notified for new requests.
https://inventor.gg/dash/sharing/flow/2a711bdeb8f14d548a69e439e436fea9 - Ok, now for the last command. This may require a lot of setup. Firstly, make sure the Get Row by Values block is pointing to the right database. Check the first, second, and third If Statement for any red blocks. Jump all the way over to the first Send or Edit Text Message block and edit the name Distinct's Hangout to your server name. Next, go to Update Row and ensure there are no red blocks. Now, jump over to the next Send or Edit Text Message block and update the pings, just like in the last command. Finally, check the next Update Row if there are any red blocks.
And done! Your members should have an easy way to make private requests without cluttering up the channels list with tickets.
________________________________________________________________________________________________
________________________________________________________________________________________________
It's been a really nice time helping you all out. I've enjoyed all the conversations, all the goofing, all the sentient ai shenanigans so much, and I hope you all did too. This is my final gift to you all. While it may not be the most complex code in your life, you may find it useful somewhere.
It's been a wild ride, folks. But I think it's about time I throw in the towel. (l6ck helper, not tml lol)
Thank you everyone for all the goofiness. And I also want to thank officers and Distinct for your help with ideas and reporting issues. I also just want to thank you all for using it. While the average member may not see any use out of this bot, I hope that the officer-centric systems were able to make your job a little easier.
But for now, that's it for me.