PhantomBot v2.3.7 Release Notes



PhantomBot v2.3.7 Release Notes:

In this version of PhantomBot, we address many issues that were introduced in our previous build, v2.3.6.1. We hope you enjoy this release, and as always please remember to report bugs on our brand new community forum! You can learn about this forum migration by clicking here.

As a reminder, PhantomBot is free and will stay free. We strongly believe in open source principles and providing a service to the community. However, we do accept donations to help out with the costs of providing servers and other infrastructure. Also be sure to follow us on Twitter, signing up to to our newsletter, as well as joining our Discord server for more news and updates regarding PhantomBot!


  • PhantomBot will exit if HTTPS is requested in botlogin.txt but the keystore is not found.
  • Added &marquee as option for addons API endpoint.
  • This will attempt to provide the text in a marquee with a default width of 420 (set to 430 in your browser capture software) and a height of 25 (set to 35 in your browser capture software). Note that the input string will be truncated to 40 characters.
  • You may override the width with &marquee&width=value. For example, &marquee&width=500 (set to 510 in your browser capture software - always add 10).
  • You may override the cutoff of the input string with &marquee&cutoff=value. For example, &marquee&cutoff=60.
  • You may combine &cutoff and &width. For example &marquee&width=500&cutoff=60.
  • Allow JSONArray at top level in customapijson
  • Added a new botlogin option to remove the message limiter, you can use usemessagequeue=false in your botlogin to remove it. Note the bot will still limit to 19 messages in 30 seconds there just won’t be a delay between messages with this option.
  • Added a new blacklist system which has more options and custom timeouts and messages for each blacklist.
  • Custom command tag customapijson will support an array as the top level object now.
  • Testing H2 Database - We do not recommend switching to it as it might not be stable. However, we do welcome people testing it and bug reports.
  • Rewards for retweets. !twitter set reward for options. This feature may be enabled/disabled, announcements may be enabled/disabled, points assigned, and a period of time may be configured that must elapse between retweets by users to prevent point farming. Users must indicate what their Twitter ID (username) is via !twitter register and may unregister via !twitter unregister.


  • YouTube player Playlist loader will use the local cache before hitting YT API. This results in less traffic to the YouTube player API and should slightly improve load performance as well.
  • Moderation for caps should now be 10x more accurate when there are emotes in the message. Also, it should be faster when it has to send multiple timeouts in a short amount of time.
  • Once users leave the channel their display names will now be removed from the cache; this change will help with memory usage for larger channel.
  • Cleaned up HTTPS and HTTP server classes.
  • More error catching in customapijson tag.
  • Improved detection and handling of errors from the various socket related services.
  • Twitch API v3 support removed, Twitch API v5 support added.
  • Removed legacy HTTP server. Newer style server runs on baseport and baseport + 5. There are notices in the console, YouTube Player, and Control Panel to let people know to consider using baseport now as the other port will be removed in the next release.


  • !editquote was destroying quotes due to bug in JSON handling.
  • YouTube player Playlist loads check for errors from YT API look-up and gracefully continue to load the list. Note that PhantomBot will not update the playlist if there is a failure, even if the failure is that the video is private. A video could become private or public at any time. The caster has the option, based on the error logs, to go and clean out that particular song if they want from the playlist.
  • YouTube player Playlist loader was loading the same playlist twice, not causing any noticeable issues, but, hitting the YT API needlessly.
  • Fixed the Discord embed tag not working with commas in the message.
  • YouTube player did not support SSL mode.
  • Fixed the YouTube player spam skipping songs when you clicked the next song button twice in a second.
  • Improved performance in HTTPS server as well as the java_websocket server. This also seems to have resolved an issue that was reported with the java_websocket server experiencing a thread related error.
  • Fixed global toggle for the moderation timeout message not outputting the correct message based on the toggle.
  • One second cooldown on skip song button and skipsong command for YT Player. This looks to fix the issue with several skipsong actions in a row causing an infinite loop and to still allow the YTP to be able to auto-skip songs when needed.
  • Fixed the chat moderation timeout message not working when changing settings from the panel.
  • YTP volume +/- was accidentally removed during a merge. Implemented again.
  • If the YTP Client wasn’t launched and the YTP Playlist page was accessed, this could trigger a message in chat.
  • Optimized the top command by 10x.
  • HTTP server security issue.
  • !shoutout language entry was not working on mobile devices. Removed the bang (!) from after the URL.
  • Fixed follow spam that could happen at times.


  • Examples from the flot library used by the Control Panel.
  • Legacy web socket event handler.
  • Legacy web server (see Changed).

Download PhantomBot v2.3.7

Displaying Current Song Title