fe
Key Required

fe

ForsakenGreenGuyGreenGuy 1.3K views 3.2K executesUpdated Sep 7, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•397 lines (13437 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Mouse = Players.LocalPlayer:GetMouse()

local player = Players.LocalPlayer

-- آی‌دی‌های انیمیشن‌های SoyGOAT
local SOY_BLOCK = 88557287105521
local SOY_CHARGE = 73502073176819
local SOY_PUNCH = 119850211147676

-- آی‌دی‌های انیمیشن‌های Nolly
local NOLLY_IDLE = 110933164243478
local NOLLY_WALK = 132550421221296
local NOLLY_RUN = 105441420067903
local NOLLY_CLICK = 92567970681901
local NOLLY_E = 74955323199805

-- آی‌دی‌های انیمیشن‌های Fire Jason
local FJ_IDLE = 111915677103210
local FJ_WALK = 92337314320765
local FJ_RUN = 86125526846131
local FJ_CLICK = 130958529065375
local FJ_Q = 126727756047566
local FJ_E = 70483423693126
local FJ_R_START = 91775045514793
local FJ_R_IDLE = 114548717236087
local FJ_R_WALK = 113354445309383
local FJ_HIT_R = 119062842291223

-- ساخت GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CustomAnimGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 220, 0, 220)
frame.Position = UDim2.new(0, 50, 0, 200)
frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
frame.BorderSizePixel = 0
frame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame

-- دکمه‌ها
local btnSoyGoat = Instance.new("TextButton")
btnSoyGoat.Size = UDim2.new(0, 200, 0, 45)
btnSoyGoat.Position = UDim2.new(0, 10, 0, 10)
btnSoyGoat.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btnSoyGoat.TextColor3 = Color3.fromRGB(255, 255, 255)
btnSoyGoat.TextSize = 14
btnSoyGoat.Font = Enum.Font.SourceSansBold
btnSoyGoat.Text = "SoyGOAT (Off)"
btnSoyGoat.Parent = frame
Instance.new("UICorner", btnSoyGoat)

local btnNolly = Instance.new("TextButton")
btnNolly.Size = UDim2.new(0, 200, 0, 45)
btnNolly.Position = UDim2.new(0, 10, 0, 65)
btnNolly.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btnNolly.TextColor3 = Color3.fromRGB(255, 255, 255)
btnNolly.TextSize = 14
btnNolly.Font = Enum.Font.SourceSansBold
btnNolly.Text = "Nolly (Off)"
btnNolly.Parent = frame
Instance.new("UICorner", btnNolly)

local btnFireJason = Instance.new("TextButton")
btnFireJason.Size = UDim2.new(0, 200, 0, 45)
btnFireJason.Position = UDim2.new(0, 10, 0, 120)
btnFireJason.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btnFireJason.TextColor3 = Color3.fromRGB(255, 255, 255)
btnFireJason.TextSize = 14
btnFireJason.Font = Enum.Font.SourceSansBold
btnFireJason.Text = "Fire Jason (Off)"
btnFireJason.Parent = frame
Instance.new("UICorner", btnFireJason)

-- متغیرها
local character, humanoid, animator
local soyTrackQ, soyTrackE, soyTrackR
local nollyTrackIdle, nollyTrackWalk, nollyTrackRun, nollyTrackClick, nollyTrackE
local fjTrackIdle, fjTrackWalk, fjTrackRun, fjTrackClick, fjTrackQ, fjTrackE, fjTrackRStart, fjTrackRIdle, fjTrackRWalk, fjTrackHitR

local isSoyGoatEnabled = false
local isNollyEnabled = false
local isFireJasonEnabled = false

local isQOnCooldown = false
local isFCOnCooldown = false
local isEOnCooldown = false
local isROnCooldown = false
local isRActive = false

