I am making character customization for a military game and I am trying to make a local script that handles it , here’s my code so far:
function GetTeams()
return(string.split(game:GetService("ReplicatedStorage"):WaitForChild("MatchInfo"):WaitForChild("CurrentTeams"):WaitForChild("Info").Value, ";"))
end
function GetPlayerTeamName()
return(Player.Team.Name)
end
function ReturnTeam()
if GetPlayerTeamName() == "Attackers" then
return(GetTeams()[1])
elseif GetPlayerTeamName() == "Defenders" then
return(GetTeams()[2])
end
end
function RemoveChrThings(model)
for i,v in pairs(model:GetChildren()) do
if v:IsA("Accessory") then
v:Destroy()
elseif v:IsA("Shirt") then
v:Destroy()
elseif v:IsA("Pants") then
v:Destroy()
elseif v:IsA("Model") then
v:Destroy()
end
end
end
function SetupItem(Item, Model)
local c = Item:Clone()
c.Parent = Model
local Weld = Instance.new("WeldConstraint")
c:MoveTo(Model[Item:WaitForChild("WeldTo").Value].Position)
Weld.Parent = c
Weld.Part0 = c.PrimaryPart
Weld.Part1 = Model[Item:WaitForChild("WeldTo").Value]
end
local CharacterfromLoadout = script.Parent:WaitForChild("Fade"):WaitForChild("Content_Character"):WaitForChild("CurrentCharacter"):WaitForChild("WorldModel"):WaitForChild("Character")
function SetupCurrentCharacter()
local PlayerTeam = ReturnTeam()
local PlayerKit = Player:WaitForChild("KitInfo"):FindFirstChild(PlayerTeam)
RemoveChrThings(CharacterfromLoadout)
task.wait(0.5)
local KitStuff = game:GetService("ReplicatedStorage"):WaitForChild("Kits"):FindFirstChild(PlayerTeam)
if KitStuff:WaitForChild("Vests"):FindFirstChild(PlayerKit:WaitForChild("Vest").Value) then
SetupItem(KitStuff.Vests:FindFirstChild(PlayerKit.Vest.Value), CharacterfromLoadout)
end
if KitStuff:WaitForChild("Helmets"):FindFirstChild(PlayerKit:WaitForChild("Helmet").Value) then
SetupItem(KitStuff.Helmets:FindFirstChild(PlayerKit.Helmet.Value), CharacterfromLoadout)
end
if KitStuff:WaitForChild("Legs"):FindFirstChild(PlayerKit:WaitForChild("Legs").Value) then
for i,v in pairs(KitStuff:WaitForChild("Legs"):FindFirstChild(PlayerKit:WaitForChild("Legs").Value):GetChildren()) do
SetupItem(v, CharacterfromLoadout)
end
end
if KitStuff:WaitForChild("Outfits"):FindFirstChild(PlayerKit:WaitForChild("Outfit").Value) then
for i,v in pairs(KitStuff:WaitForChild("Outfits"):FindFirstChild(PlayerKit:WaitForChild("Outfit").Value):GetChildren()) do
v:Clone().Parent = CharacterfromLoadout
end
end
end
CharacterCustomization.Vest.MouseButton1Click:Connect(function()
local PlayerTeam = ReturnTeam()
local PlayerKit = Player:WaitForChild("KitInfo"):FindFirstChild(PlayerTeam)
local KitStuff = game:GetService("ReplicatedStorage"):WaitForChild("Kits"):FindFirstChild(PlayerTeam)
for i,v in pairs(CharacterCustomization:WaitForChild("Handler"):GetChildren()) do
if not v:IsA("UIListLayout") then
v:Destroy()
end
end
for i,v in pairs(KitStuff:WaitForChild("Vests"):GetChildren()) do
local Clone = script:WaitForChild("CharacterCExample"):Clone()
Clone.Name = v.Name
Clone.Parent = CharacterCustomization:WaitForChild("Handler")
Clone.Text = v.Name
Clone.Visible = true
Clone.MouseButton1Click:Connect(function()
print("Clicked")
MatchEvents:WaitForChild("ChangeKitInfo"):FireServer("Vest",v.Name)
task.wait(0.5)
SetupCurrentCharacter()
end)
end
end)
The part with Clone.MouseButton1Click doesn’t work at all, doesn’t print or make a change.