Hello, I’m trying to make it so it changes the character on being spawned to one that is skinned mesh, with data save.
However, the character added keeps being spammed 
I hope the script makes sense, even tho it’s a little messy 
local var = require(game:GetService("ServerScriptService").ServerVariables)
local DH = var.CustomService.DataHandler
local PS = game:GetService("PhysicsService")
--//Functions
--Data
local function DataStart(Player)
local NewPlayer = DH.PlayerEntered(Player)
end
local function DataLeave(Player)
DH.PlayerLeave(Player)
end
--Collsion Group
local function SetCollisionGroup(Parts,CG)
assert(type(Parts) == "table", "Parts must be an array of parts!");
for _, Part in ipairs(Parts) do
if (Part:IsA("BasePart")) then
PS:SetPartCollisionGroup(Part, CG);
end
end
end
PS:CreateCollisionGroup("mobs")
PS:CreateCollisionGroup("players")
PS:CollisionGroupSetCollidable("players", "players", false)
PS:CollisionGroupSetCollidable("mobs", "mobs", false)
PS:CollisionGroupSetCollidable("mobs", "players", false)
--//MainFunctions
--Added
local dontrepeat
function ChangeRig(Player)
local rig = var.Service.RS.Characters[DH[Player.UserId].Characters.CurrentModel]:Clone()
rig.Parent = workspace
rig.Humanoid.Health = 100
rig.Humanoid.NameDisplayDistance = 0
rig.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
rig.Humanoid.BreakJointsOnDeath = false
rig.HumanoidRootPart.CFrame = Player.Character.HumanoidRootPart.CFrame
rig.Name = Player.Name
Player.Character = rig
end
function CharacterAdded(char)
--//char
warn("CharacterAdded")
game:GetService("RunService").Stepped:wait()
local Player = game.Players:GetPlayerFromCharacter(char)
local System = script.StarterCharacter.System:Clone()
ChangeRig(Player)
char = Player.Character
SetCollisionGroup(char:GetDescendants(),"players")
var.Remotes.Joining.SetCharacter:FireClient(Player,Player.Character)
-- System.Parent = Player.Character
--//Tools
Player.Backpack:ClearAllChildren()
for i,toolname in pairs (DH[Player.UserId].Weapons.Current) do
local tool = var.Service.RS.Items[toolname]:Clone()
tool.ToolTip = i
tool.CanBeDropped = false
tool.Parent = Player.Backpack
print("Added tool: "..toolname)
end
char.DescendantAdded:Connect(function(AddedObj)
if AddedObj:IsA('BasePart') then
PS:SetPartCollisionGroup(AddedObj, "players") -- Setting The Part's CollisionGroup ID
end
end)
char:WaitForChild("Humanoid").Died:Connect(function()
print(Player.Name.."Has died")
for i,v in pairs (char:GetDescendants()) do
if v:IsA("MeshPart") then
--v.Color = Color3.new(1, 0.666667, 1)
v.TextureID = " "
v.Material = Enum.Material.Neon
coroutine.wrap(function()
require(game:GetService("ReplicatedStorage").Scripts.Tween)(v, {Transparency = 1},{Time = 4},true)
end)()
elseif v:IsA("Decal")then
v:Destroy()
end
end
wait(10)
char:Destroy()
wait(5)
Player:LoadCharacter()
end)
end
function PlayerAdded(Player)
DataStart(Player)
CharacterAdded(Player.Character)
Player.CharacterAdded:Connect(CharacterAdded)
end
--Removed
function PlayerRemoved(Player)
DataLeave(Player)
end