• If you need help or want to discuss things, you now can also join us on our Discord Server!
SinusBot Beta

SinusBot Beta 0.14.3-0e747fd

No permission to download
Hey all,

it's time for another update and time to move past the previous 1337 version ;)
This one doesn't bring a lot of new major features, but is packed with many many little fixes and enhancements a lot of people wanted to see and that will hopefully make the bot even more flexible.

Some of the newer additions to the scripting engine are not yet properly documented in the scripting docs, but I hope that those get updated soon as well.

As always: thanks to everyone who tested the recent insider versions and helped getting rid of quite a couple of bugs!

Have fun!


  • feat(vm): add getChannelsByName(name) to return an array of channels matching the given name
  • feat(vm): add exec module (requires permission)
  • feat(vm): add fs module (requires permission)
  • feat(vm): add sfs (simple fs) module, only grant limited access to fs
  • feat(vm): add crypto module with pbkdf2 and some nacl functions
  • feat(vm): add support for new folder structures for scripts (e.g. ./scripts/%scriptname%/%scriptname%.js)
  • feat(vm): add support for local sqlite databases
  • feat: support Discord roles
  • feat: add option for multifile script archives in store
  • feat: new (beta) tool/mode to stream audio from your PC directly into the bot
  • feat: user registration can now be enabled/disabled via !registration enable / !registration disable
  • enh(vm): add http module with simpleRequest() similar to sinusbot.http
  • enh(vm): add support for websocket connections as (client) via net module
  • enh: add shortcut to trigger script events from the web interface
  • feat: support live streams (via ytdl)
  • fix: display temporary track info again in the webinterface (radio stations etc.)
  • fix: always allow GIF when using the graphics module
  • fix: return correct connection status for Discord
  • fix: improve event handling in the web interface
  • fix: improve chat command handling on Discord
  • fix: honor new UserAgent setting from config.ini for streaming, downloads and scripting engine
  • fix: make !next not trigger twice when streaming
  • fix: when switching channels from the settings page, honor the new password, if given
  • fix: make sure cache directories are created correctly
  • fix: make setAudioFilter() permanent
  • fix: remove clients from old channel on move (discord)
  • fix: improve category handling for Discord
  • fix: improve channel handling for Discord
  • fix(vm): actually call the callback on successful db.connect()
  • fix: command prefix can now be changed with e.g. "!prefix ." - this changes the prefix to ".", so that further commands will need to be called like ".play"
  • enh(vm): add queryParams() map to script events for easier handling
Hey all,

it's time for another release! This one is bigger than the previous ones and brings a lot of optimizations, bugfixes and features.

I'd like to especially thank @mxschmitt and @irgendwer for helping me getting the new bugtracker full of reports as well as @Diesmon, @Filtik and @kapabac for their time testing the latest insider releases. Also, thanks again to everyone who is participating in our community by reporting bugs, filing feature requests, helping out others with their issues setting the bot up, donating or just throwing a "hi" into our chatroom - without your support, this project wouldn't be what it is today!

The next release will probably focus on improvements for Discord.

Michael aka flyth


  • feat(vm): add new interface to manage SinusBot accounts
  • feat(vm): add access to channel permissions (to modify required join power and such)
  • feat(vm): add access to servergroup permissions
  • feat(vm): add access to channelgroup permissions
  • enh: improve handling of ytdl requests; add option to allow chunked downloads
  • enh: improve consistency for terms 'bot' / 'instance' / 'client' (instance settings page, mainly)
  • enh: improve script event performance
  • enh: improve handling of authentication failure at Discord; auth-token should be removed and requested again in the frontend
  • enh: increased hard user limit from 40 to 1000
  • enh: add !qytdl command
  • enh(vm): add source() as function for playlists; returns the source-URL if the playlist has been imported via ytdl
  • enh(vm): add maxFamilyClients
  • fix: ignore IP headers when the request is not proxied (was introduced in 0.10.x, thanks EchtkPvL)
  • fix: improve handling of albumart via ytdl
  • fix: prevent callbacks not getting recognized properly; this led to unexpected behavior and timeouts when doing many chat/servergroup/etc actions within a short amount of time
  • fix: prevent layout glitch when logged out and not having a theme loaded
  • fix: improve command responses
  • fix: speech recognition; change audio.setAudioReturnChannel() to accept an int bitmask instead of bool - 0x02 is used for speech recognition
  • fix: when using yt with the queue, make sure the track gets queued also if it's "just" a duplicate
Hello all,

this is the release that some of you probably have been waiting for for a long time. It took more time than I thought to get TS 3.1.5+ compatibility in (that was even a bigger one than 3.1.0+), but this version should run pretty stable with it.

