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 bugs

This category will be updated as soon as possible; if you wish to view bug reports regarding the Chromium version, you can visit GitHub.

ID Title
#6982 [HTML] Using currentTime in a playing video
#6928 Menu not showing up on x86 branch, near-instant out of memory error on 32 bit, from Ubuntu fresh install
#6921 Failed to load main menu - Chromium GPU process crash on fresh install
#6882 libcef.dll crashing gmod
#6577 Can't launch the game(Windows 11, first time play, no addon)
#6530 IME is invisible when typing in DHTML
#6529 DHTML's text composition system events are broken
#5878 DHTML Text Form has unexpected behavior
#5644 Video can't be viewed when embed to website.
#5439 Garry's Mod x86-64 chromium + 64-bit binaries crash
#5092 [x86-64] [Linux] Game crash on Steam Linux Runtime
#4930 CEF click events not firing in vuejs app
#4677 no ui on x86 version on linux
#4541 DHTML:IsLoading slowness causes javascript to execute prematurely
#4464 Linux 64bit Letters are numbers in input boxes
#4414 Some characters cant be typed by non-qwerty layouts in chromium panels
#3994 Inconsistent CEF keyboard shortcut implementation on x86-64 branch
#3992 CEF image color is washed out on macOS
#3543 chromium javascript sees symbol keyboard keys as 0 in onkeydown and onkeyup
#3542 chromium OnKeyCodePressed isn't being called anymore
#3148 no mp4 support in the CEF build used in the Dev branch.
#3119 Awesomium/In-game-browser HTML5 support