Jump to content
FORUMS
Stan

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

Recommended Posts

33219-pirates-day-sep-19.jpg

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.

5VON1L3LM22F1702949709254.png

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.

Guest
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.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Starym
      We have another triple entry in the hotfix ledger, as Radiant Echoes gets more improvements in retail, while Season of Discovery and Cata Classic get additional class changes.
       August 7  (Source)
      Player-characters
      Steady Flight should no longer be removed after entering an Arena. Quests
      We tuned up the Prototype Shredder MK-03 so that “Eye for an Eye” can be completed. Radiant Echoes Event
      Increased Flightstone and upgrade Crest drop rates in the event. Reduced the HP scaling on all event bosses so that they should be killable in a more-reasonable timeframe. Developers’ notes: This includes both ‘minibosses’ (e.g. Hogger, Thorim) and final bosses (e.g. Remembered Onyxia, Ragnaros). Season of Discovery
      Hunter Heart of the Lion once again has a 100 yard range. Warrior The Focused Rage rune will now correctly reduce the cost of Meathook by 3. Cataclysm Classic
      Fixed an issue where Faerie Fire did not deal intended amounts of threat when used on NPCs targeting another unit.
    • By Stan
      Due to a bug introduced with the War Within pre-patch, some players are receiving item level 250 gear from the weekly cache.
      We've seen numerous reports on Reddit and the official forums that the Last Hurrah weekly quest on live servers drop low-level gear for some players. Apparently, the bug was first introduced with the War Within pre-patch two weeks ago and still hasn't been fixed.
      Here's an example of a low item level drop from the Cache of Awakened Treasures by Omnifox.

    • By Starym
      Week 2 brings quite a few changes, as Hunters in particular rise up, while Shadow has a really bad time. The top 3 remains the same and very consistent, so let's jump in and see what's going on.
      Warcraft Logs Points
      The below logs are based on POINTS, and not actual damage or healing, meaning they log the timed completion for the specs, with higher keys getting more points, obviously. The time in which the dungeon is completed is also a factor, but a much, much smaller one, as it grants very few points if you do it significantly faster than just any in-time completion. We're also using the Normalized Aggregate Scores numbers, for clarity, meaning the top spec is marked as 100 and then the rest are ranked in relation to that peak point.
      All Keys
      95th percentile DPS
      The top 3 remains quite stable with the Evoker-Paladin-Warrior trio reigning supreme. We see the first change of the week right after that though, as Frost DK continues its upward march in dungeons as well as in raids, taking 4th from Elemental. Both DKs are on the rise, as Unholy also moves a spot up, taking advantage of Shadow's precipitous 5-spot fall to the bottom of the top 10. Arms remains stable as two Hunters burst in, Beast Mastery taking 8th and Marksmanship 9th, as Frost Mage disappears down towards the bottom. Speaking of the bottom, Devastation gets some new roommates there, as Outlaw and Destruction fall and give Enhancement and Feral a break.

      Mythic+ All Keys 95th Percentile Data by Warcraft Logs.
      All Percentiles
      As with the top percentiles, the top 3 remains solid, but 4th is immediately changed, thanks to Shadow's massive drop in performance this week. The Priest loses even more ground here, falling 9 spots into 13th, opening 4th up for Arms. Beast Mastery moves even higher here, grabbing 5th and moving in front of Elemental and Frost DK, as Marksmanship brings up the rear and completes the Hunter sandwich in 8th. Affliction breaks into the top 10, just ahead of Unholy which dropped to the final spot.

      Mythic+ All Keys All Percentile Data by Warcraft Logs.
      Raw DPS U.GG DPS Rankings
      U.gg's rankings are based on actual DPS taken from Warcraft Logs data, focusing on the top players and span the past two weeks.
      Frost DK finds itself on top in the raw DPS rankings, as Augmentation isn't calculated properly here. Fury and Arms grab the next two spots, moving ahead of Ret, and the Fyr'alath wins continue in 5th, where Unholy finished the legendary axe streak. Even Survival joins the Hunter good times in 8th, where all three specs gather, just ahead of Balance who closes out the top 10.
      Mythic+ All Keystone DPS rankings by u.gg.
       
       
      For even more in-depth data for each individual key head on over to Warcraft Logs. And if you're interested in more info on the specs themselves you can always check out our class guides (updated for the pre-patch), as well as our Mythic+ guides and Mythic+ tier list.
    • By Stan
      For the next two weeks, the Archaeology quest for Spirit of Eche'ro is available on live servers, so don't forget to get the rare mount before it's gone for 6 months!
      How to Get the Spirit of Eche'ro Mount
      1. Download MapCoords or some other add-os that displays coordinates in the game.
      2. Teleport to Azsuna from the Stormwind/Orgrimmar Portal Room or use your Dalaran Hearthstone to reach Dalaran (Legion) if you have one in your inventory.
      3. Seek out Archaeology Trainer Dariness the Learned in Dalaran at 41,26 and learn Archaeology if you already haven't.
      4. Accept The Right Path quest from the Archaeology Trainer and make your way to Thunder Totem in Highmountain.
      5. Talk to Lessah Moonwater to accept Laying to Rest. For the quest, you must collect 600 Bone Fragments of Eche'ro by rotating between four digsites in Highmountain. The exact locations with coords are outlined below.
      Digsite 1: Darkfeather Valley (50, 44) Digsite 2: Dragon's Falls (58, 72) Digsite 3: Path of Huin (44, 72) Digsite 4: Whitewater Wash (39, 65) it takes roughly around 2 hours to get the mount.
      Spirit of Eche'ro
      "The spirit of Huln Highmountain's pet moose."

      Hurry up! You only have until August 21, 2024, to get the mount!
    • By Stan
      MoP Remix characters that will transfer over to retail will receive a gear boost!
      With Patch 11.0.2 now live on Public Test Realms, you can copy over MoP Remix characters from retail! It appears all MoP Remix characters will receive a character boost so you can dive straight into action when the War Within expansion launches.

      We can't unfortunately log in to the game with the MoP Remix char on the PTR so we can't confirm the Item Level of gear for max level characters. However, keep in mind that the gear boost will scale with your level, so if you're below max cap, you will receive gear appropriate to your current level.
      When Can We Expect MoP Remix Characters to Transfer to Retail?
      MoP Remix ends on August 19, so we assume the characters will need to be transferred to retail by August 22 when Early Access begins.
×
×
  • Create New...