Skip to content

Adds /pw i, to toggle instance pets - #30

Open
neonvoidx wants to merge 1 commit into
tflo:masterfrom
neonvoidx:master
Open

Adds /pw i, to toggle instance pets#30
neonvoidx wants to merge 1 commit into
tflo:masterfrom
neonvoidx:master

Conversation

@neonvoidx

Copy link
Copy Markdown

This only matters if /pw a is enabled, otherwise it is ignored because obviously we won't auto summon. I have called out under /pw h argument listing.

/pw i or /pw instance toggles true/false.

If disabled, then when entering any instance pet will be desummoned and auto summoning in instance will be disabled.

Upon leaving an instance the behavior returns to existing pattern.

Default to true so its backwards compatible to users

I tested it by having auto summon enabled and disabling instance summons, then queued follower dungeon and entered, pet was dismissed and didn't see auto summon occur, so I think its good.

This only matters if /pw a is enabled, otherwise it is ignored. /pw i or
/pw instance toggles true/false. If disabled, then when entering any
instance pet will be desummoned. Upon leaving an instance the behavior
returns to existing options. Defaults to true so it's backwards
compatible.
@tflo

tflo commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Thanks for the careful PR.

At the moment I cannot merge any PR, because I still have (the long overdue) v3.0 in the queue, and this comes with pretty heavy changes.

I’m sorry that I did not sync my develop branch to GitHub, so you couldn’t know. (Yes, very bad practice. But some time ago I had glitches with the wrong branch auto-pushed to CF, or none pushed at all despite the presence of a tag, so I decided to keep any CF-hooked repo clean of non-master branches. I’ll have to re-check if the issue still exists.)

Besides that, a few considerations:

What is the point of dismissing the pet when entering an instance?

An already existing pet does not negatively affect gameplay1. What can interfere, is the summoning of a pet, because of the GCD. But this is already prevented automatically for certain instances (the forbidden_instance function).

Independent of this, checking the user setting at a PLAYER_ENTERING_WORLD event will not work as intended:

  • PEW fires not only on dungeon/raid instance changes, but also on map instance (aka Continent) changes (for example when using any portal).

  • PEW does not fire when entering/leaving a Delve (and possibly other scenario-type instances).

So, for the assumed desired behavior (all non-world instances), we would have to register PLAYER_MAP_CHANGED, which, despite the misleading name, is the only event that truly fires on any instance change (see my old PR for TPTP here).

To exclude Continent changes, we would have to do an IsInInstance or GetInstanceInfo check afterwards. (PLAYER_MAP_CHANGED fires very early, so this needs a 2s timer in order to get the correct instance info.)


What I would be more inclined to implement is a /pw i that simply extends the present conditions in forbidden_instance to ‘any dungeon or raid’. This would not dismiss the pet after entering, but prevent summoning in all dungeons/raids, not only M+ and PvP.

We could also include Delves/scenarios, but this also requires registering PLAYER_MAP_CHANGED (in order to detect when we leave the Delve).

And this leads me to back to a plan I already had (and forgot):

It would be more elegant (and efficient) to change the entire forbidden_instance mechanic alltogether: run the instance check after every PLAYER_MAP_CHANGED, and not with every unthrottled autoaction(), as it is now.

This would also pave the ground for a significantly more harmonic implementation of a /pw i.

But, as said, please let me first finish v3.0 (ETA for CF: a bit after the 12.0.7 release, if nothing needs to be changed).

Footnotes

  1. A rare exception may be certain dungeon/raid achievements, where the mere presence of a pet potentially may affect the achievement conditions recognition. But for such cases we have /pw d.

@neonvoidx

Copy link
Copy Markdown
Author

ah I see, so my major thing was I don't want my pet summoned in arena and bgs, it's just another thing in my vision I don't want to see ina competitive environment, I'll wait for 3.0 I suppose and revisit

@tflo

tflo commented Jun 14, 2026

Copy link
Copy Markdown
Owner

it's just another thing in my vision I don't want to see

OK, the possible visual distraction caused by the presence of a pet is indeed an argument. I get your point now.

So, the roadmap now is:

  1. Finish and release 3.0.
  2. Add PLAYER_MAP_CHANGED as event (PEW is still needed for reloads/logins).
  3. Move the whole instance check mechanic from autoaction() to PLAYER_MAP_CHANGED.
  4. Baseline for competitive instances: in addition to preventing autosummoning, dismiss an existing pet after entering.
  5. Implement the /pw i user option that extends that behavior to all non-world instances (competitive or not).

Competitive instances: Besides the already implemented ones (M+ Key, Arena), I'll add Mythic raids and Battlegrounds. Or maybe all raids. So, without /pw i activated, pets would be allowed only in non-Key dungeons and Scenarios, incl. Delves.

@tflo

tflo commented Jul 1, 2026

Copy link
Copy Markdown
Owner

I just released v3.0, finally.

But no worries, you don’t need to redo your PR. I’ll implement the instance changes as outlined in the roadmap above (and give you credits).

@neonvoidx

Copy link
Copy Markdown
Author

I just released v3.0, finally.

But no worries, you don’t need to redo your PR. I’ll implement the instance changes as outlined in the roadmap above (and give you credits).

Thanks! dont need credit thats ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants