Error: Trying to network (receive) unacceptable type (table)

So I’m working on an ugly chat tag system for my server and I’m running into an issue with using net.WriteTable I think. Also DColorMixer isn’t working too well for me…

I’ll paste the entire file below, but I’ll give you the parts I think are wrong here.
[lua]
local rainbow = vgui.Create(“DColorMixer”, base)
rainbow:SetSize( ScrW()/2.5, ScrH()/5)
rainbow:SetPos((ScrW() - (ScrW()/10 + ScrW()/4)/2) - rainbow:GetWide(), ScrH() - 10 - ScrH()/5)
rainbow:SetColor(Color(255,0,255,255))

col = rainbow:GetColor()
cRed = col.r
cGreen = col.g
cBlue = col.b

dat[1] = cRed
dat[2] = cGreen
dat[3] = cBlue
dat[4] = tagList:GetSelectedLine()
dat[5] = LocalPlayer()
PrintTable(dat)

local conf = vgui.Create("DButton", base)
conf:SetSize(75, 20)
conf:Center()
conf:SetText("Confirm")
conf.DoClick = function()
	print("Sending color and title data to server")
net.Start("DataRefresh")
net.WriteTable( dat )
net.SendToServer()
end 

[/lua]

[lua]
function readyServer()
util.AddNetworkString(“DataRefresh”)
end
hook.Add(“Initialize”, “Get dem network strings up”, readyServer)

///client told us to change stuff so do it
net.Receive( "DataRefresh", function(len)
	local dat = net.ReadTable()
	local red = dat[1]
	local green = dat[2]
	local blue = dat[3]
	local title = dat[4]
	local targ = dat[5]

	targ:SetPData("ColorR", red)
	targ:SetPData("ColorG", green)
	targ:SetPData("ColorB", blue)
	targ:SetPData("Title", title)
	
	targ:SetNWInt("NColorR", red)
	targ:SetNWInt("NColorG", green)
	targ:SetNWInt("NColorB", blue)
	targ:SetNWString("Title", title)
	
	targ:ChatPrint("Received update...")
	targ:ChatPrint("Red: "..tostring(dat[1])..", Green: "..tostring(dat[2])..", Blue: "..tostring(dat[3])..", title: "..dat[4].." ")
end )

[/lua]

[editline]23rd June 2014[/editline]

Entire file:

[lua]
numTags = 5

local tagTab = {}
tagTab[1] = “Indecisive”
tagTab[2] = “”
tagTab[3] = “”
tagTab[4] = “”
tagTab[5] = “Noobie”

if SERVER then
///boop///

function readyServer()
	util.AddNetworkString("DataRefresh")
end
hook.Add("Initialize", "Get dem network strings up", readyServer)


///client told us to change stuff so do it
net.Receive( "DataRefresh", function(len)
	local dat = net.ReadTable()
	local red = dat[1]
	local green = dat[2]
	local blue = dat[3]
	local title = dat[4]
	local targ = dat[5]

	targ:SetPData("ColorR", red)
	targ:SetPData("ColorG", green)
	targ:SetPData("ColorB", blue)
	targ:SetPData("Title", title)
	
	targ:SetNWInt("NColorR", red)
	targ:SetNWInt("NColorG", green)
	targ:SetNWInt("NColorB", blue)
	targ:SetNWString("Title", title)
	
	targ:ChatPrint("Received update...")
	targ:ChatPrint("Red: "..tostring(dat[1])..", Green: "..tostring(dat[2])..", Blue: "..tostring(dat[3])..", title: "..dat[4].." ")
end )

function initColors( ply )
	if ply:GetPData("ColorR") == nil then
		ply:ChatPrint("Welcome to the server! Initializing some stuff for you...")
		///Color( 200, 50, 50 ) default colors
		ply:SetPData("ColorR", 200 ) //remember Luaderp stores these as strings because yolo
		ply:SetPData("ColorG", 50 )
		ply:SetPData("ColorB", 50 )
	end
end
hook.Add("PlayerInitialSpawn", "First time joining", initColors)

function initTags( ply )
	if ply:GetPData("HasJoined") != "true" then
		ply:SetPData("HasJoined", "true")
		for i = 1,numTags do
			ply:SetPData("OwnsTag"..i.."", 0)
		end
			ply:SetPData("OwnsTag5", 1)
	end		
end
hook.Add("PlayerInitialSpawn", "First time joining2", initTags)

function loadTitle( ply )
	if not ply:GetPData("Title") == nil then
		ply:SetNWString("Title", ply:GetPData("Title"))
	end
end
hook.Add("PlayerSpawn", "reload selected title", loadTitle)

function loadColors( ply )
	ply:SetNWInt("NColorR", tonumber(ply:GetPData("ColorR")))
	ply:SetNWInt("NColorG", tonumber(ply:GetPData("ColorG")))
	ply:SetNWInt("NColorB", tonumber(ply:GetPData("ColorB")))
end
hook.Add("PlayerSpawn", "Refresh the rainbow", loadColors)

function loadTags( ply )
	//force Noobie to load if it didn't
	if ply:GetPData("OwnsTag5") == nil then
		ply:SetPData("OwnsTag5", 1)
		ply:ChatPrint("Have the <Noobie> chat tag for free!")
	end

	for i = 1,numTags do
		ply:SetNWInt("OwnsTag"..i.."", tonumber(ply:GetPData("OwnsTag"..i.."")))
	end			

