Garry's Mod Wiki

Revision Difference

ENTITY:Initialize#528266

<function name="Initialize" parent="ENTITY" type="hook"> <ishook>yes</ishook> <description> Called when the entity is created. This is called when you <page>Entity:Spawn</page> the custom entity. This is called **after** <page>ENTITY:SetupDataTables</page> and <page>GM:OnEntityCreated</page>. <bug issue="2732">This is sometimes not called clientside. You can work around this by setting a variable in Initialize and check if it exists in <page>ENTITY:Think</page>. See the example below.</bug> </description> <realm>Shared</realm> <predicted>No</predicted> </function> <example> <description>Example Initialize function</description> <code> function ENT:Initialize() -- Sets what model to use self:SetModel( "models/props/cs_assault/money.mdl" ) -- Sets what color to use self:SetColor( Color( 200, 255, 200 ) ) -- Physics stuff self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) -- Init physics only on server, so it doesn't mess up physgun beam if ( SERVER ) then self:PhysicsInit( SOLID_VPHYSICS ) end -- Make prop to fall on spawn local phys = self:GetPhysicsObject() if ( IsValid( phys ) ) then phys:Wake() end end </code> </example> <example> <description>Fixes the function not being called clientside.</description> <code> function SWEP:Initialize() function ENT:Initialize() self.m_bInitialized = true -- Other code end function SWEP:Think() function ENT:Think() if (not self.m_bInitialized) then self:Initialize() end -- Other code end </code> </example>