Deltarune Roaring Knight Morph
Key RequiredUniversal

Deltarune Roaring Knight Morph

Universal Scriptimdisplayimdisplay 3.8K views 5.1K executesUpdated Nov 30, 2025
Unrated
00
Lua Script•330 lines (8924 chars)
local plrs = game:GetService("Players")
local tweener = game:GetService("TweenService")
local lightingSvc = game:GetService("Lighting")
local me = plrs.LocalPlayer

local cfg = {
	Variant = "RoaringKnight",
	OutfitVariant = "Default", --"Default", "Alternate", or "Stylized"
	UseDeathEffect = true,
    UseGlowingHelmet = false,
    UseLowHealthMusic = true,

	Sword = {Position = CFrame.new(-1, -0.8, 0.9), Rotation = CFrame.Angles(0, 0, 0), Scale = Vector3.new(0.397, 0.399, 0.4)},
	RightArm = {Position = CFrame.new(0, 0, -0.15), Rotation = CFrame.Angles(0, math.rad(-90), 0), Scale = Vector3.new(0.062, 0.062, 0.062)},
	LeftArm = {Position = CFrame.new(0, 0, -0.15), Rotation = CFrame.Angles(0, math.rad(-90), 0), Scale = Vector3.new(0.062, 0.062, 0.062)},
	Helmet = {Position = CFrame.new(0, 0.7, -0.2), Rotation = CFrame.Angles(0, math.rad(90), 0), Scale = Vector3.new(1.077, 1.063, 1.062)},
	Armor = {Position = CFrame.new(0, 0.2, 0.14), Rotation = CFrame.Angles(0, math.rad(90), 0), Scale = Vector3.new(0.647, 0.624, 0.609)},
}

local stuff = {
	SwordMesh = "rbxassetid://139109448151486",
	SwordTexture = "rbxassetid://100735319468954",
	RightArmMesh = "rbxassetid://92812679029334",
	RightArmTexture = "rbxassetid://86427983199841",
	LeftArmMesh = "rbxassetid://115085900434078",
	LeftArmTexture = "rbxassetid://97595500605570",
	HelmetMesh = "rbxassetid://70899751286617",
	HelmetGlowMesh = "rbxassetid://102161822427185",
	HelmetTexture = "rbxassetid://98125496552390",
	HelmetGlowTexture = "rbxassetid://97780561737909",
	ArmorMesh = "rbxassetid://89970736149463",
	ArmorTexture = "rbxassetid://129739095380638",
	Shirts = {
		Default = "rbxassetid://111476208327341",
		Alternate = "rbxassetid://107700150057161",
		Stylized = "rbxassetid://98238035182123"
	},
	Pants = {
		Default = "rbxassetid://95084379670407",
		Alternate = "rbxassetid://93233462153372",
		Stylized = "rbxassetid://76139543277561"
	}
}

local skins = {
	RoaringKnight = {BodyColor = BrickColor.new("Really black")}
}

local function isClassic(hc)
	local h = hc:FindFirstChildOfClass("Humanoid")
	return h and h.RigType == Enum.HumanoidRigType.R6
end

local function buildMeshPiece(n, mesh, tex, s)
	local p = Instance.new("Part")
	p.Name = n
	p.Size = Vector3.new(1,1,1)
	p.CanCollide = false
	p.Massless = true
	p.Anchored = false

	local m = Instance.new("SpecialMesh")
	m.MeshType = Enum.MeshType.FileMesh
	m.MeshId = mesh
	m.TextureId = tex
	m.Scale = s or Vector3.new(1,1,1)
	m.Parent = p

	return p
end

local function stickToPart(char, n, meshId, texId, bodyName, data)
	local bd = char:FindFirstChild(bodyName)
	if not bd then return end

	local prt = buildMeshPiece(n, meshId, texId, data.Scale)
	prt.Parent = char

	local wl = Instance.new("Weld")
	wl.Part0 = bd
	wl.Part1 = prt
	wl.C0 = data.Position * data.Rotation
	wl.Parent = prt
end

