Garry's Mod Wiki

Revision Difference

Networking_Entities#515841

<cat>Dev.Lua</cat> # Data Table Variables These variables are the preferred method as they use the built in network variable system, so they get networked, saved and predicted properly. You should use this method by default. To add a new variable simply add a SetupDataTables() function to it. For example. ``` function ENT:SetupDataTables() ```⤶ ```⤶ ⤶ self:NetworkVar( "Float", 0, "Amount" )⤶ self:NetworkVar( "Float", 0, "Amount" ) self:NetworkVar( "Vector", 0, "BloodPos" ) self:NetworkVar( "Vector", 1, "UrinePos" ) ```⤶ ⤶ ⤶ ```⤶ ⤶ end⤶ end⤶ ``` You have now defined three variables on your entity. You can access these variables like this. ``` local bloodpos = self:GetBloodPos() ``` And set them like ``` self:SetBloodPos( Vector( 1, 0, 0 ) ) self:SetAmount( 100 ) ``` You can of course set and get from outside of the entity ``` MyEntity:GetAmount() ``` The syntax of NetworkVar is thus: Type||The type is a string, and can be "String", "Bool", "Float", "Int", "Vector", "Angle", "Entity" | ----||----------------------------------------------------------------------------------------------| | Name | | Whatever name you choose will create two functions (Set[name] and Get[name]) - so be careful that your name doesn't conflict with other existing functions. | Note that the String type is up to 512 chars. If you have common strings that are repeated you should add them to the string table and network the integer ID instead.