#๐ใปcustom
Shauren
Jul 03, 2026 ยท 16:51
i have no idea how wmv reads it
MyWisps
Jul 03, 2026 ยท 16:51
i will test. thnk you for your quick answer (:
MyWisps
Jul 03, 2026 ยท 19:29
It reads them without an issue
Zymus
Jul 03, 2026 ยท 22:04
It seems like it would be more maintainable to have smaller files with better names.
Zymus
Jul 03, 2026 ยท 22:05
Unless a single entry was > 4GB.
Zymus
Jul 03, 2026 ยท 22:05
Like my-map.mpq, my-npcs.mpq, my-spells.mpq, or something similar
Zymus
Like my-map.mpq, my-npcs.mpq, my-spells.mpq, or something similar
Crane
Jul 04, 2026 ยท 10:50
The MPQ names Blizzard uses such as common.mpq, common2.mpq, etc. are hardcoded into wow.exe.
Zymus
Jul 04, 2026 ยท 18:56
I recall reading somewhere that it can load other file names too.
Zymus
I recall reading somewhere that it can load other file names too.
Crane
Jul 04, 2026 ยท 20:17
No, it can't unless the .exe file has been patched. Furthermore, tools like Noggit, Server Core, and all the others would also need to be patched, because they wouldn't be able to read custom MPQs.
Zymus
Jul 04, 2026 ยท 20:28
Maybe I misunderstood this tutorial then
https://www.wowmodding.net/topic/1460-41-creating-your-first-mpq-patch/
Maybe it's more literal than I interpreted. I thought maybe patch-my-npcs.mpq would work, but maybe when it says numbers then letters, it means literally only one, like patch-9, or patch-z
Creating your first MPQ patch and getting into the game World of Warcraft (in versions from Classic (1.12) till MoP (5.x)) uses MPQ archives to store the game data. In World of Warcraft Wrath of the Lich King (3.3.5a) MPQ patches are located in only two folders of game directory which are Data an...
Zymus
Maybe I misunderstood this tutorial then
https://www.wowmodding.net/topic/1460-4โฆ
Crane
Jul 04, 2026 ยท 20:32
Yes, patch-2.mpq through patch-9 and patch-A through patch-Z work, but not things like maps.mpq or asset.mpq.
Zymus
Jul 04, 2026 ยท 20:36
Ah, damn
Zymus
Jul 04, 2026 ยท 20:38
I guess the only thing I can think of then is just careful organization, and keeping a manual list of what's in where.
Zymus
Ah, damn
Crane
Jul 04, 2026 ยท 20:41
I guess that's what you have to do if you can't remember what's in where.
Crane
Jul 04, 2026 ยท 20:44
TrinityCore has already improved patch management. Previously, you always had to modify the core so that the map generator and its tools could read the latest patch files.
The Stranger
Jul 06, 2026 ยท 19:02
So im running into an issue on my code where I have a custom gameobject/creature datable for use in phases, and everythings set up to work off player created phases for spawning gobjects/npcs. Sometimes, not every time, when you go to delete a gobject, the gobject will delete in your game, it canot be targeted , you cannot see it. It deletes from the DB, the db does not have the gobject on the gameobject table anymore. But then youll load back in to a phase at times and the object will be there still, but untargetable or removable. Sometimes a reset removes it, othertimes it doesnt. Sometimes theres no issue at all when using .gob delete to delete gameobjects, they remove just fine.
It also isn;'t a client side cache thing because ive tested it across two computers and been able to see the ghost gobject duplicate still
The Stranger
Jul 08, 2026 ยท 02:13
for the above, I can confirm its not due to the client cache, and the object is deleted in the sql database
Zymus
Jul 08, 2026 ยท 02:18
Do you add them all to a list in memory for each player?
Zymus
Jul 08, 2026 ยท 02:18
I'm wondering if, under certain conditions, it removes it from the db, and only sometimes removes it from the in-memory list
The Stranger
Jul 08, 2026 ยท 02:18
I
The Stranger
Jul 08, 2026 ยท 02:18
just had the same thought
The Stranger
Jul 08, 2026 ยท 02:18
but idk how to check
Zymus
Jul 08, 2026 ยท 02:19
Could maybe help then by adding some debug prints before and after
Zymus
Jul 08, 2026 ยท 02:19
Not sure of the frequency though
Zymus
Jul 08, 2026 ยท 02:19
Or just generally double check your removal code
Zymus
Jul 08, 2026 ยท 02:21
I'm not sure how targetable/removable/resetting works, but if a .gob delete command works, check to make sure your implementation looks similar, or identify what's different.
The Stranger
Jul 08, 2026 ยท 02:21
Well
The Stranger
Jul 08, 2026 ยท 02:21
you cant gob tyarget them
The Stranger
Jul 08, 2026 ยท 02:21
but gob target uses the sql
The Stranger
Jul 08, 2026 ยท 02:21
so ofc its not seeing them
The Stranger
Jul 08, 2026 ยท 02:21
I think whats happening is basically where ever it stores teh data for whats on the map still
The Stranger
Jul 08, 2026 ยท 02:22
pulls it from the sql
The Stranger
Jul 08, 2026 ยท 02:22
then u delete it
The Stranger
Jul 08, 2026 ยท 02:22
but it doesnt get updated on the like
The Stranger
Jul 08, 2026 ยท 02:22
runnign application side? if that makes sense
The Stranger
Jul 08, 2026 ยท 02:22
so sometimes it pops back up because it thinks "Hey, this still exists in my RAM"
The Stranger
Jul 08, 2026 ยท 02:22
even though its not supposed to be anymore
The Stranger
Jul 08, 2026 ยท 02:22
at least thats ym greenhorn assumption
The Stranger
Jul 08, 2026 ยท 02:22
because that would make the most sense to me
Zymus
Jul 08, 2026 ยท 02:25 (edited)
Yeah, something like
`if (should delete from player phase) {
remove_from_phase_in_db (or something);// which works, so checking with db returns fine
remove_from_player_phases_at_runtime (or something);// sometimes this doesn't work for some reason
}`
The Stranger
Jul 08, 2026 ยท 02:27
player->GetMap()->AddObjectToRemoveList(object);
player->GetMap()->RemoveRespawnTime(SPAWN_TYPE_GAMEOBJECT, spawnId);
The Stranger
Jul 08, 2026 ยท 02:27
would these not running
The Stranger
Jul 08, 2026 ยท 02:27
wellno
The Stranger
Jul 08, 2026 ยท 02:27
those run
The Stranger
Jul 08, 2026 ยท 02:27
hmm
The Stranger
Jul 08, 2026 ยท 02:27
I see a delte from db
The Stranger
Jul 08, 2026 ยท 02:27
but not phases at runtime
The Stranger
Jul 08, 2026 ยท 02:27
unless above is runtime
The Stranger
Jul 08, 2026 ยท 02:27
but there idk where its getting saved
Zymus
Jul 08, 2026 ยท 02:28
That I'm not sure, from the API, AddObjectToRemoveList seems like it would take care of everything, but I've never tinkered with that API
Zymus
Jul 08, 2026 ยท 02:28 (edited)
What branch? Like master/3.3.5?
The Stranger
Jul 08, 2026 ยท 02:31
mastger
The Stranger
Jul 08, 2026 ยท 02:31
master
Zymus
Jul 08, 2026 ยท 02:34
I haven't done anything in master, sorry. But, just throw some debug logs around the gob deletion, or maybe even creation, and you might get some info. While the gob still exists, do you see it in the database?
Zymus
Jul 08, 2026 ยท 02:42
It could be a multi-thread issue, but that's harder to check for, and I'm not even sure what parallelization exists in TC. But if it's single-threaded, I'd look for logic or brainfart issues first.
Zymus
I haven't done anything in master, sorry. But, just throw some debug logs aroundโฆ
The Stranger
Jul 08, 2026 ยท 02:44
yep
The Stranger
Jul 08, 2026 ยท 03:19
@Zymus is there anyway to force a crash or somehow check that ingame state variable
The Stranger
Jul 08, 2026 ยท 03:20
I have my client running with a ghost gob up rn and im tryng to find a way to debug it but my vs sln isnt the same as what was compiled anymore
The Stranger
Jul 08, 2026 ยท 03:52
After some testing i was able to find somethings
The Stranger
Jul 08, 2026 ยท 03:52
that object doesnt exist in the database anymore on sql, it was delted
The Stranger
Jul 08, 2026 ยท 03:53
Also it seems to take about an hour for something to reappear after it was delted, which is weird
The Stranger
Jul 08, 2026 ยท 03:53
hour and 13
The Stranger
Jul 08, 2026 ยท 22:58
Ok so I have some new information about these phantom objects,
The objects dont appear if a player has the map loaded/is on the map(i believe)
I was able to recreate it consistently by spawning a gobject, deleting it, and then teleporting off map or logging out for atleast 5 minutes, which i timed off the objects respawn time, so i think it's getting respawned when unloaded and then respawned when loaded after the map has been unloaded
The Stranger
@Zymus check it, i found it in the _gameobjectbyspawnidstore
Crane
Jul 11, 2026 ยท 01:08
Just out of curiosity, why use a WMO as a GO?
The Stranger
Jul 11, 2026 ยท 01:15
Rp stuff
Snowcraft
Jul 14, 2026 ยท 01:22
So I want to modify the Blade Flurry rogue talent for my server's rogue tanks, turning it from a simple attack speed buff to something with a big cleave attack and also increase the extra target buff to 4 more targets.
...So, how come I can't find that secondary effect in the spell effects for the spell? Is is a scripted spell, or does that just not work for some reason?
Snowcraft
So I want to modify the Blade Flurry rogue talent for my server's rogue tanks, tโฆ
Srzm
Jul 14, 2026 ยท 07:06
See
src/server/scripts/Spells/spell_rogue.cpp . ๐
Snowcraft
Jul 14, 2026 ยท 12:16
Found it, thanks. ^_^
Snowcraft
Jul 14, 2026 ยท 12:30
class spell_rog_blade_flurry : public AuraScript
{
PrepareAuraScript(spell_rog_blade_flurry);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK });
}
bool CheckProc(ProcEventInfo& eventInfo)
{
_procTargets.clear();
Unit* caster = eventInfo.GetActor();
// Use a list to collect nearby enemies.
// 5.0f is the search radius, you can adjust this as needed.
caster->GetAttackableUnitsInRange(_procTargets, 5.0f);
// Remove the primary target so you don't hit them twice
_procTargets.remove(eventInfo.GetActionTarget());
// Limit the list to 4 targets
if (_procTargets.size() > 4)
_procTargets.resize(4);
return !_procTargets.empty();
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
if (DamageInfo* damageInfo = eventInfo.GetDamageInfo())
{
CastSpellExtraArgs args(aurEff);
args.AddSpellBP0(damageInfo->GetDamage());
for (Unit* target : _procTargets)
{
GetTarget()->CastSpell(target, SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK, args);
}
}
}
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_rog_blade_flurry::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_rog_blade_flurry::HandleProc, EFFECT_0, SPELL_AURA_MOD_MELEE_HASTE);
}
std::list<Unit*> _procTargets;
Would this code work to replace the single target cleave effect with multi-target cleave?
Celeby
Jul 15, 2026 ยท 21:26
Does anyone know why creatures start "flying" instead of keep moving on the ground?
Am using MovePoint with generate path true. Could the issue be that the point is too far away? because i notice the issue only for the further points at mine/bs...
https://youtu.be/QCNuDD07y8A
ะกะผะตัะดะพะบััะป
Jul 15, 2026 ยท 22:01
mmaps? :power_of_jeebus:
Celeby
Does anyone know why creatures start "flying" instead of keep moving on the grouโฆ
stoneharry
Jul 15, 2026 ยท 22:10
Documentation regarding generating and debugging movement map (pathfinding) data for custom maps in WoW. - stoneharry/mmaps-for-custom-maps
Shauren
Jul 15, 2026 ยท 22:17
that isnt a custom map, its just plain retail arathi basin on retail client
Celeby
Jul 15, 2026 ยท 22:32
Yeah itโs not a custom map and I am using mmaps
Celeby
Jul 15, 2026 ยท 22:33
As seen in the video, some bots do move correctly at ground level while others not.
Shauren
Jul 15, 2026 ยท 22:36
there is a length limit for a single path
Shauren
Jul 15, 2026 ยท 22:36
you cant MovePoint more than 300y
Shauren
Jul 15, 2026 ยท 22:36
if you do then mmaps arent used for that movement
Celeby
Jul 15, 2026 ยท 22:50
Ouch
Celeby
Jul 15, 2026 ยท 22:51
Whatโs the reason for that? Performance?
Celeby
Jul 15, 2026 ยท 22:52
Does that count also for the other movement generators? Would chase movement have the same limitation if a target is beyond 300y? This is just curiosity as I donโt have a use case for this ๐
Shauren
Jul 15, 2026 ยท 22:54 (edited)
yes, its a low level limit inside PathGenerator class (the one that does actual path generation, not a movement generator whose role is to determine where/how to get there)
Celeby
Jul 15, 2026 ยท 22:55
OK thanks! Then I guess I can either increase that limit or connect multiple pointsโฆ
Shauren
Jul 15, 2026 ยท 22:56
you can use MovePath for this (because it does it in multiple steps)
Shauren
Jul 15, 2026 ยท 22:56 (edited)
as long as distance between each waypoint isnt this large
Celeby
Jul 15, 2026 ยท 23:10
Yes I thought about movepath as well but that would be somewhat restrictive since my bots may be in different places, in combat at one capture point or another. Iโd like the bot to always pick the closest point and that would not be possible if the bot is moving on a path is it?
Celeby
Jul 15, 2026 ยท 23:11
But maybe I can combine the 2 modes based on where the bot is.
Celeby
Jul 15, 2026 ยท 23:12
Or separate paths between capture points lol but that means am gonna end up with quite some paths
jackpoz
Jul 15, 2026 ยท 23:45
Isn't enough for you to pick a destination and just use the existing methods to make the bots go there ?
jackpoz
Jul 15, 2026 ยท 23:45
Even just using CalculatePath
jackpoz
Jul 15, 2026 ยท 23:47
And always check the path type of the resulting path
jackpoz
Jul 15, 2026 ยท 23:48
TrinityCore Open Source MMO Framework (master = 12.0.7.68453, 3.3.5 = 3.3.5a.12340, cata classic = 4.4.2.60895) - TrinityCore/TrinityCore
jackpoz
Jul 15, 2026 ยท 23:49
It will have values from this enum (as a flag) that give a lot of information
jackpoz
Jul 15, 2026 ยท 23:52
https://github.com/TrinityCore/TrinityCore/blob/fd9c486839d862dbb0a64ae1c42fc98cf57988c7/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp#L149 is an example of how to check that
TrinityCore Open Source MMO Framework (master = 12.0.7.68453, 3.3.5 = 3.3.5a.12340, cata classic = 4.4.2.60895) - TrinityCore/TrinityCore
Celeby
Jul 16, 2026 ยท 09:11
@jackpoz thanks for the pointers. However this may go above my head ๐ but looking at calculate path, it still uses the same defined MAX_PATH_LENGTH which leads to ~300y maximum path. So even if I would generate a path from origin to destination I would have the same issue when the path is longer than 300y. Or am I not understanding this right?
Shauren
Jul 16, 2026 ยท 09:16
that is correct
Celeby
Jul 16, 2026 ยท 09:18
Thanks Shauren! Something tells me I should avoid wanting to generate paths longer than that anyway... especially when i have many bots around
jackpoz
Jul 16, 2026 ยท 09:28
Maybe this shouldn't build a shortcut https://github.com/TrinityCore/TrinityCore/blob/fd9c486839d862dbb0a64ae1c42fc98cf57988c7/src/server/game/Movement/PathGenerator.cpp#L592
TrinityCore Open Source MMO Framework (master = 12.0.7.68453, 3.3.5 = 3.3.5a.12340, cata classic = 4.4.2.60895) - TrinityCore/TrinityCore
jackpoz
Jul 16, 2026 ยท 09:28
Dunno if it still provides a partial valid path
