# Web Player settings

> Refer to the UI description of Web Player settings.

Use **Player** settings to know how Unity [builds](/engine/6000.5/manual/platform-specific/webgl/building-distribution/building.md) and displays your final Web application. For a description of the general **Player** settings, refer to [Player](/engine/6000.5/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings.md#general) settings.

To access Web Player settings:

* From the Unity main menu, go to **Edit** > Editor > **Player**. The **Player** settings window appears.
* Select the **Web** tab to view the Web Player settings.


**Web Player settings:**
![](/api/media?file=/engine/6000.5/media/images/class-PlayerSettingsWebGL.png)

You can find documentation for the properties in the following sections:

* [Resolution and Presentation](#Resolution)
* [Splash Image](#Splash)
* [Other Settings](#Other)
* [Publishing Settings](#Publishing)

> **Note:**
>
> Although the **Icon** panel appears on the Web **Player** settings, there are no icon settings available because Web games don't use icons.

For more information about Web **Publishing Settings**, refer to [Web Building and Running](/engine/6000.5/manual/platform-specific/webgl/building-distribution/building.md).

## Resolution and Presentation

Use the **Resolution and Presentation** section to customize the aspects of the screen's appearance in the [Resolution](#resolution) section.


**Resolution section for the Web Player platform:**
![](/api/media?file=/engine/6000.5/media/images/WebGLResolutionandPresentationWindow.png)

### Resolution

You can customize the screen mode and default size of the Web canvas element by editing the following options:

| **Setting**               | **Function**                                                                                                   |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Default Canvas Width**  | Set the width of the Web canvas element.                                                                       |
| **Default Canvas Height** | Set the height of the Web canvas element.                                                                      |
| **Run In Background**     | Enable this option to allow your content to continue to run when the canvas or the browser window loses focus. |

### Web template

Select a template to use for your Web Project:

* The **Default** page is a simple white page with a loading bar on a grey canvas.
* The **Minimal** page has only the necessary boilerplate code to run the Web content.
* The **PWA** page has a Editor including a web manifest file and service worker code.

You can use your own template to run your game in an environment similar to the finished game using the instructions in [Web templates](/engine/6000.5/manual/platform-specific/webgl/building-distribution/templates.md).

## Splash Image

Use the **Virtual Reality Splash Image** setting to select a custom splash image for [XR](/engine/6000.5/manual/xr.md) displays. For information on common Splash Screen settings, refer to [Splash Screen](/engine/6000.5/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings-splash-screen.md).


**Splash screen settings for virtual reality.:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetPCSplash.png)

## Other Settings

This section allows you to customize a range of options organized into the following groups:

* [Rendering](#Rendering)
* [Configuration](#Configuration)
* [Shader Variant Loading](#ShaderVariantLoading)
* [Optimization](#Optimization)
* [Stack Trace](#Logging)
* [Legacy](#Legacy)

### Rendering

Use these settings to customize how Unity renders your game for the Web platform.


**Rendering Player settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetWebGLOther-Rendering.png)

| **Setting**                    | **Function**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Color Space**                | Choose which color space to use for rendering. For more information, refer to [Color spaces](/engine/6000.5/manual/materials-and-shaders/graphics-color/color-spaces.md.md).* **Gamma**: Gamma color space is typically used for calculating lighting on older hardware restricted to 8 bits per channel for the framebuffer format. Even though monitors today are digital, they might still take a gamma-encoded signal as input.- **Linear**: Linear color space rendering gives more precise results. When you select to work in linear color space, the Editor defaults to using \[sRGB] ([https://en.wikipedia.org/wiki/SRGB](https://en.wikipedia.org/wiki/SRGB)) sampling. If your [Textures](/engine/6000.5/manual/materials-and-shaders/textures/textures-getting-started/textures.md.md) are in linear color space, you need to work in linear color space and deactivate sRGB sampling for each Texture. |
| **Auto Graphics API**          | Enables the default Web graphics API (WebGL 2.0). By default, this option is enabled.Disable this option to display the **Graphics API** list where you can manually pick and reorder the graphics APIs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Graphics API**               | Prioritize the first API on this list as the default web graphics API for your project. If a browser doesn't support that API or there's another issue, Unity tries the next API on the list (if one exists) as a fallback.Click and drag entries on the list to reorder them. For more information about graphics APIs for Web, refer to [Web graphics APIs](/engine/6000.5/manual/platform-specific/webgl/develop/graphics.md).This property is available only when **Auto Graphics API** is disabled.                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Texture compression format** | Choose **DXT**, **ETC2**, or **ASTC** to set the texture compression format for the Web platform. For information on how to pick the right format, refer to [Texture compression format overview](/engine/6000.5/manual/materials-and-shaders/textures/textures-getting-started/texture-compression-formats.md). To create builds for desktop and mobile browsers from a script, refer to [Texture Compression in Web](/engine/6000.5/manual/platform-specific/webgl/develop/texture-compression.md).                                                                                                                                                                                                                                                                                                                                                                                                                |
| **Shader Precision Model**     | Select the default precision of samplers and the definition of `half` used in shaders. For more information, refer to [ShaderPrecisionModel](/engine/6000.5/script-reference/unityeditor/shaderprecisionmodel.md).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

### Configuration


**Configuration settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetWebGLOther-Config.png)

{ /*  This table uses single sourcing. For information on how to edit it, see https://confluence.unity3d.com/display/DOCS/Single-sourcing+table+rows.  */ }

| **Property**                              | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Scripting Backend**                     | Choose the scripting backend you want to use. The scripting backend determines how Unity compiles and executes C# code in your Project.* **Mono**: Compiles C# code into .NET Common Intermediate Language (CIL) and executes that CIL using a Common Language Runtime. For more information, refer to [Mono](/engine/6000.5/manual/scripting/compilation-and-code-reload/script-compilation/backends/mono.md.md).- Editor: Compiles C# code into CIL, converts the CIL to C++ and then compiles that C++ into native machine code, which executes directly at runtime. For more information, refer to [IL2CPP](/engine/6000.5/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp.md.md).                                                                                                                                                                                                                                                                                                                             |
| **API Compatibility Level**               | Choose which .NET APIs you can use in your project. This setting can affect compatibility with third-party libraries. However, it has no effect on Editor-specific code (code in an Editor directory, or within an Editor-specific Assembly Definition).**Tip:** If you're having problems with a third-party assembly, you can try the suggestion in the [API Compatibility Level](#apiComp) section.* **.Net Framework**: Compatible with the .NET Framework 4 (which includes everything in the .NET Standard 2.0 profile plus additional APIs). Choose this option when using libraries that access APIs not included in .NET Standard 2.0. Produces larger builds and any additional APIs available aren't necessarily supported on all platforms. For more information, refer to [Referencing additional class library assemblies](/engine/6000.5/manual/scripting/environment-and-tools/overview-of-dot-net-in-unity/dotnet-profile-assemblies.md.md).- **.Net Standard 2.1**: Produces smaller builds and has full cross-platform support. |
| **Editor Assemblies Compatibility Level** | Select which .NET APIs to use in your Editor assemblies.* **.NET Framework**: Compatible with the .NET Framework 4 (which includes everything in the .NET Standard 2.1 profile plus additional APIs). Choose this option when using libraries that access APIs not included in .NET Standard 2.1. Produces larger builds and any additional APIs available aren't necessarily supported on all platforms. For more information, refer to [Referencing additional class library assemblies](/engine/6000.5/manual/scripting/environment-and-tools/overview-of-dot-net-in-unity/dotnet-profile-assemblies.md.md).- **.NET Standard**: Compatible with [.NET Standard 2.1](https://docs.microsoft.com/en-us/dotnet/standard/net-standard). Produces smaller builds and has full cross-platform support.                                                                                                                                                                                                                                               |
| **C++ Compiler Configuration**            | Choose the C++ compiler configuration used when compiling IL2CPP generated code.* **Debug**: The debug configuration turns off all optimizations, which makes the code quicker to build but slower to run.* **Release**: The release configuration enables optimizations so that the compiled code runs faster, the binary size is reduced, but compilation takes longer.- **Master**: Master configuration enables all possible optimizations, squeezing every bit of performance possible. For instance, on platforms that use the MSVC++ compiler, this option enables link-time code generation. Compiling code using this configuration can take significantly longer than it does using the Release configuration. The recommended best practice is to build the shipping version of your game using the Master configuration if the increase in build time is acceptable.                                                                                                                                                                   |
| **Allow downloads over HTTP**             | Indicate whether to allow downloading content over HTTP. The default option is **Not allowed** due to the recommended protocol being HTTPS, which is more secure.* **Not Allowed**: Never allow downloads over HTTP.* **Allowed in Development Builds**: Only allow downloads over HTTP in development builds.- **Always Allowed**: Allow downloads over HTTP in development and release builds.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Active Input Handling**                 | Choose how to handle input from users.* **Input Manager (Old)**: Use the original [Input](/engine/6000.5/manual/input/legacy/class-input-manager.md.md) settings.* **Input System Package (New)**: Uses the new [input system package](https://docs.unity3d.com/Packages/com.unity.inputsystem@latest).- **Both**: Use both systems.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

#### Shader Variant Loading

Use these settings to control how much memory shaders use at runtime.

| **Property**                | **Description**                                                                                                                                                                                                                                                                                                        |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Default chunk size (MB)** | Sets the maximum size of compressed shader variant data chunks Unity stores in your built application for all platforms. The default is `16`. For more information, refer to [Shader loading](/engine/6000.5/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-reduce-stalling/shader-loading.md.md). |
| **Default chunk count**     | Sets the default limit on how many decompressed chunks Unity keeps in memory on all platforms. The default is `0`, which means there's no limit.                                                                                                                                                                       |
| **Override**                | Enables overriding **Default chunk size** and **Default chunk count** for this build target.                                                                                                                                                                                                                           |
| **Chunk size (MB)**         | Overrides the value of **Default chunk size (MB)** on this build target.                                                                                                                                                                                                                                               |
| **Chunk count**             | Overrides the value of **Default chunk count** on this build target.                                                                                                                                                                                                                                                   |

#### API Compatibility Level

You can choose your mono API compatibility level for all targets. Sometimes a third-party .NET library uses functionality that's outside of your .NET compatibility level. To understand what is going on in such cases, and how to best fix it, try following these suggestions:

1. Install [ILSpy](https://www.microsoft.com/en-us/p/ilspy/9mxfbkfvsq13?cid=msft_web_chart\&activetab=pivot:overviewtab) for Windows.
2. Drag the .NET assemblies for the API compatibility level that you're having issues with into ILSpy. You can find the problematic files under `Frameworks/Mono/lib/mono/YOURSUBSET/`.
3. Drag in your third-party assembly.
4. Right-click your third-party assembly and select **Analyze**.
5. In the analysis report, inspect the **Depends on** section. The report highlights anything that the third-party assembly depends on, but that's not available in the .NET compatibility level of your choice in red.

### Script Compilation


**Script compilation settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/ProjectSettingsScriptCompilation.png)

| **Property**                      | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Scripting Define Symbols**      | Sets custom compilation flags.For more details, refer to [Platform dependent compilation](/engine/6000.5/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/platform-dependent-compilation.md.md).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| **Additional Compiler Arguments** | Specifies additional arguments to pass to the Roslyn C# compiler. Enter one valid compiler argument per list entry. To create a new entry, select **Add (+)**. To remove an entry, select **Remove (-)**. Select **Apply** to include newly added arguments in future compilations. Select **Revert** to reset the list to the most recent applied state. Arguments must use the `csc.exe` syntax, for example: `-warnaserror`. For the full list of supported Roslyn compiler options, refer to [C# compiler options](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/) in the Microsoft documentation.You can also supply additional command-line arguments to the C# compiler with a `csc.rsp` [response file](https://learn.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files?view=vs-2022) in your project's `Assets` folder. For more information on creating a response file, refer to [Creating a response file](/engine/6000.5/manual/scripting/environment-and-tools/overview-of-dot-net-in-unity/dotnet-profile-assemblies.md.md#create-response-file). **Note**: Defining the same arguments in both the **Additional Compiler Arguments** list and a response file can cause errors and unintended behavior. |
| **Suppress Common Warnings**      | Indicates whether to display the C# warnings [CS0169](https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0169) and [CS0649](https://docs.microsoft.com/en-us/dotnet/csharp/misc/CS0649).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Allow 'unsafe' Code**           | Enables support for compiling [‘unsafe’ C# code](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/unsafe) in a pre-defined assembly (for example, `Assembly-CSharp.dll`).For Assembly Definition Files (`.asmdef`), click on one of your `.asmdef` files and enable the option in the Inspector window that appears.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Use Deterministic Compilation** | Indicates whether to prevent compilation with the `-deterministic` C# flag. With this setting enabled, compiled assemblies are byte-for-byte the same each time they're compiled.For more information, refer to [C# Compiler Options that control code generation](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/deterministic-compiler-option).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

### Optimization


**Optimization settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetWebGLOther-Optimization.png)

{ /*  This table uses single sourcing. For information on how to edit it, see https://confluence.unity3d.com/display/DOCS/Single-sourcing+table+rows.  */ }

| **Property**                | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Managed Stripping Level** | Choose how aggressively Unity strips unused managed (C#) code. When Unity builds your app, the Unity Linker process can strip unused code from the managed DLLs your Project uses. Stripping code can make the resulting executable smaller, but can sometimes remove code that's in use.For more information about these options and bytecode stripping with IL2CPP, refer to [ManagedStrippingLevel](/engine/6000.5/script-reference/unityeditor/managedstrippinglevel.md.md).* **Minimal**: Use this to strip class libraries, UnityEngine, Windows Runtime assemblies, and copy all other assemblies.* **Low**: Remove unreachable managed code to reduce build size and Mono/IL2CPP build times.* **Medium**: Run UnityLinker to reduce code size beyond what **Low** can achieve. You might need to support a custom link.xml file, and some reflection code paths might not behave the same.- **High**: UnityLinker will strip as much code as possible. This will further reduce code size beyond what Medium can achieve but managed code debugging of some methods might no longer work. You might need to support a custom link.xml file, and some reflection code paths might not behave the same. |

### Stack Trace

Select the logging settings for the Web platform.


**Logging settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetPCOther-Logging.png)

Select your preferred stack trace method by enabling the option that corresponds to each Log Type (**Error**, **Assert**, **Warning**, **Log**, and **Exception**) based on the type of logging you require. For more information, refer to [stack trace logging](/engine/6000.5/manual/scripting/debugging-and-diagnostics/stack-trace.md.md).

| **Property**   | **Description**                 |
| -------------- | ------------------------------- |
| **None**       | No logs are ever recorded.      |
| **ScriptOnly** | Logs only when running scripts. |
| **Full**       | Logs all the time.              |

### Legacy

Enable the **Clamp BlendShapes (Deprecated)** option to clamp the range of blend shape weights in [Skinned Mesh Renderers](/engine/6000.5/manual/assets-and-media/asset-types/mesh/components-reference/class-skinned-mesh-renderer.md).


**Legacy settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/PlayerSetPCOther-Legacy.png)

## Publishing settings

Use the Publishing Settings to configure how Unity builds your Web platform application. For example, you can choose to enable the browser cache to store its files in your build.


**Publishing settings for the Web platform:**
![](/api/media?file=/engine/6000.5/media/images/WebGLBuilding-PublishingSettings.png)

| **Property**               | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Compression Format**     | Choose the compression format to use for release build files. The options are: Gzip, Brotli, and Disabled (none). This option doesn't affect development builds.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Name Files As Hashes**   | Enable this option to use an MD5 hash of the uncompressed file contents as a file name for each file in the build.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Data caching**           | Enable this option to automatically cache your contents Asset data on the user's machine so it doesn't have to be re-downloaded on subsequent runs (unless the contents have changed).Caching is implemented using the IndexedDB API provided by the browser. Some browsers might implement restrictions around this, such as asking the user for permission to cache data over a specific size.                                                                                                                                                                                                                                                                                 |
| **Debug Symbols**          | Select from the available options to specify how debug symbols are added in your build.**Off**: Select this option if you don't want any debug symbols to be added in your build.**External**: Select this option to store the debug symbols in a separate file that you can download from the server when an error occurs. It's recommended to choose this option for release builds.**Embedded**: Select this option to embed the debug symbols in a WASM file. This option helps preserve debug symbols and perform demangling (displaying the original function names) of the stack trace when an error occurs. By default, demangling support is available for this option. |
| **Decompression Fallback** | Include decompression fallback code for build files in the loader. Use this option if you're unable to configure server response headers according to the selected compression method.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Power Preference**       | Set a preference for which GPU to use when rendering on a multi-GPU device. Note that the browser might ignore this preference.**Default**: Let the browser choose the GPU configuration.**Low Performance**: Request that the browser use the integrated GPU to prioritize power savings.**High Performance**: Request that the browser use the external GPU to prioritize rendering performance.                                                                                                                                                                                                                                                                               |

### WebAssembly Language Features

Use this section to customize the WebAssembly language features for your Web application.

| **Property**                                 | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Enable Exceptions**                        | Choose how to handle unexpected code behavior (generally considered errors) at runtime.**None**: Any exception thrown causes your content to stop with an error. Select this option if you don’t need any exception support. It gives the best performance and smallest builds.**Explicitly Thrown Exceptions Only** (default): Capture exceptions that are explicitly specified from a `throw` statement in your scripts and make sure `finally` blocks are called. This option makes the generated JavaScript code from your scripts longer and slower. This might only be an issue if scripts are the main bottleneck in your project.**Full Without Stacktrace**: Capture exceptions that are explicitly specified from `throw` statements in your scripts, Null References, and Out of Bounds Array accesses.**Full With Stacktrace**:Same as **Full Without Stacktrace**, but also captures stack traces. Unity generates these exceptions by embedding checks for them in the code, so this option decreases performance and increases browser memory usage. Only use this option for debugging, and always test in a 64-bit browser. |
| **Enable Native C/C++ Multithreading**       | Enable this option to allow for multithreading in your Web build. This setting is required for both Unity's internal native C/C++ multithreading and for running C# jobs in parallel with the Burst compiler. For a complete explanation of the prerequisites and technical requirements for this feature, refer to [Introduction to Web multithreading](/engine/6000.5/manual/platform-specific/webgl/develop/web-multithreading/intro.md).This feature requires a browser that supports WebAssembly threads (`SharedArrayBuffer`).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Target WebAssembly 2023**                  | If enabled, the generated WebAssembly code targets WebAssembly 2023, which is a Unity-coined name for a selection of newer WebAssembly language features. These features include: sign-extension opcodes, non-trapping fp-to-int instructions, bulk memory, JS BigInt integration, `WebAssembly.Table`, native WebAssembly exceptions, and SIMD (requires Chrome ≥ 91 (May 2021), Firefox ≥ 89 (June 2021) or Safari ≥ 16.4 (March 2023)). If disabled, targets the original WebAssembly **MVP** feature set. **Note**: WebAssembly 2023 is the current standard and will eventually be required. Disabling this option isn't recommended.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Use WebAssembly.Table**                    | Enable this option if you want the Web build to target the `WebAssembly.Table` language feature for faster JS-Wasm interop and build times. When this option is disabled, the Web build targets the older deprecated Emscripten `-sDYNCALLS` model for backwards compatibility with older Unity Web JS plug-ins. It's recommended to enable this option for new projects that don't use any old incompatible JavaScript plug-ins, and to disable it if you're using `.jslib` files that rely on the old `dynCall()` mechanism.**Note:** `WebAssembly.Table` isn't backwards compatible. When targeting `WebAssembly.Table`, use the Emscripten runtime function `getWasmTableEntry(functionPtr)` to convert a function pointer to a callable JS function, or the Emscripten code template `{{{ makeDynCall('sig', 'variableName') }}}(...args);` to make a function pointer call. The earlier Emscripten runtime function family `dynCall_sig(ptr, ...args);` is no longer supported with `WebAssembly.Table`. For code examples, refer to the Emscripten documentation.                                                                     |
| **Enable BigInt**                            | Enable this option to target the `WebAssembly.BigInt` language feature and use the `BigInt` type in WebAssembly, which results in faster build times and slightly smaller code size. When this option is disabled, the `BigInt` type isn't available in WebAssembly. The generated WebAssembly code relies on the BigInt ABI for function signatures containing 64-bit variables. Disable this option if you want to target old browsers that don't support the Wasm BigInt feature. It's recommended to enable this option for new projects, fast build iteration times, and to disable it if targeting backward compatibility with older browsers is important.**Note:** The Wasm BigInt feature requires at least Chrome 85 (Aug 25, 2020), Firefox 78 (Jun 30, 2020), Safari 14.5 (Apr 26, 2021), or newer.                                                                                                                                                                                                                                                                                                                              |
| **Initial Memory Size**                      | The initial size of the WASM heap memory in megabytes (MB). By default, this is set to 32 MB. If **Memory Growth Mode** is set to **None**, then this is also the maximum size of WASM heap memory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Memory Growth Mode**                       | Choose the growth mode for the WASM heap memory from the following options. The recommended option is **Geometric**.**None**: The WASM heap memory has a fixed size configured in **Initial Memory Size**.**Linear**: The WASM heap memory increases by a fixed amount configured by **Linear Memory Growth Step**.**Geometric**: The WASM heap memory increases relative to the current heap size depending on the factor configured in **Geometric Memory Growth Step** and **Geometric Memory Growth Cap**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Maximum Memory Size**                      | The maximum size of the WASM heap memory in MB. By default, this is set to 2048 MB, which is the recommended setting. You can enter a memory size up to 4096 MB, but there are known Firefox and Chrome bugs for builds over 2048 MB. This option is only available for the **Memory Growth Mode** **Linear** or **Geometric**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Linear Memory Growth Step**                | Advanced tuning option to control the WASM heap growth step in MB. By default, this is set to 16 MB. A growth step of 16 MB indicates that the heap is increased by 16 MB each time it needs to grow. Only available if **Memory Growth Mode** is set to **Linear**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Geometric Memory Growth Step**             | Advanced tuning option to control the WASM heap growth factor relative to the current heap size. By default, this is set to 0.2. A growth factor of 0.2 means that the size of the heap is increased by 0.2 \* currentHeapSize each time the heap needs to grow. Only available if **Memory Growth Mode** is set to **Geometric**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Geometric Memory Growth Cap (MB)**         | Advanced tuning option to control the upper limit for a heap growth step in MB. By default, this is set to 96 MB. A growth cap of 96MB means that the size of the heap is increased by at most 96 MB. Only available if **Memory Growth Mode** is set to **Geometric**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Enable Submodule Stripping Compatibility** | If enabled, produces a build that can be used with the submodule stripping functionality of the Web Stripping Tool package. If disabled, produces a build that is not intended to be submodule stripped. It is best to leave this option disabled whenever not using the Web Stripping Tool package, or generated code size can be adversely affected.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

### Show Diagnostic Overlay setting

To help optimize Web builds and diagnose potential problems, you can view diagnostics information (currently limited to memory usage) by enabling this setting. Once enabled, an icon appears on the build that displays an overlay with data about the build. It's available for both Development and Release builds.

1. To view the diagnostics information, enable the **Show Diagnostics Overlay** option in the Player settings window (**File > Build Profiles > Player Settings > Publishing Settings**).

   On desktop, the Diagnostics icon appears on the footer of the Web canvas:


   **Diagnostics button on the footer of the canvas:**
   ![](/api/media?file=/engine/6000.5/media/images/webgl-diagnostic-desktop.png)

   On a mobile device, the Diagnostics icon appears on the bottom-right of the screen:


   **An Android phone displaying the diagnostics button:**
   ![](/api/media?file=/engine/6000.5/media/images/webgl-diagnostic-mobile.png)

2. Click the **Diagnostics** icon. An overlay appears showing the JavaScript memory, which is further broken down to display WASM heap memory usage:


**The Diagnostics overlay shows the JavaScript memory distribution and the WASM heap memory usage:**
![](/api/media?file=/engine/6000.5/media/images/webgl-diagnostic-overlay.png)

The following diagnostics appear on the overlay screen:

| **Property**                      | **Function**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Total JS Memory**               | The current size of the JavaScript (JS) heap, including unused memory not allocated to any JS objects in megabytes.**Used JS Memory**:Memory in use by JS objects in megabytes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Total WASM heap memory**        | Linear memory representing the entire heap of the C/C++ Unity engine that's compiled with Emscripten, including unallocated memory in megabytes.**Used WASM heap**: The space of the WASM heap that's allocated in megabytes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Page Load Time to First Frame** | The total time from the beginning of page load until the first application frame rendering is complete in milliseconds.**Page Load Time**: The time it takes from page load to get to the beginning of rendering the first frame, including downloads, compilation, parsing, and the main application in milliseconds.**Code download time**: The time it takes for the build to download the code file in milliseconds.**Load time of asset file(.data)**: The time it takes for the build to download the .data file binary, in milliseconds.**WebAssembly startup time**: The time it takes between loading the JavaScript framework and reaching Unity's C++ main(). This is close to compilation time of WASM, in milliseconds.**Game startup time**: The time it takes to finish executing Unity's C++ main() to the first frame of main, which typically contains the loading of the first game scene in milliseconds. |
| **Average FPS (10 s)**            | The average of last 10 frames per second.**Current frames per second**: The number of frames rendered on screen per second.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Number of Frame Stalls**        | The number of rendered frames that took unusually long to complete compared to their previous frames.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

### Important note about JS Memory

The JS Memory information is obtained using the [performance.memory API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory), which is currently only supported on Chrome or Edge. There are no other APIs available that return this information for Safari or Firefox.

> **Note:**
>
> The `performance.memory` API isn't supported on iOS devices.

On browsers where this API isn't supported, a message showing N/A appears.


**A N/A message appears on browsers that don't support performance.memory API:**
![](/api/media?file=/engine/6000.5/media/images/webgl-wasm-memory.png)

## Additional resources:

* [Texture Compression in Web](/engine/6000.5/manual/platform-specific/webgl/develop/texture-compression.md)
* [Web templates](/engine/6000.5/manual/platform-specific/webgl/building-distribution/templates.md)
* [Splash Screen](/engine/6000.5/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings-splash-screen.md)
* [Texture compression format overview](/engine/6000.5/manual/materials-and-shaders/textures/textures-getting-started/texture-compression-formats.md)
