A discord bot with over 757,000 users providing a wide variety of commands, from audio all the way to notifications. More information at https://asphaltbot.com
10,497 words
https://asphaltbot.com @asphaltbot

v3.6.1 Changelog

After a short break, development of Asphalt has resumed.

New Features

  • You can now add %GLOBAL_USERS% to your custom commands to get the user count of Asphalt


  • Moderation commands such as a!ban, a!kick and a!softban now no longer require a case number as requested by a poll that we ran. You can now do a!ban @user [reason]

  • We have now migrated away from Azure Storage and to Oracle Cloud Storage, as it is cheaper and faster/closer to the main server than Azure.

Bug Fixes

  • Fixed a small issue with our backend websocket server

v3.6 Changelog

New Features

  • Added a!twitterfeed [enable/disable] [twitter username] to allow you to be notified of when a user posts a tweet
    • Donators get twitter feeds checked every 2 minutes whilst non-donators get their feeds checked every 10 minutes
  • Added a!wikihow which gets a random WikiHow article
  • Added a!randomnsfw which gets a random NSFW image from Reddit
  • Added a!marketplace which gets a list of buyable/sellable items and their prices
  • Added a!restart, which allows you to restart a song from the beginning


  • a!meme has been moved to a!randommeme
  • a!meme now gets a random meme from Reddit
  • Increased the selling price of items from 50% of the buying price to 75%
  • On a!daily, donators now get P$40 and a Rare Crate
  • On a!beg, donators now get P$20

Bug Fixes

  • Fixed a bug when displaying queue times on queues longer than 24 hours (see here)
  • Fixed an intermittent bug that would occur when playing audio

v3.5.2 Changelog

New Features

  • We have re-introduced our memes system. You can either attach a meme with the comment a!uploadmeme or add a URL after the command.
  • To view memes uploaded in your server, simply use a!meme and a random one will be fetched from your server


  • We have moved away from a!disable and a!enable. The new commands are: a!invitedeletion on/off, a!autorole on/off [role name], a!translations on/off

Bug Fixes

  • You can no longer favourite the same song more than once
  • You can no longer rob people with P$0.00
  • Fixed an error on a!profilepicture when a user could not be found
  • Fixed an issue on a!lyrics if no lyrics could be found for a song
  • Fixed an issue that would happen with a!favourites add if no song was playing (command timing issue)

v3.5.1 Changelog

New Features
There were no new commands introduced in this update


  • Optimised some commands
  • Tweaked some support commands/systems

Bug Fixes

  • Fixed an issue on a!roll which would allow for invalid inputs
  • Fixed an issue on a!favourites list when you have no favourited songs
  • Updated jackson-core and jackson-databind to patch remote code execution vulnerabilities

v3.5 Changelog

