Entity:NetworkVar
Description
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.
Entity NetworkVars are influenced by the return value of ENTITY:UpdateTransmitState.
So if you use the PVS(default), then the NetworkVars can be different for each client.
So if you use the PVS(default), then the NetworkVars can be different for each client.
Make sure to not call the SetDT* and your custom set methods on the client realm unless you know exactly what you are doing.
Combining this function with util.TableToJSON can also provide a way to network tables as serialized strings.
Arguments
1 string type
Supported choices:
String
(up to 511 characters)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
.
This can be omitted entirely (arguments will shift) and it will use the next available slot.
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.
KeyName
- 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.
Edit
- The edit key lets you mark this variable as editable. See Editable Entities for more information.
Example
Setting up data tables