However: as the new TS version comes with a couple more dependencies, there are additional steps required to use the bot with it - an autoupdate is sadly not possible because of those. So, please follow these steps carefully and let us know if you run into problems, as I'm sure other people may face the same.
  • backup! - if done correctly, you will most likely not lose settings or uploaded/downloaded music :)
  • this version doesn't support 3.0.x Clients anymore!
  • make sure you've got all dependencies for the older SinusBot versions installed as they are still needed
  • remove the current TS client from the bot installation
  • download and unpack the new client version as usual (make sure it's 3.1.8+)
  • create a plugins folder inside the client directory (that one doesn't exist out of the box anymore)
  • copy the plugin (libsoundbot_plugin.so) to that directory as usual
  • for Ubuntu/Debian, run the following to install additional dependencies: apt-get install libnss3 libegl1-mesa x11-xkb-utils libasound2
  • remove the file libqxcb-glx-integration.so from the clients' xcbglintegrations directory
  • remove the data/ts3 directory: rm -rf ./data/ts3
  • start the bot as usual
  • enjoy!
A new wiki entry will be created shortly and also the installer script will be changed to use the new version and install its dependencies soon. So if you're not able to follow the steps above, please wait for that.

All other changes can be found in the changelog as usual.
Thanks to all the testers who spent hours and hours helping me with this release and sent valuable feedback!

I hope you'll have fun with the new release
This release features many changes / enhancements for the scripting engine and finally also comes with a new auto-update mechanism, so that upcoming releases can be downloaded more bandwidth/server friendly. Once such an update is available, you will be notified about it on the web interface.

However, this release sadly still doesn't support the new 3.1 TS client. I know that many of you are waiting for that update, but it needs a little more polishing (I'd say that about 75-80% of the work is done by now).

Thanks again to all who helped out by testing / supporting / motivating me :) Without you, this project would probably have died a long time ago!


feat(vm): added udp to allowed protocols
enh: hopefully optimize compatibility with streaming servers
fix(discord): list channels correctly again
feat(vm): added clientDeaf / clientUndeaf

feat(vm): add delete() to channel objects
feat(vm): new clientIPAddress event added
enh: store playlist source with the playlist
enh(vm): add experimental graphics module for banner generation
enh(vm): make connection information work more reliably (idletime, ip etc.)
enh(vm): add backend.createChannel() and channel.update()
feat(vm): add initial channelgroup support
enh: add new calls to get channels / clients to the http api
enh(vm): add async support for database calls
fix(vm): make unsetGlobal() work properly
fix(vm): increase consistency in function names (especially .ID() => .id()); flag old methods as deprecated
fix(ts3): interpret channel moves correctly
fix(ts3): correctly register channel parents
fix: make avatars work properly on windows
fix: make servergroups work on first connect of clients for ts3, even if the group is not yet known
fix: improve getChannels() of the old api
fix: make the clientNick event actually trigger
fix: make clientOnlineTime return something useful
fix: rename event net#end to net#close to match the docs
fix: add moveChannel(parent, order) again
fix: remove cpu-usage increase that came with
fix: documentation...
Happy New Year!

I hope you all had some time to relax in the past couple of days before work/school gets you again. I certainly have and finally got some time to work on a couple of things that you hopefully will enjoy :)

This release focuses on scripting and brings some new functionality to it - you can for example connect to a mysql database or to other servers via tcp from scripts. It's still not feature-complete but should get the most basic things done. Read more about it here. Should you have any questions, feel free to ask on the forums or in our chat.

Apart from that, some older and rare issues have been fixed.

Thanks again to all the testers and mods who helped at getting the new stuff stable enough for you guys!

