R15 Auto morph help

I used a R15 auto morph script to give division and main uniforms to people automatically on join and It works fine but the main uniform blocks division uniforms from being worn while the group id is in the main one.

1 Like

The script

local Players = game:GetService('Players')
local Morphs = game:GetService('ServerStorage'):WaitForChild('Morphs') -- Looks for the "Morph" folder you've created earlier.
local visible = false
local recol = ''

function morph(plr, part, location, model, test)
	if plr ~= nil then
		if test == 'Morph' then
			if plr:FindFirstChild('Morph') == nil then
				local Folder = Instance.new('Folder')
				Folder.Name = 'Morph'
				Folder.Parent = plr
			end
		elseif test == 'Coat' then -- The "Coat" and "Pauld" statements can be completely ignored or removed without harming the script.
			if plr:FindFirstChild('Coat') == nil then
				local Folder = Instance.new('Folder')
				Folder.Name = 'Coat'
				Folder.Parent = plr
			end
		elseif test == 'Add' then
			if plr:FindFirstChild('Add') == nil then
				local Folder = Instance.new('Folder')
				Folder.Name = 'Add'
				Folder.Parent = plr
			end
		elseif test == 'Pauld' then
			if plr:FindFirstChild('Pauld') == nil then
				local Folder = Instance.new('Folder')
				Folder.Name = 'Pauld'
				Folder.Parent = plr
			end
		end
		local Folder = (test == 'Morph' and plr:FindFirstChild('Morph')
			 or test == 'Coat' and plr:FindFirstChild('Coat')
			 or test == 'Add' and plr:FindFirstChild('Add')
			 or test == 'Pauld' and plr:FindFirstChild('Pauld'))
		if Folder:FindFirstChild(model) == nil then
			local g = location[model]:Clone()
			g.Parent = Folder
			for i, v in ipairs(g:GetChildren()) do
				if v:IsA("BasePart") then
					local W = Instance.new("Weld")
					W.Part0 = g.Middle
					W.Part1 = v
					local CJ = CFrame.new(g.Middle.Position)
					local C0 = g.Middle.CFrame:inverse() * CJ
					local C1 = v.CFrame:inverse() * CJ
					W.C0 = C0
					W.C1 = C1
					W.Parent = g.Middle
				end
				local Y = Instance.new("Weld")
				Y.Part0 = plr:FindFirstChild(part)
				Y.Part1 = g.Middle
				Y.C0 = CFrame.new(0, 0, 0)
				Y.Parent = Y.Part0
			end
			local h = g:GetChildren()
			for i = 1, # h do
				if h[i].className == "Part" or  h[i].className == "UnionOperation" or  h[i].className == "MeshPart" or  h[i].className == "WedgePart" then  
					h[i].Anchored = false
					h[i].CanCollide = false
				end
			end
		end
	end
end
local function RunThings(char,Model, test)
	pcall(function()
		if Model:findFirstChild("Head") then
			morph(char, 'Head', Model, "Head",test)
			
		end
		if Model:findFirstChild("UpperTorso") then -- Looks for the body part models placed inside of the named folder you made.
			morph(char, 'UpperTorso', Model, "UpperTorso",test)
		end
		if Model:findFirstChild("LowerTorso") then
			morph(char, 'LowerTorso', Model, "LowerTorso",test)
		end
		if Model:findFirstChild("LeftUpperArm") then
			morph(char, 'LeftUpperArm', Model, "LeftUpperArm",test)
		end
		if Model:findFirstChild("RightUpperArm") then
			morph(char, 'RightUpperArm', Model, "RightUpperArm",test)
		end
		if Model:findFirstChild("LeftLowerArm") then
			morph(char, 'LeftLowerArm', Model, "LeftLowerArm",test)
		end
		if Model:findFirstChild("RightLowerArm") then
			morph(char, 'RightLowerArm', Model, "RightLowerArm",test)
		end
		if Model:findFirstChild("LeftHand") then
			morph(char, 'LeftHand', Model, "LeftHand",test)
		end
		if Model:findFirstChild("RightHand") then
			morph(char, 'RightHand', Model, "RightHand",test)
		end
		if Model:findFirstChild("LeftUpperLeg") then
			morph(char, 'LeftUpperLeg', Model, "LeftUpperLeg",test)
		end
		if Model:findFirstChild("RightUpperLeg") then
			morph(char, 'RightUpperLeg', Model, "RightUpperLeg",test)
		end
		if Model:findFirstChild("LeftLowerLeg") then
			morph(char, 'LeftLowerLeg', Model, "LeftLowerLeg",test)
		end
		if Model:findFirstChild("RightLowerLeg") then
			morph(char, 'RightLowerLeg', Model, "RightLowerLeg",test)
		end
		if Model:findFirstChild("LeftFoot") then
			morph(char, 'LeftFoot', Model, "LeftFoot",test)
		end
		if Model:findFirstChild("RightFoot") then
			morph(char, 'RightFoot', Model, "RightFoot",test)
		end
	end)
end

local function MorphUser(User,Team,Class,Morph,name)
	local MorphRoot = Morphs[Team][Class]:WaitForChild(Morph)					
	local Model = MorphRoot:Clone()
	local char = User.Character
	RunThings(char,Model,name)