local function morphNow()
	local ch = me.Character or me.CharacterAdded:Wait()
	local v = skins[cfg.Variant]
	if not v then return end
	if not isClassic(ch) then return end

	for _,it in ipairs(ch:GetChildren()) do
		if it:IsA("Accessory") or it:IsA("Hat") or it:IsA("Shirt") or it:IsA("Pants") then
			it:Destroy()
		end
	end

	local head = ch:FindFirstChild("Head")
	if head then
		for _,dd in ipairs(head:GetChildren()) do
			if dd:IsA("Decal") then dd:Destroy() end
		end
		head.Transparency = 1
	end

	for _,bp in ipairs(ch:GetChildren()) do
		if bp:IsA("BasePart") then
			bp.BrickColor = v.BodyColor
		end
	end

	local shirtObj = Instance.new("Shirt")
	shirtObj.ShirtTemplate = stuff.Shirts[cfg.OutfitVariant]
	shirtObj.Parent = ch

	local pantsObj = Instance.new("Pants")
	pantsObj.PantsTemplate = stuff.Pants[cfg.OutfitVariant]
	pantsObj.Parent = ch

	stickToPart(ch, "Sword", stuff.SwordMesh, stuff.SwordTexture, "Torso", cfg.Sword)
	stickToPart(ch, "RightArm", stuff.RightArmMesh, stuff.RightArmTexture, "Right Arm", cfg.RightArm)
	stickToPart(ch, "LeftArm", stuff.LeftArmMesh, stuff.LeftArmTexture, "Left Arm", cfg.LeftArm)

	local helmMesh = cfg.UseGlowingHelmet and stuff.HelmetGlowMesh or stuff.HelmetMesh
	local helmTex = cfg.UseGlowingHelmet and stuff.HelmetGlowTexture or stuff.HelmetTexture
	stickToPart(ch, "Helmet", helmMesh, helmTex, "Head", cfg.Helmet)

	stickToPart(ch, "Armor", stuff.ArmorMesh, stuff.ArmorTexture, "Torso", cfg.Armor)
end

me.CharacterAdded:Connect(function(c)
	c:WaitForChild("Humanoid")
	task.wait(1)
	if isClassic(c) then
		morphNow()
	end
end)

if me.Character and isClassic(me.Character) then
	task.wait(1)
	morphNow()
end

local ui = Instance.new("ScreenGui")
ui.Parent = me:WaitForChild("PlayerGui")
ui.IgnoreGuiInset = true
ui.ResetOnSpawn = false

local bubble = Instance.new("ImageLabel")
bubble.Parent = ui
bubble.AnchorPoint = Vector2.new(0.5,1)
bubble.Position = UDim2.new(0.5,0,1.2,0)
bubble.Size = UDim2.new(0.66,0,0.24,0)
bubble.Image = "rbxassetid://76371994936176"
bubble.BackgroundTransparency = 1
bubble.Visible = false

local inside = Instance.new("Frame")
inside.Parent = bubble
inside.Size = UDim2.new(0.9,0,0.7,0)
inside.Position = UDim2.new(0.05,0,0.15,0)
inside.BackgroundTransparency = 1

local txt = Instance.new("TextLabel")
txt.Parent = inside
txt.BackgroundTransparency = 1
txt.Size = UDim2.new(1,-20,1,0)
txt.Position = UDim2.new(0,200,0,0)
txt.TextColor3 = Color3.new(1,1,1)
txt.Font = Enum.Font.Arcade
txt.TextSize = 25
txt.TextWrapped = true
txt.TextXAlignment = Enum.TextXAlignment.Left
txt.TextYAlignment = Enum.TextYAlignment.Top

local function showDialogue(msg)
	if not msg or msg == "" then return end
	bubble.Visible = true
	txt.Text = ""

	tweener:Create(bubble, TweenInfo.new(0.25), {
		Position = UDim2.new(0.5,0,0.95,0)
	}):Play()

	task.wait(0.25)

	local full = "* "..msg
	for i = 1, #full do
		txt.Text = string.sub(full, 1, i)
		task.wait(0.03)
	end

	task.wait(1.2)

	tweener:Create(bubble, TweenInfo.new(0.25), {
		Position = UDim2.new(0.5,0,1.2,0)
	}):Play()

	task.wait(0.25)
	bubble.Visible = false