local function setupCharacter(char)
	character = char
	humanoid = char:WaitForChild("Humanoid", 5)
	animator = humanoid:WaitForChild("Animator", 5)
	
	if animator then
		local oldAnimate = char:FindFirstChild("Animate")
		if oldAnimate then oldAnimate:Destroy() end
		
		local function loadAnim(id, priority)
			local anim = Instance.new("Animation")
			anim.AnimationId = "rbxassetid://" .. tostring(id)
			local success, track = pcall(function() return animator:LoadAnimation(anim) end)
			if success and track then
				track.Priority = priority
				return track
			end
			return nil
		end
		
		-- لود انیمیشن‌های SoyGOAT (بدون ترک کلیک)
		soyTrackQ = loadAnim(SOY_BLOCK, Enum.AnimationPriority.Action4)
		soyTrackE = loadAnim(SOY_CHARGE, Enum.AnimationPriority.Action4)
		soyTrackR = loadAnim(SOY_PUNCH, Enum.AnimationPriority.Action4)
		
		-- لود انیمیشن‌های کامل Nolly
		nollyTrackIdle = loadAnim(NOLLY_IDLE, Enum.AnimationPriority.Movement)
		nollyTrackWalk = loadAnim(NOLLY_WALK, Enum.AnimationPriority.Movement)
		nollyTrackRun = loadAnim(NOLLY_RUN, Enum.AnimationPriority.Movement)
		nollyTrackClick = loadAnim(NOLLY_CLICK, Enum.AnimationPriority.Action3)
		nollyTrackE = loadAnim(NOLLY_E, Enum.AnimationPriority.Action4)
		
		-- لود انیمیشن‌های Fire Jason
		fjTrackIdle = loadAnim(FJ_IDLE, Enum.AnimationPriority.Movement)
		fjTrackWalk = loadAnim(FJ_WALK, Enum.AnimationPriority.Movement)
		fjTrackRun = loadAnim(FJ_RUN, Enum.AnimationPriority.Movement)
		fjTrackClick = loadAnim(FJ_CLICK, Enum.AnimationPriority.Action3)
		fjTrackQ = loadAnim(FJ_Q, Enum.AnimationPriority.Action4)
		fjTrackE = loadAnim(FJ_E, Enum.AnimationPriority.Action4)
		fjTrackRStart = loadAnim(FJ_R_START, Enum.AnimationPriority.Action4)
		fjTrackRIdle = loadAnim(FJ_R_IDLE, Enum.AnimationPriority.Movement)
		fjTrackRWalk = loadAnim(FJ_R_WALK, Enum.AnimationPriority.Movement)
		fjTrackHitR = loadAnim(FJ_HIT_R, Enum.AnimationPriority.Action4)
	end
end

if player.Character then setupCharacter(player.Character) end
player.CharacterAdded:Connect(setupCharacter)

-- مدیریت انیمیشن‌های حرکتی
RunService.RenderStepped:Connect(function()
	if not humanoid or not character then return end
	
	if isFireJasonEnabled then
		if nollyTrackIdle and nollyTrackIdle.IsPlaying then nollyTrackIdle:Stop() end
		if nollyTrackWalk and nollyTrackWalk.IsPlaying then nollyTrackWalk:Stop() end
		if nollyTrackRun and nollyTrackRun.IsPlaying then nollyTrackRun:Stop() end
		
		local moveSpeed = humanoid.MoveDirection.Magnitude
		local isShiftHeld = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) or UserInputService:IsKeyDown(Enum.KeyCode.RightShift)
		
		local curIdle = (isRActive and fjTrackRIdle) or fjTrackIdle
		local curWalk = (isRActive and fjTrackRWalk) or fjTrackWalk
		local curRun = fjTrackRun
		
		if moveSpeed < 0.1 then
			if curIdle and not curIdle.IsPlaying then curIdle:Play() end
			if curWalk and curWalk.IsPlaying then curWalk:Stop() end
			if curRun and curRun.IsPlaying then curRun:Stop() end
		else
			if isShiftHeld then
				if curRun and not curRun.IsPlaying then curRun:Play() end
				if curWalk and curWalk.IsPlaying then curWalk:Stop() end
				if curIdle and curIdle.IsPlaying then curIdle:Stop() end
			else
				if curWalk and not curWalk.IsPlaying then curWalk:Play() end
				if curRun and curRun.IsPlaying then curRun:Stop() end
				if curIdle and curIdle.IsPlaying then curIdle:Stop() end
			end
		end
	elseif isNollyEnabled then
		if fjTrackIdle and fjTrackIdle.IsPlaying then fjTrackIdle:Stop() end
		if fjTrackWalk and fjTrackWalk.IsPlaying then fjTrackWalk:Stop() end
		if fjTrackRun and fjTrackRun.IsPlaying then fjTrackRun:Stop() end
		
		local moveSpeed = humanoid.MoveDirection.Magnitude
		local isShiftHeld = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) or UserInputService:IsKeyDown(Enum.KeyCode.RightShift)
		
		if moveSpeed < 0.1 then
			if nollyTrackIdle and not nollyTrackIdle.IsPlaying then nollyTrackIdle:Play() end
			if nollyTrackWalk and nollyTrackWalk.IsPlaying then nollyTrackWalk:Stop() end
			if nollyTrackRun and nollyTrackRun.IsPlaying then nollyTrackRun:Stop() end
		else
			if isShiftHeld then
				if nollyTrackRun and not nollyTrackRun.IsPlaying then nollyTrackRun:Play() end
				if nollyTrackWalk and nollyTrackWalk.IsPlaying then nollyTrackWalk:Stop() end
				if nollyTrackIdle and nollyTrackIdle.IsPlaying then nollyTrackIdle:Stop() end
			else
				if nollyTrackWalk and not nollyTrackWalk.IsPlaying then nollyTrackWalk:Play() end
				if nollyTrackRun and nollyTrackRun.IsPlaying then nollyTrackRun:Stop() end
				if nollyTrackIdle and nollyTrackIdle.IsPlaying then nollyTrackIdle:Stop() end
			end
		end
	else
		if nollyTrackIdle and nollyTrackIdle.IsPlaying then nollyTrackIdle:Stop() end
		if nollyTrackWalk and nollyTrackWalk.IsPlaying then nollyTrackWalk:Stop() end
		if nollyTrackRun and nollyTrackRun.IsPlaying then nollyTrackRun:Stop() end
		if fjTrackIdle and fjTrackIdle.IsPlaying then fjTrackIdle:Stop() end
		if fjTrackWalk and fjTrackWalk.IsPlaying then fjTrackWalk:Stop() end
		if fjTrackRun and fjTrackRun.IsPlaying then fjTrackRun:Stop() end
	end
