Starcraft 2 Preparing Game Data Link [extra Quality] Info
It sounds like you are stuck on the "Preparing Game Data" loading screen, or you are looking for the correct way to manually link or repair your game data.
This is a very common issue with StarCraft 2, usually caused by the Battle.net app forgetting where the game is installed or a corrupted cache file.
Here is the proper guide to fixing the "Preparing Game Data" infinite loading or linking error. starcraft 2 preparing game data link
Common pitfalls
- Relying on unstable string identifiers that change between versions.
- Not handling locale-specific data (names vs. invariant IDs).
- Missing dependency resolution causing runtime errors.
- Failing to update links after renaming or removing assets in patches.
Summary Checklist
- Exit Battle.net completely from the system tray.
- Delete
%appdata%\Battle.net\Cache.
- Run Scan and Repair from the app options.
- If moving drives, use "Locate Game" in Settings.
Examples (conceptual)
- Map trigger references an ability by name → PrepareGameDataLink resolves name to ability ID and stores it in the trigger data so the engine can call it during play.
- Mod build step converts unit templates referenced by custom scripts into numeric tokens used by the runtime to spawn those units.
- Networked custom game ensures all clients and server use identical linked references so object replication uses the same IDs.
1. Reset Winsock
Sometimes Windows network protocols prevent the app from linking data.
- Press
Windows Key.
- Type
cmd.
- Right-click "Command Prompt" and select Run as Administrator.
- Type the following command and press Enter:
netsh winsock reset
- Restart your computer.
Scenario A: The Game is Stuck on "Preparing Game Data" (Infinite Loading)
If you open StarCraft 2 and the loading bar gets stuck or loops endlessly: It sounds like you are stuck on the
Step 3: Unit-to-unit linkage (causality)
Required for:
- Which building produced which unit?
- Which unit killed which unit?
- Upgrade unlocked which ability?
Implement via event chaining:
UnitBornEvent(unit=Marine #5, creator=Barracks #1)
UnitDiedEvent(unit=Marine #5, killer=Zergling #7)
Store as edge list:
source_unit_id, target_unit_id, relation, timestamp, game_id