• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
MQ2Discord

Release MQ2Discord (2 Viewers)

Just sharing. I've been having an issue sending messages and tells from discord. I made a new bot a few days ago, and found the following option in the Discord Developer Portal to default to OFF. Setting it to ON solved my issues.
1700564940097.png
 
Wrong forum
Getting MQ2discord error please fix them and /reload discord but i honestly dont know anything about mq2discord and where to fix it ?
 
I seem to have run in some overflow bug in MQ2Discord...if I trigger a "required file not found" by renamig the utils file from boxhud, I get this:
[CODE title="no MQ2Discord loaded"]>
> /plugin discord
[MQ2Discord] Created a default configuration. Edit this, then do /discord reload
[MQ2Discord] Warning: User id YourUserIdHere looks wrong
[MQ2Discord] Error: Channel id YourChannelForTellsHere in all looks wrong
[MQ2Discord] Error: Channel id YourCharacterChannelHere in character xxx looks wrong
[MQ2Discord] Error: Channel id YourGroupChannelHere in group YourGroup looks wrong
[MQ2Discord] Config not loaded due to errors, please fix them and /discord reload
Plugin 'MQ2Discord' loaded.
> /Lua run boxhud
Running Lua script 'boxhud' with PID 1
module 'utils.utils' not found:
no field package.preload['utils.utils']
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\boxhud\utils\utils\init.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\boxhud\utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\utils\utils\init.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\2.1.1697887905\luarocks\share\Lua\5.1\utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\2.1.1697887905\luarocks\share\Lua\5.1\utils\utils\init.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\luarocks\share\Lua\5.1\utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\luarocks\share\Lua\5.1\utils\utils\init.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Macros/entropy/Lua/utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\macros/entropy/Lua/utils\utils.Lua'
no file 'C:/Users/Utente/AppData/Local/VeryVanilla/MacroQuest/Release/Macros/entropy/Lua/utils\utils.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Macros\entropy\Lua\utils\utils.Lua'
no file '.\utils\utils.Lua'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\Lua\utils\utils.Lua'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\Lua\utils\utils\init.Lua'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\boxhud\utils\utils.dll'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\2.1.1697887905\luarocks\lib\Lua\5.1\utils\utils.dll'
no file '.\utils\utils.dll'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\utils\utils.dll'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\loadall.dll'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\Lua\boxhud\utils.dll'
no file 'C:\Users\Utente\AppData\Local\VeryVanilla\MacroQuest\Release\modules\2.1.1697887905\luarocks\lib\Lua\5.1\utils.dll'
no file '.\utils.dll'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\utils.dll'
no file 'C:\Program Files (x86)\Steam\steamapps\common\Everquest F2P\loadall.dll'
stack traceback:
[C]: in function 'require'
...Local\VeryVanilla\MacroQuest\Release\Lua\boxhud\init.Lua:46: in main chunk
Ending Lua script 'boxhud' with PID 1 and status 2
[/CODE]

If I now load up my MQ2Discord config...

[CODE title="with running config"]> /discord reload
[MQ2Discord] Ready
> /Lua run boxhud[/CODE]

