The two master-config TextAssets are extracted from the APK with UnityPy and parsed as UTF-8 JSON. Every economy, offer, level, social and meta value on this site is read directly from those files. The level binary catalogue (layout/bake bytes, simulators) is still extracted with the byte-walker and validated cross-version; that detail lives on the Live Config tab and the Validation tab.Два майстер-конфіг TextAssets витягуються з APK через UnityPy і парсяться як UTF-8 JSON. Кожне значення економіки, оферів, рівнів, соціального і мета на цьому сайті прочитано напряму з цих файлів. Бінарний каталог рівнів (layout/bake байти, симулятори) все ще витягується byte-walker і валідований крос-версійно; ця деталь — на вкладках Live-конфіг і Валідація.
The per-level _layout and _bake blobs use a hand-rolled binary format (the rest of the config is plain JSON). To recover their exact format we decompiled SuperPlay's own serializer (LevelLayoutDataSerializer / LevelBakeDataSerializer) with Ghidra — the headless decompiler reveals the precise read order, so each field is read by the struct offset it writes to (no guessing). We also decompiled the win-rate selector (GameDifficultyPickerSystem / EconomyIndexMappingDCXAdaptor) to recover how a player is matched to a difficulty index. Everything below is matched against ground truth before being shown.Per-level блоби _layout і _bake закодовані власним бінарним форматом (решта конфігу — звичайний JSON). Щоб відновити їх точну структуру, ми декомпілювали власний серіалізатор SuperPlay (LevelLayoutDataSerializer / LevelBakeDataSerializer) через Ghidra — headless-декомпілятор показує точний порядок читання, тож кожне поле читається за офсетом структури, в який воно пишеться (без здогадок). Також ми декомпілювали селектор win-rate (GameDifficultyPickerSystem / EconomyIndexMappingDCXAdaptor), щоб відновити, як гравця зіставляють з індексом складності. Усе нижче звірено з ground truth перед показом.
tileMinValue = 0 everywhere, tileMaxValue 6–9), starting stockSize (3–14), and the _bake seed counts per win-rate bucket.Декодовано і валідовано: per-level діапазон граней доміно (tileMinValue = 0 всюди, tileMaxValue 6–9), стартовий stockSize (3–14) і _bake seed-каунти по win-rate-бакетах.tileType (Normal / Big / Wild / Bundle / FlippingDoor / TearOff / Puzzle / Tool / EnergyPower), rotation and position. The struct field order put tileType 4 bytes before where an earlier byte-walker read it — that earlier read picked up a layer byte and over-counted 'Wild' (~24% of tiles). The corrected read is 92.4% Normal; Wild is just 69 tiles in the whole game. Validated tile-for-tile against in-game screenshots.Тип плитки виправлено через Ghidra: tileType кожної плитки (Normal / Big / Wild / Bundle / FlippingDoor / TearOff / Puzzle / Tool / EnergyPower), поворот і позиція. Порядок полів у структурі ставить tileType на 4 байти раніше, ніж його читав старий byte-walker — той читав байт шару і перелічував 'Wild' (~24% плиток). Виправлене читання: 92,4% Normal; Wild — лише 69 плиток на всю гру. Звірено по-плитково зі скрінами.EconomyIndex by a nearest-win-rate lookup keyed on (target win-rate, genie tier) — not a hard balance threshold. The player's free-token balance only feeds the dp_*_Balance formula terms, which are 0% in this config, so balance is currently a dormant lever. Detailed on the WR Engine & Segments tab.Селектор win-rate декодовано: рушій зіставляє гравця з індексом складності EconomyIndex пошуком найближчого win-rate за ключем (цільовий win-rate, genie-тір) — а не жорстким порогом балансу. Баланс безкоштовних токенів живить лише члени dp_*_Balance, що тут 0%, тож баланс — сплячий важіль. Деталі на вкладці WR-рушій і сегменти.ReadVersion1 layout decoded & validated: the per-tile blocker graph (ushort[][], one list per tile), preset tile starting-states, guaranteedStockSize, arrangementParameterConfigKey, and isScrollableLevel + scrollableLevelSegmentsCount (scrollable flag matches the '…Scrollable' names on all 10,322 levels).Повний layout ReadVersion1 декодовано і валідовано: per-tile граф блокерів (ushort[][]), стартові стани preset-плиток, guaranteedStockSize, arrangementParameterConfigKey і isScrollableLevel + scrollableLevelSegmentsCount (scrollable-прапор збігається з назвами '…Scrollable' на всіх 10 322 рівнях).