Garry's Mod Wiki

VGUI and Derma Elements List

This is a list of all the VGUI elements that are shipped with Garry's Mod and its default gamemodes. If you're new to working with panels, you can find some information on this tutorial page.

You can type derma_controls in console to get a visual example of some of these elements.

Base Panels

Preview Name Description
DPanel A Panel that has increased functionality provided through lua. Most (but not all) Derma panels derive from this.
DFrame An EditablePanel framing window that can be drag n dropped around on screen, minimized, maximized, and closed. Most often used as the root panel when making ingame menus.
DLabel A robust version of a Label with easier functions for clicking and customizing.
DLabelEditable A derivative of the DLabel that allows editing when double-clicked.
DLabelURL A URLLabel that when clicked uses gui.OpenURL to open the provided URL
DTextEntry A TextEntry with extended lua functionality. <note>One of this elements parents must be a EditablePanel</note>
DButton A DLabel with additional click behaviors built into it
DExpandButton A small DButton Mainly used by DProperties and DTree_Node to toggle folder expansions
DBinder A DButton That captures the next pressed key after being pressed.
DCheckBox A DButton that returns a true/false boolean with :GetChecked()
DCheckBoxLabel A DPanel that includes a DCheckBox with an accompanying DLabel
ImageCheckBox A Button that functions similar to DCheckBox except uses the Material panel to indicate state and cannot have a label
DComboBox A field with multiple selectable values
DImage A DPanel that makes working with the Material panel easier.
DImageButton A DButton that uses a DImage for the button instead of the normal look.
DModelPanel A derivative of DButton that projects the provded 3D model on the 2D plane of the VGUI element. By default this model will slowly rotate but this can be disable see example on wiki page.
DAdjustableModelPanel A derivative of DModelPanel That allows you to adjust the model using your mouse and keyboard
DBubbleContainer A speech bubble panel made up of a rounded box and point coming from the bottom.
DCategoryList A parent element which should contain a child DCollapsibleCategory.
DCollapsibleCategory A Specialized Panel that has drop-down functionality to display/hide child elements
DForm A convenience version of DCollapsibleCategory that has easy functions for adding other input focused panels.
DSlider A multidirectional slider than has the ability to be locked to X or y axis.
DNumSlider A Panel that allows the user to click, hold, and drag to select a value between the provided numerical range
DNumberScratch A DImageButton that acts similarly to the DNumSlider but with the additional ability to zoom in for extra precision.
DNumberWang A DTextEntry that only accepts numbers and has additional buttons to increment/decrement the value.
DPropertySheet a specialized Panel that allows tab oriented control toggling which child elements are visible based on selected tab.
DTab A tab for internal use on the DPropertySheet. Derived from the DButton
DColumnSheet Similar to a DPropertySheet except its tabs are on the left
DScrollPanel A DPanel that functionality based around scrolling vertically through child elements.
DVScrollBar A Generic Panel that functions as the vertical scrollbar for DScrollPanel
DScrollBarGrip An Internal component of DVScrollBar that acts as the "grip" allowing for quick scrolling.
DIconBrowser A DScrollPanel that displays all the Silkicons that come with the game.
DMenu A DScrollPanel that has submenu, icon, and cvars support. This is commonly (but not restricted to being) a child element of the DMenuBar
DMenuBar A DPanel that stretches across the top of the parent panel. Also has additional functions for handling DMenus
DMenuOption An Internal DButton that represents an option added to a DMenu
DMenuOptionCVar An Internal derivative of DMenuOption that has support for cvars
MatSelect A Derivative of ContextBase used by the Material and Lamp tools.
SpawnIcon A DButton that displays a image for the given model path. Internally Uses ModelImage.
DProgress A Panel that displays a visual representation of a fraction between 0 - 1 using its :SetFraction() method.
DFileBrowser A specialized DPanel that acts as an in-game file browser
DKillIcon A Panel that uses the killicon library to persistently draw kill icons
DHTML A super specialized Awesomium panel. For more info check the dedicated wiki page.
DHTMLControls A Panel containing useful buttons for easier navigation around a DHTML panel

Color Panels

Image Name Description
DColorButton A DLabel that allows easy setting/getting of its color
DColorPalette A DIconLayout that presents multiple DColorButtons
DColorCombo A Combination of panels involved with selecting a color value (Does not include an alpha selector)
DColorCube A Specialized DSlider that allows a gradient selection of a given color
DColorMixer Similar to DColorCombo but includes additional (but not limited to) panels like a DAlphaBar and DColorPalette
DRGBPicker A specialized DPanel that creates a vertical rainbow bar allowing the user to select a color.
DAlphaBar A Specialized DPanel that allows easy picking of the alpha level of the specified color

