Egor script made by ai
Key Required

Egor script made by ai

Natural Disaster Survivalareeshiqiareeshiqi 13.6K views 125 executesUpdated Aug 9, 2025
5.0/ 5(3 votes)
30100% Positive
Lua Script•185 lines (5187 chars)
-- LocalScript (StarterPlayerScripts)

-- === Services ===
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

-- === Player and GUI Setup ===
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local gui = Instance.new("ScreenGui")
gui.Name = "EgorToggle"
gui.ResetOnSpawn = false
gui.Parent = playerGui

-- Create a frame to hold the button
local backgroundFrame = Instance.new("Frame")
backgroundFrame.Name = "ButtonFrame"
backgroundFrame.Size = UDim2.new(0, 160, 0, 70)
backgroundFrame.Position = UDim2.new(0, 10, 1, -80)
backgroundFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
backgroundFrame.BorderSizePixel = 0
backgroundFrame.Parent = gui

-- Add a rounded corner to the frame
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = backgroundFrame

-- Add a subtle border effect
local frameStroke = Instance.new("UIStroke")
frameStroke.Color = Color3.fromRGB(200, 200, 200)
frameStroke.Thickness = 1
frameStroke.Transparency = 0.5
frameStroke.Parent = backgroundFrame

-- Create the button inside the frame
local button = Instance.new("TextButton")
button.Name = "Toggle"
button.Size = UDim2.new(1, -20, 1, -20)
button.Position = UDim2.new(0, 10, 0, 10)
button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
button.BorderSizePixel = 0
button.TextColor3 = Color3.new(1, 1, 1)
button.TextSize = 20
button.Font = Enum.Font.SourceSansBold
button.Text = "Egor: OFF"
button.Parent = backgroundFrame

-- Add a rounded corner to the button
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 8)
buttonCorner.Parent = button

-- === State Variables ===
local egorEnabled = false
local runAnimId = "rbxassetid://913376220" -- Roblox default run
local runTrack = nil
local runConnection = nil

-- Tweening variables for visual feedback
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local offColor = Color3.fromRGB(50, 50, 50)
local onColor = Color3.fromRGB(80, 200, 80) -- A bright green for "ON"

-- === Setup Run Animation ===
local function playRunAnimation(humanoid)
	local animator = humanoid:FindFirstChildWhichIsA("Animator")
	if not animator then
		animator = Instance.new("Animator", humanoid)
	end

	-- Stop any previous animation tracks
	if runTrack then
		runTrack:Stop()
		runTrack:Destroy()
		runTrack = nil
	end
	if runConnection then
		runConnection:Disconnect()
		runConnection = nil
	end

	-- Load run animation manually
	local runAnim = Instance.new("Animation")
	runAnim.AnimationId = runAnimId
	runTrack = animator:LoadAnimation(runAnim)
	runTrack.Priority = Enum.AnimationPriority.Movement

	-- The corrected logic: Play the animation and then handle speed in the loop
	runTrack:Play()

	-- Monitor player movement every frame
	runConnection = RunService.RenderStepped:Connect(function()
		if humanoid.MoveDirection.Magnitude == 0 then
			-- Stop when not moving
			if runTrack.IsPlaying then
				runTrack:Stop()
			end
		else
			-- Play and adjust speed when moving
			if not runTrack.IsPlaying then
				runTrack:Play()
			end
			-- CRUCIAL FIX: Always adjust the speed when the player is moving.
			-- This ensures the fast visual effect is consistently applied
			-- and doesn't get overwritten by the default walkspeed.
			runTrack:AdjustSpeed(6)
		end
	end)
end

local function stopRunAnimation()
	if runTrack then
		runTrack:Stop()
		runTrack:Destroy() -- Clean up the animation track
		runTrack = nil
	end
	if runConnection then
		runConnection:Disconnect()
		runConnection = nil
	end
end

-- === Toggle Egor Mode ===
local function enableEgor()
	local char = player.Character
	if not char then return end
	local humanoid = char:FindFirstChild("Humanoid")
	if not humanoid then return end

	humanoid.WalkSpeed = 3
	playRunAnimation(humanoid)
	button.Text = "Egor: ON"

	-- Tween button color to green
	TweenService:Create(button, tweenInfo, {BackgroundColor3 = onColor}):Play()
end

local function disableEgor()
	local char = player.Character
	if not char then return end
	local humanoid = char:FindFirstChild("Humanoid")
	if not humanoid then return end

	humanoid.WalkSpeed = 16
	stopRunAnimation()
	button.Text = "Egor: OFF"

	-- Tween button color back to gray
	TweenService:Create(button, tweenInfo, {BackgroundColor3 = offColor}):Play()
end

-- === Button Toggle ===
button.MouseButton1Click:Connect(function()
	egorEnabled = not egorEnabled
	if egorEnabled then
		enableEgor()
	else
		disableEgor()
	end
end)

-- === On Character Spawn ===
local function onCharacterAdded(char)
	local humanoid = char:WaitForChild("Humanoid")
	char:WaitForChild("Animate") -- Wait for the default animation script
	task.wait(0.5)

	if egorEnabled then
		enableEgor()
	else
		-- Ensure the character starts with the default speed if not enabled
		humanoid.WalkSpeed = 16
	end
end

-- Initial setup if the player's character already exists
if player.Character then
	onCharacterAdded(player.Character)
end

-- Connect to the CharacterAdded event to handle respawns
player.CharacterAdded:Connect(onCharacterAdded)

Features & Information

Run like egor

Community Comments (0)

No comments yet for this script.

More Scripts for Natural Disaster Survival