print("Loading structures!") GMS = GMS or {} GMS.Structures = GMS.Structures or {} GMS.UniqueStructures = {} function registerStructure(tbl) assert(tbl.Name != nil, "Structure's name is nil!") GMS.Structures[tbl.Name] = tbl end concommand.Add("gms_spawnstructure",function(ply,cmd,args) if !ply:IsDeveloper() then return end assert(args[1] != "","Failed to find structure name") assert(GMS.Structures[args[1]] != nil, "Structure \"" .. args[1] .. "\" does not exist!") local tr = ply:GetEyeTrace() local e = ents.Create("gms_generic_structure") local tbl = GMS.Structures[args[1]] if tbl.uniquedata then tbl = table.Copy(tbl) GMS.UniqueStructures[e:EntIndex()] = tbl end for k,v in pairs(tbl) do print("Setting " .. k .. " to") print(v) e[k] = v end e:Spawn() e:SetPos(tr.HitPos) SPropProtection.PlayerMakePropOwner( ply, e ) --e:SetNWString("Owner",ply:Nick()) end)