v0.4.0 Changelog

New Features

  • Airdrops have been added!
    • This feature is currently only available in the BoxBot server – but is planned to be available to more servers in the future.
    • The bot will generate a random box (common to ultra rare) with the following chances:
      • Common box: 64%
      • Uncommon box: 23%
      • Rare box: 8%
      • Ultra rare box: 5%
    • Depending on the box generated, a timer will start, with the time being random within a certain range:
      • Common box: 15 minutes – 25 minutes
      • Uncommon box: 25 minutes – 35 minutes
      • Rare box: 55 minutes – 65 minutes
      • Ultra rare box: 115 minutes – 125 minutes
    • After the timer has been decided, there is a 0.5% chance that the generated box may become an epic box!
    • Once the timer has expired, every message posted in BoxBot’s #chat channel will now have a random chance between 10% and 30% to have the airdrop applied to it.
    • After the bot has decided which message to apply the airdrop to, it will add an airdrop reaction to it.
      • Credit to Krample#6868 for the animated airdrop art!
    • The first person to click the airdrop reaction will win the airdrop!
      • In addition to receiving the airdrop itself, the user will also receive EXP depending on the airdrop’s tier:
        • Common: 10-20 EXP
        • Uncommon: 22-34 EXP
        • Rare: 36-50 EXP
        • Ultra rare: 52-68 EXP
        • Epic: 70-90 EXP
    • Depending on the role of the user who claims the airdrop, they will have a chance of receiving a skin credit:
      • Member / no role: 1%
      • Donator: 2%
      • Common patron: 3%
      • Nitro booster: 4%
      • Uncommon patron: 5%
      • Rare patron: 10%
      • BoxBot staff: 10%
      • Artist: 10%
      • Event team: 10%
      • Ultra rare patron: 20%
      • Epic patron: 35%
      • Legendary patron: 55%
    • Once an airdrop has been claimed, or if it goes 30 seconds without a user claiming it, a new airdrop box and timer will be generated.
    • Airdrops have logs viewable by staff which will help determine (and punish) users using self-bots/scripts to automatically react and claim airdrops.
  • Added a new setting (in b!settings) to choose if you want to receive pings from the bot when you are attacked or stolen from with a magnet.
  • Added new staff commands: b@manualloot and b@manualattack. Senior mods and above have access to these commands, which makes manually fixing stuck attacks much easier!

Returning Features

  • Leaderboards have been re-added!
    • b!top to check the leaderboards for your current server.
    • b!gtop to check the leaderboards for all Discord users playing BoxBot.
    • Leaderboards commands must include a category name, e.g. b!top money. Valid categories are:
      • money, kills, deaths, exp, trivia, kdr, inv, value
    • You can specify the leaderboard page number after the category, e.g. b!top money 3 will take you to page 3. Leaderboard commands will take you to page 1 if no page is specified.
    • b!top and b!gtop both share a cooldown – making it so people cannot spam these commads as they are fairly resource-intensive compared to other commands. The cooldown time depends on your role:
      • Staff: 0 seconds / no cooldown
      • Patron: 30 seconds
      • Everyone else: 60 seconds
  • Attacking has been completely rewritten and explosive items are now functional!
    • Explosive items deal damage to three different players at once.
    • The total damage for your attack will be generated at the start, and you will always deal at least 25% of that generated amount to each player. The remaining 25% damage will be spread out randomly to each victim.
  • The bot can now send DMs to users when their cooldowns expire. This is only available to patrons and staff. This will be enabled by default for existing patrons and staff but can be disabled via b!settings.
    • Note that you will not receive cooldown expiration notifications for the cooldowns that are reset upon death.

New Skins

  • m1_garand;;amethyst – DRAKO#6133
  • health_potion;;holy – Zheng#8008
  • l85a2;;bubblegum – Auroria#8172
  • glock-17;;golden – DRAKO#6133
  • ak-47;;andromeda – DRAKO#6133
  • rapier;;medusa – Zheng#8008
  • boomerang;;plasma – DRAKO#6133
  • barrett_m82;;plasma – oak#6259
  • kunai;;evergreen – DRAKO#6133
  • sledgehammer;;demon_slayer – DRAKO#6133
  • iron_shield;;pirate – Destroya#5069
  • titanium_shield;;catalyte – DRAKO#6133
  • 2mm_bullet;;blaze – Shobe#2888
  • .50_bmg_bullet;;railgun – Lucian#3434
  • wooden_arrow;;golden – siw#4444
  • wooden_bow;;golden – siw#4444

Changes

Voting
  • When voting for the bot, you will now receive a DM thanking you for voting and telling you what your reward was.
  • All discordbots.org links have been changed to top.gg links (website changed their domain).
  • Bot-banned users no longer receive voting rewards.
Cooldowns
  • The way that cooldown text is formatted has been changed to be more descriptive/accurate.
    • e.g. if a cooldown is about 13 days, instead of “1 week”, it will now say “1 week, 6 days”.
  • The cooldown time between commands has been reduced:
    • Patrons’ cooldown between commands reduced from 1500ms to 1250ms.
    • Users with the Event Team role in the BoxBot server now have a 2000ms cooldown between commands.
    • BoxBot staff members’ cooldown between commands has been reduced from 1000ms to 500ms.
    • Users who nitro boost the BoxBot server now have a 2000ms cooldown between commands instead of 2500ms.
    • The cooldown between commands for everyone has been reduced from 3000ms to 2750ms.
