Revision Difference
ENTITY:Initialize#528730
<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 ENT:Initialize()⤶
self.m_bInitialized = true⤶
⤶
-- Other code⤶
end⤶
⤶
function ENT:Think()⤶
if (not self.m_bInitialized) then⤶
self:Initialize()⤶
end⤶
⤶
-- Other code⤶
end⤶
</code>⤶
⤶
</example>