Jump to content

Does the Mysterious Patch 10.2.6 Introduce a New Vampire Survival Mode?

Recommended Posts


World of Warcraft's Patch 10.2.5 datamining reveals a Vampire Survival Mode, fueling speculation about its link to the secretive Patch 10.2.6 event coming to both retail and Classic.

Wowhead dropped a bombshell back on November 20th last year, uncovering a Vampire Survivors game mode hidden in the Patch 10.2.5 files which got me thinking: what if it's connected to the mysterious Patch 10.2.6 event? 

So, what's the scoop on Patch 10.2.6? As of now, it's shrouded in mystery. The patch was flagged with a pirate emblem in the 2024 roadmap.


Adding to the that, Executive Director Holly Longdale recently announced that Patch 10.2.6 would skip PTR testing altogether, aiming for a March release. Holly's blog post hinted that the event would launch simultaneously in both Classic and retail versions of the game, requiring only a subscription, not the Dragonflight expansion.

For those not in the loop, Vampire Survivors is a minimalist, time survival game peppered with roguelite elements. Players control a character that auto-attacks, battling relentless monster waves. The goal? Hold out as long as you can to unlock new characters, weapons, and relics for future runs.

Fast forward to November 2023, and Wowhead's datamining venture revealed entries related to the Vampire Survivors mode in the SceneScriptPackage database table of Patch 10.2.5.

Curiosity got the better of me today, so I dove back into the database to see if those entries were still around. Interestingly, the entry "10.2.5 - Vampire Survival Mode - Game Mode - Client Scene (OJF)" had been renamed to "10.2.5 - VS Mode - Game Mode - Client Scene (OJF)", and the other entry had vanished.

