It worked on your computer, but after posting it to CraftNova the images are missing, there's no sound, or the screen stays blank. When that happens, the game is most likely trying to use something CraftNova doesn't let games load.
This guide covers what games on CraftNova can and can't load, and how to fix a game that relies on something it can't.
Why some things can't be loaded
CraftNova hosts games made by all kinds of people. So that players can try any of them safely, every game runs in a protected space that can't freely talk to the internet.
That means a game can't send a player's information anywhere or pull in files from unknown sites. The trade-off for creators is that loading things from outside the game is restricted.
What works and what doesn't
| What you want | Works | Doesn't work |
|---|---|---|
| Libraries (Three.js, Phaser, etc.) | Loading from cdnjs or jsDelivr with <script src> | Any other site (unpkg.com, etc.) and import statements |
| Images | Drawing them with Canvas, or embedding them in the HTML (Base64) | Image URLs on the internet, separate image files |
| Sound | Generating it with Web Audio, or embedding it in the HTML (Base64) | Audio URLs on the internet, separate audio files |
| Fonts | Google Fonts and fonts built into the browser | Font files from any other site |
| Networking | — | Sending or receiving data (online leaderboards, chat, etc.) |
In short: everything the game needs goes inside one HTML file. The only exceptions are libraries and fonts from the approved sources (cdnjs, jsDelivr, and Google Fonts).
Common symptoms and causes
Images don't show up, or show as empty boxes
The game is probably loading images from the internet. AIs often write games with a placeholder like "put your image URL here", and those URLs can't be loaded on CraftNova.
No sound
The game may be loading audio files, or it may not be preparing sound correctly for phones. Mobile browsers only allow sound after the player taps the screen. The posting page guidelines include the code pattern that handles this. See Adding sound effects and music for details.
Blank screen, nothing starts
A library probably failed to load, which stops the rest of the game's code. This usually happens when a library comes from an unapproved site or the code uses import statements.
How to find the cause (on a PC)
In Chrome or Edge on a computer, you can check in under a minute.
- Open the game on CraftNova
- Press
F12(orOption+Command+Ion a Mac) - Open the "Console" tab
Red messages containing Content Security Policy or violates mean the game is trying to load something it can't. Copy the message and show it to the AI, and it can tell you exactly what to change.
How to fix it
The most reliable approach is to give the AI the "Game creation guidelines" from the posting page before it starts. They list the libraries you can use and explain how to create assets in code.
To fix a game you already have, paste its HTML with a request like this:
Fix this game so it runs without loading any external files or URLs.
- Draw images with Canvas, or embed them in the HTML as Base64 data URLs
- Generate sound with the Web Audio API
- Load libraries only from cdnjs.cloudflare.com or cdn.jsdelivr.net
with <script src>, and don't use import statements
- Pin exact library versions (no "latest")
- Don't change the gameplay or rulesSummary
- To protect players, games on CraftNova can't freely connect to the internet
- Put everything the game needs inside one HTML file
- Libraries can come from cdnjs and jsDelivr, and fonts from Google Fonts
- If something breaks, show the AI the message from the F12 console
If your game overflows the screen, see Fixing a game that overflows the screen.