What's New
Architecture Refactoring
- GameState module: centralized per-frame game state snapshot (p1/p2, act_st, engines, pause checks) — all scripts now use
GS.*instead of scattered SDK lookups - UIKit module: unified styled headers, buttons, color constants and ARGB→ABGR conversion across all training scripts
- ComboTrials on_frame decomposition: the 1519-line monolithic
on_framehas been broken into 15 named functions with a 121-line orchestrator - SharedHooks cleanup: removed write-only profiler globals, unused cached state
Performance & Stability
- Hoisted dozens of hot-path helpers across all scripts to eliminate per-frame closure allocations
- Replaced anonymous
pcall(function()...end)patterns with directpcall(func, args)calls - Centralized JSON/web-bridge I/O into reusable named functions
- All
json.load_filecalls replaced with_G.safe_load_json(error-safe with registry)
Code Quality
- Translated all French comments to English across 13 scripts (~237 comments)
- Purged ~150 lines of dead code: unused variables, write-only state, uncalled functions, commented-out blocks
- Added pre-commit hook for Lua syntax validation (luaparser)
- Removed ~400 lines of dead code in prior cleanup pass
UI Polish
- Neon borders now rendered via ImGui (removed D2D dependency for borders)
- Consistent button colors and header styling via UIKit theme system
Installation
Extract the zip into your Street Fighter 6 game directory.