RANKED HOUSE EDITION
⚠️ Your browser is blocking save data in this iframe.
Use Save Code to back up and restore your progress.
🌈 RAINBOW EVENT ACTIVE – SPECTREX IS SPAWNING!
CRYSTURTLE
◼ CRYSTAL · INDEX REWARD
PYRADRAKE
▲ CRYSTAL · INDEX REWARD
CRYSTALURK
⬡ CRYSTAL · INDEX REWARD
WASD / Arrow Keys to move  ·  5 Floors + Hidden Void Sanctum  ·  Type Advantages  ·  Level up to 100  ·  Bi-Weekly Rainbow Event

CHOOSE YOUR STARTER

Your first companion on the journey.

BRONZE Floor 1 0 / 10 → Silver
💚 Heal in: –
💾 Saved
WASD / Arrow Keys to move
🌈 SPECTREX IS HERE! Find them!
TRAINER REX
Let's battle! ⚔️
Wild Battle
ENEMY
Lv. –
– / –
VS
YOUR MON
Lv. –
– / –
XP – / –
Prepare for battle!

🎒 YOUR MONSTERS

Equipped · tap a box mon to swap

📖 MONSTER INDEX

🎨 AVATAR EDITOR

⚔️ RANKED TRAINERS

Defeat trainers to earn Rank Points and unlock higher floors. Trainers respawn stronger each time!

📊 TYPE CHART

The five types form a circle of strengths and weaknesses.

🌈 RAINBOW deals normal (1×) damage to all types · same-type duels deal 0.75×
🔥 Super Effective = 2× damage  |  ❄️ Not Very Effective = 0.5× damage
CRYSTURTLE
◼ SQUARE · Crystal
✨ INDEX COMPLETE ✨
You've discovered every monster in the Index.
Three crystallized legends have emerged from the depths!
CRYSTURTLE
◼ SQUARE  ·  Crystal
A crystallized tortoise forged from living diamond. Its geometric shell deflects all but the fiercest blows.
PYRADRAKE
▲ TRIANGLE  ·  Crystal
A crystallized fire drake whose angular wings blaze with prismatic flame and searing crystal shards.
CRYSTALURK
⬡ HEXAGON  ·  Crystal
A crystallized void lurker born from pure abyss energy. Its hexagonal shell refracts void light into prismatic shadow.
✓ Already claimed — check your 🎒 Mon box!
LEVEL UP!
12
✨ EVOLVED! ✨
) is in the DOM // How To Play wiring — elements exist in DOM above this script block (function(){ const htpOverlay=document.getElementById('htp-overlay'); document.getElementById('btn-htp-open').addEventListener('click',()=>htpOverlay.classList.add('open')); document.getElementById('htp-close').addEventListener('click',()=>htpOverlay.classList.remove('open')); htpOverlay.addEventListener('click',e=>{ if(e.target===htpOverlay) htpOverlay.classList.remove('open'); }); })(); document.addEventListener('DOMContentLoaded',()=>{ const overlay=document.getElementById('savecode-overlay'); const ta=document.getElementById('savecode-textarea'); const msg=document.getElementById('savecode-msg'); const openBtn=document.getElementById('btn-savecode-open'); const closeBtn=document.getElementById('savecode-close'); const copyBtn=document.getElementById('btn-savecode-copy'); const importBtn=document.getElementById('btn-savecode-import'); if(!overlay) return; function openModal(){ if(GS.party.length) ta.value=exportSaveCode(); else ta.value=''; msg.textContent='';msg.style.color='var(--muted)'; overlay.classList.add('open'); } if(openBtn) openBtn.addEventListener('click',openModal); // Also expose from game screen nav const navSave=document.getElementById('btn-manualsave'); if(navSave) navSave.addEventListener('dblclick',openModal); if(closeBtn) closeBtn.addEventListener('click',()=>overlay.classList.remove('open')); overlay.addEventListener('click',e=>{if(e.target===overlay) overlay.classList.remove('open');}); if(copyBtn) copyBtn.addEventListener('click',()=>{ const code=GS.party.length?exportSaveCode():(ta.value||''); if(!code){msg.style.color='#ff8888';msg.textContent='Nothing to copy — start a game first!';return;} ta.value=code; navigator.clipboard?.writeText(code).then(()=>{ msg.style.color='#4cff8a';msg.textContent='✓ Copied to clipboard!'; }).catch(()=>{ ta.select();document.execCommand('copy'); msg.style.color='#4cff8a';msg.textContent='✓ Selected — press Ctrl+C / Cmd+C to copy.'; }); }); if(importBtn) importBtn.addEventListener('click',()=>{ const code=(ta.value||'').trim(); if(!code){msg.style.color='#ff8888';msg.textContent='Paste a save code first!';return;} if(importSaveCode(code)){ saveGame(false); msg.style.color='#4cff8a';msg.textContent='✓ Save restored! Starting game…'; setTimeout(()=>{ overlay.classList.remove('open'); setScreen('s-game');updateFloorUI();updatePartyUI();startHealTimer(); },900); }else{ msg.style.color='#ff8888';msg.textContent='✗ Invalid code. Make sure you copied the full string.'; } }); })();
✨ A CRYSTAL MONSTER APPEARED ✨

💾 SAVE CODE

Copy this code to back up your progress.
Paste it back any time to restore your save.

HOW TO PLAY
MOVEMENT
W A S DMove up / left / down / right
↑ ← ↓ →Arrow keys also work
BATTLES
GRASSWalk on grass — encounter every 5–7 steps
TRAINER NPCWalk up to a trainer to battle
⚔ TILEStep on it to fight the floor trainer
MON SPRITEWalk into a monster for a direct fight
IN BATTLE
MOVEPick an attack — types deal bonus damage
CATCHWeaken wild monster first, then catch it
RUNFlee wild battles (70% success rate)
PROGRESSION
+5 PTSEvery trainer defeat earns 5 rank points
RANKBronze → Silver → Gold → Platinum → Diamond
STAIRS ▲Enough points unlock the next floor
HEALING
AUTOParty heals 20% HP automatically every 1 minute
💚 BARTimer shown at the top — counts down to next heal
SAVING
AUTOProgress saves automatically after every action
SAVE CODECopy a code to restore your save anywhere