Popmenu General Guide

There are several guides on popmenus, but most just go “here, use this popmenu to do this thing.” without any guidance on how to modify the menu to suit your needs. I’m not one of those people. If you’re reading this guide you probably also aren’t.

What is a popmenu?


A popmenu is a custom menu which can be used to execute any number of slash commands, it essentially allows you to bind a large number of options to a few keystrokes.

Why popmenus?


Popmenus are ideal for commands you want ready access to, but don’t need at a single push of a button. You probably wouldn’t want to use a popmenu to activate your general combat powers, though you could certainly use one that way. You might use popmenus to combine inspirations on the fly, or start chatting in certain ways, to send commands for a raid, or maybe to set up flyposes… The options are nearly endless.

So how do I do it?


The first step to making a popmenu is creating the directory the game will look for them in:

[game install]/data/texts/english*/menus
*or the language your game is in.

From there you will create a .mnu file named whatever you happen to want to call it. In Windows 7/8/10, I find that to create an .mnu file, I have to create a text document and then ‘save as’. Do make sure you don’t accidentally save it as menu.mnu.txt.

Inside that .mnu file, you will need to use this format:

Menu MenuName
{
    Title TitleName
    Option OptionName Command
    Divider
    Title TitleName
    Option OptionName Command
    Menu SubMenuName
    {
        Title TitleName
        Option OptionName Command
        Divider
        LockedOption
        {
            DisplayName OptionName
            Command Command
            Authbit AuthIdentifiers
            Badge BadgeIdentifiers
            RewardToken RewardIdentifiers
            StoreProduct ProductIdentifiers
        }
    }
} 

If you want to make any notations in your popmenu, you can easily do so! If you enter // in to the menu, it will ignore anything following that until the next line break (the next time you hit enter).

We’ll start with the basics by looking at simple one I built for chat:

Menu “chat”
{
Title chat
Option “help chat &q” “beginchat /g [@Oth] “
Option "LFG &w" "beginchat /lfg [$level $archetype] "
}

Menu “Chat”

This just tells the game what the menu name is, and this is how we will find it later.

{

Title Chat

This is what will display as the name of the menu when we open the popmenu.

Option “help chat &q” “beginchat /g [@Oth] “

Option tells us this is a new command in the popmenu. What follows in quotes “Help chat &q” tells us the name of the command, and the keystroke for it, in this case the keystroke is q. The second set of quotes is the command it issues. Like keybinds and macros, you do not need to use the slash before the command. “But Oth, it says /g right there!” Correct! That’s because I’m using the beginchat command. This particular command line will open my chat box up for typing starting with /g [@Oth] , which allows me to quickly send messages with help, tagged with my global handle (since I alt all the time.).

Option “LFG &w” "beginchat /lfg [$level $archetype] "

Same deal, sets up to send a chat to the looking for group channel, opened with my level and archetype, saves me a bit of typing.

}

Just closes the menu out.

Popmenus must be preceded by // or a blank line

So it should open like:

// 
menu (menu name)

Or:


menu (menu name)

Now, how do we turn that into a thing in game? First, you can’t add/modify popmenus on the fly, you must reload the game for it to acknowledge they are there or have been changed.

In game, you use a keybind to open the menu, so you have to set that up, in my case I used shit+enter for this.

/bind shift+enter popmenu “chat”

That’s a really simple example, of course!

You can get fancier, like you could do a menu for mastermind commands! *cough Sandolphan cough*

The numpad binds are super amazing and the only reason I don’t like them is the number pad is on the right side of the keyboard my right hand never leaves the mouse while I’m playing except to type. I want something to function on the fly… SO! Let’s play.

A quick side note, you’ll notice I use q, w ,e r, a, s, d etc. as commands a lot. This is because I want to be able to hit the commands needed from the natural state of my left hand.