end
hook.Add("PlayerSpawn", "Restore our loaded tags here", loadTags)

function openSelect( ply, text, public)

if string.upper(string.sub(text, 1,4)) == "!TAG" then
//debug code
	/*if ply:GetPData("NumOfOpens") then
		ply:ChatPrint(ply:GetPData("NumOfOpens"))
	end*/
umsg.Start("OpenMenu", ply)
umsg.End()
	if (ply:GetPData("NumOfOpens") == nil) or (ply:GetPData("NumOfOpens") == 0) or (ply:GetPData("NumOfOpens") == "") then
		ply:SetPData("NumOfOpens", 1)
	else
		ply:SetPData("NumOfOpens", tonumber(ply:GetPData("NumOfOpens")) + 1)			
	end
	
	if tonumber(ply:GetPData("NumOfOpens")) > 4 and ply:GetPData("OwnsTag1") != "1" then
		ply:SetPData("OwnsTag1", 1)
		ply:ChatPrint("You have earned the <Indecisive> tag for opening chat tag selection 5 times!")
	end
end

end
hook.Add(“PlayerSay”, “Open the tag selection menu”, openSelect)

end

if CLIENT then
dat = {}

function refreshData()

end

function chatting( ply, strText, bTeamOnly, bPlayerIsDead )
red = ply:GetNWInt(“NColorR”)
blue = ply:GetNWInt(“NColorG”)
green = ply:GetNWInt(“NColorB”)
– I’ve made this all look more complicated than it is. Here’s the easy version
– chat.AddText( ply:GetName(), Color( 255, 255, 255 ), ": ", strText )

local tab = {}

if ( bPlayerIsDead ) then
	table.insert( tab, Color( 255, 30, 40 ) )
	table.insert( tab, "*DEAD* " )
end

if ( bTeamOnly ) then
	table.insert( tab, Color( 30, 160, 40 ) )
	table.insert( tab, "(TEAM) " )
end

if ( IsValid( ply ) ) then
		
		if ply:GetNWString("Title") != "" then 
			title = ply:GetNWString("Title")			
		else
			title = "Noobie"
		end
		table.insert( tab, Color( red, green, blue ) )
		table.insert( tab, " <"..title.."> " )

	table.insert( tab, Color( 144, 33, 208 ) )
	table.insert( tab, ply:GetName() )
else
	table.insert( tab, "Console" )
end

table.insert( tab, Color( 255, 255, 255 ) )
table.insert( tab, ": "..strText )

chat.AddText( unpack(tab) )

return true

end
hook.Add(“OnPlayerChat”, “boop”, chatting)

function theMenu( um )

LocalPlayer():ChatPrint( tostring( LocalPlayer():GetNWInt("OwnsTag1") ) )

//local copiedTags = table.Copy(tagTab)
local copiedTags = {}

for i = 1,numTags do
	if tonumber(LocalPlayer():GetNWInt("OwnsTag"..i.."")) == 1 then
		table.insert(copiedTags, tagTab*)
		LocalPlayer():ChatPrint("Adding tag "..tagTab*.."!")
	end
end

table.sort(copiedTags)

local base = vgui.Create("DFrame")
base:SetSize( ScrW(), ScrH() )
base:SetPos( 0, 0)
base:SetTitle("Tag Selection")
base:SetVisible( true )
base:SetDraggable( false )
base:ShowCloseButton( true )
base:MakePopup()

local tagList = vgui.Create("DListView", base)
tagList:SetPos(ScrW()/10, ScrH()/10)
tagList:SetSize(ScrW()/4, ScrH() - ScrH()/5)
tagList:SetMultiSelect(false)//what does this even do? lol
tagList:AddColumn("Title")

for k,v in pairs(copiedTags) do
	tagList:AddLine(v)
end

local rainbow = vgui.Create("DColorMixer", base)
rainbow:SetSize( ScrW()/2.5, ScrH()/5)
rainbow:SetPos((ScrW() - (ScrW()/10 + ScrW()/4)/2) - rainbow:GetWide(), ScrH() - 10 - ScrH()/5)
rainbow:SetColor(Color(255,0,255,255))

col = rainbow:GetColor()
cRed = col.r
cGreen = col.g
cBlue = col.b

dat[1] = cRed
dat[2] = cGreen
dat[3] = cBlue
dat[4] = tagList:GetSelectedLine()
dat[5] = LocalPlayer()
PrintTable(dat)

local conf = vgui.Create("DButton", base)
conf:SetSize(75, 20)
conf:Center()
conf:SetText("Confirm")
conf.DoClick = function()
	print("Sending color and title data to server")
net.Start("DataRefresh")
net.WriteTable( dat )
net.SendToServer()
end 

end

usermessage.Hook(“OpenMenu”, theMenu)

end
[/lua]

What’s the error or problem you’re having?

“Error: Trying to network (receive) unacceptable type (table)” is the error I’m being given. It appears it doesn’t want to send the table from Client to Server? Also I’m not sure if DColorMixer:GetColor().r .b .g are working properly x.x

do dat.cRed and shit rather than [1] and tell me if the error continues to happen

That seems to have solved me previous error zero. Now all that seems to be wrong is that rainbow:GetColor() does not seem to actually return the real color. In fact, when I try to print rainbow:GetColor() in console it won’t print anything. Printing rainbow:GetColor().r will print 255, no matter what the live preview says the red value is set to.