Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
WildBeast is a wheels-attached Discord bot - meaning the heavy lifting is already done for you, making WildBeast easy to modify and extend to perfectly fit your use case.
Ready to get your hands dirty? Pick one of these guides to get started with WildBeast.
Looking to write your own commands, or other custom features? Look below for our advanced guides.
This documentation focusses on self-hosting and extending WildBeast. If you don't feel like hosting your own instance, we host a publicly available version of WildBeast known as which you can invite to your own server.
Write your own custom commands
Custom commands is an advanced feature and requires knowledge of programming.
Support for doing this will not be provided in addition to what is listed on these pages.
There are 3 types of commands, slash commands and 2 types of context menu commands. Documentation for each type is provided below.
Under the hood, WildBeast's command system is an extension of the system from .
For more info on this, please see the , and the instead.
Slash commands are the primary way to interact with bots
A finished command looks like this:
There are a few things to note with regard to how commands are constructed:
All commands are new classes that extend a base class, in this example the command is a plain slash command.
The resulting command is exported as the default export.
The constructor with a super call is used to set properties of the class instead of directly assigning them, this avoids incompatibilities with Detritus.
When restarting WildBeast, your newly created command will automatically be registered as a global command, and will be available within a few hours.
Rather want a guild-based command instead of a global one? Add guild IDs to the constructor of your command:
There are more things you can do with commands, like adding options, creating subcommands, and adding buttons and select menus.
Reminder: Check the for more advanced settings.
Instructions to run WildBeast on Linux
For safety reasons, please don't run WildBeast with the root
account.
We need a few prerequisites:
You need sudo
or doas
privileges, or access to the root
account
A text editor. We're going to use nano
, but you can use anything you'd like.
Run the following code in your terminal:
Install Node.js with the following command:
Postgres is available to install by default on Ubuntu, just run the following code in your terminal:
We need to do some extra steps to prepare Postgres for use:
Create a new user for WildBeast to use:
The new user does not need to be a superuser, and can be called whatever you want.
Finally, create a new database:
(We used wildbeast
here as the database user, change it if you used something else in the previous step)
Clone the code and install the required modules:
Open the example configuration file in nano
and enter your details:
When you're done, save the file as .env
Before we can start, we need to initialize the database. Run the following code:
Now for the fun part, testing to see if it worked!
Start WildBeast for the first time with the following command:
You should see something similar to the following if everything went well
19:11:41 [info] Gateway: Client ready
19:11:41 [info] Gateway - shard 0: Gateway ready
Test if your bot works by running the /ping
command
Good to know: For the purpose of this guide, we'll use .
If you don't know how to create a new user on Linux, please see
A computer running any
If you want to run WildBeast 24/7, you should get a
(Not a fan of curl <url> | bash -
? You can do this too.)
Don't have your bot in your server yet? Check
We're continuing off the example from the page
Using systemd, run WildBeast as a service for automatic (re)starting
Start creating a new service:
Copy and paste the following example:
Pay attention to the REPLACE THIS
, as you might've guessed you need to replace these values.
WorkingDirectory
- The folder where you saved WildBeast
For example: /home/wildbeast/WildBeast
User
- The user that's going to run WildBeast
To undo:
Do NOT use root
, for safety.
Add commands to context menus shown on right-click for users and messages
There are 2 types of context menu actions, depending on what the end user is opening the context menu on.
Need to run WildBeast 24/7? Get a cheap VPS.
Need to run WildBeast 24/7? Get a cheap VPS. We recommend any of the below.
Cheap Finland and Germany-based VPSes.
The gold standard. Locations available worldwide.
Incredibly cheap but powerful VPSes, owned by online.net, based in France and The Netherlands.
A hosting solution made by Discord bot developers, aimed at a lower price range, starting from $2.49.
Cheap VPSes, used by many people. France and Canadian locations available.
US-based VPS provider, locations available worldwide.
US-based VPS provider, locations available worldwide.
Jobs are a simple way to run code asynchronously on a set schedule, or whenever you need to.
A job either extends the Job
class, or the ScheduledJob
class, a scheduled job will run on a set time schedule and a normal job runs when called
Jobs are indexed and required based on their name either in context of the client, or in context of the cluster, a cluster job is called only once and a client job is called for each client that the cluster holds.
Cluster jobs should be named job-name.cluster.ts
Client jobs should be named job-name.client.ts
Scheduled jobs work like this:
While regular jobs work like this:
This page will describe, in detail, how to obtain a token for your bot.
Click "New Application" on the top right of the page
Think of a name for your bot, and click "Create"
Navigate to the "Bot" tab
Click "Add Bot" on the left of the page
Click "Yes, do it!"
Optionally, set an avatar and change the username, and click "Save".
Select the "Copy" button to copy your bot's token.
Navigate to your (you might need to login for this)
This page will show you how to invite your bot to your servers.
Scroll down to the OAuth2 URL Generator and check the "applications.commands" and "bot" scopes
Copy the link it generates and open it in a new tab, choosing what server you want to add it to, and hit "Authorize"
Don’t see the server you want to add the bot to? You need to have the ”Manage Server” permission in the server for it to show up.
Don’t have a bot account yet? Check out for instructions how to make one.
Once you have created a bot account, navigate to the OAuth2 page of your application