Utility Panels

Image Name Description
DPanelOverlay A utility DPanel that adds curved corners
DDragBase A utility DPanel that enables drag and drop functions for derived elements like DIconLayout, DListLayout, and DTileLayout
DSizeToContents A utility Panel that uses PANEL:SizeToChildren in its PANEL:PerformLayout hook.
DShape A DPanel that is drawn like the provided shape. This is currently only setup to draw rectangles, bug?
Material A Button that renders a VMT material.
DSprite A DPanel that draws a sprite using the provide IMaterial and Color This panel can also do rotations!
DTileLayout Nearly identical to DIconLayout with the biggest difference being panels provided to this element do NOT need to be the same height like they do in DIconLayout
DNotify A simply utility panel that is used to fade child panels in and out once like a notification.
DIconLayout A utility panel that creates a list of panels laid out in a grid, Replaces DPanelList.
DListLayout A vertical list of panels that can allow child panels to be rearranged with drag in drop
DGrid A simple utility Panel that automatically applies grid spacing to all its children elements
DHorizontalDivider Creates an invisible horizontal divider that can be dragged between objects.
DVerticalDivider A DPanel that functions similarly to the DHorizontalDivider except vertically
DHorizontalScroller A utility Panel that enables easy horizontal scrolling of its children panels using the left and right buttons.
DTooltip An Internal DLabel that is used to create the tooltip when hovering over another panel. You should use Panel:SetTooltip instead
DDrawer A Panel that can be moved in and out like a drawer, See wiki page for example
ContextBase A Derived Panel used as a parent for all context based menu panels

DProperties

Image Name Description
DProperties a specialized Panel that creates a interactive grid allowing the user to customize the provided properties.
DEntityProperties An internal DProperties Panel used by the Editable Entities system
DProperty_Generic A Derivative of Panel that provides a base for the other DProperties panels
DProperty_Boolean An Internal Derivative of DProperty_Generic that only accepts booleans
DProperty_Float An Internal Derivative of DProperty_Generic that only accepts float types
DProperty_Int An Internal Derivative of DProperty_Float that only accepts integer values
DProperty_Combo An Internal Derivative of DProperty_Generic that only accepts a DComboBox
DProperty_VectorColor An Internal Derivative of DProperty_Generic that opens a DColorCombo panel when clicked

DTree

Image Name Description
DTree A DScrollPanel that has been extended to function as a tree view using DTree_Nodes
DTree_Node An Internal Component of DTree that signifies every item on the tree.
DTree_Node_Button An Internal Component of DTree_Node used to toggle drop down functionality of sub-trees.

DListView

Image Name Description
DListView A DPanel that can display multiple rows and columns of information. Also has click functionality.
DListView_Column Internal element used to create the headers for DListView
DListView_ColumnPlain Derivative of DListView_Column but with less features.
DListView_DraggerBar An Internal DButton used in DListView
DListViewHeaderLabel An Internal DLabel used in DListView
DListViewLabel An Internal DLabel used in DListView
DListViewLine An Internal Panel used in DListView

Engine-based panels

Name Description
AchievementIcon Shows achievement icon.
Awesomium Awesomium! Parent of HTML and DHTML
AvatarImage A panel used to view a players avatar
CheckButton An engine checkbox
EditablePanel Base panel used by DFrame, this panel is needed so that elements such as the TextEntry can obtain focus
Frame A window that in which you can place just about every other component and even another frame
HTML The basic HTML view, can be used instead of DHTML for operations that do not require user input or complex interaction, such as retrieving image data
Label Basic text label
ModelImage Panel used to display models, used by SpawnIcon
Panel Base Panel for everything
RadioButton Currently broken
RichText Highly functional rich text element which is used in the default chatbox and console
TextEntry Basic text entry field that has not as much added functionality as DTextEntry
TGAImage Panel capable of showing a TGA image

Sandbox-based panels

Name Description
ContentIcon The spawn icon used for SWEPs and other SENTs.
ControlPresets The preset controller used in tool menus.
CtrlListBox A simple drop-down list for use mainly in tool menus.
PropSelect PropSelect
fingerposer The fingerposer (internal)
FingerVar Part of fingerposer (internal)

Deprecated panels

Name Description
Button Basic button, now replaced by DButton
Slider A simple, straight-forward and easy-to-use slider
SlideBar A slidebar
PanelList PanelList
DPanelSelect A list of panels, of which only one can be selected
DPanelList Deprecated in GM13 in favour of DIconLayout and DLineLayout.
DNumPad DNumPad, not used anymore in GMod 13
DModelSelectMulti DModelSelectMulti
DModelSelect A panel of selectable SpawnIcons.
DListBox DListBox
DListBoxItem DListBoxItem