Garry's Mod Wiki


  ENTITY:Draw( number flags )


Called if and when the entity should be drawn opaquely, based on the Entity:GetRenderGroup of the entity.

See ENT structure and RENDERGROUP enum for more information.

See also ENTITY:DrawTranslucent.

This function is not called by the game whenever the player looks away from the entity due to optimizations. To change that, you must define an empty Entity:Think method client-side!


1 number flags
The bit flags from STUDIO enum


Draws the model and makes a rotating text over the entity

-- Draw some 3D text local function Draw3DText( pos, ang, scale, text, flipView ) if ( flipView ) then -- Flip the angle 180 degrees around the UP axis ang:RotateAroundAxis( Vector( 0, 0, 1 ), 180 ) end cam.Start3D2D( pos, ang, scale ) -- Actually draw the text. Customize this to your liking. draw.DrawText( text, "Default", 0, 0, Color( 0, 255, 0, 255 ), TEXT_ALIGN_CENTER ) cam.End3D2D() end function ENT:Draw() -- Draw the model self:DrawModel() -- The text to display local text = "Example Text" -- The position. We use model bounds to make the text appear just above the model. Customize this to your liking. local mins, maxs = self:GetModelBounds() local pos = self:GetPos() + Vector( 0, 0, maxs.z + 2 ) -- The angle local ang = Angle( 0, SysTime() * 100 % 360, 90 ) -- Draw front Draw3DText( pos, ang, 0.2, text, false ) -- DrawDraw3DTextback Draw3DText( pos, ang, 0.2, text, true ) end


Make sure to always call the Entity:Draw method whenever or not the player looks at the entity

function ENT:Draw() self:DrawModel() self:DrawShadow(true) local s = self:GetPos() local e = s + self:GetForward() * 25 render.DrawLine(s, e, color_white) end function ENT:Think() end