Digging deeper, I explored the SceneScriptText table for any mention of "VS Mode", synonymous with Vampire Survival Mode. This search unearthed some interesting developer-oriented documentation on the mode.

  • VS Mode - Init (OJF) - -- Any data or game stat we want to initialize before starting the game loop -- We want to fun the game in global coordinates not client scene relative scene:SetRelativeCoords(false) ; -- Set up the mouse cursor tracking board -- evenly spaced actors of rectangles that we check if they're selected (don't care about interact) -- allows us to aim the player based on mouse position -- smaller actors for more tracking fidelty improves aiming -- load player data GetPlayerDisplayAndPosition() ; -- set up UI -- what level did they select -- load and set up the level -- start the game
  • VS Mode - Main (OJF) - -- entry print ( "Starting Client Scene" ) ; --TODO: investigate what is available to us using getfenv() -- it is used to hook up to mouse click events so I wonder if there is a way to get get the cursor position this way as well --local fenv = getfenv() ; -- TESTING SpawnFodder( CREATURE_DATA_ZOMBIE, playerPosition + Vector:New( 10, 10, 0 ) ) ; -- main loop while (sceneRunning) do -- update player position (and display) so it can be used in other places GetPlayerDisplayAndPosition() ; SpawnFodder( CREATURE_DATA_ZOMBIE, playerPosition + Vector:New( 10, 10, 0 ) ) ; -- process server events ProcessSceneEvents() ; -- update rate Wait(UPDATE_RATE_GAME) ; -- there is some kind of lag on Wait() giving us an extra iteration after reaching our target gameTimer = gameTimer + UPDATE_RATE_GAME ; if gameTimer >= (10 - UPDATE_RATE_GAME) then sceneRunning = false ; end end -- exit Client Scene print ( "Exiting Client Scene" ) ; scene:EndScene() ;
  • VS Mode - Data - Creatures - Scourge (OJF) - -- Creature data arrays for Scourge levels -- Data description: -- FACING_RATE: How often the creature turns to look at the target, higher value updates more frequently -- SPAWN_VALUE: Points this spawn counts for when being spawned. Useful for scaling wave sizes depending on current level and wave values. -- Fodder CREATURE_DATA_ZOMBIE = { CREATURE_ID = 212301, SCALE = 1, FACING_RATE = 5, HEALTH = 1, DAMAGE = 1, SPEED = 5, ATTACK_DELAY = 1, SPAWN_VALUE = 1, SPELLS = { }, LOOT_TABLE = LOOT_TABLE_DEFAULT, } ; -- Boss
  • VS Mode - Data - Player - Weapons (OJF)-- Data for basic player weapons and attacks
  • VS Mode - Globals (OJF) - ----------------------------------------------------------------------------------------- -- DEFINES -- Notation: VARIABLE_NAME ----------------------------------------------------------------------------------------- -- how long every frame waits at the end before looping -- in milliseconds, default minimum is 0.1 UPDATE_RATE_GAME = 0.1 ; UPDATE_RATE_CREATURE = 0.5 ; MAX_ENEMIES = 100 ; MAX_ITEMS = 100 ; MAX_OBSTACLES = 100 ; ----------------------------------------------------------------------------------------- -- Variables -- Notation: variableName ----------------------------------------------------------------------------------------- -- while true, runs the client scene. Exits Client Scene on false sceneRunning = true ; -- is the game running or paused gamePause = false ; -- gets updated as we move the cursor around the selection grid cursorPosition = Vector:New( 0, 0, 0 ) ; -- player values playerLevel = 1 ; playerHealth = 1 ; playerSpeed = 1 ; playerDisplay = nil ; playerPosition = Vector:New( 0, 0, 0 ) ; -- game values gameLevel = 1 ; gameTimer = 0 ; -- entity arrays gameEnemies = {} ; gameItems = {} ; gameObstacles = {} ;
  • VS Mode - Data - Player - Stats (OJF) - -- Starting player data PLAYER_BASE_HEALTH = 100 ; PLAYER_BASE_SPEED = 1 ;
  • VS Mode - Event Handler (OJF) - -- handle client scene events here -- process an event function ProcessEvent(event) print ( "ProcessEvent") ; if not event then print ( "ProcessEvent: event invalid" ) ; return false ; end print ( event ) ; print ( event.type ) ; end -- scene events handler function function ProcessSceneEvents() local event = scene:PeekEvent() ; while event.type ~= SceneEventType.None do ProcessEvent( event ) ; -- event has been processed, pop and move on to the next one scene:PopEvent() ; event = scene:PeekEvent() ; end end
  • VS Mode - Creatures - Behavior - Coroutines (OJF) - -- coroutines to add to creature entities to control their behavior function AddFodderAICoroutine(...) scene:AddCoroutineWithParams(FodderAICoroutineFunction, ...) ; end function FodderAICoroutineFunction( actor, health, speed ) -- creature AI update loop -- updates at a rate of UPDATE_RATE_CREATURE while health > 0 do -- Update our movmement target actor:StopMovement() ; -- update movement target RunToLocation( actor, speed, playerPosition.x, playerPosition.y, playerPosition.z, nil, true ) ; -- Wait Wait( UPDATE_RATE_CREATURE ) ; end end
  • VS Mode - Functions - Spawning (OJF) - -- functions to spawn entities -- returns the entity on successful spawn, and also registers the entity to the global entity tracking array function SpawnFodder( creatureData, pos ) local enemy = nil ; -- spawn the actor local createData = ActorCreateData:New() ; -- default data for all VS Mode Enemies createData.groundSnap = true ; createData.interactible = true ; createData.selectable = true ; createData.floatingTooltip = false ; createData.aoiSettings.range = ActorAOIRange.Normal ; createData.overrideReaction = ReactionType.Hostile ; createData.scale = creatureData.SCALE ; createData.creatureID = creatureData.CREATURE_ID ; createData.transform = Transform:New(pos, 0) ; enemy = scene:SpawnActor( createData ) ; -- start moving towards the player RunToLocation( enemy, creatureData.SPEED, playerPosition.x, playerPosition.y, playerPosition.z, nil, true ) ; -- face the player on spawn -- set up the AI update coroutine AddFodderAICoroutine( enemy, creatureData.HEALTH, creatureData.SPEED ) ; -- track entity in the global array if enemy ~= nil then table.insert( gameEnemies, enemy ) ; end return enemy ; end -- TODO function SpawnItem( itemData, pos ) print ( "SpawnItem" ) ; local item = nil ; -- track entity in the global array if item ~= nil then table.insert( gameItems, item ) ; end return item ; end -- TODO function SpawnObstacle( obstacleData, pos ) print ( "SpawnObstacle" ) ; local obstacle = nil ; -- track entity in the global array if obstacle ~= nil then table.insert( gameObstacle, obstacle ) ; end return obstacle ; end
  • VS Mode - Data - Items (OJF) - -- data arrays for items that players can collect -- XP collectible items ITEM_DATA_XP_SMALL = { MODEL_FILEDATA_ID = 1, XP = 1, }; ITEM_DATA_XP_MEDIUM = { MODEL_FILEDATA_ID = 1, XP = 10, }; ITEM_DATA_XP_LARGE = { MODEL_FILEDATA_ID = 1, XP = 100, };
  • VS Mode - Data - Creatures - Loot Tables (OJF) - -- arrays of loot tables we can assign to creatures LOOT_TABLE_DEFAULT = { { ITEM = ITEM_DATA_XP_SMALL, CHANCE = 0.1 } , } ;
  • VS Mode - Creatures - Behavior - Functions (OJF) - -- behavior functions for creatures that do not have to run as coroutines
  • VS Mode - Data - Creatures - Spells (OJF) - -- spells for creatures
  • VS Mode - Level 000 (OJF) - -- template/test level for VS Mode Client SceneEventType -- level timer -- level up timer -- level enemies: spawn level, amounts -- level bosses -- level items -- level obstacles -- level power ups
  • VS Mode - Functions - Player (OJF) - -- functions related to the player -- updates the global variables playerDisplay and playerPosition -- we only want to do this once per update if possible function GetPlayerDisplayAndPosition() playerDisplay = scene:GetActivePlayerDisplay() ; if playerDisplay ~= nil then playerPosition = playerDisplay:GetPosition() ; else playerPosition = nil ; end end
  • VS Mode - Functions - Game (OJF) - -- game related functions
  • VS Mode - Documentation (OJF) - --[[ Author: XXX Contact: XXX Text documentation only for how this client scene works and can be used by other devs. Do not implement code here. UNDER CONSTRUCTION NOT INTENDED FOR GENERAL USE Game mode currently is not functional. Should not crash but functionality is minimal. Intended to be used in conjunction with a vehicle to handle controling the players movement and camera. Current progress: Can spawn a Zombie creature that runs at the player. Client scene persists for 10 seconds then shuts down. ]]--
    • I've censored the author's name and contact on purpose so that spam bots don't pick it up.

