local tut = game:GetService("Players").LocalPlayer local char = tut.Character or tut.CharacterAdded:Wait() local h = char:FindFirstChildOfClass("Humanoid") local kanji1Data=game:HttpGet("https://raw.githubusercontent.com/softbf395/NMG-assets/main/NMGKanji1.png") local kanji2Data=game:HttpGet("https://raw.githubusercontent.com/softbf395/NMG-assets/main/NMGKanji2.png") local kanji3Data=game:HttpGet("https://raw.githubusercontent.com/softbf395/NMG-assets/main/NMGKanji3.png") local kanji4Data=game:HttpGet("https://raw.githubusercontent.com/softbf395/NMG-assets/main/NMGKanji4.png") writefile("FE/Jun/NMG/Kanji1.png", kanji1Data) writefile("FE/Jun/NMG/Kanji2.png", kanji2Data) writefile("FE/Jun/NMG/Kanji3.png", kanji3Data) writefile("FE/Jun/NMG/Kanji4.png", kanji4Data) local ReplicatedStorage = game:GetService("ReplicatedStorage") local TextChatService = game:GetService("TextChatService") local function say(message) if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local channel = TextChatService:FindFirstChild("TextChannels") and TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(message) end else local chatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if chatEvents and chatEvents:FindFirstChild("SayMessageRequest") then chatEvents.SayMessageRequest:FireServer(message, "All") end end end -- Example usage: if not h then return end local hr=char:FindFirstChild("HumanoidRootPart") function getCustom(filepath, url) if not isfile(filepath) then writefile(filepath, game:HttpGet(url)) end return getcustomasset(filepath) end local run = h:FindFirstChildOfClass("Animator") or Instance.new("Animator", h) function app(Number, numberY) local player = game.Players.LocalPlayer local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then warn("HumanoidRootPart not found in the character.") return end -- Calculate the forward teleportation local forwardOffset = humanoidRootPart.CFrame.LookVector * Number -- Calculate the upward teleportation local upOffset = Vector3.new(0, numberY, 0) -- Calculate the new position local newPosition = humanoidRootPart.CFrame.Position + forwardOffset + upOffset -- Maintain the player's original horizontal orientation local lookAtPosition = humanoidRootPart.CFrame.Position + forwardOffset + upOffset + humanoidRootPart.CFrame.LookVector local newCFrame = CFrame.new(newPosition, lookAtPosition) humanoidRootPart.CFrame = newCFrame end function anim(animID, speed, time) local player = game.Players.LocalPlayer local character = player.Character local humanoid = character and character:FindFirstChild("Humanoid") if humanoid then local animation = Instance.new("Animation") animation.AnimationId = animID local animTrack = humanoid:LoadAnimation(animation) animTrack:AdjustSpeed(speed) animTrack:Play() animTrack.Looped=true wait(time) animTrack:Stop() else warn("Humanoid not found in the character.") end end -- Example of how to call the anim function: -- anim("rbxassetid://223207191", 1) local animations = { {id = "rbxassetid://220512718", stopTime = 2, speed = 1, FT={S=0.2,E=0}}, --//UR ANIM ID\\ {id = "rbxassetid://252557606", stopTime=0.2, speed = 1, FT={S=0,E=0.2}}, {id = "rbxassetid://74909569", stopTime = 0.25, speed = 1, FT={S=0.3,E=0.1}}, --//UR ANIM ID\\ {id = "rbxassetid://74909569", stopTime = 0.25, speed = 1, FT={S=0.3,E=0.1}}, --//UR ANIM ID\\ {id = "rbxassetid://74909569", stopTime = 0.5, speed = 0.5, FT={S=0.3,E=3}}, --//UR ANIM ID\\ } function Impact(amountofflashes) local lighting = game:GetService("Lighting") local colorCorrection = Instance.new("ColorCorrectionEffect", lighting) colorCorrection.Name = "ImpactFlashCC" for i = 1, amountofflashes do -- Black Frame colorCorrection.Brightness = -1 colorCorrection.Contrast = 0 colorCorrection.Saturation = 0 task.wait() -- Minimal wait -- White Frame (or bright/desaturated) colorCorrection.Brightness = 0.5 colorCorrection.Contrast = 1 colorCorrection.Saturation = 1 task.wait() -- Minimal wait end -- Revert to normal colorCorrection.Brightness = 0 colorCorrection.Contrast = 1 colorCorrection.Saturation = 1 -- Destroy the effect colorCorrection:Destroy() end local time=game.Lighting.ClockTime function Dark() local lighting = game:GetService("Lighting") local CC = Instance.new("ColorCorrectionEffect", lighting) CC.Name = "ImpactFlashCC" -- Black Frame local ts=game:GetService("TweenService") local info=TweenInfo.new(0.5) ts:Create(CC, info, {Brightness = -0.5, Contrast=0.5}):Play() --ts:Create(lighting, info, {ClockTime=0}):Play() task.wait(0.5) -- Minimal wait -- White Frame (or bright/desaturated) ts:Create(CC, info, {Brightness = 0, Contrast=0}):Play() --ts:Create(lighting, info, { ClockTime=time}):Play() task.wait(0.5) -- Minimal wait -- Revert to normal CC.Brightness = 0 CC.Contrast = 0 CC.Saturation = 0 -- Destroy the effect CC:Destroy() end local isCut=false -- is Cutscene local cam = workspace.CurrentCamera local camOff=Vector3.new(0,0,0) -- offsets camera position relative to humRootPart (moved back by 5 studs) local camDirOff=Vector3.new(0,0,0) -- offset for the lookat position (looking at the HRP) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local camOffVal, camDirVal=Instance.new("CFrameValue"), Instance.new("CFrameValue") local connect=RunService.Heartbeat:Connect(function() camOff=camOffVal.Value.Position camDirOff=camDirVal.Value.Position local localPlayer = Players.LocalPlayer if not localPlayer or not localPlayer.Character or not localPlayer.Character:FindFirstChild("HumanoidRootPart") then return -- Exit if essential player components are missing end local hrp = localPlayer.Character.HumanoidRootPart if isCut == false then game.StarterGui:SetCore("ResetButtonCallback", true) cam.CameraType = Enum.CameraType.Custom game.StarterGui:SetCoreGuiEnabled("Chat", true) else game.StarterGui:SetCoreGuiEnabled("Chat", false) game.StarterGui:SetCore("ResetButtonCallback", false) local targetPosition = hrp.CFrame * CFrame.new(camOff) local lookAtPosition = hrp.CFrame * CFrame.new(camDirOff) cam.CFrame = CFrame.new(targetPosition.Position, lookAtPosition.Position) end end) local ts=game:GetService("TweenService") function cut(isCutscene, off, dirOff, time, waits) off = off or Vector3.new(0,0,0) dirOff=dirOff or Vector3.new(0,0,0) waits = waits or false if isCutscene==false then isCut=false return end cam.CameraType = Enum.CameraType.Scriptable isCut=true local TI=TweenInfo.new(time, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) ts:Create(camOffVal, TI, {Value=CFrame.new(off)}):Play() ts:Create(camDirVal, TI, {Value=CFrame.new(dirOff)}):Play() if waits then wait(time) end end function offset(off) local p=Instance.new("Part") p.Anchored=true p.CanCollide=false p.Transparency=1 p.CFrame=tut.Character.HumanoidRootPart.CFrame * CFrame.new(off) p.Parent=workspace return p end function makeGui(file, p) local BG=Instance.new("BillboardGui") local image=getcustomasset(file) local IL=Instance.new("ImageLabel", BG) IL.Image=image IL.BackgroundTransparency=1 IL.Size=UDim2.new(1,0,1,0) BG.Size=UDim2.new(0,0,0,0) BG.Parent=p ts:Create(BG, TweenInfo.new(0.4), {Size=UDim2.new(20,0,20,0)}):Play() spawn(function() wait(0.2) ts:Create(IL, TweenInfo.new(0.2), {ImageTransparency=1}):Play() wait(0.2) BG:Destroy() end) end function shake(magnitude, off) local x,y,z = math.random(-magnitude,magnitude),math.random(-magnitude,magnitude),math.random(-magnitude,magnitude) cut(true, off, Vector3.new(x,y,z), 0.2) end -- Example usage: -- Impact(2) -- Will create two rapid black-then-white flashes with minimal delay local functions={ {spawn=true, functions=function() wait(0.5) app(0, 5) hr.Anchored=true wait(0.5) app(1,-5) end}, {spawn=true, functions=function() wait() app(30,0) hr.Anchored=false end}, {spawn=false, functions=function() cut(true, Vector3.new(0,0,-3), Vector3.new(0,1,0), 0) say("No more games.") anim("rbxassetid://223207191", 1, 0.5) cut(true, Vector3.new(5,2,-3), Vector3.new(0,1,3), 0.3) anim("rbxassetid://126752874", 0.4, 2) local anm=animations[2] local animation = Instance.new("Animation") animation.AnimationId = anm.id local track = run:LoadAnimation(animation) track.Looped=true track:Play(anm.FT.S) track:AdjustSpeed(anm.speed) cut(true, Vector3.new(10,0,3), Vector3.new(0,1,0), 0) for i=1, 5 do shake(3, Vector3.new(10,0,3)) app(0.7,0) wait() end app(0.7,0) Impact(3) wait() for i=1, 5 do shake(3, Vector3.new(10,0,3)) app(0.7,0) wait() end app(0.7,0) Impact(3) wait() for i=1, 5 do shake(3, Vector3.new(10,0,3)) app(0.7,0) wait() end app(0.7,0) Impact(3) wait() for i=1, 5 do shake(3, Vector3.new(10,0,3)) app(0.7,0) wait() end app(0.35,0) Impact(3) wait() for i=1, 5 do shake(3, Vector3.new(10,0,3)) app(0.7,0) wait() end app(0.7,0) Impact(3) wait() cut(true, Vector3.new(5,0,-3), Vector3.new(-5,1,3), 0.2) track:Stop(anm.FT.E) end}, {spawn=true, functions=function() cut(true, Vector3.new(3,0,-2), Vector3.new(0,1,-2), 0, true) Dark() end}, {spawn=true, functions=function() end}, } functions[5]={spawn=true, functions=function() print("hi") wait(0.5) cut(false) --connect:Disconnect() local p = offset(Vector3.new(0,0,-2)) hr.Anchored=false for i=1,4 do makeGui("FE/Jun/NMG/Kanji"..i..".png",p) wait(0.3) end end} local function anim() for i, anm in ipairs(animations) do local animation = Instance.new("Animation") animation.AnimationId = anm.id local track = run:LoadAnimation(animation) if functions[i] then if functions[i].spawn then spawn(function() functions[i].functions() end) else functions[i].functions() end end track.Looped=true track:Play(anm.FT.S) track:AdjustSpeed(anm.speed) task.wait(anm.stopTime) local tp=track.TimePosition track:AdjustSpeed(0) track.TimePosition=tp track:Stop(anm.FT.E) task.wait(anm.FT.E) end end local T=Instance.new("Tool") T.RequiresHandle=false T.Name="Savage Fangs" function cooldown(tool, CD) spawn(function() local name=tool.Name tool:SetAttribute("OnCD", true) tool.Name="["..CD.."]" for i=1, CD do CD-=1 tool.Name="["..CD.."]" wait(1) end tool.Name=name tool:SetAttribute("OnCD", false) end) end T.Activated:Connect(function() if T:GetAttribute("OnCD") == true then return end cooldown(T, 10) anim() end) h.Died:Connect(function() isCut=false wait() connect:Disconnect() game.StarterGui:SetCore("ResetButtonCallback", true) end) T.Parent=tut.Backpack