Old School Bot is a Discord Bot based on Old School RuneScape
For more information on the bot: https://www.oldschool.gg/oldschoolbot
Old School Bot is not affiliated with or endorsed by Jagex. Play Old School RS for free at https://oldschool.runescape.com
Old School Bot uses oldschooljs
(also made by me), for most of the OSRS related features like: simulating killing monsters, simulating clues, fetching the hiscores, checking worlds, etc. It's completely open-source and free to use.
https://github.com/gc/oldschooljs
To report a bug, click here.
To suggest a new feature, click here
Anyone is free to create PR's with improvements and additions to Old School Bot.
Please lint your code with the projects' ESLint config.
Contributors are listed in this file, and given a Contributor role in the support server. If you have more questions, there are lots of helpful Contributors in the #developers
channel on the Discord server.
To run the bot, you need the following things first: Git, NodeJS v18+, Postgres, Python and a discord bot account.
- Head to Discord Developers and create an application.
- Once created, click into your Application.
- Copy and store the Application ID, you'll need this later on.
- Create a Bot on the Bot tab. Copy and store the token for your bot, you'll need this later on.
- Ensure your bot has
Privileged Gateway Intents > Server Members Intent
enabled. - Invite your bot to your server via this URL. Be sure to input your
Application ID
into the URL.https://discord.com/api/oauth2/authorize?client_id=<INSERT APPLICATION ID HERE>&permissions=2198754295617&scope=applications.commands%20bot
- Clone the repository:
git clone https://github.com/oldschoolgg/oldschoolbot.git
- Change into the new directory:
cd oldschoolbot
- Install the yarn dependency:
npm install --global yarn
- Make a config file from the example:
cp src/config.example.ts src/config.ts
- Edit this new
config.ts
file:- Input your bot token you retrieved earlier into
botToken
- Input your Application ID you retrieved earlier into
BotID
- Copy your Discord ID into both
OWNER_IDS
andADMIN_IDS
. You can get your Discord ID by opening Settings, selecting My Account, selecting the three dots next to your user name and selecting Copy ID. You may need to enable Developer Mode in Advanced Settings to be given this option. - Enter the Server ID where you want to Administer your bot from in
SupportServer
. You can get this by right clicking the logo of the server and selecting Copy ID. - Enter the Server ID into
DEV_SERVER_ID
- Input your bot token you retrieved earlier into
- Make a .env file copy from the example
cp .env.example .env
- Update this new
.env
file:- Input your username, password, and schema names into
DATABASE_URL
andROBOCHIMP_DATABASE_URL
using the formatpostgresql://USER:PASSWORD@HOST:PORT/DATABASE
- Input your Application ID you retrieved earlier into
CLIENT_ID
- Input your username, password, and schema names into
- Run
yarn
thenyarn install
- Run
npx prisma generate
to generate the Prisma client files and load the DSN from #6. - Run
npx prisma db push
to create the tables on the database referenced in .env - Run
npx prisma generate --schema=./prisma/robochimp.prisma
to generate the Prisma client files and load the DSN from #6 for therobochimp
database. - Run
npx prisma db push --schema=./prisma/robochimp.prisma
to create the tables on the database referenced in .env for therobochimp
database. - Run
yarn build
- then runyarn start
. In the future, you can type onlyyarn start
to start the bot.
If you have errors or issues, you can ask us for help in the #developer channel in the discord server.
In addition to being able your develop on your own server as we have done above, there is a shared dev server which can be joined here: https://discord.gg/Cup2gwUGwr
You can also ask Magna to invite your Bot with your invite link above if you so wish.
- [Ciaran]
- [Devin]
- [ms813]
- [Alexsuperfly]
- [Umdlye]
- [Kyra]
- [Wyatt]
- [coolbop32]
- [duracell33]
- [themrrobert]
- [Fishy]
- [Lilylicious]
- [Gidedin]
- [Andre]
- [TastyPumPum]
Self hosting is not supported.