Garry's Mod Wiki

Chromium Web Renderer

This page is a work-in-progress. Additions and improvements are welcome.

Description

Garry's Mod includes the Chromium Embedded Framework (CEF) web rendering engine. As of 2025 it is CEF 86 on almost every GMod build, replacing the former Awesomium (Chromium 17).

The web renderer is used by the Main Menu, Loading Screen, and the HTML / DHTML panels.

Awesomium is still used on some Linux systems. See versions below for details. CEF will replace this last remaining Awesomium integration in future.

Versions

Since 2025, GMod is using CEF 86 on all supported platforms and branches, except for Linux's main/dev branches where it still uses Awesomium.

On all MacOS and some Linux systems, GMod crashes on launch. Third-party utility GModPatchTool, which updates CEF to version 137, fixes the launch crash on these platforms.

By Platform/Branch

Platform [Branch] Included Web Renderer Status
Windows (all branches) CEF 86 Stable
Linux [main/dev] Awesomium
(Chromium 17)
Crashes on load for many users but works for others.
Will be replaced with CEF when Gmod's 64bit Linux builds reach dev.
Linux [x86-64] CEF 86 Crashes on load. Requires GModPatchTool to run the game, which updates it to CEF 137.
MacOS (only exists in x86-64 branch) CEF 80 Crashes on load for all users. Requires GModPatchTool to run the game, which updates it to CEF 137.

By Web Engine

Web Renderer Used by
Awesomium (Chromium 17) Some Linux users on main/dev. No Windows users.
No Mac users.
CEF 86 All Windows users at a minimum (all branches). Likely no Linux users.
No Mac users.
CEF 137 All MacOS users need x86-64+GModPatchTool to run the game.
Most Linux users, via x86-64+GModPatchTool.
Some Windows users optionally use GModPatchTool, not required to run game.
-

Web development

Detecting browser

Don't base browser support on detecting a specific Chrome version (eg 86) or branch, as this won't be accurate for some users and for future GMod updates.

Check for Awesomium instead. Example:

var IS_AWESOMIUM = navigator.userAgent.toLowerCase().indexOf("awesomium") != -1;

If IS_AWESOMIUM is true, you can run your legacy fallback code, or show a warning message about how the user needs to be using CEF.

If IS_AWESOMIUM is false, the user is running at least CEF 86 or any future newer version. You can safely run your more modern code or modern feature detection.

Supported features

CEF 86 is from 2020 and is much more up-to-date than Awesomium (2012), but is still outdated and missing some functionality that is considered baseline today.

While developing, use sites such as Can I Use and MDN Web Docs to search for features/functions. They will list if those features are supported in Chrome 86 (for CEF) or Chrome 17 (for Awesomium), if you need to use a prefixed version or older version of the standard, if there are any bugs to be aware of, etc.

Known issues

For a full list of CEF bugs, see GitHub.

List of known CEF issues relevant for developers. Not listed: Bugs such as crashing at game launch, and Awesomium-only bugs.

Link Category Issue
#5644 Media Youtube videos are unsupported
#3148 Media mp4 format not supported
#6982 Media/JS currentTime in a playing video is unreliable
#6882 Crash Web panels can cause crash after opening repeatedly
#4541 Lua/JS DHTML:IsLoading slowness causes javascript to execute prematurely
#6530 Input IME is invisible
#6529 Input/JS CompositionEvents don't exist for IME/Emoji
#5878 Input Text Form has unexpected behavior
#4930 Input CEF click events not firing in vuejs app
#4464 Input Linux 64bit Letters are numbers in input boxes
#4414 Input Some characters cant be typed by non-qwerty layouts in chromium panels
#3994 Input Inconsistent CEF keyboard shortcut implementation on x86-64 branch
#3543 Input chromium javascript sees symbol keyboard keys as 0 in onkeydown and onkeyup