Setting Networked Variable on player

Been trying to create a very simple gamemode, Here is the code that isn’t working. (Please ignore my Swedish comments)
[lua]
PropTable = pl:GetNetworkedVar( “PropList” ) – Hämtar NWvar
if PropTable == null then
PropTable = {} – Ifall det inte finns så sätt det till tomt ({})
end
table.insert(PropTable,Sak) – Lägg in objektet i listan
pl:SetNetWorkedVar( “PropList”, PropTable ) – Skicka iväg
[/lua]

This is in the function that is called each time someone spawns something. “Sak” is the entity they are spawning. “pl” is the player.

This is how I’m thinking it:

  1. Player spawns something.
  2. Checks if the networked var PropList is empty, If it isn’t it sets PropTable to it, If it is it sets PropTable to{}.
  3. Insert “Sak”, The entity, to the list.
  4. Set the networked var.

Basically I’m trying to create a table for every player that includes everything they’ve spawned.

The error I’m getting is:



attempt to call method 'SetNetWorkedVar' (a nil value)
gamemodes/kush/gamemode/init.lua:63


This is in Gmod 13 but I’m sure that’s not related to the error. Line 63 is line 6 in the above code snippet.

[editline]13th May 2012[/editline]

Problem solved, Thanks for anyone reading it though. Was a stupid spelling mistake.

Here it’s called NetWorked var, Whereas in the other sections, Like GetNetworked var it’s written correctly.

This is what you get for copy and pasting i guess.

[editline]13th May 2012[/editline]

I do have another problem though, I can’t network tables apparently. Any tips on another way to do this?
I suppose I could network the owner of each entity but that seems dumb because then i would be setting hundreds of networked variables instead of maybe 12.

Store the player’s values serverside and then send them through a usermessage and reconstruct the table clientside, is what I’d think.

[editline]13th May 2012[/editline]

Create a serverside table called ‘proptable’ and then set proptable[guys steamID here] to a table of his props (inception tables ftw). Then you can send his table when the client needs it.

[editline]13th May 2012[/editline]

You can create a console command serverside that triggers sending a umsg of the player’s props to the client and then create a menu that shows his props (or whatever you want to do) in the usermessage hook.

[editline]13th May 2012[/editline]

Or if you need to show the owner for a specific prop (like when you look at it or something), you can do a concommand with Entity.EntIndex as one of its arguments and then do a umsg which sends it’s owner.

Thanks a lot. Works perfect.
This is what I’m using now if anyone else wonders about this sometime.
[lua]–Prop List (Sak is the entity)
if PropList[pl:UniqueID()] == nil then
PropList[pl:UniqueID()] = {}
end
table.insert(PropList[pl:UniqueID()],Sak)[/lua]

Also make sure to delete a player’s part of the table when he disconnects.

[lua]function CleanUpProps(pl,command,args)
if PropList[pl] then
for k,v in pairs(PropList[pl]) do
v:Remove()
end
PropList[pl] = nil
end
end
concommand.Add(“GM_CleanUp”,CleanUpProps)[/lua]

I can’t work on it right now but I’m guessing that all I need to do is hook this function I wrote for a cleanup command to whenever someone disconnects with perhaps a delay or something.
Should work fine right? Thanks.

Use SetNetworkedVar instead of SetNetWorkedVar

Yeah, that looks good.