ISBoxer 35: Understanding Mapped Key virtualization
The current ISBoxer 35 preview build (come to the ISBoxer Chat Room for a download or more information) introduces a feature referred to as Mapped Key virtualization. Similar to how Virtual Files work -- the game wants one file but is directed to another -- this feature will let you refer to one Mapped Key (with a Click Bar or Do Mapped Key Action) but have it directed to another.
This feature is relatively advanced, and so the following reading assumes you have an understanding of Mapped Keys and is not intended to be a step-by-step tutorial for a new user to set this up (but could easily be used by an experienced user).
Use Case 1
I am currently playing a team of multiple classes. I've chosen to dedicate a Key Map per class, and inside that Key Map is a Mapped Key for each of the combat spells or macros (/castsequence etc). So, say I want to make a round-robin spell interrupt key. I would previously do this on a per-team basis and just have 5 steps that do a specific spell on each guy when it's their turn -- e.g. Hammer of Justice for paladins, Earth Shock or Wind Shear for shamans, and so on. But now I have a lot of teams and I'm finding myself recreating basically the same thing tailored for each team.
With virtual Mapped Keys, however, I don't need to know who is in which slot or what class they are or even what spell they need to cast, in order to have this. So I can make ONE round-robin spell interrupt key that works for all teams, even if I'm mixing and matching from my other teams.
So it goes something like this. I can define a Key Map that contains Mapped Keys that don't really need to do anything. The mappings will have names like "Instant Interrupt" -- totally generic. They don't even need Hotkeys, because I intend only for these to be used via Do Mapped Key Action (or maybe Click Bars). Instead, I have a Mapped Key called "RR Instant Interrupt" for example, in a Key Map I can assign to every single Character Set I have. It would have one Step for each Slot in my Character Sets -- I play 5. Here's what the Steps would look like:
Step 1: Do Mapped Key Action. Target = Slot 1 (NOT a specific character). Mapped Key = Instant Interrupt
Step 2: Do Mapped Key Action. Target = Slot 2 (NOT a specific character). Mapped Key = Instant Interrupt
Step 3: Do Mapped Key Action. Target = Slot 3 (NOT a specific character). Mapped Key = Instant Interrupt
Step 4: Do Mapped Key Action. Target = Slot 4 (NOT a specific character). Mapped Key = Instant Interrupt
Step 5: Do Mapped Key Action. Target = Slot 5 (NOT a specific character). Mapped Key = Instant Interrupt
Notice the only difference is that it's sending Instant Interrupt to a different slot. Here's where the magic happens.
For each of my Characters, I would set up a Virtual Mapped Key, such that "Instant Interrupt" would map to a mapped key specifically for Hammer of Justice if the character was a paladin, Earth Shock or Wind Shear if it's a shaman, and so on. (There's nothing more to it, you go into the Character, click on Virtual Mapped Keys, drag in the original, drag in the new one, and then it reads as "Instant Interrupt" is now "Hammer of Justice", for the paladins)
Use Case 2
"FTL" is essentially a specific implementation of Virtual Mapped Keys. Depending on which guy you are controlling at the time, a "follow" or "assist" key gets translated into a different key combination in order to tell the game to follow or assist someone different. With World of Warcraft, one macro as defined in the game can interpret the different key combinations and follow or assist the right person. That doesn't hold true for any other game at the moment that I'm aware of. However, the concept applies to any game that will allow you to create enough specific macros to follow or assist each individual character (preferrably, for you, without having to switch between banks of hotkeys).
You want one assist key that you push to make your guys target the same thing you are, regardless of which window you're in. That's the whole basis for the FTL concept; Building auto-assist into the keys you push to perform abilities is secondary but also useful if you don't want to manually assist (I manually assist, personally).
So here's how it can work in another way. This is a little more involved than the first example. Here's the idea ...
You need one Mapped Key per Character, to assist that particular Character. One for /assist Joe, one for /assist Bob, and so on. They each, necessarily, send a different Key Combination. Then the trick is to virtualize an Assist key, such that the Character-specific Mapped Key for your active window is the one that is executed. To do so, use a Mapped Key Virtualization Action, which can set virtualization dynamically while playing, in a Mapped Key configured to execute when you switch windows (selected per Slot in your Character Set). For bonus nerd points, that Mapped Key can be virtualized too.
So you switch windows, and a Mapped Key Virtualization Action sends an instruction to all to indicate that, for example, "Assist Me" is now "Assist Joe". Any Mapped Key that sends "Assist Me" will get interpreted by each of the targets as "Assist Joe" instead. Win!
This feature is relatively advanced, and so the following reading assumes you have an understanding of Mapped Keys and is not intended to be a step-by-step tutorial for a new user to set this up (but could easily be used by an experienced user).
Use Case 1
I am currently playing a team of multiple classes. I've chosen to dedicate a Key Map per class, and inside that Key Map is a Mapped Key for each of the combat spells or macros (/castsequence etc). So, say I want to make a round-robin spell interrupt key. I would previously do this on a per-team basis and just have 5 steps that do a specific spell on each guy when it's their turn -- e.g. Hammer of Justice for paladins, Earth Shock or Wind Shear for shamans, and so on. But now I have a lot of teams and I'm finding myself recreating basically the same thing tailored for each team.
With virtual Mapped Keys, however, I don't need to know who is in which slot or what class they are or even what spell they need to cast, in order to have this. So I can make ONE round-robin spell interrupt key that works for all teams, even if I'm mixing and matching from my other teams.
So it goes something like this. I can define a Key Map that contains Mapped Keys that don't really need to do anything. The mappings will have names like "Instant Interrupt" -- totally generic. They don't even need Hotkeys, because I intend only for these to be used via Do Mapped Key Action (or maybe Click Bars). Instead, I have a Mapped Key called "RR Instant Interrupt" for example, in a Key Map I can assign to every single Character Set I have. It would have one Step for each Slot in my Character Sets -- I play 5. Here's what the Steps would look like:
Step 1: Do Mapped Key Action. Target = Slot 1 (NOT a specific character). Mapped Key = Instant Interrupt
Step 2: Do Mapped Key Action. Target = Slot 2 (NOT a specific character). Mapped Key = Instant Interrupt
Step 3: Do Mapped Key Action. Target = Slot 3 (NOT a specific character). Mapped Key = Instant Interrupt
Step 4: Do Mapped Key Action. Target = Slot 4 (NOT a specific character). Mapped Key = Instant Interrupt
Step 5: Do Mapped Key Action. Target = Slot 5 (NOT a specific character). Mapped Key = Instant Interrupt
Notice the only difference is that it's sending Instant Interrupt to a different slot. Here's where the magic happens.
For each of my Characters, I would set up a Virtual Mapped Key, such that "Instant Interrupt" would map to a mapped key specifically for Hammer of Justice if the character was a paladin, Earth Shock or Wind Shear if it's a shaman, and so on. (There's nothing more to it, you go into the Character, click on Virtual Mapped Keys, drag in the original, drag in the new one, and then it reads as "Instant Interrupt" is now "Hammer of Justice", for the paladins)
Use Case 2
"FTL" is essentially a specific implementation of Virtual Mapped Keys. Depending on which guy you are controlling at the time, a "follow" or "assist" key gets translated into a different key combination in order to tell the game to follow or assist someone different. With World of Warcraft, one macro as defined in the game can interpret the different key combinations and follow or assist the right person. That doesn't hold true for any other game at the moment that I'm aware of. However, the concept applies to any game that will allow you to create enough specific macros to follow or assist each individual character (preferrably, for you, without having to switch between banks of hotkeys).
You want one assist key that you push to make your guys target the same thing you are, regardless of which window you're in. That's the whole basis for the FTL concept; Building auto-assist into the keys you push to perform abilities is secondary but also useful if you don't want to manually assist (I manually assist, personally).
So here's how it can work in another way. This is a little more involved than the first example. Here's the idea ...
You need one Mapped Key per Character, to assist that particular Character. One for /assist Joe, one for /assist Bob, and so on. They each, necessarily, send a different Key Combination. Then the trick is to virtualize an Assist key, such that the Character-specific Mapped Key for your active window is the one that is executed. To do so, use a Mapped Key Virtualization Action, which can set virtualization dynamically while playing, in a Mapped Key configured to execute when you switch windows (selected per Slot in your Character Set). For bonus nerd points, that Mapped Key can be virtualized too.
So you switch windows, and a Mapped Key Virtualization Action sends an instruction to all to indicate that, for example, "Assist Me" is now "Assist Joe". Any Mapped Key that sends "Assist Me" will get interpreted by each of the targets as "Assist Joe" instead. Win!