Focus was in Vanilla - Please Fix the API

Vanilla Scripting

In Vanilla, tank and assist targeting was done using the /script command, executing direct LUA calls in game. A LUA variable was set in code that contained the name of the Assist character, and then additional macros would target the same target as the assist, then cast spells, before returning to whatever target you had. The name of the assist variable was just a text name, so we’ll use the name ‘focus’.

Setting Assist To Selected Target
/script focus=UnitName("target")

Casting spells to Assist
/script AssistByName(focus); CastSpellByName("Fireball"); TargetLastTarget()

Healing the Assist without needing to manually target them
/script TargetByName(focus); CastSpellByName("Healing Touch"); TargetLastTarget()

For more information and expanded macros, see here: https://wow.gamepedia.com/Macro_(1.0)#Assist_Main_Tank.2FMain_Assist

The purpose of these macros was to ensure that in raiding, people were focusing on the right target and coordinating the kills. They were also heavily used by healers to ensure that they could always have a button to push that would allow them to heal the main tank immediately. Additionally, CC classes used them to manage the various sheeps and banishes in raiding and PVP.

These were expanded in Addons to become what we knew as the Main Tank and Main Assist windows. Macros could be used to directly target these raid leader selected targets, and eventually Blizzard added the functionality to the Raid UI to get these values set.

In 2006 while developing The Burning Crusade, Blizzard wanted to start restricting the ability of macros to do complex decision making for the player in one button push. A simple example of the type of spell was:

/script class = UnitClass("target"); if ( ( class == "Rogue" ) or ( class == "Warrior" ) ) then CastSpellByName("Blessing of Might"); else CastSpellByName("Blessing of Wisdom"); end

This meant that a Paladin would cast Might on Rogues and Warriors and Wisdom on everyone else, without having to manually decide. Rogues on the Vaelastrasz fight had an even more complex one button macro that chose what abilities to use based on how long S&D had left and how many combo points they had.

Their solution? Secure Frames, Unit IDs and the Macro Conditional Model

TBC and Secure Code

In The Burning Crusade, Blizzard completely remade the UI with regards to targeting. They created what are called “Unit IDs” that represent different targeted elements.

player - The character itself.
target - What the character is targeting.
targettarget - What the character’s target is targeting.
pet - Your pet.
pettarget - Your pet’s target.
party1 - The first member of your party.
party2 - The second member of your party.
raid1 - The first member of your raid.
raid40 - The 40th member of your raid.
etc.

However, aside from target, the player had no control over the Unit that each of these unit IDs referred to. You couldn’t control your target’s target, or who was in what spot in the raid.

In order to revive and continue the ability for the player to set a 2nd ‘target’, for use as an Assist, CC or as a Heal target, they created a Unit ID called focus.

This focus unit ID was essentially unique in that the player could control it, and it wasn’t their current target. As with all other Unit IDs, they added Secure Unit Frames for this Unit ID, and they also added a key bind and a slash command (/focus) to allow you to set it.

The new macro conditional changes allowed these Unit IDs to be used in macros in the way we all likely recognize to this day.

Self Cast
/cast [@player] Healing Touch

Cast at your pet’s target if it exists.
/cast [@pettarget,exists] Aimed Shot

In particular the focus unit was used extensively by CC macros, so that a mage or warlock etc didn’t have to re-target the CC’d mob to keep them under control. This had an added benefit of making sure you didn’t accidentally fireball your sheep.

/clearfocus [@focus,noharm][@focus,dead]
/focus [@mouseover,harm,nodead][@focus,noharm][@focus,dead]
/cast [@focus,harm] Polymorph

These macros performed exactly the same feature that the custom LUA unit variables did in Vanilla, ensuring that players did not lose the acceptable functionality, while Blizzard got to limit macro’s ability to make complex decisions and choose which spell to cast. The functionality was the same, but the form had changed.

Classic WoW

When Blizzard began rebuilding Classic WoW from the Vanilla data files, they decided that they wanted to keep the improved security and control of the modern Retail API, instead of going back to the uncontrolled and exploitable 1.0 macro model. They began to port the modern API over to the Classic client and had to make some changes along the way, to remove features not found in Vanilla, as well as add features not in Retail (such as weapon skill).

During this process, a developer looked at the focus Unit Frame and unit ID, and said “This wasn’t in Vanilla.” In the strictest sense it was a correct statement. However, in the wider picture, it was incorrect. The functionality that the focus unit ID provided was in Vanilla, however it was in the form of the old 1.0 macro model.

By the same token, there were no unit IDs in the 1.0 model, so the same argument could be made for target or pet. Obviously there were Target unit frames, and Pet unit frames in Vanilla, but they weren’t Secure Unit Frames, so again, the functionality existed, but the form has changed. The Target frame varies from the Focus frame in the fact that there was a visible frame, and they made the new one look like the old one, but the focus functionality existed nonetheless.