//Mastermind Robots commands.
//
Menu Bots
{
Title "Pet type: Robots"
Menu "All &q"
{
Option "Aggressive &q" "petcom_all aggressive"
Option "Defensive &w" "petcom_all defensive"
Option "Passive &e" "petcom_all passive"
Option "Attack &a" "petcom_all attack"
Option "Follow &s" "petcom_all follow"
Option "Go to &d" "petcom_all goto"
Option "Dismiss &x" "petcom_all dismiss"
}
Menu "Battle Drones &w"
{
Option "Aggressive &q" "petcom_pow battle drones aggressive"
Option "Defensive &w" "petcom_pow battle drones defensive"
Option "Passive &e" "petcom_pow battle drones passive"
Option "Attack &a" "petcom_pow battle drones attack"
Option "Follow &s" "petcom_pow battle drones follow"
Option "Go to &d" "petcom_pow battle drones goto"
Option "Dismiss &x" "petcom_pow battle drones dismiss"
}
Menu "Protector bots &e"
{
Option "Aggressive &q" "petcom_pow protector bots aggressive"
Option "Defensive &w" "petcom_pow protector bots defensive"
Option "Passive &e" "petcom_pow protector bots passive"
Option "Attack &a" "petcom_pow protector bots attack"
Option "Follow &s" "petcom_pow protector bots follow"
Option "Go to &d" "petcom_pow protector bots goto"
Option "Dismiss &x" "petcom_pow protector bots dismiss"
}
Menu "Assault Bot &r"
{
Option "Aggressive &q" "petcom_pow assault bot aggressive"
Option "Defensive &w" "petcom_pow assault bot defensive"
Option "Passive &e" "petcom_pow assault bot passive"
Option "Attack &a" "petcom_pow assault bot attack"
Option "Follow &s" "petcom_pow assault bot follow"
Option "Go to &d" "petcom_pow assault bot goto"
Option "Dismiss &x" "petcom_pow assault bot dismiss"
}
}

This gives the functionality of the keybinds in the above link, but as a popmenu. Unfortunately, some of the commands don’t work on keystrokes (go to and dismiss), but these are two things you’re not going to need all the time.

Really, I have only scratched the surface of what popmenus are capable of with this post. I have heard tell of some amazing things, like using it for a badge checklist. I am currently trying to suss out how to make a popmenu that I can use to check and see what badges I am missing for a given accolade, but haven’t figured it out yet. Over all, I hope I have given you some idea on how to create popmenus to do whatever crazy and/or useful things you might need them to.

What else should I know?


So, I recently discovered an interesting quirk with popmenus that make them annoying to deal with while editing my chat popmenu for a global channel I joined.

I joined the channel Looking for RP, so as you can imagine, the first thing I did was add a line for that in my popmenu, that looked something like:

option "LFRP &r" "beginchat /send "looking for RP" [$name, Rebirth] "

This should have the effect that when I hit shift+enter r, it pops the chat bar up to send to the channel looking for RP with my current character’s name and the server I am on autopopulated. Except instead it pops up a chat bar with /send. It took a lot of fighting with it to figure it out, and several other helpful folks in Help Chat fighting with it and doing some Google searches. Ultimately the issue was discovered:

**You cannot have quotation marks in a popmenu command line.**

I came to the conclusion that the popmenu expects the command to be encased in quotation marks, and so sees one and basically reads it as a full stop on the command line, ignoring everything after. Further testing, if I leave the quotations off, it tries to send "for RP [$name, Rebirth] " to global channel ‘looking’. Unlike powers, I cannot use underscores in place of the spaces in the global channels name.

Basically, you cannot use a popmenu to chat in a global channel with spaces in its name…So I built a workaround. This deviates from popmenus a bit, but it’s still interesting, and it will let you know how to get around the issue, if you run in to it:

I discovered the /powexectray command will activate macros, and will do so from a popmenu. So I created a macro and shoved it in to the first slot on my 7th tray:

beginchat /send "looking for RP" [$name, Rebirth] "

Then, I added the line to my popmenu:

option "LFRP &r" "powexectray 1 7"

Now, I don’t want to type "/macro LFRP "beginchat /send “looking for RP” [$name, Rebirth] “” on every character I roll and then drag that macro to 7:1, and I have a few keybinds I use on all characters already, so I finally got around to setting up a bind file for them, and added to it:

f11 "macroslot 60 LFRP beginchat /send "Looking for RP" [$name, Rebirth] "

So yes, a keybind:

  • To make a macro.

  • To be activated by a popmenu.

  • To chat in a global channel.

You might say it would be easier to just make a command like ctrl+enter as a bind to just chat in looking for RP. SURE, it would be, but then I would have to use a different command than I do for all my other chats, plus that’s quitter talk.

Note: The /macroslot command automatically dumps the macro generated in to whatever slot you choose, from slot 0 (1:1) to 89 (9:10)


Credits: This guide is modified from the one posted by Zolgar here.

Popmenu examples:

  • Rebirth’s Quickmenu - By Retched, Oth
    Adds a bunch of extra features to the quickmenu already in-game.
  • CCEmotes PopMenu - By: Snow Globe
    Allows you to change to any of your costumes using any emote with just a few clicks. Works with Peacebringers and Warshades too.
  • Badge Tracker List - By: @Oth
    Helps you tracking down the badges your character has.