end)

-- دکمه‌ها
btnSoyGoat.MouseButton1Click:Connect(function()
	isSoyGoatEnabled = not isSoyGoatEnabled
	btnSoyGoat.BackgroundColor3 = isSoyGoatEnabled and Color3.fromRGB(40, 140, 60) or Color3.fromRGB(60, 60, 60)
	btnSoyGoat.Text = isSoyGoatEnabled and "SoyGOAT (On)" or "SoyGOAT (Off)"
end)

btnNolly.MouseButton1Click:Connect(function()
	isNollyEnabled = not isNollyEnabled
	btnNolly.BackgroundColor3 = isNollyEnabled and Color3.fromRGB(40, 140, 60) or Color3.fromRGB(60, 60, 60)
	btnNolly.Text = isNollyEnabled and "Nolly (On)" or "Nolly (Off)"
end)

btnFireJason.MouseButton1Click:Connect(function()
	isFireJasonEnabled = not isFireJasonEnabled
	isRActive = false
	btnFireJason.BackgroundColor3 = isFireJasonEnabled and Color3.fromRGB(40, 140, 60) or Color3.fromRGB(60, 60, 60)
	btnFireJason.Text = isFireJasonEnabled and "Fire Jason (On)" or "Fire Jason (Off)"
end)

-- کلید Q (Block)
local function useQ()
	if isFireJasonEnabled then
		if isQOnCooldown then return end
		if fjTrackQ and humanoid and humanoid.Health > 0 then
			fjTrackQ:Play()
			isQOnCooldown = true
			task.spawn(function()
				for i = 18, 1, -1 do
					if not isFireJasonEnabled then break end
					btnFireJason.Text = "Fire Jason (Q CD: " .. i .. "s)"
					task.wait(1)
				end
				isQOnCooldown = false
				if isFireJasonEnabled then btnFireJason.Text = "Fire Jason (On)" end
			end)
		end
	elseif isNollyEnabled then
		-- نولی کلید Q ندارد
	else
		if not isSoyGoatEnabled or isQOnCooldown then return end
		if soyTrackQ and humanoid and humanoid.Health > 0 then
			soyTrackQ:Play()
			isQOnCooldown = true
			task.spawn(function()
				for i = 25, 1, -1 do
					if not isSoyGoatEnabled then break end
					btnSoyGoat.Text = "SoyGOAT (CD: " .. i .. "s)"
					task.wait(1)
				end
				isQOnCooldown = false
				if isSoyGoatEnabled then btnSoyGoat.Text = "SoyGOAT (On)" end
			end)
		end
	end
