Garry's Mod Wiki


Entity:NetworkVar( string type, number slot, string name, table extended = nil )


Creates a network variable on the entity and adds Set/Get functions for it. This function should only be called in ENTITY:SetupDataTables.

See Entity:NetworkVarNotify for a function to hook NetworkVar changes.

Make sure to not call the SetDT* and your custom set methods on the client realm unless you know exactly what you are doing.


1 string type
Supported choices:

  • String
  • Bool
  • Float
  • Int (32-bit signed integer)
  • Vector
  • Angle
  • Entity
2 number slot
Each network variable has to have a unique slot. The slot is per type - so you can have an int in slot 0, a bool in slot 0 and a float in slot 0 etc. You can't have two ints in slot 0, instead you would do a int in slot 0 and another int in slot 1.

The max slots right now are 32 - so you should pick a number between 0 and 31. An exception to this is strings which has a max slots of 4.

3 string name
The name will affect how you access it. If you call it Foo you would add two new functions on your entity - SetFoo() and GetFoo(). So be careful that what you call it won't collide with any existing functions (don't call it Pos for example).
4 table extended = nil
A table of extended information.


  • Allows the NetworkVar to be set using Entity:SetKeyValue. This is useful if you're making an entity that you want to be loaded in a map. The sky entity uses this.


  • The edit key lets you mark this variable as editable. See Editable Entities for more information.


Setting up data tables

function ENT:SetupDataTables() self:NetworkVar( "Float", 0, "Amount" ) self:NetworkVar( "Vector", 0, "StartPos" ) self:NetworkVar( "Vector", 1, "EndPos" ) end -- Code... -- Setting values on the entity self:SetStartPos( Vector( 1, 0, 0 ) ) self:SetAmount( 100 ) -- Code... -- Getting values local startpos = self:GetStartPos()

Page Links

Special Pages



Render Time: 44ms

DB GetPage 2
Generate Html 16
SaveChanges (1) 16
Render Body 0
Render Sidebar 7