Sandbox Logo

  • AliasAttribute Alternate class name(s) for this type to the one specified via LibraryAttribute. This info can then be retrieved via DisplayInfo library.
  • Angles Euler angles. Unlike a <see cref="T:Rotation">Rotation</see>, Euler angles can represent multiple revolutions (rotations) around an axis, but su…
  • BBox An Axis Aligned Bounding Box.
  • Capsule A capsule object, defined by 2 points and a radius. A capsule is a cylinder with round ends (inset half spheres on each end).
  • CategoryAttribute Sets the category or the group of a type or a type member. This info can then be retrieved via DisplayInfo library.
  • ClassNameAttribute Set the class name for this type or member. This info can then be retrieved via DisplayInfo library.
  • Color Represents a color using 4 floats (rgba), with 0-1 range.
  • Color32 A 32bit color, commonly used by things like vertex buffers. The functionality on this is purposely left minimal so we're encouraged to use th…
  • ColorHsv A color in Hue-Saturation-Value/Brightness format.
  • DefaultValueAttribute Sometimes with CodeGen we want reflection to be able to get the original initial value of a property (which is set with {get;set;} = initialvalu…
  • DescriptionAttribute Sets the description of a type or a type member. This attribute is usually applied automatically by codegen based on the XML comment of the type o…
  • EditorAttribute Tell the tools or gameui property editor which editor we should be using for this property or type.
  • EditorModelAttribute Declare a model to represent this entity in editor. This is a common attribute so it's leaked out of the Editor namespace.
  • GroupAttribute Sets the category or the group of a type or a type member. This info can then be retrieved via DisplayInfo library.
    • ToggleGroupAttribute Very much like a GroupAttribute, except we're indicating that the group can be toggle on and off using the named property
  • IconAttribute Sets the icon of a type or a type member. Colors are expected in HTML formats, like "rgb(255,255,255)" or "#FFFFFF". This info can then be retri…
  • Line Represents a line in 3D space.
  • Matrix Represents a 4x4 matrix.
  • MinMaxAttribute Mark property as having a minimum and maximum value.
  • OrderAttribute Visual order of this member for UI purposes. This info can then be retrieved via DisplayInfo library.
  • PlaceholderAttribute Add placeholder text, typically displayed for string properties when the text entry field is empty. This info can then be retrieved via DisplayI…
  • RangedFloat A float between two values, which can be randomized or fixed.
  • Ray A struct describing an origin and direction
  • Rotation Represents a Quaternion rotation. Can be interpreted as a direction unit vector (x,y,z) + rotation around the direction vector (w) which represent…
  • SandboxSystemExtensions
  • SandboxSystemExtensions
  • TagAttribute Adds a single or multiple tags for this type or member. Tags can then be retrieved via DisplayInfo library.
  • TitleAttribute Sets the title or a "nice name" of a type or a type member. This info can then be retrieved via DisplayInfo library.
  • Transform A struct containing a position, rotation and scale. This is commonly used in engine to describe entity position, bone position and scene object …
  • Vector2 A 2-dimensional vector. Typically represents a position or size in 2D space.
  • Vector2Int
  • Vector3 A point in 3D space.
  • Vector3Int
  • Vector4 A 4-dimensional vector/point.

Editor

Editor.Assets

Editor.Audio

Editor.CodeEditors

Editor.Internal

Editor.MapDoc

  • MapDocument Represents an open map document. A document has a tree of Editor.MapDoc.MapNode that represent the world.
  • MapNode A common class used for all objects in the world object tree.
    • MapEntity MapEntity in Hammer is a type of Editor.MapDoc.MapNode that has a set of key/value pairs. The keyvalues represent the authoritative state of the…
    • MapGameObject
    • MapGroup A map node which has the sole purpose of grouping other map nodes together.
    • MapInstance A map node which allows a target group and its children to be placed with a new position and orientation in the world without creating a new cop…
    • MapMesh MapMesh is the Hammer map node which represents editable mesh geometry in a Hammer map. This is the map node that is created when using the hamm…
      • MapStaticOverlay An overlay which is rendered using a mesh generated by projecting faces onto surrounding geometry. Baked during map compile so that there is no …
    • MapPath Path containing a bunch of Editor.MapDoc.MapPathNode
    • MapPathNode Nodes along a Editor.MapDoc.MapPath
    • MapWorld MapWorld is the root node of a Editor.MapDoc.MapDocument, however it can have multiple sub Editor.MapDoc.MapWorld of prefabs.

Editor.MapEditor

  • CanDropAttribute
  • Hammer
  • HammerSceneEditorSession
  • HammerSession This is our CQHammerMainWnd
  • HammerSourceLocation Source location for graphs created in a Hammer editor session.
  • History Undo/redo history for the current active mapdoc
  • IBlockTool Interface for the addon layer to implement, this is called from native Hammer.
  • IEntityTool Interface for the addon layer to implement, this is called from native Hammer.
  • IMapViewDropTarget Provides an interface for dragging and dropping Editor.Asset or Sandbox.Package on a map view. Use with Editor.MapEditor.CanDropAttribute to reg…
  • IPathTool Interface for the addon layer to implement, this is called from native Hammer.
  • IToolFactory
  • MapView MapViews are owned by the MapViewMgr. They display the MapViewMgr's mapdoc. The MapView provides either a 2d or 3d view of the provided map d…
  • Selection Current selection set for the active map
  • SelectMode

Editor.MeshEditor

Editor.ModelEditor

Editor.NodeEditor

Editor.ProjectSettingPages

Editor.RectEditor

Editor.ShaderGraph

Editor.SoundEditor

Editor.TerrainEditor

Editor.TextureEditor

Editor.Widgets

Facepunch.ActionGraphs

Facepunch.ActionGraphs.Nodes

  • ControlFlow Nodes providing basic control flow structures like branches and loops.
  • Math Nodes relating to numbers and geometry.

HalfEdgeMesh

NativeEngine

Qt

Sandbox

Sandbox.ActionGraphs

Sandbox.Audio

  • AudioChannel Represents an audio channel, between 0 and 7. This is used to index into buffers. This is used rather than an int to avoid unfortuate bugs.
  • AudioMeter Allows the capture and monitor of an audio source
  • AudioProcessor Takes a bunch of samples and processes them. It's common for these to be chained together. It's also common for the processor to store state bet…
  • DspPresetHandle A handle to a DspPreset
  • MixBuffer Contains 512 samples of audio data, this is used when mixing a single channel
  • Mixer Takes a bunch of sound, changes its volumes, mixes it together, outputs it
  • MixerHandle A handle to a Mixer
  • MultiChannelBuffer Holds up to 8 mix buffers, which usually represent output speakers.
  • PerChannel<T> Stores a variable per channel

Sandbox.Bind

  • BindSystem Data bind system, bind properties to each other.
  • Builder A helper to create binds between two properties (or whatever you want) <para> Example usage: set "BoolValue" from value of "StringValue" <co…
  • Link Joins two proxies together, so one can be updated from the other (or both from each other)
  • Proxy Gets and Sets a value from somewhere.

Sandbox.DataModel

Sandbox.Diagnostics

Sandbox.Engine

Sandbox.Engine.Settings

Sandbox.Engine.Utility.RayTrace

Sandbox.Helpers

  • UndoSystem A system that aims to wrap the main reusable functionality of an undo system

Sandbox.Html

Sandbox.Internal

Sandbox.Localization

  • LanguageInformation
  • Languages A list of supported languages and metadata surrounding them
  • Phrase A translated string. ie "Hello World". It might also have variables, ie "Hello {PlayerName}". Todo support for conditionals and plurals
  • PhraseCollection Holds a bunch of localized phrases

Sandbox.Menu

Sandbox.Modals

Sandbox.ModelEditor.Nodes

Sandbox.Navigation

  • NavMesh Navigation Mesh - allowing AI to navigate a world

Sandbox.Network

Sandbox.Physics

  • PhysicsJoint A physics constraint.
    • BallSocketJoint A ballsocket constraint.
    • FixedJoint A generic "rope" type constraint.
    • HingeJoint A hinge-like constraint.
    • PulleyJoint A pulley constraint. Consists of 2 ropes which share same length, and the ratio changes via physics interactions. Typical setup looks like th…
    • SliderJoint A slider constraint, basically allows movement only on the arbitrary axis between the 2 constrained objects on creation.
    • SpringJoint A rope-like constraint that is has springy/bouncy.
  • PhysicsPoint Used to describe a point on a physics body. This is used for things like joints where you want to pass in just a body, or sometimes you want to …
  • PhysicsSpring Spring related settings for joints such as Sandbox.Physics.FixedJoint.

Sandbox.Razor

  • RenderFragment Represents a segment of UI content, implemented as a delegate that writes the content to a Sandbox.Razor.RenderTreeBuilder.
  • RenderFragment<TValue> Represents a segment of UI content for an object of type <typeparamref name="TValue" />, implemented as a function that returns a Sandbox.Razor.…
  • RenderTreeBuilder This is a tree renderer for panels. If we ever use razor on other ui we'll want to make a copy of this class and do the specific things to that.…
  • RouteAttribute

Sandbox.Rendering

Sandbox.Services

  • AchievementOverview Activity Feed
  • Achievements Allows access to stats for the current game. Stats are defined by the game's author and can be used to track anything from player actions to per…
  • Auth
  • BenchmarkSystem Allows access to stats for the current game. Stats are defined by the game's author and can be used to track anything from player actions to per…
  • Feed Activity Feed
  • Inventory Allows access to the Steam Inventory system
  • Leaderboards
  • Messaging
  • News News Posts
  • Notification Player notification
  • ServerList
  • Stats Allows access to stats for the current game. Stats are defined by the game's author and can be used to track anything from player actions to per…

Sandbox.Services.Players

  • Overview An overview of a player. Only available if their profile isn't set to private.
  • Profile Player profile

Sandbox.Speech

Sandbox.Tasks

Sandbox.UI

  • Align Possible values for <c>align-items</c> CSS property.
  • BackgroundRepeat Possible values for <c>background-repeat</c> CSS property.
  • BaseStyles Auto generated container class for majority of CSS properties available.
    • Styles Represents all supported CSS properties and their currently assigned values.
  • BorderImageFill State of <c>fill</c> setting of <c>border-image-slice</c> (<c>border-image</c>) CSS property.
  • BorderImageRepeat Possible values for <c>border-image-repeat</c> (<c>border-image</c>) CSS property.
  • Box Represents position and size of a Sandbox.UI.Panel on the screen.
  • ButtonEvent Keyboard (and mouse) key press Sandbox.UI.PanelEvent.
  • CascadingParameterAttribute A panel's property will be inherited from its parent.
  • Clipboard
  • DisplayMode Possible values for <c>display</c> CSS property.
  • Emoji Helper class for working with Unicode emoji.
  • FlexDirection Possible values for <c>flex-direction</c> CSS property.
  • FontSmooth Possible values for <c>font-smooth</c> CSS property.
  • FontStyle Possible values for <c>font-style</c> CSS property.
  • ImageRendering Possible values for <c>image-rendering</c> CSS property.
  • INavigatorPage When applied to a page of a navigator, this will receive callbacks when the page is made visible and closed
  • InputFocus Handles input focus for Sandbox.UI.Panels.
  • IStyleBlock A CSS rule - ie ".chin { width: 100%; height: 100%; }"
  • IStyleTarget Everything the style system needs to work out a style
  • Justify Possible values for <c>justify-content</c> CSS property.
  • KeyFrames Represents a CSS <c>@keyframes</c> rule.
  • LayoutCascade
  • Length A variable unit based length. ie, could be a percentage or a pixel length. This is commonly used to express the size of things in UI space, usuall…
  • LengthUnit Possible units for various CSS properties that require length, used by Sandbox.UI.Length struct.
  • LengthUnitExtension
  • Margin Represents a <see cref="T:Sandbox.Rect">Rect</see> where each side is the thickness of an edge/padding/margin/border, rather than positions.
  • MaskMode Possible values for <c>mask-mode</c> CSS property.
  • MaskScope Possible values for <c>mask-scope</c> CSS property.
  • NavigationExtensions
  • Option An option for a Sandbox.UI.DropDown or Sandbox.UI.ButtonGroup.
  • OverflowMode Possible values for the "overflow" CSS rule, dictating what to do with content that is outside of a panels bounds.
  • Panel A simple User Interface panel. Can be styled with CSS.
    • BasePopup A panel that gets deleted automatically when clicked away from
    • Image A generic box that displays a given texture within itself.
    • Label A generic text label. Can be made editable.
      • IconPanel A panel containing an icon, typically a material icon.
    • ScenePanel Allows to render a scene world onto a panel.
    • SvgPanel A generic panel that draws an SVG scaled to size
    • WebPanel A panel that displays an interactive web page.
    • RootPanel A root panel. Serves as a container for other panels, handles things such as rendering.
      • WorldPanel An interactive 2D panel rendered in the 3D world.
    • Button A simple button Sandbox.UI.Panel.
      • PopupButton A button that opens a Sandbox.UI.PopupButton.Popup panel. Useless on its own - you need to implement Open
        • DropDown A UI control which provides multiple options via a dropdown box.
    • ButtonGroup A group of side-by-side buttons one of which can be selected.
    • Checkbox A simple checkbox Sandbox.UI.Panel.
    • NavHostPanel A panel that acts like a website. A single page is always visible but it will cache other views that you visit, and allow forward/backward navig…
    • NavLinkPanel A panel that will navigate to an href but also have .active class if href is active
    • BaseControl
    • Field A field in a form, usually contains a label and a control
    • FieldControl A field in a form, usually contains a label and a control
    • Form
    • SplitContainer A control that has two panes with a splitter in between. You can drag the splitter to change the size of the two panels.
    • TabContainer A container with tabs, allowing you to switch between different sheets. You can position the tabs by adding the class tabs-bottom, tabs-left,…
    • TextEntry A Sandbox.UI.Panel that the user can enter text into.
    • MenuPanel
    • PackageFilterOrder
    • LoaderFullScreen
    • PackageList
    • PackageFilterFacet
    • PackageCard
    • PackageFilters
    • VirtualScrollPanel Scroll panel that creates its contents as they become visible TODO: we need to let panels know, or recreate them, when Data changes
    • BaseVirtualScrollPanel<T>
  • PanelEvent Base Sandbox.UI.Panel event.<br /> See Sandbox.UI.Panel.CreateEvent(Sandbox.UI.PanelEvent).
  • PanelEventAttribute Add an event listener to a Sandbox.UI.Panel event with the given name.<br /> See Sandbox.UI.Panel.CreateEvent(System.String,System.Object,System…
  • PanelInputType
  • PanelTransform
  • PointerEvents Possible values for <c>pointer-events</c> CSS property.
  • PositionMode Possible values for <c>position</c> CSS property.
  • PseudoClass List of CSS pseudo-classes used by the styling system for hover, active, etc. This acts as a bit-flag.
  • RenderState Describes panel's position and size for rendering operations.
  • Shadow Shadow style settings
  • ShadowList A list of shadows
  • StyleBlock A CSS rule - ie ".chin { width: 100%; height: 100%; }"
  • StyleSelector A CSS selector like "Panel.button.red:hover .text"
  • StyleSheet
  • StyleSheetAttribute Will automatically apply the named stylesheet to the Panel.
  • StyleSheetCollection A collection of Sandbox.UI.StyleSheet objects applied directly to a panel. See Sandbox.UI.Panel.StyleSheet.
  • TextAlign Possible values for <c>text-align</c> CSS property.
  • TextDecoration Possible values for <c>text-decoration</c> CSS property.
  • TextDecorationStyle Possible values for <c>text-decoration-style</c> CSS property.
  • TextOverflow Possible values for <c>text-overflow</c> CSS property.
  • TextSkipInk Possible values for <c>text-decoration-skip-ink</c> CSS property.
  • TextTransform Possible values for <c>text-transform</c> CSS property.
  • TransitionDesc Describes transition of a single CSS property, a.k.a. the values of a <c>transition</c> CSS property. <para>Utility to create a transition by co…
  • TransitionList A list of CSS properties that should transition when changed. Utility to create a transition by comparing the panel style before and after …
  • Transitions Handles the storage, progression and application of CSS transitions for a single Sandbox.UI.Panel.
  • WhiteSpace Possible values for <c>white-space</c> CSS property.
  • WordBreak Possible values for <c>word-break</c> CSS property.
  • WorldInput WorldInput can be used to simulate standard mouse inputs on WorldPanels.
  • Wrap Possible values for <c>flex-wrap</c> CSS property.

Sandbox.UI.Construct

Sandbox.UI.Tests

Sandbox.Utility

  • CircularBuffer<T> Circular buffer, push pop and index access is always O(1).
  • Crc32 Generate 32-bit Cyclic Redundancy Check (CRC32) checksums.
  • Crc64 Generate 64-bit Cyclic Redundancy Check (CRC64) checksums.
  • DataProgress For providing a callback to describe the progress of doing something with some kind of block of data
  • DisposeAction Creates an IDisposable that will simply run an action when disposed
  • Easing Easing functions used for transitions. See https://easings.net/ for examples.
  • EditorTools Functions to interact with the tools system. Does nothing if tools aren't enabled.
  • FloatBitmap
  • INoiseField A noise function that can be sampled at a 1-, 2-, or 3D position. Samples will be between <c>0</c> and <c>1</c>. Thread-safe.
  • Noise Provides access to coherent noise utilities. All of these functions should return between 0 and 1.
  • Parallel Wrappers of the parallel class.
  • Steam

Sandbox.Utility.Svg

  • PathArcSize Controls arc size in Sandbox.Utility.Svg.ArcToPathCommand.
  • PathCommand Base class for SVG path commands.
    • AddCirclePathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle" />.
    • AddOvalPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse" />.
    • AddPolyPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline" />, <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/…
    • AddRectPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect" />.
    • AddRoundRectPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect" />.
    • ArcToPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#arcs" />.
    • ClosePathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#line_commands" />.
    • CubicToPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#b%C3%A9zier_curves" />.
    • LineToPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#line_commands" />.
    • MoveToPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#line_commands" />.
    • QuadToPathCommand See <see href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#b%C3%A9zier_curves" />.
  • PathDirection Controls arc direction in Sandbox.Utility.Svg.ArcToPathCommand.
  • PathFillType How to determine which sections of the path are filled.
  • SvgDocument Helper class for reading Scalable Vector Graphics files.
  • SvgPath A shape in a Sandbox.Utility.Svg.SvgDocument, described as a vector path.

Sandbox.Volumes

  • SceneVolume A generic way to represent volumes in a scene. If we all end up using this instead of defining our own version in everything, we can improve thi…

Sandbox.VR

  • AnalogInput Represents a VR analog input action (e.g. trigger)
  • AnalogInput2D Represents a two-dimensional VR analog input action (e.g. joysticks)
  • DigitalInput Represents a VR digital input action (e.g. X button)
  • FingerValue Accessors for Sandbox.VR.VRController.GetFingerValue(Sandbox.VR.FingerValue)
  • TrackedDeviceRole
  • TrackedDeviceType
  • TrackedObject Represents a physically tracked VR object with a transform
    • VRController Represents a VR controller, along with its transform, velocity, and inputs.
  • VRHandJoint
  • VRHandJointData
  • VRInput
  • VROverlay<para>VR overlays draw over the top of the 3D scene, they will not be affected by lighting, post processing effects or anything else in the world.<…
    • VROverlayPanel<para>A Sandbox.VR.VROverlay that draws and handles input of a Sandbox.UI.RootPanel.</para><para>VR overlays draw over the top of the 3D scene, they …

Steamworks.Data