Kaleidx Scope gate visibility is determined by the intersection of three server API responses. A gate is only visible and selectable in the game menu if it meets specific criteria across these endpoints:
GetGameEventApi: Must return open event rows for the gate/course event IDs used by the game's static data.GetGameKaleidxScopeApi: Must return a gameKaleidxScopeList row for each gate the user can see. Known gate IDs include:1..6: Original gates7: Prism/Center Tower8: Post-Prism boss gate9: Hope Gate10: Final challenge
GetUserKaleidxScopeApi: Must return a userKaleidxScopeList row for the same gateId.
Visibility Requirements:
The client hides a gate if the user row is missing, the event is closed, or the row has isGateFound = false. To be visible and selectable, a gate requires a JSON object state similar to this:
{
"gateId": 8,
"isGateFound": true,
"isKeyFound": true,
"isClear": false
}
Progression Logic:
For progression past Prism Tower, UpsertUserAllApi must persist upsertUserAll.userKaleidxScopeList by (userId, gateId). AquaDX automatically unlocks gate 7 after gate 6 is cleared. After gate 7 is cleared, the next GetUserKaleidxScopeApi response must include gate 7 as clear and a gate 8 row with both isGateFound and isKeyFound set to true.