π» Psst Use code SPOOKY2026 at checkout for 30% off on the Lambda Store up until
Prism UI is a new client-side binary module aiming to modernize Garryβs Mod UI beyond the limits of VGUI. Styled with SCSS and scripted in Lua, it brings web-like features such as Flexbox, Grid, CSS animations, GPU text rendering, drag-and-drop, modern image formats, video playback, updated CEF browser support, Steam animated avatars, and visual effects like backdrop blur and βliquid glass.β It will ship with fallbacks for non-users and a Prism Editor for debugging and rapid UI iteration. The public release is planned alongside Lambdaβs November 2026 update.

Creating nice looking UI in Garry's Mod is difficult, held back by the ancient VGUI system. We've managed to pull off some nicer UI in recent months thanks to shaders, however ultimately the framework is still too limiting.
In my recent work of recreating the Source Engine in C#, I implemented a UI system based upon the s&box UI System using Blazor, SCSS and C# for UI panels.
As a project over the last week, I've now ported it over to Garry's Mod as a Client-side binary module.
I believe Garry's Mod deserves a better UI framework.
This project started a few months ago when I decided to try and port the Source 1 version of Panorama to Garry's Mod that surfaced in the leaked CS:GO Code.
This project proved that a better UI system can be implemented in to Source 1, whether it likes it or not.
Ultimately any new UI system needs to be distributed as a binary module, that is inevitable.
Prism runs as a Garry's Mod Lua binary module that is loaded from Client-side Lua code upon joining a server.
UI is styled using SCSS which is a version of CSS that allows nesting.
cl_styles.lua
prism.RegisterStyles("global/theme.scss", [==[
$variable-name: rgba(255, 0, 0, 0.3);
.window
{
width:96vw;
height:94vh;
background-color: var(--variable-name);
}
]==])
Windows still work like VGUI panels
prm_window.lua
local WINDOW = {}
WINDOW.Base = "Panel"
function WINDOW:GetStylesheet()
return [==[
$import "global/theme.scss";
.custom-styles
{
font-size:24px;
}
]==]
end
function WINDOW:GetMarkup()
return [[
<root class="window">
<Label class="custom-styles" ref="Name"/>
</root>
]]
end
prism.Register("TestWindow", WINDOW)
Unlike with s&box or my Source C# port, scripting is done entirely with Lua, this was a design choice to not purposely implement a middle language, like Panorama did with JavaScript.
Here's some showcases of Prism using the Zoo. A Zoo is a type of testing ground that show cases all aspects of a system, in this case the Prism Zoo showcases different controls and aspects.
Buttons, sliders, toggles and form inputs

Prism has native support for drop down menus, popovers and more.

The built in text renderer in Source sucks, font's can be no larger than 128 pixels in size and does not support modern COLR fonts (e.g Emoji's). Prism implements GPU text rendering (Rather than the CPU like most UI frameworks) and support for modern font types.

Prism also includes native support for dragging and dropping, plus list re-ordering.

Garry's Mod has support for VTF, PNG and JPEG images, however PNG and JPEG need to be decoded before use and cause hitches in the game when used for the first time.
Prism supports all Source-native formats including VTF, VMT (Shaded), PNG, JPEG, WebP and SVG.

Prism also includes a URI system that maps to Source's virtual file system paths.
game://materials/icon16/plus.png searches for the file in the entire file system, such as the base game, workshop addons, game mounts and more.
Other mount paths include mod:// download:// which mount those associated search paths.
See File Search Paths - Garry's Mod Wiki for more information on how this works.
Assets also support https:// assets too, with http:// blocked for security reasons.
Prism introduces support for Steam animated avatars.

One of the biggest features missing from Garry's Mod is the ability to display videos natively without using a Web Panel.

Prism includes the latest version of CEF (Chromium Embedded Framework), surpassing that of the built in version bundled with Garry's Mod.

Pure CSS animations are available with Prism, allowing for high quality animations as easy as the web.

Prism includes support for standard backdrop filters, and because I'm an Apple Fanboy, I've also thrown in Liquid glass.


Finally, the best thing about Prism, the layout sytem, with support for both Flexbox and Grid.

Nothing, you'll see the old UI as it stands today. Any new UI work we will always have a VGUI fallback, but due to how difficult working with VGUI is, feature complete UI's will be on Prism.


I plan to release Prism UI with some updated UI's with the November 2026 Update and will be available to install from both the Lambda Website and the new version of Lambda Game Utilities
It's all very well having a fancy UI system, but what if it goes wrong? How do you debug it?
Prism UI will also ship with the Prism Editor, which includes an all in one editor for Garry's Mod plus the ability to debug and play about with Prism panels and styles without having to keep hotloading your Lua files.

Prism UI and Editor will be released publicly for all to use.
Prism was made possible by the following open source libraries and repositories