A thorough check of the Season of Discovery and Wrath Classic database files confirmed that these specific scenescript text entries are exclusive to the retail client.

With this data in hand, we can start piecing together what the Vampire Survivors mode might bring to the World of Warcraft universe.

The Vampire Survival Mode introduces a survival game mechanic where players aim and move using their mouse, facing waves of zombie enemies. The game initializes with global coordinates for precision, tracks player position for aiming, and involves real-time combat with various weapons and abilities. Enemies have diverse stats and behaviors, requiring strategic management. The mode features a progression system through XP items, dynamic event handling, and a main gameplay loop with spawning enemies and updating player actions.

Do you reckon the Vampire Survival Mode has something to do with the mysterious Patch 10.2.6? Drop your thoughts in the comments below!

Share this post

Link to post
Share on other sites

If it has anything to do with vampires, then it's rather odd choice to mark it with "pirate flag". It was implied to be some type of event, so not an ongoing feature, but maybe something time limited?

Share this post

Link to post
Share on other sites

The speculation of what this event could be could be (double entendre) fuel for one hundred more events! Amazing what a little suspense can accomplish. My bet is still pirates. They did claim it was based somewhat on community speculation and the pirate theme for next x pac was the big "miss" in expansion predictions. There really wasn't any speculation about vampires or survival style games.

Hopefully there will be a raid boss involved (or at least a world boss) but it should be fun.

Share this post

Link to post
Share on other sites

I've learned my lesson about not hyping myself up via speculation because the actual reveal will never live up to the hype.

Share this post

Link to post
Share on other sites
On 2/12/2024 at 11:01 PM, Arcling said:

If it has anything to do with vampires, then it's rather odd choice to mark it with "pirate flag". It was implied to be some type of event, so not an ongoing feature, but maybe something time limited?

The mode would be similar to a game called Vampire Survivors, but likely it wouldn't have anything to do with vampires. 

Share this post

Link to post
Share on other sites
13 hours ago, VictorVakaras said:

The mode would be similar to a game called Vampire Survivors, but likely it wouldn't have anything to do with vampires. 

I wonder how it would work in WoW. Would it still involve top-down perspective? Not sure how game's engine will handle it. I think the closest we had to something like this might have been that Plants and Zombies minigame from Cataclysm.

