John Grace Sinner Morph
Key RequiredUniversal

John Grace Sinner Morph

Universal Scriptimdisplayimdisplay 4.3K views 203 executesUpdated Oct 17, 2025
5.0/ 5(4 votes)
40100% Positive
Lua Script•105 lines (3252 chars)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

--configs

local Variant = "Sinner" --Sinner, Reprieve, or Zen

local UseAlternateOutfit = true

local UseAlternateFace = false

local EnableShirtGraphic = true 
local ShirtGraphicID = "rbxassetid://11941626720"

local Variants = {
    ["Sinner"] = {
        Shirt = "rbxassetid://124726194001878",
        Pants = "rbxassetid://74386243372203",
        AltShirt = "rbxassetid://124426852530129",
        AltPants = "rbxassetid://118613073734644",
        Face = "rbxassetid://95533181059239",
        FaceAlt = "rbxassetid://75180857597804",
        BodyColor = BrickColor.new("Really black")
    },
    ["Reprieve"] = {
        Shirt = "rbxassetid://113683629686211",
        Pants = "rbxassetid://109804459655906",
        AltShirt = "rbxassetid://86551229423594",
        AltPants = "rbxassetid://96919807945041",
        Face = "rbxassetid://101922837412511",
        FaceAlt = "rbxassetid://129629337210159",
        BodyColor = BrickColor.new("Institutional white")
    },
    ["Zen"] = {
        Shirt = "rbxassetid://119263618369651",
        Pants = "rbxassetid://80022534369523",
        Face = "rbxassetid://113971926363184",
        BodyColor = BrickColor.new("Institutional white")
    }
}

local function MorphPlayer()
    local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    local variantData = Variants[Variant]
    if not variantData then
        warn("my sigma you choose the wrong skin type it's not:", Variant)
        return
    end

    for _, item in ipairs(character:GetChildren()) do
        if item:IsA("Accessory") or item:IsA("Shirt") or item:IsA("Pants") or item:IsA("ShirtGraphic") then
            item:Destroy()
        end
    end

    local head = character:FindFirstChild("Head")
    if head then
        for _, d in ipairs(head:GetChildren()) do
            if d:IsA("Decal") and d.Name == "face" then
                d:Destroy()
            end
        end
    end

    for _, part in ipairs(character:GetChildren()) do
        if part:IsA("BasePart") then
            part.BrickColor = variantData.BodyColor
        end
    end

    local shirt = Instance.new("Shirt")
    shirt.Name = "GraceShirt"
    shirt.ShirtTemplate = UseAlternateOutfit and (variantData.AltShirt or variantData.Shirt) or variantData.Shirt
    shirt.Parent = character

    local pants = Instance.new("Pants")
    pants.Name = "GracePants"
    pants.PantsTemplate = UseAlternateOutfit and (variantData.AltPants or variantData.Pants) or variantData.Pants
    pants.Parent = character

    if EnableShirtGraphic then
        local sg = Instance.new("ShirtGraphic")
        sg.Name = "GraceNeckGraphic"
        sg.Graphic = ShirtGraphicID
        sg.Parent = character
    end

    if head then
        local faceDecal = Instance.new("Decal")
        faceDecal.Name = "face"
        faceDecal.Texture = UseAlternateFace and (variantData.FaceAlt or variantData.Face) or variantData.Face
        faceDecal.Face = Enum.NormalId.Front
        faceDecal.Parent = head
    end
end

LocalPlayer.CharacterAdded:Connect(function()
    task.wait(1)
    MorphPlayer()
end)

if LocalPlayer.Character then
    task.wait(1)
    MorphPlayer()
end

Features & Information

You can now play as John Grace/sinner and his variants from the hit roblox game 'Grace' awesome morph play grace https://www.roblox.com/games/138837502355157/SPREAD-THE-LOVE-Grace
#Grace#john grace#sinner#morph

Community Comments (1)

V1mannV1mannMar 15, 2026

FE?

More Scripts for Universal Scripts