Thanks for the replies everyone. I’ll post what I did here and hope that it serves as a useful guideline for any other readers.
I had already added zones to the map (I’ll assume y’all know how to do that). To give you an idea of the type of map I’m working on, here’s a small portion of it so you can see the areas. The idea is to click on the TEM (the circle in the middle of each area) and have it highlight, or unhighlight if clicked again:
The first thing was to add a couple highlighters. For this post I’ll focus on the one with the name “AreaDisplay”:


Then I enabled “Use highlighting” on the zone via zone properties and gave it the highlight property “AreaHighlight”. This is a global property name I would reference later:
From there I did an “Add Global Property (Zone)” via right-clicking on the zone and added this:

You’ll notice that I used “AreaHighlight” (the global property) and set it to “None”. So, for now it won’t do anything. If I had wanted to start with it enabled I would’ve set to “AreaDisplay”, the name of my highlighter. If I had I stopped there, it would be enabled permanently.
Since we can’t interact with the zone or highlighter directly on the map, I needed to add a piece that would serve as a button to toggle the highlighter on and off. Since I’m using a graphic on the map as a control my piece would ultimately be invisible. However, during development I found it was handy to give it a temporary layer with some color so I could see the thing when repositioning it on the map, and then later delete that layer.
I used a prototype to set most of the properties of my button, which I created as an “At-Start” stack since it’s always going to be on the map. The “Area1” folder is just for organizational purposes:
As I mentioned before I recommend creating a temporary layer with some color so that it’s easier to reposition on the map:
And the control marker piece looks like this:
The “Non-Rectangular” bit is because the TEM is circular. “The Does Not Stack” property is so that players can’t accidentally stack it or move it around. These aren’t strictly necessary, but YMMV. And now on to the relevant bits.
I then added a “Set Global Property” like so:
You’ll notice the Global Property Name is the same as the “Global Property (Zone)” I set above. I selected “Current Zone/Current Map/Module” because the button will sit in the zone that it’s going to highlight.
I gave it the menu command “HighlightZone” instead of a right-click menu command because I don’t actually want this ability accessible via right-click. Remember this name, I will use that menu command name in a bit inside the “Action Button”. Lastly, I set the value directly using the following prompt:
{AreaHighlight != "AreaDisplay" ? "AreaDisplay" : "None"}
In other words, when the user clicks the button and it isn’t set to “AreaDisplay” (the name of our highlighter), then set it to “AreaDisplay” (toggle on). If it’s already set to “AreaDisplay” then set it to “None” (toggle off).
Last but not least I created an Action Button. The button is simple:
It simply invokes the key command “HighlightZone” that we defined in the Set Global Property Above.
With my button in place, I can now click the zone highlighter on and off:
Hope this helps some folks!