New Features

  • Added a!steal, which allows you to attempt to steal a percentage (5% to 50%) from a user. If you get caught, you will have to pay them a percentage
  • Added a!heist, which allows you to attempt a bank heist. More information at the bottom of this post
  • Added a!buy so you can buy items (useful for the heist system) (see here)


  • Item prices have been modified to be fairer based on the crate that they have come from
  • On commands which rely on a user as a parameter, you are now able to use their username, ID or mention them
  • Bots now have their own donator tier (doesn't give the impression that bots can be donators)
  • Usernames on a!discrims are now alphabetised

Bug Fixes

  • Fixed a!gif

With this update, a brand-new heists system is introduced along with a couple of new items which are required for your heist to be executed smoothly.

The following bank locations are currently available:

  • Local
  • City

Each bank has its own "security detail", the higher the security detail; the less chance you have of successfully pulling it off, but the higher the amount received if you do.

If you get caught during a heist, your funds will be reset to 0.00

You can use the a!heist command with either "local" or "city" parameters. If you do not have the required items, you will receive a prompt stating the items that you need.

All heists have a cooldown, which vary from the difficulty/security detail.

This system is new, so if you experience any bugs/issues, please message Asphalt so we can document them and fix them.

v3.4.4 Changelog

New Features

  • You can now use a!sell id/all to sell unwanted items in your inventory
  • You can now use a!help category_name to get a list of commands in that category


  • Adjusted item values to better represent the items
  • Support requests now no longer take 1 minute to close

Bug Fixes

  • Fixed an issue that would cause Asphalt to sometimes become unresponsive and go offline until manually rebooted
  • Multipliers will now no longer be stored as 0.0 on boot if they have expired
  • Fixed an intermittent issue on a!viewinventory if no items have been loaded into the cache.
  • There is a known issue with the a!gif command, we are currently working on a fix. It has been disabled in the mean time.

v3.4.3 Changelog

New Features

  • Added a!pitch to be able to change the pitch of the current playing song
  • Added a!speed to be able to change the speed of the current playing song


  • Major optimisations
  • Updated dependencies

Bug Fixes
There were no bugs fixed in this release.

v3.4.2 Changelog

New Features
No new features were added in this version


  • Items in a!inv are now sorted by ID
  • a!urban now gets the highest rated definition
  • Removed virus scanning
  • Updated kotlin to the latest version

Bug Fixes

  • a!wolframalpha now works properly
  • a!twitchstats now works properly
  • Fixed an issue on a!discrims where an error would occur if no one could be found with a specified discriminator
  • Fixed an issue on a!urban where an error would occur if the definition length was longer than 1024 characters
  • Fixed an intermittent error with our task scheduler that would cause reminders, donator expirations, tasks etc to not run properly
  • Fixed an issue where years would not be displayed on a!viewtier
  • Fixed an issue where Asphalt would attempt to PM a bot on a!opencase (this is not possible)
  • Fixed an issue on a!viewcommands when a server has no custom commands
  • Fixed scheduler conflicts (when you attempt to block someone twice, it will now unschedule the job and reschedule it at the desired time)

v3.4.1 Changelog

New Features

  • Added HTTP Calls to a!stats


  • There were no changes in this version

Bug Fixes

  • a!viewinv no longer deletes the message instantly if Asphalt has no clear reaction permissions
  • Fixed a pretty big issue where if you had more than one of the same item (e.g. 2 of the x5 Multiplier) and you redeemed one; both would be removed
  • Asphalt no longer attempts to delete messages older than 2 weeks
  • Asphalt now checks for valid input (valid integer and less than 100) on a!bulkdelete
  • a!loadplaylist no longer attempts to load a playlist that does not exist
  • a!saveplaylist no longer attempts to save when there are no songs in the queue and there is no song playing

v3.4 Changelog

New Features

  • We now have a crates system! More information explained at the bottom of this post
  • We now have a new inventory system! More information explained at the bottom of this post


  • Bumped the connection pool to up 100 connections

Bug Fixes

  • Fixed a bug where you could not bet all money (which would leave 0.00)

Crates System
We have a new crates system, which has been provided as a way for you to earn money and points (for a new system which we are in the process of implementing).

The commands for this system are as follows:

  • This will show the items that you have in your inventory a!redeem
  • The redeem command now doubles up as the command that you can use to redeem your items, crates, multipliers etc. Note: you can still redeem donator codes using this command, it will just use a different system to the inventory one.

Crates will be dropped at random times when you use commands within Asphalt. The drop rates are as follows:

Common Crate: 7.5%
Rare Crate: 2.5%
Legendary Crate: 1.75%
Mythical Crate: 0.10%

The items that you can get in each crate are as follows:

  • Common:
    1.5x Bet Multiplier
    2x Bet Multiplier
    5x Bet Multiplier

    5 Points
    10 Points
    25 Points

    6 Hour Donator
    12 Hour Donator
    One Day Donator

  • Rare:
    10x Bet Multiplier
    15x Bet Multiplier

    35 Points
    50 Points
    200 Points

    Two Day Donator
    3 1/2 Day Donator
    One Week Donator

  • Legendary
    20x Bet Multiplier
    25x Bet Multiplier

    250 Points
    500 Points
    750 Points

    Two Week Donator
    One Month Donator
    Three Month Donator

  • Mythical
    50x Bet Multiplier
    100x Bet Multiplier

    2000 Points
    3500 Points
    5000 Points

    6 Month Donator
    2 Year Donator
    Permanent Donator

Note: All multipliers, regardless of crate type, can be stacked and are not permanent.

Inventory System
With this crate system, we had to implement an inventory system, which provides a place for all of your unused items, crates and multipliers to be kept.

Nothing can be taken out of your inventory, you keep what you open.

Trading is currently a work in progress, this is being released since people have been asking for it for a while and there has been no update for a while.

As always, if you need any help; please feel free to message Asphalt to open up a ticket for one of our support team.

v3.3.2 Changelog

New Features

  • We now have a brand new error reporting system, in which you will be given an unique error code should an error occur, we will then be able to see what went wrong and what parameters you put in leading up to the error
  • Added "OOF" bass boost (200x the RIP preset)
  • API Rewrite


  • You can now no longer block yourself from Asphalt
  • Server administrators can now use a!bankadmin (note: this will only be for this update as it will be removed in the next update)

Bug Fixes
There were no bugs found in the previous release to be fixed in this release.

v3.3.1 Changelog

New Features

  • There are no new features in this update


  • The AFK system is now global, meaning that if you go AFK in one server, you will be marked as AFK in all servers that Asphalt is in
  • Optimised some commands

Bug Fixes

  • Fix an issue where YouTube playlists would be able to be played using the a!playnow command
  • Checks are now performed on a!serverinfo to ensure that only numerical characters have been entered
  • Asphalt will now reset the shuffle status of your music when music has been stopped
  • Fix an issue where moderation (e.g. ban, kick etc) could be performed on a closed moderation case
  • Fixed an error that happened when you specified no arguments on the a!weather command

v3.3 Changelog

New Features

  • Added a new AFK system. To use this, simply type a!afk reason. When you send a message, your AFK status will be removed. Also, when someone mentions you in a message, a message will be sent telling the user that you are AFK
  • Completely rewrote the playlist system to be better, for the new playlist related features in this update. See the bottom of this post for more information
  • Added a!createplaylist, which creates a new blank playlist for you to add your songs to
  • Added a!addsong playlist-id url/term to add a song to any existing playlist
  • Added a!removesong playlist-id track-id to remove a song from any existing playlist


  • Exceptions are now better reported, including some context about what lead to the error, meaning that we can more accurately re-produce errors and fix them quicker.
  • a!playlistinfo and a!saveplaylist now use the new playlist system

Bug Fixes

  • Fixed an issue where an incorrect amount of RAM in use would be displayed on a!stats (~20MB)
  • Fixed a spelling mistake on the message that you receive when you are support blocked ("suypport")

New Playlist System
Previously, the a!saveplaylist command would save a JSON file to our system and then a!loadplaylist would then read the JSON file, this was not adequate for the features that we had planned. So we have migrated to our database, which means that you can easily edit your playlists. Note: Asphalt's first boot in this new update may take a while as it migrates all of the old playlist files to the database, during which time Asphalt may become unresponsive.

If you attempt to edit your playlist and it says that you do not have permission, please contact support with the playlist ID and we will change the owner ID for you (for users who we cannot find, it defaults to Asphalt's ID to prevent null entries in the database)

v3.2.2 Changelog

New Features

  • You can now attach and receive images directly through discord when using the support system (previously you would have had to use an image URL)
  • Added a!enable persistence, more information below.
  • Added a new update announcement system in our support discord here


  • Updated dependencies
  • Temporarily disabled the ability to disable custom commands (using a!disablecommand )

Bug Fixes
There were no found bugs to be fixed in this release.

Role Persistence
Role Persistence is a new feature in Asphalt, which stores a list of role IDs and the user ID of the person who they were assigned to. Then, if a member leaves and re-joins your server, it will automatically reassign the roles back to them (useful if you have a "Muted" role and do not want people to be able to bypass it).

v3.2.1 Changelog

New Features

  • There is now a 400ms audio buffer which means that your music should now play fine, even if the server encounters a slight network "hiccup"


  • Wrote a donator caching system to reduce the time it takes for commands to be executed
  • In order to accommodate more playlists, all playlist codes generated from this version onwards will consist of 8 numbers
  • Optimised all steam commands
  • Updated dependencies

Bug Fixes

  • Fixed a grammatical mistake on a!whosplaying
  • Fixed an issue where colour would not properly show when you look for information about a twitch channel using a!twitchstats that does not exist
  • a!stats now reports accurate RAM and CPU usage