Your first game
Why my game was stopped at upload and how to fix it
On klyo a game loads nothing from other servers and sends nothing to them, has no own login, and shows ads only through klyo. Public CDN files we add to your package ourselves. For the rest, the studio card gives each reason, its fix and an AI instruction.
Before you start
- The game is uploaded to the studio at dev.klyo.pl and the preview shows a red card.
- The game files on your computer or in your AI tool, so you can change them and upload again.
Step by step
Read the card from the top
Each numbered line says what we found and what to put in its place. Fix them all before uploading again, then the next check passes the first time.
Let your AI do it
Press Copy the instruction for your AI assistant and paste it into ChatGPT, Claude or Gemini together with your game files. The instruction lists the exact changes and the klyo SDK calls to use.
Replace your own login
Every player already has a klyo account. Whatever your game saves in localStorage follows a signed in player to every device by itself, so remove the login and password form. Scores with the player's name come from klyo.score.
Replace PeerJS and other servers
PeerJS shows players each other's IP address and goes through a public server, so it does not work on klyo. Use klyo.online rooms for playing with friends. Firebase, Supabase or PlayFab become klyo.save, klyo.score and klyo.leaderboard.
Remove payments and third-party ads
We place the ads around your game, and once ads start on klyo, 70% of the revenue is yours. Rewards for watching an ad come from klyo.rewardedAd, breaks between levels from klyo.adBreak.
Connect your AI to klyo
Press Connect your AI to klyo or get an API key. A connected AI uploads the fixed version and checks it by itself until nothing is left on the card.
If something goes wrong
There is no index.html in the package
Zip the folder that contains index.html (often dist, build or public), with index.html on top.
The package has several index.html files
One ZIP is one game. Leave one index.html at the top level.
A file is not part of a browser game
We accept pages, scripts, styles, images, sounds, videos, fonts and game data. Remove other files from the package.
A Unity game does not start
A compressed Unity build waits for a server header. In Player Settings, Publishing Settings, set Compression Format to Disabled or turn on Decompression Fallback, then build again.
A file from a CDN is still on the card
The game builds that address while it runs, so we could not see it. Write the address in the code as a full string, or put the file into the package with a relative address.
The game connects to my own match server
Register the server address with your privacy policy in the last step of the wizard. The game goes to review together with the server.
Why can't my game load Google Fonts on klyo?
Every file from another server tells that company the player's IP address and can change after our check. We put files from public CDNs into your package by ourselves, so the game loads them from klyo and works offline too.
Can I keep my own login and accounts?
No. Players already have a klyo account, and their progress in localStorage follows them to every device without any code. klyo.save keeps the full game state if you want more.
Does my AI assistant know these rules?
Yes. The klyo connector gives every AI the same list in klyo_game_requirements, and klyo_game_diagnostics tells it what stopped a package and how to fix it.