I'm trying to use network ownership to clone items and spawn them in front of players. I can get it to work on bricks but not models that use welds. Any help?
local spawnProp = game.ReplicatedStorage.Remotes.SpawnProp local coolDown = 0.5 local deb = {} function getPlrId(targetPlayer) local targetPlayer = game.Players:GetUserIdFromNameAsync(targetPlayer) return targetPlayer end function recSet(plr,PropClone) if PropClone:IsA("BasePart") then PropClone:SetNetworkOwner(plr) elseif PropClone:IsA("Model") then for i,v in pairs(PropClone:children()) do recSet(plr,v) end end end spawnProp.OnServerEvent:Connect(function(plr, name, lookVector, args) print("Processing") if deb[plr.Name] ~= nil then return else deb[plr.Name] = 0 end if args["2"] ~= nil then local PropClone = game.ServerStorage:FindFirstChild(name):Clone() PropClone.Parent = plr.Backpack wait(coolDown) deb[plr.Name] = nil return end if game.ServerStorage:FindFirstChild(name) ~= nil then local PropClone = game.ServerStorage:FindFirstChild(name):Clone() if PropClone:IsA("BasePart") then PropClone.Anchored = false PropClone:SetNetworkOwner(plr) elseif PropClone:IsA("Model") then for c,v in pairs(PropClone:GetChildren()) do if v:IsA("BasePart") then v.Anchored = false end end end local PlayerLookVector = lookVector local PropSize local head = plr.Character:WaitForChild("Head", 2) if not head then return end if PropClone:IsA("BasePart") then PropSize = PropClone.Size PropClone.Position = head.Position + PlayerLookVector + Vector3.new(0,PropSize.Y,0) + Vector3.new(PlayerLookVector.X * PropSize.X,PlayerLookVector.Y * PropSize.Y,PlayerLookVector.Z * PropSize.Z) elseif PropClone:IsA("Model") then PropSize = PropClone:GetExtentsSize() PropClone.Parent = game.Workspace PropClone:MoveTo(head.Position + PlayerLookVector + Vector3.new(0,PropSize.Y,0) + Vector3.new(PlayerLookVector.X * PropSize.X,PlayerLookVector.Y * PropSize.Y,PlayerLookVector.Z * PropSize.Z)) end print("Spawning "..PropClone.Name) PropClone.Parent = game.Workspace if args["1"] ~= nil then PropClone:MakeJoints() end if args["3"] ~= nil then local targetPlayer = args["4"] local bool,GetPlayer = pcall(getPlrId, targetPlayer) if bool then local CharAppearence = game.Players:GetCharacterAppearanceAsync(GetPlayer) for n,o in pairs(CharAppearence:GetChildren()) do if o.Name == "face" then o.Parent = PropClone.Head else o.Parent = PropClone end end PropClone:MoveTo(plr.Character.Head.Position + PlayerLookVector + Vector3.new(0,PropSize.Y,0) + Vector3.new(PlayerLookVector.X * PropSize.X,PlayerLookVector.Y * PropSize.Y,PlayerLookVector.Z * PropSize.Z)) else PropClone:Destroy() end end else print(name.." wasn't found!") end wait(coolDown) deb[plr.Name] = nil end)