end
local function Body(depth,height,width,Char)
	for _,v in pairs(Char.Humanoid:GetChildren()) do
		if v.ClassName == 'NumberValue' then
			if v.Name == 'BodyDepthScale' then -- Looks for any changes made to the depth, height and width variables.
				v.Value = depth
			elseif v.Name == 'BodyHeightScale' then
				v.Value = height
			elseif v.Name == 'BodyWidthScale' then					
				v.Value = width
			end
		end
	end
end
local function Finale(Char)
	for i,v in pairs(Char:GetChildren()) do
		if v:IsA('Accessory') or v:IsA('Hat') then
			v:Destroy()
		end
	end
end
local function Finale0(Char)
	for i,v in pairs(Char:GetChildren()) do
		if v.ClassName == 'MeshPart' or v.ClassName == 'n/a' then
			v.Transparency = 1
			if v:FindFirstChild('n/a') then
			    v.face:remove()
			end
		end
	end
end
local function Finale1(Char)
	for i,v in pairs(Char:GetChildren()) do
		if v.ClassName == 'MeshPart' or v.ClassName == 'Part' then
			v.Transparency = 1
			if v:FindFirstChild('face') then
			    v.face:remove()
			end
		end
	end
end
local function Finale2(Char)
	for i,v in pairs(Char:GetChildren()) do
		if v.ClassName == 'MeshPart' or v.ClassName == 'Part' and v.Name ~= 'Head' or v.Name ~= 'LeftHand' or v.Name ~= 'RightHand' then
			v.Transparency = 1
		end
	end
end
local function Head(head,Char)
    for _,v in pairs(Char.Humanoid:GetChildren()) do
        if v.ClassName == 'NumberValue' then
            if v.Name == 'HeadScale' then
                v.Value = head
            end
        end
    end
end

Players.PlayerAdded:connect(function(Player)
	Player.CharacterAdded:connect(function(Character)
		wait(2)
		visible = false
		
		
		-- Standard -- 
		

		
		
		-- ‹The Galactic Empire› --
		
		if Player:GetRankInGroup(21421421) >= 6 then 
			Body(1,1,1,Character)
			MorphUser(Player, "TGE", "Divisionless", "Basic", "Morph") 
			Finale(Character)
			Finale1(Character)
			

			
		-- 501st Division --
		
		elseif Player:GetRankInGroup(6565371) == 1 then
			Body(1,1,1,Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		elseif Player:GetRankInGroup(6565371) == 2 then
			Body(1,1,1,Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6565371) == 3 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "501", "Imperial Commando", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6565371) == 4 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6565371) == 5 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6565371) == 6 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6565371) == 7 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "501", "Clone-Stormtrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- Shock Division --
		
		elseif Player:GetRankInGroup(6567204) == 1 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "Shock", "Cadet", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567204) == 2 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "Shock", "Lc", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567204) == 3 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "Shock", "Officer", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567204) == 4 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "Shock", "Officer", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567204) == 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "Shock", "XO", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- Death Troopers --
		
		elseif Player:GetRankInGroup(6567420) == 1 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Ranker", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567420) == 2 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Ranker", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567420) == 3 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Ranker", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567420) == 4 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Officer", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567420) == 5 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Officer", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6567420) == 253 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "DeathTrooperCommander", "Morph")
			Finale(Character)
			Finale1(Character)
		
	
		elseif Player:GetRankInGroup(6567420) == 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "DR", "Krennic", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- Imperial Royal Guard -- 
		
		elseif Player:GetRankInGroup(6591728) == 1 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "Initiate", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6591728) == 2 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "Guardsman", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6591728) == 3 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "ShadowGuard", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6591728) == 4 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "Sovpro", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6591728) == 5 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "Sergeant", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6591728) == 6 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "ShadowCO", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(6559365) == 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "RoyalGuard", "Commandant", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- CR --
		
		elseif Player:GetRankInGroup(13145421) == 1 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "CloneTrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 2 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "HeavyCloneTrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 3 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "CloneJetTrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 4 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "ARCTrooper", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 249 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Alpha17", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 250 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Sev", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 251 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Gregor", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 252 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Wolffe", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 253 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Rex", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13145421) == 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "CR", "Fordo", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- KM --
		
		elseif Player:GetRankInGroup(13145215) >= 1 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "KM", "Militiaman", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- BHG -- 
		
		elseif Player:GetRankInGroup(13146280) >= 248 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "Embo", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 249 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "Dengar", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 250 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "IG-88", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 251 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "Greedo", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 252 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "Bossk", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 253 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "FennecShand", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13146280) >= 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "BHG", "BobaFett", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- BB --
		
		elseif Player:GetRankInGroup(13084320) >= 249 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Omega", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13084320) >= 250 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Echo", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13084320) >= 251 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Tech", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13084320) >= 252 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Wrecker", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13084320) >= 253 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Crosshair", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		elseif Player:GetRankInGroup(13084320) >= 254 then
			Body(1,1,1, Character)
			MorphUser(Player, "TRA", "Bad Batch", "Hunter", "Morph")
			Finale(Character)
			Finale1(Character)
		
		
		-- 
		
		-- Heros -- 
		
		elseif Player.Name == "" then 
			Body(1,1,1, Character)
			MorphUser(Player, "TGE", "", "", "Morph")
			Finale(Character)
	        Finale1(Character)
	    end
	end)
end)

nvm I just now noticed I need to place prioritys on the morphs

1 Like