AscensionChat is a Discord integrated chat bot for Project Ascension that allows users to easily communicate between Discord and Ascension WoW.
Note
AscensionChat does NOT support WoW Classic or Retail servers.
Currently supported versions are:
- Vanilla
- The Burning Crusade
- Wrath of the Lich King
- Cataclysm (4.3.4 build 15595)
- Mists of Pandaria (5.4.8 build 18414)
- Clientless: Does not need the WoW Client to be open to run
- Seamless Chat Integration: Integrates channels between WoW and Discord
- Guild chat, Officer chat, Local chat, Emotes, Custom Channels (Local chat, Emotes, and Custom Channels are disabled by default)
- In-game links (items, spells, etc.) are displayed as links to the Ascension Database (db.ascension.gg)
- Customisable message format
- Smart Tagging:
- Tag players on Discord from WoW using
@and_part_or_all_of_their_name
- Tag
@here
,@everyone
, and"@Even Roles With Spaces"
(include quotes around them)
- Tag players on Discord from WoW using
- Custom Commands:
- Check who is online in your guild with
?who
(also displays level and current area) - Invite a player to your guild with
?ginvite
(character bot uses must have Guild Invite perms) - Kick a player from your guild with
?gkick
(character bot uses bot must have Guild Kick perms) - Query other players in the world
- Check who is online in your guild with
- Highly Portable:
- Runs as a Java program and works on Windows, Mac, and Linux
The bot uses Discord's API to log into your Discord server. It then uses supplied information to log into Ascension as a WoW character. Once it logs into WoW and sees the configured channels, it relays messages to your Discord and WoW channels respectively.
Note
Do not use this bot on an account with existing characters!
- Even though this bot does not do anything malicious, some servers may not like a bot connecting, and GMs may ban the account! Make a new account just for the bot. YOU HAVE BEEN WARNED!
(Click) Guild Chat
The bot will send the GMOTD when it first starts (if gmotd enabled).It will also inform you if you are trying to use a command in the wrong channel (?gkick/?ginvite).
(Click) Sending Officer Commands
The message from these commands (eg, player has been kicked) will go to guildchat-relay channel. (See picture above)(Click) Hyperlinks have been fixed!
You can now click items/achievements that players link, which will send you straight to the db.ascension.gg information for it-
Create a Discord Bot on your Discord account:
- Go to https://discordapp.com/developers/applications/
- Sign into your Discord account if necessary, and click
Create an application
- Change the application name to something meaningful like "WoW Chat"
- On the left, click the
Bot
tab - Add a Bot
- Disable the
Public Bot
option
Important
2. Enable PRESENCE INTENT
, SERVER MEMBERS INTENT
and MESSAGE CONTENT INTENT
under Privileged Gateway Intents
.
Without these, your bot will not work!
- Invite your bot to Discord:
- Open a new browser tab/window and paste: https://discordapp.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&scope=bot (you could do this in notepad if you want)
- Don't press enter yet!
- In a different tab, go back to the
OAuth2
page of your new bot/application - Copy the
Client ID
- Replace
YOUR_CLIENT_ID
in the URL above with theClient ID
you just copied - Assign the bot the necessary roles/permissions in your Discord Server for it to view/enter your desired channels
- Open a new browser tab/window and paste: https://discordapp.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&scope=bot (you could do this in notepad if you want)
- Discord section:
token
: Enter your bot'sTOKEN
from theBot
tab of the Discord Developer Portal. This is what AscensionChat will use to login to Discord.- (Can't see
Copy
? ClickReset Token
thenCopy
) enable_dot_commands
: If set to1
, it will not format outgoing messages starting with.
, enabling you to send things like.s in
to the server directly. If set to0
, it will format these messages like regular messages.dot_commands_whitelist
: If empty, it will allow or disallow dot commands based on theenable_dot_commands
setting above. If any command is listed here, the bot will ONLY allow those specific commands to be sent in-game.enable_invite_command
: If set to1
, it will allow the use of?invite charname
anywhere?who
is allowed. If set to0
, it disables the command.banned_invite_list
: A list of character names that cannot be used with?invite
enable_commands_channels
: A list of channels for which to allow commands. If not specified or empty, the bot will allow commands from all channels.
- WoW section:
platform
: Leave asMac
unless your target server has Warden (anticheat) disabled AND it is blocking/has disabled Mac logins. In this case, putWindows
.- NOTE: For Ascension, I cannot get past character selection if
Mac
is set on MacOS. Havingplatform=Windows
seems to work without issue.
- NOTE: For Ascension, I cannot get past character selection if
locale
: Optionally specify a locale if you want to join locale-specific global channels. enUS is the default locale.enable_server_motd
: Set to0
to ignore sending the server's MotD. Set to1
to send the server's MotD as a SYSTEM message.account
: ReplaceREPLACE-ME
with the bot's Ascension account name.password
: ReplaceREPLACE-ME
with the bot's WoW Ascension password.character
: ReplaceREPLACE-ME
with the bot's character name, as it is shown in the character list.
- Guild section:
- This section sets up guild notifications on Discord.
- For each notification—
online
,offline
,joined
,left
,motd
,achievement
—specify:enabled
:0
to not display in Discord,1
to display in Discordformat
: How should the message be displayed?channel
: Enter theChannel name
ORID
of where you want the message displayed, instead of the defaultguildchat-relay
channel.
- Chat section:
- This section sets up the channel relays between Discord and Ascension. You can have an unlimited number of channel relays.
direction
: How do you want to relay each channel? Put:wow_to_discord
,discord_to_wow
, orboth
.- wow section:
- In
type
, put one of:Say
,Guild
,Officer
,Emote
,Yell
,System
,Whisper
,Channel
. This is the type of chat the Bot will read for this section.- If you put
type=Channel
, you must also provide achannel=yourChannelName
value.
- If you put
- In
format
, put how you want to display the message. Supported replaceable values are%time
,%user
,%message
, and%channel
if the abovetype
isChannel
. filters
: See filters section. If a channel configuration has this section, it will override the global filters and use these instead for this channel.- If this is in the
wow
section, it will filterDiscord->WoW
messages.
- If this is in the
- Optionally in
id
, specify thechannel ID
if your server has a non-standard global channel.
- In
- Discord section:
channel
: The Discord channel name OR ID where to display the message. It is advised to use the channel ID here instead of the name, so the bot does not stop working when the channel name is changed.- To see channels' IDs, you must enable Developer mode in Discord under User Settings -> Appearance -> Advanced.
format
: Same options as in the wow section above.filters
: See filters section. If a channel configuration has this section, it will override the global filters and use these instead for this channel.- If this is in the
discord
section, it will filterWoW->Discord
messages.
- If this is in the
- Filters section:
- This section specifies filters for chat messages to be ignored by the bot. It works for both directions: Discord to WoW and WoW to Discord. It can be overridden in each specific channel configuration as stated above.
enabled
:0
to globally disable all filters,1
to enable them.patterns
: List of Java Regex match patterns. If the incoming message matches any one of the patterns and filters are enabled, it will be ignored.- When ignored, the message will not be relayed; however, it will be logged into the bot's command line output prepended with the word FILTERED.
-
Download and unzip the latest zip file from the GitHub releases
-
Make sure you have a Java Runtime Environment (JRE) 1.8 or higher installed on your system!
(click) Check the version of your Java installation with:
java -version
-
- Windows: Configure
ascensionchat.conf
and runrun.bat
- Mac/Linux: Configure
ascensionchat.conf
and runrun.sh
Note
Before updating ascensionchat.conf
, save a copy of your current ascensionchat.conf
file. This will allow you to easily transfer your login details and any custom formatting to the new config, making the update process smoother.
Download the latest ascensionchat.jar
and replace the one in your current ascensionchat
folder.
- Alternatively, download the latest
ascensionchat.zip
file; but be careful not to replace yourascensionchat.conf
!
- WoWChat/AscensionChat is written in Scala and compiles to a Java executable using Maven.
- It requires Java JDK 21, Maven and Scala 2.12.20 for Ascensionchat 3.3.0+ or Scala 2.12.19 for AscensionChat <-3.2.2
- Run
mvn clean package
which will produce a file in the/target
folder calledascensionchat-*.zip
- Run
unzip ascensionchat-*.zip
, edit the configuration file, and executerun.bat
for Windows orrun.sh
for Linux/MacOS. (Edit the name of the config file inrun.*
if you supply your own config with a different name)- If no config file is supplied, the bot will try to use
ascensionchat.conf
- If no config file is supplied, the bot will try to use
This project has been manually compiled and run on the following Operating Systems (bare-metal, no VM's/Containers unless otherwise stated)
-
🍎 MacOS
- MacOS Ventura 13.7 (13" Early '15 MacBook Air, Intel, OpenCore Legacy Patcher)
- SDKMAN! one-line install from their site (MacOS/Linux only)
- Scala (2.12.20) installed with SDKMAN!
-
🐧 Linux
-
🏁 Windows
- Windows 10 Pro (22H2, 19045.4529)
- You will want to use
Windows Terminal
(which you might not have by default), because the defaultWindows Console Host
does not support the ANSI Escape Sequences used in this project. This results in the Escape Codes showing in the terminal and no colour, making terminal output harder to read. Fortunately, this is pretty straightforward to setup. See HERE for steps to setup/install.
- You will want to use
- Windows 11 Pro (23H2, 22631.3737)
- WSL - Ubuntu 22.04 (on Win11-Pro)
- Windows 10 Pro (22H2, 19045.4529)
-
ARM64
- Pixel 7 Pro (Android 14, Standard Pixel OS, 5.10.198-android13-4)
- Ubuntu noble 24.04 aarch64 (Virtualised Cortex-A57*4 on Proxmox 8.2.7, Linux 6.8.0-45-generic)
Thank you to the following people/projects for helping make this project possible