HTML5 export (browser/Telegram WebApp) loads scene but no gameplay—player & enemies frozen, no input, no projectiles

Hi everyone,

I’m encountering a really strange issue with my Godot 4.4 game when I export it to HTML5. In the desktop editor everything works perfectly: my player moves, enemies spawn and follow their AI, bullets fire, physics and UI all function as expected. However, as soon as I open the same export either in a standard web browser or inside Telegram’s WebApp container, the game “starts” but none of the gameplay features run:

The Level 1 scene displays correctly (background, HUD, enemies appear, timer counts down).

Player input is completely ignored—no movement or shooting.

Enemies remain static; no AI, no pathfinding, no physics updates.

No bullets or projectiles spawn.

The browser’s JS console shows no errors or warnings.

I have confirmed that the .pck and .wasm files load fully and are served with correct MIME types (application/wasm, application/octet-stream).

What I’ve tried so far:

  1. Disabled WebAssembly threads (Thread Support = Off) so physics runs on the main thread.

  2. Ensured Run on Separate Thread (Physics 2D/3D) is set to False in Project Settings.

  3. Applied a custom HTML template with , full‑screen CSS, and Telegram’s requestFullscreen() / expand() calls.

  4. Verified Stretch Mode = canvas_items, Aspect = expand for 100 % canvas coverage.

  5. Monitored Network tab via chrome://inspect—both .wasm and .pck deliver in full, no CORS or 404s.

  6. Exported with a fresh version-buster suffix in the URL to avoid caching.

Despite all that, the game still “freezes” at the first level when run in HTML5, though it runs fine locally in the editor. Since there are no errors and the assets clearly load, I suspect it’s something subtle about the runtime environment—perhaps a hidden dependency, an uninitialized singleton, or a mis‑order of script execution in HTML5 builds.

Environment:

Godot 4.4.stable

HTML5 export (threads off, WebGL 2, GLES2 fallback)

Testing on Chrome Android, Safari iOS, and Telegram Android WebView (WebView Debug enabled)

Questions:

Has anyone seen a similar issue where the game logic runs in editor but not in HTML5 despite no console errors?

Could there be hidden parse‑errors (e.g. broken dependencies) that don’t surface in the console?

Are there recommended debug steps or logging hooks for Godot’s HTML5 runtime to trace physics or input failures?

Any pointers on potential HTML5‑specific quirks (e.g. preload() vs load(), singleton init order) that might block gameplay code?

I’m really stuck here—any advice, suggestions, or pointers to known pitfalls would be hugely appreciated!

Thanks in advance! :blush:

You can check the game on pc for e.g. with chrome: www.bodenzone.de
Mobile wont let you start the game (mobile tap function disabled)