Straight to desktop, no crashdump :(

My Discord config looks like this:

Code:
token: x.x
user_ids:
  - xxx
characters:
  xxx:
    - name: CharChannel (This field is ignored)
      id: xxx
      allowed:
        []
      blocked:
        []
      notify:
        []
      prefix: ""
      send_connected: false
      allow_commands: true
      show_command_response: 2000
servers:
  {}
classes:
  {}
groups:
  - name: YourGroup
    characters:
      - xxx
      - server_OtherCharInGroup
      - server_OneMore
    channels:
      - name: Deaths
        id: xxx
        allowed:
          - You have been slain by
        blocked:
          []
        notify:
          []
        prefix: "[${Me.Name}]"
        send_connected: false
        allow_commands: false
        show_command_response: 0
all:
  - name: xxx
    id: xxx
    allowed:
      - tells you
    blocked:
      - "|${Me.Pet.DisplayName}| tells you#*#"
    notify:
      []
    prefix: "[${EverQuest.Server}_${Me.Name}]"
    send_connected: false
    allow_commands: false
    show_command_response: 0
 
I am trying to repurpose the TellsChannel section of the "All" category for General chat, with out luck. Is this supported?


[CODE lang="yaml" title="Discord.Yaml"]all:
- name: TellsChannel
id: xxxxxxxxx
allowed:
- "#*#tells General:#*#"
blocked:
- "|${Me.Pet.DisplayName}| tells you#*#"
notify:
[]
prefix: "[${EverQuest.Server}_${Me.Name}]"
send_connected: true
allow_commands: false
show_command_response: 0[/CODE]
 
I am trying to repurpose the TellsChannel section of the "All" category for General chat, with out luck. Is this supported?


[CODE lang="yaml" title="Discord.Yaml"]all:
- name: TellsChannel
id: xxxxxxxxx
allowed:
- "#*#tells General:#*#"
blocked:
- "|${Me.Pet.DisplayName}| tells you#*#"
notify:
[]
prefix: "[${EverQuest.Server}_${Me.Name}]"
send_connected: true
allow_commands: false
show_command_response: 0[/CODE]

It was a Discord permissions issue, resynced channel permissions to category fixed it.
 
Not really sure what is causing the error here. I haven't changed that section of the file since I first made it and the problem has only started after the latest MQ patch. here is the error message and the section of the config causing the error. Any ideas on how to fix this?

1711893110191.png
1711893627452.png
 

Attachments

  • 1711893510197.png
    1711893510197.png
    27.3 KB · Views: 0
I'm sure this is a discord thing and not MQ2 thing but is there a way to stop the incessant spam of "Connected" by the bot every time I zone my toons?
 
I'm sure this is a discord thing and not MQ2 thing but is there a way to stop the incessant spam of "Connected" by the bot every time I zone my toons?
Is this not something already handled by the config yaml file?
 
Not really sure what is causing the error here. I haven't changed that section of the file since I first made it and the problem has only started after the latest MQ patch. here is the error message and the section of the config causing the error. Any ideas on how to fix this?

View attachment 59819
View attachment 59822

Notice line 27 for notify? []
You are missing this from your blocked section, its indicating that blocked is empty
So make blocked and notify sections look the same
 
Most of the configs in thread are old so I am sharing my config

This is what my personal server looks like
You can mute channels or do whatever to get notifications
1712427754915.png

If you dont have the Copy Channel ID thing in your discord you need to go enable developer mode in your client under Settings>Advanced
1712427865637.png

[CODE lang="yaml" title="MQ2Discord.yaml"]
#########################################################################################
# Setup the Discord bot, https://discord.com/developers/applications
#########################################################################################

token: # paste authentication/token from website
user_ids:
- # paste application ID from website

#########################################################################################
# Not an EQ group, just a grouping of EQ toons. Used for monitoring global chat
#########################################################################################
groups:
- name: Specific toons watching global chat
characters:
- vox_Tankname # 1 toon per line, can add multiple lines/toons as server_Name
channels:
- name: Alerts
id: # paste Discord channel id
allowed: []
blocked:
- "#*#Disconnecting#*#"
- "You are#*#A.F.K. (Away From Keyboard)"
- "You told #*#, '"
notify:
- "#*# AFK#*#"
- "#*#keyboard#*#"
prefix: "** ${Zone.ShortName} | ${Me.Name} **"
send_connected: false

#########################################################################################
# All toons monitor this
#########################################################################################
all:
- name: Info
id: # paste Discord channel id
allowed: []
blocked: []
notify: []
prefix: "** ${Zone.ShortName} | ${Me.Name} **"
send_connected: true

- name: Tells
id: # paste Discord channel id
allowed:
- "#1# tells you,#*#"
blocked:
- "#*#Disconnecting#*#"
- "|${Me.Pet.DisplayName}| tells you#*#"
- "|${Me.Name}| tells you#*#"
notify: []
prefix: "** ${Zone.ShortName} | ${Me.Name} **"
send_connected: false

- name: Deaths
id: # paste Discord channel id
allowed:
- "You have been slain by "
blocked:
- "#*#Disconnecting#*#"
notify: []
prefix: "** ${Zone.ShortName} | ${Me.Name} **"
send_connected: false
[/CODE]
 
@alynel @Knightly could you add a config flag to not report disconnect messages or to specify a channel for GAMESTATE ?
C++:
PLUGIN_API void SetGameState(int GameState)
{
    if (GameState == GAMESTATE_INGAME)
    {
        Reload();
    }
    else
    {
        if (client)
        {
            client->enqueueAll("Disconnecting, no longer in game");
            client.reset();
        }
    }
}
 
Last edited:
Was messing around with this and got it to work fairly well, but I notice the Discord bot in my Discord will frequently show the "xxx user is typing" indicator, even when no matched messages are pending. Not a huge deal, but is there any way to disable this behavior? Or is this a config on the Discord bot side of it?

Edit: nvm, I see this is a keep alive thing.
 
Most of the configs in thread are old so I am sharing my config

(STUFF)
LamahHerder, random question but in the snippet below from your config, what exactly does "Specific toons watching global chat" and the line under "characters" mean? Should they be the same? Like, should it be "name: foromoro" and "characters: server_foromoro" ?? I'm sure it's very simple but the usage of both "toons" and "characters" is throwing me off

C++:
groups:
  - name: Specific toons watching global chat
    characters:
      - vox_Tankname # 1 toon per line, can add multiple lines/toons as server_Name
    channels:
      - name: Alerts
 
Nvm I think I understand. The group you have created in there is actually called "Specific toons watching global chat" and from there you have individual toons laid out doing the listening you want them to do, right??
 
Just putting down a template that make it easier to maintain your allowed and blocked sections in one place versus in each toon section. All you have to do is add to the Allowed section or blocked section and than each of your channels reference it as you can see in the code below. Just need to put in your discord channel information.


token: Token{discordToken}
user_ids:
- {yourUserID}
allowed: &allowed_chat
- "[MQ2Discord] #*#"
- "[MQ2]#*#"
- "#*# tells you,#*#"
- "#*#tells the group,#*#"
- "#*# sent a tell#*#"
- "#*# says out of character, #*#"
- "#*# shouts,#*#"
- "#*# says,#*#"
- "#*#|${Me.Name}|#*#"
- "#*# tells the guild,#*#"
blocked: &blocked_chat
- "#*#s familiar tells you,#*#"
- "#*# corpse tells you,#*#"
- "#*#|${Me.CleanName}|'s pet#*#"
- "#*#|${Me.Pet.CleanName}| says,#*#"
- "#*#|${Me.Pet.CleanName}| tells you,#*#"
- "#*#|${Me.Pet.CleanName}| told you,#*#"
- "#*# #*# says,#*#"
- "#*# #*# tells you,#*#"
- "#*# #*# told you,#*#"
- "#*#You will not evade me#*#"
- "Crusader Vraket #*#"
- "#*# tries to #*#"
- "#*# is cured of #*#"
- "#*# pet #*#"
- "You healed #*#"
- "Txiki says, #*#"
- "Txiki is #*#"
- "#*# warder #*#"
- "#*# warder's #*#"
- "#*# DPS: #*#"
- "#*# gained an AA, #*#"
- "#*# has been awakened #*#"
- "#*# has awakened #*#"
- "#*# goes into a berserker #*#"
- "#*# is no longer berserk."
- "#*# StuckGem Data#*#"
- "#*# rattles and strikes #*#"
- "#*# due to an improved taunt."
characters:
server_Character1:
- name: {server_character1}
id: {discordID1}
allowed: *allowed
blocked: *blocked
notify:
- "[AlertMaster]#*#"
prefix: ""
send_connected: true
allow_commands: true
show_command_response: 2000
server_Character2:
- name: {server_character2}
id: {discordID2}
allowed: *allowed
blocked: *blocked
notify:
- "[AlertMaster]#*#"
prefix: ""
send_connected: true
allow_commands: true
show_command_response: 2000
# ...repeat for each character...
servers:
{}
classes:
{}
groups:
- name: YourGroup
characters:
- {characterName1}
- {characterName2}
- {characterName3}
channels:
- name: Deaths
id: {channelID1}
allowed:
- You have been slain by
- "#*#tells the party,#*#"
blocked: []
notify: []
prefix: "[${Me.Name}]"
send_connected: true
allow_commands: false
show_command_response: 0
all:
- name: TellsChannel
id: {channelID2}
allowed:
- tells you
- "#*#tells the party,#*#"
blocked:
- "|${Me.Pet.DisplayName}| tells you#*#"
notify: []
prefix: "[${EverQuest.Server}_${Me.Name}]"
send_connected: true
allow_commands: false
show_command_response: 0
 
Last edited:
Just putting down a template that make it easier to maintain your allowed and blocked sections in one place versus in each toon section. All you have to do is add to the Allowed section or blocked section and than each of your channels reference it as you can see in the code below. Just need to put in your discord channel information.


allowed: *allowed
blocked: *blocked

I couldn't get that to work. I would get an error message that "the referenced anchor is not defined: allowed"
 
Can confirm same thing "Failed to send message to:" doesn't seem to be taking commands either. Was working fine until recently.
 
Also having issues, and more frustratingly, it’s arguing about being unloaded and refusing saying files are still loaded. Have to adjust the ini to stop it loading up.
 
If I recall correctly, EQLogParser has the ability to push text to Discord.
You won't get all the features of this plugin, so it all depends on what/how you use it. You cannot send commands back to the EQ client.

I ended disabling it from loading in the MacroQuest.ini until the devs get time to look at it.
 
Is it possible to roll back to a previous version of MQ/EQ and this would work again?
unfortunately im not sure if @alynel is active or maintaining this. I think the only change that brain made was to make it cpp20 and toolset v143
@brainiac @Knightly
 
I couldn't get that to work. I would get an error message that "the referenced anchor is not defined: allowed"
Sorry I did not get back sooner but I had missed one vital piece and I have added it in so it works.... after Allowed: at the top is should look like allowed: &allowed_chat and also than blocked: &blocked_chat. I have corrected the template also. Thank you for pointing that out.

and yes it did break I have been looking into the code some just to see what might be able to be done to update it since it is very outdated. Hoping some re-vamping could help. I love this plugin.
 
Re: this worked through this problem today.

Summary:
- Fixed C++20 compile error — added explicit string cast for Snowflake comparison on line 246
- Added WinHTTP-based SendMessage() function that bypasses libcurl (which is broken inside EQ due to Winsock hook conflict)
- Replaced client.sendMessage() with WinHttpDiscord::SendMessage() for outgoing messages
- Removed sendTyping/updateStatus keepalive calls (also used broken libcurl)

there may be a cleaner solution but this worked.

https://gitlab.com/mmdab86/mq2discord/-/tree/c20-fix?ref_type=heads until someone can do this proper
 
I threw it into a diff viewer. Replacing curl with something else would work but a lot of the assumptions your ai bot made are pretty obviously incorrect (there are no curl/winsock hooks for example) -- i would expect this to do some dangerous/unexpected things if you tried to unload the plugin.

I think theres some sort of issue with https in the curl library. i heard @Knightly is going to look into it!
 
Release MQ2Discord

Users who are viewing this thread

Back
Top
Cart