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