The application manifest controls which features and backends are linked into the engine. Excluding unused features is recommended because it decreases the final binary size of your game. The application manifest also contains build-time options such as the minimum supported HTML5 browser versions and WebAssembly memory settings.


In game.project, assign the manifest to Native Extensions -> App Manifest.
Select which Box2D implementation to include:
The Box2D solver settings are version-specific. See the Box2D project settings for details.
Include the Bullet 3D physics implementation. It is included by default; disable this setting to exclude 3D physics.
Control rig and model functionality, or select None to exclude model and rig completely. (See Model documentation).
Excluded the video recording capability from the engine (see the start_record message documentation).
Control when profiler functionality is linked into the engine:
The app-manifest setting controls whether the profiler code is linked into a build. The settings under profiler in game.project control profiler behavior at runtime. Learn how to use the available facilities in the Profiling manual.
The sound controls determine which sound system and decoders are linked into the engine.
Exclude all sound playing capabilities from the engine.
Exclude support for WAV sound resources.
Exclude support for Ogg Vorbis sound resources.
Include support for Ogg Opus sound resources. The Opus decoder is excluded by default, so this option must be enabled before .opus resources can be played. See the Sound manual for supported formats.
Exclude all input handling from the engine.
Exclude the Live Update functionality from the engine.
Exclude image script module link from the engine.
Exclude types script module link from the engine.
Exclude the Basis Universal texture compression library from the engine.
Use the deprecated Android Support Library instead of Android X. More info.
Select which graphics backends to include for each platform. A combined choice includes both backends so the preferred backend can fall back when it is unavailable.
| Field | Platforms | Choices | Default |
|---|---|---|---|
| Graphics | Windows and Linux | OpenGL, Vulkan, OpenGL & Vulkan | OpenGL |
| Graphics (macOS) | macOS | OpenGL, Metal, Vulkan, OpenGL & Metal, OpenGL & Vulkan | Vulkan |
| Graphics (iOS) | iOS | OpenGL, Metal, Vulkan, OpenGL & Metal, OpenGL & Vulkan | OpenGL |
| Graphics (Android) | Android | OpenGL+Vulkan, OpenGL, Vulkan | OpenGL+Vulkan |
| Graphics (HTML5) | HTML5 | WebGL, WebGPU, WebGL & WebGPU | WebGL |
On Linux ARM64, the OpenGL choice uses the OpenGL ES backend. The Android combined default prefers Vulkan when available and falls back to OpenGL ES.
If enabled (true), it will allow to use runtime generation for SDF type fonts, when using True Type Fonts (.ttf) in the project. Read more details in the Font Manual.
The YAML fields minSafariVersion, minFirefoxVersion, and minChromeVersion specify the minimum browser versions targeted by Emscripten. The current defaults and minimum supported versions differ between the non-threaded and threaded targets:
| Target | Safari | Firefox | Chrome |
|---|---|---|---|
wasm-web |
101000 |
40 |
45 |
wasm_pthread-web |
150000 |
79 |
75 |
Specify overrides in the context for the relevant target. The threaded target also has additional hosting requirements. See the Emscripten settings reference for MIN_SAFARI_VERSION, MIN_FIREFOX_VERSION, and MIN_CHROME_VERSION.
YAML field name: initialMemory
Default value: 33554432
The initial amount of memory allocated for the web application, in bytes. The value must be a multiple of the WebAssembly page size (64 KiB). See Emscripten’s INITIAL_MEMORY setting.
This option supplies the compile-time default. The html5.heap_size value in game.project overrides it at runtime.
YAML field name: stackSize
Default value: 5242880
The application stack size, in bytes. See Emscripten’s STACK_SIZE setting.