Horizon is a multipurpose discord bot that was first created in Feb 2019 to serve the needs of FortniteAsia discord server.
- In-built google translation for international players to converse in their native language
- Fully developed RPG game system
- Classes (developed based on Fortnite PvE characters)
- Dungeons (mob hunting, sending character on a mission)
- Leaderboards
- Game kits (daily, weekly, supporter)
- Profiles
- Games (coin flip, lottery, slots, dice, rock paper scissors)
- Shop (in-game items which are able to enhance users' stats)
- Events (lottery events which users are able to purchase tickets)
- Passive income (users are able to earn currency based on amount of time they spend in the server's voice channel)
- Teams (users are able to create solo/duo/squad teams for scrims)
- Moderation utilities to manage the server (purge, ban, mute, announcements etc.)
- Discord reaction listener (tracks for user's reactions to add/remove roles)
- FortniteAPI rank system (award users server roles based on their Fortnite K/D)
- Fortnite scrims system (users are able to create/participate in scrims)
- Tournament (users are able to place bets to determine the winner in a Fortnite 1v1 showdown)
- Chat logging functionality (channels are created to log user actions/messages)
-
General
.time- Displays local time of Horizon..setnick- Change your nickname displayed in server once..userinfo <user>-_Displays information of User..serverinfo- Displays information of server..giveaway <role>- Starts a giveaway for Discord role..rollgiveaway <messageID> <#ofWinners>- Manually rolls the winner of giveaway.
-
Moderation (Users must have @Server Moderator role to access these commands.)
.ban <user> <reason>- Permanently ban an user..forceban <userID> <reason>- Permanently ban an user outside of server..unban <userID>- Unban an user in server..mute <user> <reason> <time>- Mutes an user for specified period of time..unmute <user> <reason>- Unmutes an user..userinfo <user>- Displays information of an user..grant <user>- Grant access to an user to change nickname again..announce <channel> <message>- Announce a message in specified text channel..emannounce <channel> <message>- Announce an embedded message in specified text channel..purge <amount>- Purge messages in text channel. If amount is not specified, it will be defaulted as 100 messages..lock <channel>- Locks a specified text channel..unlock <channel>- Unlocks a specified text channel.
-
Team
.create solo- Creates a solo team..create duo <teamName> <teamMate>- Creates a duo team..create squad <teamName> <teamMate#1> <teamMate#2> <teamMate#3>- Creates a squad team..disband <mode>- Disbands a team accordingly to the mode selected. (Captains only).leave <mode>- Leave a team accordingly to the mode selected. (Members only)
-
Leaderboard
.submit <mode> <kills> <placement> <gamecode>- Submits the result of the match. Screenshot must be attached for verification purposes..invite <mode> <teamMate>- Invites a user to the team..stats <mode>- Display user's statistics accordingly to the mode selected..leaderboard <mode>- Display server's overall ranking according to the mode selected. @Points Manager is required to access this command.
Awarding of Point(s) - To accept/reject the submissions, moderators must have @Points Manager role in order to react ✅ or ❌ on the submission accordingly.
-
Scrims (Users must have @Host to access these scrim commands.)
.start solo- Selects solo gamemode..start duo- Selects duo gamemode..start squad- Selects squad gamemode.
-
RPG Game
- Kits
.daily- Claims your daily currency kit.weekly- Claims your weekly currency kit.supporter- Claims your supporter currency kit.nitro- Claims your nitro currency kit
- Information
.top- Displays global leaderboard.profile- Displays information of your profile.inventory- Displays gun inventory.cooldown- Checks the status of currency kits'
- Shop
.shop- Displays item that are available for purchase.buy <ID> <amount>- Purchase an item from the shop
- Events
.lottery <amount>- Starts a lottery for the community that lasts for 3 minutes.participate <amount>- Purchase a ticket in Llama Pinata event.chances- Chance to win the Llama Pinata event
- Tournament
.bet <user>- Bets 1,000 currency on the desired player in the tournament
- Classes/Dungeons
.tree- Displays available classes.choose <jobName>- Selects a class for RPG.evolve- Advances to the next job in the class tree.dungeon <dungeonID>- Starts an adventure in dungeon.dungeons- Display available dungeons.status- Checks the status of adventure.hunt- Hunt monsters in the current dungeon
- Misc
.consume <potion>- Increases HP by consuming health/shield potion.equip <weaponID>- Equips a specific weapon.dump <weaponID>- Dumps a specific weapon.vote <user>- Upvotes an User.claim <type>- Opens a crate/gift using a key.transfer <user> <amount>- Transfers an amount to specified User
- Kits
Unfortunately, this discord bot is no longer maintained and developed. Any breaking changes/errors will not be fixed. Nonetheless, you're able to host Horizon locally by setting up the necessary configs in .env file.
| Requirements | Reference |
|---|---|
| Python | Installation |
| Google Sheets API | Documentation |
| MongoDB | Documentation |
| Discord Bot Token | Documentation |
| Fortnite API Key | Documentation |
| FFmpeg | Installation |
Clone the repo:
$ git clone https://github.com/jeraldlyh/Horizon
$ cd HorizonInstall dependencies:
$ pip3 install -r requirements.txt