ivan bad things morph
Key RequiredUniversal

ivan bad things morph

Universal Scriptimdisplayimdisplay 2.7K views 282 executesUpdated Feb 6, 2026
Unrated
00
Lua Script•156 lines (3500 chars)
local Players = game:GetService("Players")
local plr = Players.LocalPlayer

--these r settings
local UseCustomFace = false --custom ivan head
local UseScene12 = false --darkivan

local DEFAULT_FACE = "rbxassetid://7046277"

local VISOR_MESH = "rbxassetid://1081088"
local VISOR_TEXTURE = "rbxassetid://2646470932"

local SHIRT_GRAPHIC = "rbxassetid://125281104115450"

local IVAN_FACE_MESH = "rbxassetid://86617347858874"
local IVAN_FACE_TEXTURE = "rbxassetid://119123102779104"

local SCENE12_FACE_MESH = "rbxassetid://87404689967526"
local SCENE12_FACE_TEXTURE = "rbxassetid://101773917006328"

local function nukeAccessoriesFolder()
	local live = workspace:FindFirstChild("Live")
	if live then
		local folder = live:FindFirstChild(plr.Name)
		if folder then
			local acc = folder:FindFirstChild("Accessories")
			if acc then
				acc:Destroy()
			end
		end
	end
end

local function wipeCharacter(char)
	for _, v in ipairs(char:GetChildren()) do
		if v:IsA("Accessory")
		or v:IsA("Shirt")
		or v:IsA("Pants")
		or v:IsA("ShirtGraphic") then
			v:Destroy()
		end
	end
end

local function setColors(char)
	for _, bp in ipairs(char:GetChildren()) do
		if bp:IsA("BasePart") then
			if bp.Name == "Head"
			or bp.Name == "Left Arm"
			or bp.Name == "Right Arm" then
				bp.Color = UseScene12
					and Color3.fromRGB(99,95,98)
					or Color3.fromRGB(163,162,165)

			elseif bp.Name == "Torso"
			or bp.Name == "UpperTorso"
			or bp.Name == "LowerTorso" then
				bp.Color = UseScene12
					and Color3.fromRGB(16,42,220)
					or Color3.fromRGB(0,85,255)
			else
				bp.Color = Color3.fromRGB(27,42,53)
			end
		end
	end
end

local function applyFace(char)
	local head = char:FindFirstChild("Head")
	if not head then return end

	for _, d in ipairs(head:GetChildren()) do
		if d:IsA("Decal") then d:Destroy() end
	end

	local face = Instance.new("Decal")
	face.Face = Enum.NormalId.Front
	face.Texture = DEFAULT_FACE
	face.Parent = head
end

local function createMeshAccessory(name, meshId, textureId, weldPart, c0, parent)
	local part = Instance.new("Part")
	part.Name = name
	part.Size = Vector3.new(1,1,1)
	part.Transparency = 0
	part.CanCollide = false
	part.Anchored = false
    part.Massless = true
	part.Parent = parent

	local mesh = Instance.new("SpecialMesh")
	mesh.MeshType = Enum.MeshType.FileMesh
	mesh.MeshId = meshId
	mesh.TextureId = textureId
	mesh.Parent = part

	local weld = Instance.new("Weld")
	weld.Part0 = weldPart
	weld.Part1 = part
	weld.C0 = c0
	weld.Parent = part
end

local function morphIvan(char)
	if not char or not char.Parent then return end

for _, v in ipairs(char:GetChildren()) do
	if v.Name == "IvanVisor" or v.Name == "IvanFace" then
		v:Destroy()
	end
end

	nukeAccessoriesFolder()
	wipeCharacter(char)
	setColors(char)
	applyFace(char)

	local sg = Instance.new("ShirtGraphic")
	sg.Graphic = SHIRT_GRAPHIC
	sg.Parent = char

	local head = char:FindFirstChild("Head")
	if head then
		createMeshAccessory(
			"IvanVisor",
			VISOR_MESH,
			VISOR_TEXTURE,
			head,
			CFrame.new(0, 0.40, -0.15),
			char
		)

		if UseCustomFace then
			createMeshAccessory(
				"IvanFace",
				UseScene12 and SCENE12_FACE_MESH or IVAN_FACE_MESH,
				UseScene12 and SCENE12_FACE_TEXTURE or IVAN_FACE_TEXTURE,
				head,
				CFrame.new(0, 0, 0),
				char
			)
		end
	end
end

local function onCharacterAdded(char)
	task.wait(0.10)
	morphIvan(char)
    task.delay(0.25, nukeAccessoriesFolder)
end

plr.CharacterAdded:Connect(onCharacterAdded)

if plr.Character then
	onCharacterAdded(plr.

Features & Information

main protagonist and playable character of the roblox horror game 'bad things' awesome game https://www.roblox.com/games/133698660344590/Bad-Things thumbnail art is made by my friend

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts