How it Works
Data on the location of game objects, players, and NPCs is not stored in the World of Warcraft client and must be sent from the server. Phasing, in a sense, decides not to send certain data based on criteria.
As an example, you may have a quest to get the head of a named NPC. After turning in the quest, the server records that it should not send data about that NPC to you. The next time you go there, even if the NPC is still there, you will not be able to see it.
By using combinations of phasing, entire areas can change from grasslands to a city by use of game object phasing and NPC phasing.
Phasing in ArcEmu
Phasing is controlled by simple commands.
.char phase X .gameobject phase X .npc phase X
Like ".gameobject spawn x" a 1 after the NPC or Gameobject's entry ID will cause it to be saved to that spawn in the database and persist after restarts.
Phasing uses values like this
Phase | Effect 1 Standard phase can see phase 3 2 Cannot see standard phase 3 Can see phases 2 and 3 4 Can not see phases 1 2 or 3
By using this method you can
- separate entire areas off to game masters
- create quests that advance the landscape as players go along with the questline
- turn an entire area into a PVP zone without effecting normal gameplay
Lua supports phasing with
An example of a creature that sets their own phase on spawn.
function npc_OnSpawn(Unit) Unit:PhaseSet(4294967295) end
Losing things in a phase
If you get something lost in phases, to see all phases: .char phase 4294967295
That is the highest, maximum phase possible.
Developing in a default phase
To develop in realtime in a phase there is no need to set a phase for every creature or object you spawn.
.char phase 2
Would then cause you to save all gameobjects or creatures that you spawn during the time your character is in that phase to be saved in realtime to the database with all phases already set to 2.