end

plrs.LocalPlayer.Chatted:Connect(showDialogue)
showDialogue("The Roaring Knight Appeared.")

--wow reused code

local function playerDied(char)
local deathOverlay = Instance.new("ImageLabel")
deathOverlay.Name = "DeathOverlay"
deathOverlay.Size = UDim2.new(1, 0, 1, 0)
deathOverlay.Position = UDim2.new(0, 0, 0, 0)
deathOverlay.BackgroundTransparency = 1
deathOverlay.Image = "rbxassetid://1024792661"
deathOverlay.Parent = me:WaitForChild("PlayerGui")

local snd = Instance.new("Sound")  
snd.Name = "DeathNoise"  
snd.SoundId = "rbxassetid://92925045119983"  
snd.Volume = 2.0
snd.Parent = me.PlayerGui  
snd:Play()
 
local ccFlash = Instance.new("ColorCorrectionEffect")  
ccFlash.Name = "flashbang"  
ccFlash.Brightness = 3  
ccFlash.Contrast = 5  
ccFlash.Saturation = 1  
ccFlash.Parent = lightingSvc

local hi = Instance.new("Highlight")  
hi.Adornee = char  
hi.FillColor = Color3.new(0,0,0)  
hi.OutlineColor = Color3.new(0,0,0)  
hi.FillTransparency = 0  
hi.OutlineTransparency = 0  
hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop  
hi.Parent = char

local function wipeDeathFX()  
    deathOverlay:Destroy()  
    ccFlash:Destroy()  
    hi:Destroy()  
    snd:Destroy()  
end

me.CharacterAdded:Connect(function()  
    task.wait(0.5) 
    wipeDeathFX()  
end)


end

local isMusicPlaying = false -- tracks if music is currently playing

local function startFightMusic()
    if isMusicPlaying then return end
    local gui = me:WaitForChild("PlayerGui")

    local mus = gui:FindFirstChild("FightMusic")
    if not mus then
        mus = Instance.new("Sound")
        mus.Name = "FightMusic"
        mus.SoundId = "rbxassetid://104449595639237"
        mus.Volume = 0.5
        mus.Looped = false
        mus.Parent = gui
    end

    mus:Play()
    isMusicPlaying = true
end

local function stopFightMusic()
    if not isMusicPlaying then return end
    local gui = me:WaitForChild("PlayerGui")
    local mus = gui:FindFirstChild("FightMusic")
    if mus then
        mus:Stop()
    end
    isMusicPlaying = false
end

local function monitorHealth(h)
    if not h then return end

    h.HealthChanged:Connect(function(current)
        if not cfg.UseLowHealthMusic then 
            stopFightMusic()
            return 
        end

        if current <= 80 and not isMusicPlaying then
            startFightMusic()
        end

        if current <= 1 or current >= 70 then
            stopFightMusic()
        end
    end)
end

if me.Character and me.Character:FindFirstChild("Humanoid") then
    monitorHealth(me.Character.Humanoid)
end

me.CharacterAdded:Connect(function(c)
    local h = c:WaitForChild("Humanoid")
    monitorHealth(h)
end)

me.CharacterAdded:Connect(function(ch)
ch:WaitForChild("Humanoid").Died:Connect(function()
if cfg.UseDeathEffect then
playerDied(ch)
end
end)
end)

if me.Character then
local h = me.Character:FindFirstChild("Humanoid")
if h then
h.Died:Connect(function()
if cfg.UseDeathEffect then
playerDied(me.Character)
end
end)
end
end

Features & Information

auramaxxing morph best used on r6 with blocky girl torso yes dess we see the fit SWOON you can now play as the roaring fraud December 'dess' holiday from deltarune play deltarune https://deltarune.com/

Community Comments (2)

hashbrownfrenchfryhashbrownfrenchfryJan 31, 2026

so uh what game am i supposed to be executing this script to? its either a baseplate or brookhaven

Replying to @hashbrownfrenchfry
imdisplayimdisplayFeb 2, 2026

its universal (usable in ANY game, r6 games recommended), only you can see the morph

More Scripts for Universal Scripts