end

-- کلید R (Punch)
local function useR()
	if isFireJasonEnabled then
		if isROnCooldown or isRActive then return end
		if fjTrackRStart and humanoid and humanoid.Health > 0 then
			fjTrackRStart:Play()
			isRActive = true
			isROnCooldown = true
			
			task.spawn(function()
				for i = 30, 1, -1 do
					if not isFireJasonEnabled then break end
					btnFireJason.Text = "Fire Jason (R CD: " .. i .. "s)"
					task.wait(1)
				end
				isROnCooldown = false
				if isFireJasonEnabled then btnFireJason.Text = "Fire Jason (On)" end
			end)
		end
	elseif isNollyEnabled then
		-- نولی کلید R ندارد
	else
		if not isSoyGoatEnabled then return end
		if soyTrackR and humanoid and humanoid.Health > 0 then soyTrackR:Play() end
	end
end

-- کلید E (Charge)
local function useE()
	if isFireJasonEnabled then
		if isEOnCooldown then return end
		if fjTrackE and humanoid and humanoid.Health > 0 then
			fjTrackE:Play()
			isEOnCooldown = true
			task.spawn(function()
				for i = 32, 1, -1 do
					if not isFireJasonEnabled then break end
					btnFireJason.Text = "Fire Jason (E CD: " .. i .. "s)"
					task.wait(1)
				end
				isEOnCooldown = false
				if isFireJasonEnabled then btnFireJason.Text = "Fire Jason (On)" end
			end)
		end
	elseif isNollyEnabled then
		if isEOnCooldown then return end
		if nollyTrackE and humanoid and humanoid.Health > 0 then
			nollyTrackE:Play()
			isEOnCooldown = true
			
			task.delay(3, function()
				if nollyTrackE and nollyTrackE.IsPlaying then
					nollyTrackE:Stop()
				end
			end)
			
			task.spawn(function()
				for i = 5, 1, -1 do
					if not isNollyEnabled then break end
					task.wait(1)
				end
				isEOnCooldown = false
			end)
		end
	else
		if not isSoyGoatEnabled or isEOnCooldown then return end
		if soyTrackE and humanoid and humanoid.Health > 0 then
			soyTrackE:Play()
			isEOnCooldown = true
			
			task.delay(3, function()
				if soyTrackE and soyTrackE.IsPlaying then
					soyTrackE:Stop()
				end
			end)
			
			task.spawn(function()
				for i = 5, 1, -1 do
					if not isSoyGoatEnabled then break end
					task.wait(1)
				end
				isEOnCooldown = false
			end)
		end
	end
end

-- کلیک موس / M1 (برای سویی‌گوت هیچ کاری انجام نمی‌دهد)
Mouse.Button1Down:Connect(function()
	if isFireJasonEnabled then
		if isRActive then
			if fjTrackHitR and humanoid and humanoid.Health > 0 then
				fjTrackHitR:Play()
				isRActive = false
			end
		else
			if isFCOnCooldown then return end
			if fjTrackClick and humanoid and humanoid.Health > 0 then
				fjTrackClick:Play()
				isFCOnCooldown = true
				task.spawn(function()
					task.wait(2)
					isFCOnCooldown = false
				end)
			end
		end
	elseif isNollyEnabled then
		if isFCOnCooldown then return end
		if nollyTrackClick and humanoid and humanoid.Health > 0 then
			nollyTrackClick:Play()
			isFCOnCooldown = true
			task.spawn(function()
				task.wait(2)
				isFCOnCooldown = false
			end)
		end
	else
		-- حالت سویی‌گوت روشن باشد هم با کلیک هیچ اتفاقی نمی‌افتد
		return
	end
end)

-- کیبورد
UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	if input.KeyCode == Enum.KeyCode.Q then useQ()
	elseif input.KeyCode == Enum.KeyCode.R then useR()
	elseif input.KeyCode == Enum.KeyCode.E then useE() end
end)

Features & Information

This script its only work on forsaken u can be m4 slasher in normal slasher and u can be m4 noli in normal noli u can have custom punch and custom block
#forsaken

Community Comments (2)

suriarasuriaraSep 12, 2026

*_Thumbs_up_* Good

GreenGuyGreenGuySep 17, 2026

guys its not work in delta or mobile

More Scripts for Forsaken