Preparing Game Data Starcraft 2 [2021] May 2026

df.to_parquet('sc2_actions.parquet', compression='snappy') If you control the game (bot development):

for event in replay.events: if event.name == 'UnitBornEvent': print(f"Unit event.unit_type_name born at event.second") if event.name == 'PlayerStatsEvent': print(f"Minerals: event.minerals, Vespene: event.vespene") Store actions as a table: preparing game data starcraft 2

from pysc2.env import sc2_env from pysc2.agents import random_agent env = sc2_env.SC2Env( map_name="AbyssalReef", players=[sc2_env.Agent(sc2_env.Race.random)], step_mul=8 ) preparing game data starcraft 2

| Source | Format | Use Case | |--------|--------|----------| | | Binary / MPQ archive | Full game state reconstruction, player actions, timings | | Live game state (via API) | JSON (via SC2API) | Real-time bot development, decision-making models | | Match history (Blizzard API) | JSON | Win rates, map stats, ladder ranking | preparing game data starcraft 2

build_order_vector = [] for second in [60, 120, 180, 240, 300]: units_at_time = [e for e in replay.events if e.second <= second and e.name == 'UnitBornEvent'] build_order_vector.append(len([u for u in units_at_time if 'Zergling' in u.unit_type_name])) Goal: Predict race & opening from first 3 minutes. Extraction Code import sc2reader import pandas as pd replay = sc2reader.load_file("replay.SC2Replay")