Project ISU
Key RequiredUniversal

Project ISU

Universal Scriptliterallymymail1234literallymymail1234 1.3K views 81 executesUpdated Jun 10, 2025
Unrated
00
Lua Script•353 lines (10467 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local lp = Players.LocalPlayer
local camera = workspace.CurrentCamera

-- Camera FOV
camera.FieldOfView = 200

-- Feature Toggle States
local settings = {
    Fullbright = true,
    ESP = true,
    FOVCircle = true,
    Aimbot = true
}

-- Fullbright
local function enableFullbright()
    Lighting.Ambient = Color3.new(1, 1, 1)
    Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
    Lighting.Brightness = 5
    Lighting.GlobalShadows = false
    Lighting.ClockTime = 14
    Lighting.FogEnd = 100000
end

-- UI Setup
local screenGui = Instance.new("ScreenGui", lp:WaitForChild("PlayerGui"))
screenGui.Name = "UtilityUI"
screenGui.ResetOnSpawn = false

local mainFrame = Instance.new("Frame", screenGui)
mainFrame.Position = UDim2.new(0, 20, 0, 100)
mainFrame.Size = UDim2.new(0, 220, 0, 180)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.BackgroundTransparency = 0.1
mainFrame.Active = true
mainFrame.Draggable = true

local layout = Instance.new("UIListLayout", mainFrame)
layout.Padding = UDim.new(0, 6)
layout.SortOrder = Enum.SortOrder.LayoutOrder

local title = Instance.new("TextLabel", mainFrame)
title.Text = "Utility Toggles"
title.Size = UDim2.new(1, 0, 0, 24)
title.BackgroundTransparency = 1
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.Gotham
title.TextSize = 18

local function createToggle(name, callback)
	local container = Instance.new("Frame", mainFrame)
	container.Size = UDim2.new(1, -10, 0, 30)
	container.BackgroundTransparency = 1

	local button = Instance.new("TextButton", container)
	button.Size = UDim2.new(0, 24, 0, 24)
	button.Position = UDim2.new(0, 0, 0.5, -12)
	button.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
	button.Text = settings[name] and "✓" or ""
	button.TextColor3 = Color3.new(1, 1, 1)
	button.Font = Enum.Font.Gotham
	button.TextSize = 16
	button.AutoButtonColor = false

	local label = Instance.new("TextLabel", container)
	label.Position = UDim2.new(0, 30, 0, 0)
	label.Size = UDim2.new(1, -30, 1, 0)
	label.BackgroundTransparency = 1
	label.Text = name
	label.TextColor3 = Color3.fromRGB(255, 255, 255)
	label.Font = Enum.Font.Gotham
	label.TextSize = 16
	label.TextXAlignment = Enum.TextXAlignment.Left

	button.MouseButton1Click:Connect(function()
		settings[name] = not settings[name]
		button.Text = settings[name] and "✓" or ""
		callback(settings[name])
	end)
end

-- FOV Circle Drawing
local fovCircle = Drawing.new("Circle")
fovCircle.Radius = 150
fovCircle.Thickness = 1
fovCircle.Color = Color3.fromRGB(255, 255, 0)
fovCircle.Transparency = 1
fovCircle.NumSides = 100
fovCircle.Filled = false
fovCircle.Visible = settings.FOVCircle

RunService.RenderStepped:Connect(function()
	local mousePos = UserInputService:GetMouseLocation()
	fovCircle.Position = Vector2.new(mousePos.X, mousePos.Y)
	fovCircle.Visible = settings.FOVCircle
end)

-- Toggle Feature Logic
createToggle("Fullbright", function(state)
	if state then enableFullbright() end
end)

createToggle("ESP", function() end)
createToggle("FOVCircle", function() end)
createToggle("Aimbot", function() end)

-- UI Toggle with P
UserInputService.InputBegan:Connect(function(input, gpe)
	if not gpe and input.KeyCode == Enum.KeyCode.P then
		mainFrame.Visible = not mainFrame.Visible
	end
end)

-- Aimbot Logic
local aiming = false
local aimRadius = 150
local currentTarget = nil

local function getClosestTarget()
	local mousePos = UserInputService:GetMouseLocation()
	local minDist = aimRadius
	local closest = nil

	for _, model in ipairs(workspace:GetDescendants()) do
		if model:IsA("Model") and model ~= lp.Character then
			local humanoid = model:FindFirstChildOfClass("Humanoid")
			local head = model:FindFirstChild("Head")
			if humanoid and head and humanoid.Health > 0 then
				local screenPos, onScreen = camera:WorldToViewportPoint(head.Position)
				if onScreen then
					local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
					if dist < minDist then
						minDist = dist
						closest = head
					end
				end
			end
		end
	end
	return closest
end

RunService.RenderStepped:Connect(function()
	if settings.Aimbot and aiming then
		if currentTarget and currentTarget:IsDescendantOf(workspace) then
			local screenPos, onScreen = camera:WorldToViewportPoint(currentTarget.Position)
			local dist = (Vector2.new(screenPos.X, screenPos.Y) - UserInputService:GetMouseLocation()).Magnitude
			local char = currentTarget:FindFirstAncestorOfClass("Model")
			local humanoid = char and char:FindFirstChildOfClass("Humanoid")
			if not onScreen or dist > aimRadius or not humanoid or humanoid.Health <= 0 then
				currentTarget = nil
			end
		else
			currentTarget = nil
		end

		if not currentTarget then
			currentTarget = getClosestTarget()
		end

		if currentTarget and currentTarget:IsA("BasePart") then
			camera.CFrame = CFrame.new(camera.CFrame.Position, currentTarget.Position)
		end
	end
end)

UserInputService.InputBegan:Connect(function(input, gpe)
	if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
		aiming = true
	end
end)
UserInputService.InputEnded:Connect(function(input, gpe)
	if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
		aiming = false
		currentTarget = nil
	end
end)

-- ESP Setup
local highlights = {}
local boxDrawings = {}
local nameLabels = {}
local distanceLabels = {}
local defaultColors = {}
local processedModels = {}

local function setupESP(character)
	if processedModels[character] then return end
	processedModels[character] = true

	local humanoid = character:FindFirstChildOfClass("Humanoid")
	local head = character:FindFirstChild("Head")
	local hrp = character:FindFirstChild("HumanoidRootPart")
	if not humanoid or not head or not hrp then return end

	local isPlayer = Players:GetPlayerFromCharacter(character) ~= nil
	local baseColor = isPlayer and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(255, 0, 0)
	local visibleColor = Color3.fromRGB(255, 255, 0)

	defaultColors[character] = baseColor

	local highlight = Instance.new("Highlight")
	highlight.Adornee = character
	highlight.FillColor = baseColor
	highlight.OutlineColor = Color3.new(0, 0, 0)
	highlight.Parent = character
	highlights[character] = highlight

	local box = Drawing.new("Square")
	box.Thickness = 1
	box.Transparency = 1
	box.Filled = false
	box.Color = baseColor
	boxDrawings[character] = box

	local nameLabel = Drawing.new("Text")
	nameLabel.Size = 16
	nameLabel.Center = true
	nameLabel.Outline = true
	nameLabel.Color = baseColor
	nameLabel.Text = character.Name
	nameLabels[character] = nameLabel

	local distanceLabel = Drawing.new("Text")
	distanceLabel.Size = 16
	distanceLabel.Center = true
	distanceLabel.Outline = true
	distanceLabel.Color = baseColor
	distanceLabels[character] = distanceLabel

	local function cleanup()
		if highlights[character] then highlights[character]:Destroy() end
		if box then box.Visible = false box:Remove() end
		if nameLabel then nameLabel.Visible = false nameLabel:Remove() end
		if distanceLabel then distanceLabel.Visible = false distanceLabel:Remove() end
		highlights[character] = nil
		boxDrawings[character] = nil
		nameLabels[character] = nil
		distanceLabels[character] = nil
	end

	character.AncestryChanged:Connect(function(_, parent)
		if not parent then cleanup() end
	end)

	humanoid.Died:Connect(cleanup)

	RunService.RenderStepped:Connect(function()
		if not settings.ESP then
			box.Visible = false
			nameLabel.Visible = false
			distanceLabel.Visible = false
			return
		end

		if humanoid.Health <= 0 then return end
		local onscreen, visible = false, false
		local pos

		if hrp and head then
			pos, onscreen = camera:WorldToViewportPoint(hrp.Position)

			local origin = camera.CFrame.Position
			local direction = (head.Position - origin)
			local raycastParams = RaycastParams.new()
			raycastParams.FilterDescendantsInstances = {lp.Character}
			raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
			raycastParams.IgnoreWater = true

			local result = workspace:Raycast(origin, direction.Unit * direction.Magnitude, raycastParams)
			visible = result and (result.Instance:IsDescendantOf(head.Parent))
		end

		local col = visible and visibleColor or baseColor

		highlight.FillColor = col
		box.Color = col
		nameLabel.Color = col
		distanceLabel.Color = col

		if onscreen then
			local size = 3.5
			local topLeft = camera:WorldToViewportPoint(hrp.Position + Vector3.new(-size, size * 2, 0))
			local bottomRight = camera:WorldToViewportPoint(hrp.Position + Vector3.new(size, -size * 2, 0))

			box.Position = Vector2.new(topLeft.X, topLeft.Y)
			box.Size = Vector2.new(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y)
			box.Visible = true

			nameLabel.Position = Vector2.new(pos.X, pos.Y - 20)
			nameLabel.Visible = true

			local dist = (lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") and (lp.Character.HumanoidRootPart.Position - hrp.Position).Magnitude) or 0
			distanceLabel.Position = Vector2.new(pos.X, pos.Y + 25)
			distanceLabel.Text = string.format("%.1fm", dist)
			distanceLabel.Visible = true
		else
			box.Visible = false
			nameLabel.Visible = false
			distanceLabel.Visible = false
		end
	end)
end

for _, model in ipairs(workspace:GetDescendants()) do
	if model:IsA("Model") and not processedModels[model] and model ~= lp.Character then
		if model:FindFirstChildOfClass("Humanoid") then
			setupESP(model)
		end
	end
end

workspace.DescendantAdded:Connect(function(desc)
	local model = desc:FindFirstAncestorOfClass("Model")
	if model and not processedModels[model] and model ~= lp.Character and model:FindFirstChildOfClass("Humanoid") then
		task.delay(0.1, function()
			setupESP(model)
		end)
	end
end)

local function onPlayer(player)
	local function onCharacterAdded(character)
		task.delay(0.2, function()
			if character and character:FindFirstChildOfClass("Humanoid") then
				setupESP(character)
			end
		end)
	end

	if player.Character then
		onCharacterAdded(player.Character)
	end

	player.CharacterAdded:Connect(onCharacterAdded)
end

for _, p in ipairs(Players:GetPlayers()) do
	if p ~= lp then
		onPlayer(p)
	end
end
Players.PlayerAdded:Connect(onPlayer)

-- Enable fullbright initially if on
if settings.Fullbright then
	enableFullbright()
end

Features & Information

everything u can ask for in the ESP section

Community Comments (1)

someone test it on fallen survival please

More Scripts for Universal Scripts