Garry's Mod Wiki

Revision Difference

Entity:SetModelScale#566089

<function name="SetModelScale" parent="Entity" type="classfunc"> <description> Scales the model of the entity, if the entity is a <page>Player</page> or an <page>NPC</page> the hitboxes will be scaled as well. ⤶ For some entities, calling <page>Entity:Activate</page> after this will scale the collision bounds and <page>PhysObj</page> as well; be wary as there's no optimization being done internally and highly complex collision models might crash the server. ⤶ This is the same system used in TF2 for the Mann Vs Machine robots. ⤶ To resize the entity along any axis, use <page>Entity:EnableMatrix</page> instead. ⤶ Client-side trace detection seems to mess up if deltaTime is set to anything but zero. A very small decimal can be used instead of zero to solve this issue.⤶ Uniformly scales the model of the entity, if the entity is a <page>Player</page> or an <page>NPC</page> the hitboxes will be scaled as well. ⤶ To resize the entity non-uniformly, along any axis, use <page>Entity:EnableMatrix</page> instead. ⤶ For some entities (Such as `prop_physics` and `anim` type <page>Scripted Entities</page>), calling <page>Entity:Activate</page> after this will scale the collision bounds and <page>PhysObj</page> as well; be wary as there's no optimization being done internally and highly complex collision models might crash the server. ⤶ Client-side trace detection seems to mess up if `deltaTime` is set to anything but zero. A very small decimal can be used instead of zero to solve this issue. If your old scales are wrong, use <page>Entity:SetLegacyTransform</page> as a quick fix. <note>If you do not want the physics to be affected by <page>Entity:Activate</page>, you can use <page>Entity:ManipulateBoneScale</page>`( 0, Vector( scale, scale, scale ) )` instead.</note> ⤶ <bug issue="3502">This does not scale procedural bones and disables IK.</bug>⤶ ⤶ <validate>This disables IK.</validate>⤶ </description> <realm>Shared</realm> <args> <arg name="scale" type="number">A float to scale the model by. 0 will not draw anything. A number less than 0 will draw the model inverted.</arg> <arg name="deltaTime" type="number" default="0">Transition time of the scale change, set to 0 to modify the scale right away. To avoid issues with client-side trace detection this must be set, and can be an extremely low number to mimic a value of 0 such as .000001.</arg> </args> </function> <example> <description>From the "Biggify" option of right clicking an npc</description> <code>ent:SetModelScale( ent:GetModelScale() * 1.25, 1 )</code> </example>