Have fun!

  • feat(vm): add "net" module for tcp connections
  • feat(vm): add "db" module to access sqlite / mysql databases
  • feat(vm): add semver to scripts; specify required versions as "engine" in manifests to use
  • feat(vm): add privileges to scripts in config.ini
  • enh: add "edit file" privilege and bind to tag editor
  • enh: add "volume" parameter to tts
  • enh: add more fields to tag editor (genre / track# for now)
  • enh(vm): add duration/genre/trackNumber to track object
  • fix: for ios clients, make the url bbcode work so that urls will be recognized
  • fix: make MaxDownloadSize work again
  • fix: don't limit avatar filesizes too much (let TS handle it)
  • fix: make drag'n'drop move work again
This is again a version with massive changes under the hood, major changes being:
  • introducing the new Scripting API - this one should be much easier to handle than the old one - I'm looking forward to see what you'll use it for!
  • finally introducing support for Discord (however, this may still be a bit rough around the edges - handle with care) - I hope to get this more stable in the next release, feel free to report bugs! Full documentation on how to set this up will follow soon.
  • the "store" feature to directly download / start scripts / locales / themes from within the interface
  • speed improvements inside the bot as well as on the frontend
I plan to release interim versions with Discord fixes more often than usually, so keep an eye on the forums if you want to help out.

Thanks again to all the testers who have helped keeping things in order as well as keeping me motivated!

Have fun and "Happy Halloween"!
-- flyth

PS: To upgrade,just copy over the new files as usual. There's no need to lose any data (although the Discord support might require a fresh installation).
  • enh: the almost forgotten brother has returned: the windows version is now on par with the linux version
  • enh(win): instead of a console window, show a tray icon - doubleclick opens the interface, right click lets you shut down the bot
  • enh(win): add youtube-dl autodetection so it works out-of-the-box when in the same directory as the bot
  • enh(win): the architecture of the windows version has significantly changed and should work much smoother now for most people
  • fix: remove some possible deadlocks
  • feat: integrate minimal interface to directly download scripts/themes/locales
  • enh: make own themes possible
  • enh: make default theme configurable
  • enh: make themes hideable
  • enh: only load .json for locales, .js for scripts and .css for themes
  • enh: optimize crash detection
This release contains mainly bugfixes and a few new scripting commands.
  • feat(vm): getActualNick() will return the nickname of the bot as it is on the server (function may get renamed later on)
  • feat(vm): setAway(away bool, message string) - guess what it does...; when away, it doesn't transmit audio - there's nothing I can do about that
  • feat: speech recognition should be quite stable now and only use resources when necessary; usable with licensed instances, a howto will follow
  • feat(vm): saveConfig() will now save changed config values (handle with care)
  • feat(vm): add qyt() / queueYT()
  • enh: add application/vnd.apple.mpegurl as valid playlist mimeType
  • fix: decrease ram/cpu usage for speech recognition
  • fix: update webdav implementation
  • fix: don't leak some audio converters
  • fix: make -pwreset work again
  • fix(vm): make type number actually numeric
  • fix(vm): make channels show up again
This release fixes many smaller bugs and adds some new features to the script settings page.
  • enh: optimize buffer usage in new audio handling
  • enh(vm): add conditions to script settings
  • enh(vm): add yt(), ytdl()
  • enh: clarify some error messages
  • fix: remove a bug in the playlist interface that could cause a crash
  • fix: make channelUpdate honor the description field
  • fix: remove some bugs from the client library that could cause crashes
  • fix: make trackInfo trigger regardless of announce option
  • fix: always use lowercase on username when logging in
  • enh(vm): added new variable types: strings, tracks, array
  • enh: enlarge some buffers for JSON handling for specific calls
This is another beta that might be a little bit more experimental, so please - as usual - only upgrade if you feel adventurous. It adds some features to the scripting engine that have been requested, audio filters, better error handling and more.
  • feat: add volume and sfx option to tag editor; sfx will always be played "on top" like "sound" vs "music" in the ts3soundboard plugin
  • enh: upgrade to ffmpeg-3.0
  • enh: support for audio filters (compressors and such); this should solve problems for those who have had problems with different volumes in different tracks before
  • enh: less RAM, less CPU
  • enh: optimize dev-console
  • enh: handle tsgroup -1 as guest group
  • enh(ts): add client or invoker object to most callbacks to streamline scripting API, including dbid for ts backend
  • enh(ts): implement ping/pong between client and bot and restart if client stalls
  • enh(ts): make channelUpdate actually trigger
  • enh(vm): add getUser(userid); returns a BOT user
  • enh(vm): enhance error handling
  • enh(vm/ts): add addClientToServerGroup(dbid, servergroupid) / removeClientFromServerGroup(dbid, servergroupid)
  • enh(vm): add getLogLevel / setLogLevel / getInstanceLogLevel / setInstanceLogLevel
  • fix: make the interface work again in IE
  • fix: remove a race condition
  • fix: add support for charsets in playlists
  • fix: remove a memleak
  • fix: disable reconnection tries in some cases (ytdl, tts...)
  • fix: correctly handle new icy stream information formatting
  • fix: make parent in createChannel / updateChannel working when given as string
  • fix: add description to createChannel / updateChannel
  • fix: make scripts work when they've got no vars attribute
  • fix: remove basic auth which was set when not configured
If you use scripts that use the sinusbot.on('timer'...) event, you have to either migrate that to use setInterval() or add
EnableTimer = true
Don't forget to copy the new plugin over.

Happy testing!