To my mind, this is an oversight by the development team, in that the equivalent of the focus unit ID existed in Vanilla, and removing it removed part of the Vanilla meta experience.

The Request

To bring this history lesson back to a relevant request, here it is.

Please reintroduce the focus unit ID back into the Classic macro API to allow us to have the same functionality that we did in Vanilla, even if the form is slightly different.

We don’t require a Focus Frame, though the /focus slash command and the keybinding are required so that we can set the focus unit ID to a value. This would present as the same functionality because in Vanilla you required an addon to display the set Focus and in Classic you would be able to do the same. However, because of the secure Unit ID system, you can’t create a custom Unit Frame without the underlying Unit ID, in this case focus.

The focus was used for various things in Vanilla such as:

  • Assisting the focus by casting at the focustarget. Set the main assist to the focus and no macro changes are required when the main assist changes.
  • Managing CC without changing targets. The Garr fight for example, warlocks have to banish 5 of the minions while still DPSing the unbanished ones.
  • Healing the Main Tank while saving raid members. Healers will focus their primary healing target, and often use a modifier macro to cast on that focus such as holding down Ctrl, instead of whatever their current target is.

All of these activities are no longer available to be done by macros in Classic, creating a different meta game from Vanilla. Because the functionality was in Vanilla, and we are forced to use a non-Vanilla macro API, that macro API should continue to implement the method by which the 2.0.1 UI changes allowed the 1.0 functionality to exist in a limited form.

Therefore, please revert the change to the modern API ported from Retail to Classic, such that we the getfocus unit ID back.

TL;DR

focus existed in Vanilla, and needs to exist in Classic.

140 Likes

There’s no mention of how I want to use it in fishing either. Or throwing leather balls into people’s backpacks.

The premise is not about what its used for, but that it existed in Vanilla.

28 Likes

You never mention that you wear shoes so you can kick puppies. Seems a bit dishonest to me.
Ban all shoes.

24 Likes

I respect this idea but I would appreciate your approach more if you were forthcoming about your underhanded plans for using focus.

9 Likes

sigh

Maybe its about more than just me…

EDIT: And to be clear, I actually did mention how I want to use it. A pocket healer is literally a healer with their heal target set on focus, using macros to target them with heals.

9 Likes

I didn’t expect you to double down on the dishonesty. The term “pocket healer” in no way implies that dual-boxing or macros are being used.

14 Likes

You doubled down on argumentative. It doesn’t matter what the focus is used for, and as a raid healer I’ll be spending far more time using it for main tank healing and Entangling Roots CC.

You’re fixated on a single element and ignoring the actual post. Please stop.

15 Likes

Who is the one being dishonest puppy kicker? Stop kicking puppies.

12 Likes

Puppy Kicking is indeed bad.
We need less puppy kicking and more focus!

5 Likes

I never multiboxed, and used this functionality.

If I ever healed a pet upon request in a dungeon, it was through through focus (otherwise I would generally not even have a way to see it, so any requests to do so were impossible with my UI, and I had no interest in even attempting to do so).

I used it in raids as well so I could have a click bar just for the tank which had the full healing set (including all spell ranks which benefit from full +heal, so not something you can keybind). Before that I insisted they put me in the main tank group, as a priest, so I could use party based addons on tanks. I would easily bump a rogue from the melee group on this basis alone, as otherwise the tank would likely need a full second healer to compensate for the mana difference.

9 Likes

Reported for trolling

22 Likes

Allow me to repair your analogy.

Eloraell makes a thread asking for the Puppy Kicker 3000 shoe to come back. She talks about how great their grip is, how light they are, and how good they are for running. It also happens that Eloraell is known for kicking puppies in those very same shoes.

So I come in the thread and say “Hey aren’t you gonna mention how you kick puppies in those shoes?” Eloraell says “I already did when I talked about how light they are.”

Seems good.

13 Likes

What ever puppy kicker.

6 Likes

Please return to the actual topic.

8 Likes

Original beta player in 2004. Launch on Mal Ganis in 2004. Played for 10 years.

Raided everything. Never used any of this.

God I might have to reroll a Rogue again…

3 Likes

Wait, i’m confused about the post: so the police knew internal affairs were setting them up?

4 Likes

this is just spam. there is a thread located right at the top started by you about the same thing

14 Likes

This thread summarizes everything in a way that people will understand and I was told to post all this by people in the other thread.

The fact that Fesz keeps reposting on a four day old thread is the only reason its still at the top.

Also, really, we’re complaining about 2 threads not related to streamers?

4 Likes

yeah, and instead of posting it in that thread, you make a new one. that is the definition of spam.

16 Likes

I’d bet that it will be reported as spam, if it has not already been reported.