-- Make sure Fluent, SaveManager, InterfaceManager are already loaded -- Table of fan-made morphs local morphList = { ["Tails"] = "Tails", ["Knuckles"] = "Knuckles", ["Eggman"] = "Eggman", ["Amy"] = "Amy", ["Cream"] = "Cream", ["Sally"] = "Sally", ["Shadow"] = "Shadow", ["Rouge"] = "Rouge", ["Metal Sonic"] = "MetalSonic", ["Silver"] = "Silver", ["Blaze"] = "Blaze", ["Vector"] = "Vector", ["Espio"] = "Espio", ["Charmy"] = "Charmy", ["Sonic.EXE"] = "SonicEXE", ["Kolossos"] = "Kolossos", ["Tails Doll"] = "TailsDoll", ["Furnace"] = "Furnace" } local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local player = Players.LocalPlayer -- Add a section inside the Main tab local MainSection = Tabs.Main:AddSection({ Title = "Morph Hub" }) -- Create buttons for each morph for displayName, modelName in pairs(morphList) do MainSection:AddButton({ Text = displayName, Callback = function() local character = player.Character or player.CharacterAdded:Wait() -- Remove old morph for _, child in pairs(character:GetChildren()) do if child:IsA("Model") and child.Name == "CurrentMorph" then child:Destroy() end end -- Clone new morph from ReplicatedStorage local morphModel = ReplicatedStorage:FindFirstChild(modelName) if morphModel then local newMorph = morphModel:Clone() newMorph.Name = "CurrentMorph" newMorph.Parent = character if character.PrimaryPart and newMorph.PrimaryPart then newMorph:SetPrimaryPartCFrame(character.PrimaryPart.CFrame) end else warn("Morph "..modelName.." not found in ReplicatedStorage") end end }) end