ERTTT

🧩 Syntax:
local part = Instance.new("Part",workspace)
part.CanCollide = false
part.CanQuery = false
part.Anchored = true
local weld = Instance.new("WeldConstraint",part)
repeat wait() until game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") ~= nil
part.Size = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart").Size
part.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
extraY = 80
weld.Part0 = part
weld.Part1 = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
task.wait()
weld.Enabled = false
game.Workspace.CurrentCamera.CameraSubject = part
game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
local syney = 10
local bind  = Instance.new("BindableEvent")
local function isNPCMoving(npc)
	if npc== nil or npc.PrimaryPart == nil then
		return false
	end
	local previousPosition = npc.PrimaryPart.Position
	task.wait()
	-- Current position

	local currentPosition = npc.PrimaryPart.Position

	-- Calculate the distance moved
	local distance = (currentPosition - previousPosition).magnitude

	-- Update the previous position
	previousPosition = currentPosition

	-- Return true if the NPC has moved, otherwise false
	return distance > 0
end

local function gettarget()
	local target = nil
	local distance = math.huge
	local Banned3 = {}
	for i,v in pairs(game.Players:GetPlayers()) do
		table.insert(Banned3,v.Character)
	end
	for i,v in pairs(game.Workspace:GetDescendants()) do

		if v:IsA("Humanoid") and v.Parent:FindFirstChildWhichIsA("BasePart") and isNPCMoving(v.Parent) == true and table.find(Banned3,v.Parent) == nil and v.Health> 0 and v.Parent:FindFirstChildWhichIsA("BasePart").Anchored == false  and (v.Parent:FindFirstChildWhichIsA("BasePart").Position-game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude < distance  then

			target = v.Parent
			distance =  (v.Parent:FindFirstChildWhichIsA("BasePart").Position-game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude
		end

	end

	return target

end

bind.Event:Connect(function()
	task.wait()
	syney +=1
	if syney >= 20 then
		syney = 10
	end
	game.Workspace.Gravity = 80
	local tar = nil
	local tar =gettarget()
	if tar == nil or (tar ~= nil and tar:FindFirstChildWhichIsA("BasePart").Position.Y > part.Position.Y) then
		part.CFrame = (CFrame.new(part.Position+game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid").MoveDirection*16))
	else
		part.CFrame = (CFrame.new(Vector3.new(game.Players.LocalPlayer.Character.PrimaryPart.Position.X,tar:FindFirstChildWhichIsA("BasePart").Position.Y,game.Players.LocalPlayer.Character.PrimaryPart.Position.Z)+game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid").MoveDirection*16))

	end
	game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(part.CFrame*CFrame.new(0,(syney*10)+extraY,0))
end)
game.Workspace.DescendantAdded:Connect(function(v)
	if (v:IsA("BasePart") or v:IsA("UnionOperation") ) and v.Parent:FindFirstChildWhichIsA("Humanoid") == nil then
		v.CanTouch = false
	end
end)
delay(0,function()
	game:GetService("RunService").Heartbeat:Connect(function()
		task.wait()
		if game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid") and game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid").Health > 0 then

			bind:Fire()
		end
	end)
end)