Edited by Arcling

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Stan
      We're looking at the most popular specs for Mythic+ this week. Check out how your spec's performing!

      The following post is based on data taken from u.gg, which has combined thousands of parses from live servers.
      The Most Popular Specializations for Mythic+ in Season 3 Week 15
      This week's affixes are Fortified, Entangling, and Bolstering.
      The Most Popular DPS Specializations
      Retribution Paladin - 16.9% Fire Mage - 9.2% Augmentation Evoker - 8.9% Havoc Demon Hunter - 8.1% Shadow Priest - 6.3% Outlaw Rogue 6.2% Demonology Warlock - 4.5% Beast Mastery Hunter - 4.4% Fury Warrior - 3.9% Balance Druid - 3.1% Windwalker Monk - 2.9% Destruction Warlock - 2.3% Enhancement Shaman - 2.0% Frost Mage - 2.0% Arms Warrior - 1.9% Elemental Shaman - 1.9% Unholy Death Knight - 1.8% Arcane Mage - 1.6% Frost Death Knight - 1.6% Feral Druid - 1.5% Assassination Rogue - 1.5% Survival Hunter - 1.5% Marksmanship Hunter - 1.5% Devastation Evoker - 1.5% Affliction Warlock - 1.5% Subtlety Rogue - 1.4%
      The Most Popular Tanks
      Vengeance Demon Hunter - 55.9% Protection Paladin - 18.6% Blood Death Knight - 8.8% Guardian Druid - 6.4% Protection Warrior - 5.5% Brewmaster Monk 4.8%
      The Most Popular Healers
      Mistweaver Monk - 31.4% Restoration Druid - 20.2% Discipline Priest 17.0% Restoration Shaman - 11.6% Holy Priest - 8.9% Holy Paladin - 6.3% Preservation Evoker - 4.6%
    • By Staff
      Blizzard is nerfing Mythic Tindral with next week's maintenance, reducing his health and the health of Fiery Vines by 10%.
      During our next scheduled weekly maintenance, we’ll make the following adjustments:
      Amirdrassil, the Dream’s Hope
      Tindral Sageswift Tindral’s health reduced by 10% in Mythic difficulty. Fiery Vines’ health reduced by 10% in Mythic difficulty.
    • By Stan
      During one raid, we got to see the Fyr'alath bad luck protection buff work wonders, yielding 12 drops from a single Fyrakk kill.
      Sacolas shared an interesting shot on Reddit, showing 12 Fyr'alaths dropping simultaneously! This might just be the record for the most Fyr'alath the Dreamrender drops we've seen from a single kill to date. Sadly, the original poster missed out on the quest item, and looted instead a Greater Ember of Fyr'alath. Here's hoping for better luck next week!

      What's the highest number of Fyr'alaths you've seen drop from one kill? Let us know in the comments below!
      Source: Reddit
    • By Stan
      The World Quest for Fathom Dweller is finally up on EU servers after almost a year. Check out how to summon Kosumoth the Hungering and get the mount before others do!
      Here's what the mount looks like.

      The quest won't pop up by itself. Instead, you must unlock it.
      First, download a WoW Addon that shows you coordinates to figure out where you are and where you need to be. Something like MapCoords or TomTom will do. Head to Broken Shore 37/71 and talk to Drak'thul. Head to 57/52 and enter the Musty Cave. Click on the Mound of Dirt that is hard to notice. You will receive Weathered Relic. Return to 37/71 and talk to Drak'thul again and go through all his dialog options. Now comes the more difficult part. You must click on 10 Hungering Orbs in the exact order. If another player clicks on them, it takes approximately 20 minutes for them to become clickable again, so they have a cooldown. Here are coords for all the Hungering Orbs: Azsuna: 37/37: The first orb is located in a secret cave behind the tree. Stormheim: 33/75: The second orb is located in a cave where Kangaxx is. Val'sharah 41/80 Find another secret cave located inside a tree. The third orb is guarded by an Elemental.  Broken Shore 31/76: You will find an underwater cave that hides the fourth orb. Azsuna 59/12: Behind the crystals is yet another secret cave. The fifth orb is located on the ground next to a broken table. Stormheim 67/14: Near the underwater shark is a crevice that leads to a cave that contains the sixth orb. Try to avoid the steams, as they deal high damage. This orb may be the most difficult for you to get. Highmountain 52/36: Enter the Haglands and follow the path to your right. Above halfway down (55/36), you want to jump down to a ledge with a cave. Do not enter the first cave since it's a decoy. Instead, turn right and head to the actual cave to find the seventh orb. Azsuna 54/26: Under the bushes near a tree is another secret cave. The eighth orb is somewhat hidden, too, located in a bush near a pillar inside the cave. Broken Isles World Map 50/91: Find underwater wreckage to get through a secret cave. This one is hard to explain, so we advise you to check out MadSeasonShow's video (timestamp). You will find the ninth orb to your right. Broken Shore 37/71: Head back to Drak'thul and click the final orb on the table behind him. After you click it, the DANGER: Kosumoth the Hungering World Quest spawns at 46/49 on the Broken Isles World Map. Kill Kosumoth to receive Fathom Dweller. Note that you have a chance to get the Hungering Claw instead of the mount. It just so happens that the reward is the mount right now. Check out the video guide by MadSeasonShow for more details!
    • By Staff
      Blizzard have announced that they will be significantly changing the Oracle Priest Hero Talent tree, following player feedback and internal testing. It seems the tree's focus will no longer be on replacing Power Infusion.
      Oracle Hero Talents (Source)
      Thank you to everyone who provided feedback on the Oracle Hero Talent tree.
      One of our goals in sharing these Hero Talent trees so early in the process was to give us adequate time to evaluate and change things as necessary. After reading your feedback, discussing the talent tree, and playtesting the concept internally, we’ve decided to revisit the Oracle tree, especially regarding its focus on replacing Power Infusion.
      Thanks again!
  • Create New...