Event Team
  • Event Team now has their own badge displayed next to their name! Credit to Krample#6868 for the badge art.
  • Event Team now has a monthly credit claim command (b!eclaim gives 5 skin credits; resets on the 1st of every month).
Attacking / Looting
  • Looting has been completely rewritten. It should now be a lot faster, and hopefully more stable.
    • 2 straight minutes of no reactions on a looting message will now cause the bot to skip the entire looting process.
    • The A,B,C reactions are added after splitting the message into 2 messages (if needed). This prevents the reactions from being added and immediately removed only to be added again.
  • The requirements for attacking have been changed from needing either $9k money or $9k inventory value to needing $9k player value (money and inventory value combined).
  • Cooldown times for explosive weapons have been greatly increased.
  • Rewritten the b!players command to be more accurate.
    • The “$9k in money or inventory value” has been changed to “$9k player value” to match the new attack requirements.
    • The command will always respond with the newest data instead of periodically updating for each server, however there is now a 60 second cooldown on it to prevent abuse. For patrons this is reduced to 30 seconds, and for staff there is no cooldown.
  • The b!use command is now unusable while you are currently being displayed as an attack option to another user, or are currently being attacked.
  • Magnets have been completely rewritten to match the new attacking system.
    • When stealing money it now tells you your new total money.
Inventory
  • The “inventory value” in the title of the b!inventory command has been moved to the “money” field.
  • A “total player value” (money and inventory value combined) has been added to b!inventory.
Staff-Related
  • Attack logs (viewable by BoxBot staff) now have an indicator telling them whether the attack is currently in process or it has completed successfully.
  • The reason for a punishment in the b@check staff command now has a character limit of 825 to prevent an error being caused by the message exceeding 1024 characters. Any punishment reason exceeding 825 characters will be cut short to 820 characters and have [...] added to the end of it.
  • Added help as an alias of b@commands.
Misc.
  • Item/skin emojis have been moved from the main BoxBot server to separate servers created purely for storing BoxBot’s emojis.
  • The text given to non-staff users who try to use b!sclaim has been changed for clarity.
  • Added balance as an alias of b!money.
  • Added skinv and skinventory as aliases of b!skins.
  • Added help as an alias of b#commands.
  • Due to recent Discord API changes, I’ve had to quickly change how some things work. The main thing affected by this is using commands on Discord IDs or usernames; tagging the user should still always work.
    If you try to use a command on a username or Discord ID (i.e. b!inv 71632953322512384) but the user is offline, the bot will likely tell you that the ID is invalid. Currently, only patrons or staff members will be able to use IDs of offline users in commands as the new method in this update would quickly get the bot rate-limited if this was available to everyone.
    I will look into getting this back to working like normal in a future update and I apologise for the inconvenience.
  • IPC (the way that clusters communicate with each other) has been completely rewritten from scratch.
  • The ‘player count’ in the bot’s Discord status now updates once every 30 minutes.

Bug Fixes

Attacking / Looting
  • Fixed using a magnet not checking if the user is actually eligible to use one.
  • The loot embed is now split into multiple embeds if needed, instead of just not sending a loot embed and likely breaking the entire attack.
  • Fixed attack DMs not working if the user has never toggled any settings.
  • Fixed the C emoji not being removed when there are only two loot choices remaining.
Staff-Related
  • Fixed the X button on the following staff commands’ cancelling the command but not responding with a message:
    • b@botwarn
    • b@tradewarn
    • b@tradeunwarn
    • b@tradeban
    • b@botban
    • b@botunban
  • Fixed b@forceopt not being logged when used in ‘normal mode’.
  • Fixed respawn, fixtrade, fixfindingvictim, and fixpossibletarget staff commands not being logged.
  • Fixed the updatemoney staff command allowing staff to set users’ money to a negative amount.
  • Fixed a rare error that may occur when a staff member tries to use a user’s ID who may be in another cluster.
  • When a user is reset via the b@reset command, it no longer resets their credit claim cooldowns or their b!claim (voting) cooldown.
Misc.
  • Fixed an exploit involving coinflip that allowed you to duplicate money and items. This time it is fixed in a way that won’t cause users to get stuck in coinflips – unable to use any other commands.
  • Fixed the bot sometimes giving over double the level up rewards from trivia.
  • Removed all references to the BoxBot forums as they no longer exist.
  • Fixed the Patreon link in b!pclaim being incorrect.
  • Fixed new users who have never used a cooldown command not appearing in the attack pool, even if they meet all of the requirements. Almost exclusively affected events.
  • Fixed the bot completely removing formatting characters from usernames (e.g. _, *, etc.) instead of escaping them.
  • Fixed the bot sometimes giving “NaN” credits to a user who upgrades their patron tier, causing their credit count to glitch and be reset to 0. Instead, if there are issues with giving the user the credit difference it will ask them to join the BoxBot server to contact staff for help – where the credits can be given manually.
  • Fixed b!value throwing an error (and the bot not responding) if the supplied user is invalid.
  • Fixed the bot responding to non-staff who try to use staff commands in channels where BoxBot commands have been disabled.