• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋
  • We've added LLM sections to our Terms & Rules and Resource Rules, for everyone's sanity & in-game safety.
    Read more
    a. Do not replace your voice with an LLM. This goes for your posts and your scripts. Drafting and editing with a tool is fine, but don't take you out of what you share.
    b. Do not replace your EQ character's voice with an LLM. We don't want scripts that speak over /ooc, /shout or other public channels. This has been an unwritten rule that's kept casino scripts off the site for decades, but we're now compelled to make it clear: keep automated communication private.

    Why Does RG Review Scripts?
    Nearly every LLM-written Lua script we see is making your character do impossible things, and rarely in a way that's beneficial to you. We've seen heavy server hammering, /target over impossible distances when /nav spawn would passively accomplish the same thing, a spawn search that fires 20+ times per second, and other pointless actions that are likely annoying GMs.

    You are welcome to use LLMs as a tool to structure, draft, and edit your work, but please read critically before hitting /lua run
Resource icon

Guide How to Trace Calls in an MQ2 Macro

One could replace /call with a sub that then calls. E.g.
Another implementation
INI:
/call RemoteCall "subname param0 param1..."


Sub RemoteCall(string RemoteSubParams)
    ||| One may need to cache params if needed elsewhere, but you can also use .Arg[] to extract

    /declare MacroReturn string local NULL

    ||| Debug call stack but the value of CurSub is substituted with the subname passed in
    CALLINGSUB
    CALLINGINDEX
  
    ||| Perhaps put a generic debug Entry message in here
    PUSHCALL
  
    ||| Modify the DEBUG define(s) to use the debug flags as vars rather than hardcoded and replace CurSub with name of calling sub
    DEBUGN
  
    /call ${RemoteSubParams}
    /varset MacroReturn ${Macro.Return}
  
    DEBUGN...
  
    ||| Perhaps put a generic Exit messsage in here
    POPCALL
/return ${MacroReturn}

In the remote sub, one still needs to have CALLINGSUB and CALLINGINDEX at the top to make use of DEBUG messages produced therein.

One would need to do a global search/replace for /call with /call RemoteCall, then put quotes around the sub/params.
Back
Top
Cart