I tried modulating some code so it's more streamlined and edit-able. However, the one issue I came upon was in the following code:
Keep in mind, this is in a ModuleScript, called by a parent Script, providing the Player instance and value of Player.Team
local Tools = game.ServerStorage.ToolStorage
local TCDAR = Tools["TCD AR"]
local AR = Tools.AR
local Revolver = Tools.Revolver
local function ClassAssignment(Player, Team)
local starterGear = Player:WaitForChild("StarterGear")
starterGear:ClearAllChildren()
if Team == "TCD" then
game.Lighting.ClassSystem.ClassCounts.TCD.Assault.Value = game.Lighting.ClassSystem.ClassCounts.TCD.Assault.Value + 1
local Primary = game.ServerStorage.ToolStorage["TCD AR"]:Clone()
local Secondary = game.ServerStorage.ToolStorage.Revolver:Clone()
Primary.Parent = Player.StarterGear
Secondary.Parent = Player.StarterGear
elseif Team == "Insurgents" then
game.Lighting.ClassSystem.ClassCounts.Insurgents.Assault.Value = game.Lighting.ClassSystem.ClassCounts.Insurgents.Assault.Value + 1
local Primary = AR:Clone()
local Secondary = Revolver:Clone()
Primary.Parent = Player.StarterGear
Secondary.Parent = Player.StarterGear
end
Player.ClassType.Value = "Assault"
Player:LoadCharacter()
end
return ClassAssignment
The problem lies in either: 1). The tools themselves cloning 2). The tools' copies not being relocated. (I checked both client and server-side and neither showed any sign of the new tools in the player's StarterGear.)
Thanks in advance for any help!

2 comments
“player.Team” is an instance, so try doing Team.Name in the function. Also, is the function running at all? Try putting a print in the function and see if it works.
Using Team.Name worked, but now I'm having other issues...