Garry's Mod Wiki

Revision Difference

net.ReadTable#552632

<function name="ReadTable" parent="net" type="libraryfunc"> <description> Reads a table from the received net message. ⤶ <note>Sometimes when sending a table through the net library, the order of the keys may be switched. So be cautious when comparing (See example 1).</note>⤶ ⤶ <warning>You **must** read information in same order as you write it.</warning>⤶ See <page>net.WriteTable</page> for extra info. ⤶ <note>Sometimes when sending a table through the net library, the order of the keys may be switched. So be cautious when comparing (See example 1).⤶ You may get `net.ReadType: Couldn't read type X` during the execution of the function, the problem is that you are sending objects that **cannot** be serialized/sent over the network. </note>⤶ ⤶ <warning>You **must** read information in same order as you write it.</warning>⤶ </description> <realm>Shared</realm> <file line="168-L195">lua/includes/extensions/net.lua</file> <args> <arg name="sequential" type="boolean">If the table is sequential.</arg>⤶ <arg name="sequential" type="boolean" default="false">Set to `true` if the input table is sequential. This saves on bandwidth.⤶ <note>This was just added in the latest version (2023.09.06). It might only be available on the [Dev Branch](/gmod/Dev_Branch) right now. ⤶ </note>⤶ </arg>⤶ </args> <rets> <ret name="" type="table">Table recieved via the net message, or a blank table if no table could be read.</ret> <ret name="" type="table">Table received via the net message, or a blank table if no table could be read.</ret> </rets> </function> <example> <description>This is an example of how the keys order may be switched:</description> <code> -- Client: local tbl = { Type = "Dining", Legs = "4", Material = "Wood" } net.Start( "TableSend" ) net.WriteTable( tbl ) net.SendToServer() PrintTable( tbl ) -- Prints the order client-side. -- Server: net.Receive( "TableSend", function( len, ply ) PrintTable( net.ReadTable() ) -- Prints the order server-side. end ) </code> <output> Client: ``` Type = "Dining" Legs = 4 Material = "Wood" ``` Server: ``` Legs = 4 Material = "Wood" Type = "Dining" ``` </output> </example>