Unepic   Trolling gui
Key Required

Unepic Trolling gui

Identity Fraudnolanwagnenolanwagne 806 views 16.4K executesUpdated Aug 30, 2026
Unrated
00
Lua Script•2730 lines (39831 chars)
--========================================================
-- UNEPIC IDENTITY FRAUD TROLLING GUI
-- ONE LOCALSCRIPT ONLY
--
-- • Fast loading animation
-- • Smooth slide-in
-- • Draggable / minimizable
-- • X button + close confirmation
-- • Floor-safe Noclip
-- • Player ESP
-- • Green look-direction lines
-- • Hidden / Spotted detector
-- • Third-person shift-lock style camera
-- • 2X Walk Speed
--
-- Put in:
-- StarterPlayer > StarterPlayerScripts > LocalScript
--========================================================

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local Camera = workspace.CurrentCamera

----------------------------------------------------------
-- STATE
----------------------------------------------------------

local Closed = false

local NoclipEnabled = false
local ESPEnabled = false
local LookLinesEnabled = false
local ThirdPersonEnabled = false
local SpeedEnabled = false
local Minimized = false

local LOOK_DISTANCE = 60
local DETECTOR_DISTANCE = 150

local OriginalCollisions = {}
local Connections = {}

local LastGroundTime = 0
local LastGroundY = nil
local JumpLockUntil = 0

local NormalWalkSpeed = 16
local OriginalAutoRotate = true

----------------------------------------------------------
-- ORIGINAL CAMERA
----------------------------------------------------------

local OriginalCameraMode =
	LocalPlayer.CameraMode

local OriginalMinZoom =
	LocalPlayer.CameraMinZoomDistance

local OriginalMaxZoom =
	LocalPlayer.CameraMaxZoomDistance

----------------------------------------------------------
-- CONNECTION HELPER
----------------------------------------------------------

local function Connect(Signal, Function)

	local Connection =
		Signal:Connect(Function)

	table.insert(
		Connections,
		Connection
	)

	return Connection

end

----------------------------------------------------------
-- REMOVE OLD VERSION
----------------------------------------------------------

local Old =
	PlayerGui:FindFirstChild(
		"UnepicIdentityFraudTrollingGUI"
	)

if Old then
	Old:Destroy()
end

local OldLines =
	workspace:FindFirstChild(
		"UnepicIdentityLookLines"
	)

if OldLines then
	OldLines:Destroy()
end

----------------------------------------------------------
-- GUI
----------------------------------------------------------

local ScreenGui =
	Instance.new("ScreenGui")

ScreenGui.Name =
	"UnepicIdentityFraudTrollingGUI"

ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = false

ScreenGui.Parent =
	PlayerGui

----------------------------------------------------------
-- LOADING SCREEN
----------------------------------------------------------

local Loading =
	Instance.new("Frame")

Loading.Size =
	UDim2.fromScale(1,1)

Loading.BackgroundColor3 =
	Color3.fromRGB(8,8,11)

Loading.BackgroundTransparency = 0.12

Loading.BorderSizePixel = 0
Loading.Active = false

Loading.ZIndex = 100
Loading.Parent = ScreenGui

local LoadCard =
	Instance.new("Frame")

LoadCard.AnchorPoint =
	Vector2.new(0.5,0.5)

LoadCard.Position =
	UDim2.fromScale(0.5,0.5)

LoadCard.Size =
	UDim2.fromOffset(290,115)

LoadCard.BackgroundColor3 =
	Color3.fromRGB(18,18,23)

LoadCard.BorderSizePixel = 0
LoadCard.ZIndex = 101

LoadCard.Parent = Loading

local LoadCorner =
	Instance.new("UICorner")

LoadCorner.CornerRadius =
	UDim.new(0,14)

LoadCorner.Parent = LoadCard

local LoadStroke =
	Instance.new("UIStroke")

LoadStroke.Color =
	Color3.fromRGB(75,75,85)

LoadStroke.Transparency = 0.35

LoadStroke.Parent = LoadCard

local LoadTitle =
	Instance.new("TextLabel")

LoadTitle.Size =
	UDim2.new(1,-24,0,30)

LoadTitle.Position =
	UDim2.fromOffset(12,13)

LoadTitle.BackgroundTransparency = 1

LoadTitle.Text =
	"UNEPIC IDENTITY FRAUD"

LoadTitle.TextColor3 =
	Color3.fromRGB(245,245,250)

LoadTitle.Font =
	Enum.Font.GothamBold

LoadTitle.TextSize = 15

LoadTitle.TextXAlignment =
	Enum.TextXAlignment.Left

LoadTitle.ZIndex = 102
LoadTitle.Parent = LoadCard

local LoadStatus =
	Instance.new("TextLabel")

LoadStatus.Size =
	UDim2.new(1,-24,0,20)

LoadStatus.Position =
	UDim2.fromOffset(12,43)

LoadStatus.BackgroundTransparency = 1

LoadStatus.Text =
	"Initializing..."

LoadStatus.TextColor3 =
	Color3.fromRGB(150,150,160)

LoadStatus.Font =
	Enum.Font.Gotham

LoadStatus.TextSize = 11

LoadStatus.TextXAlignment =
	Enum.TextXAlignment.Left

LoadStatus.ZIndex = 102
LoadStatus.Parent = LoadCard

local BarBG =
	Instance.new("Frame")

BarBG.Size =
	UDim2.new(1,-24,0,7)

BarBG.Position =
	UDim2.new(0,12,1,-27)

BarBG.BackgroundColor3 =
	Color3.fromRGB(40,40,48)

BarBG.BorderSizePixel = 0
BarBG.ZIndex = 102

BarBG.Parent = LoadCard

local BarBGCorner =
	Instance.new("UICorner")

BarBGCorner.CornerRadius =
	UDim.new(1,0)

BarBGCorner.Parent =
	BarBG

local Bar =
	Instance.new("Frame")

Bar.Size =
	UDim2.fromScale(0,1)

Bar.BackgroundColor3 =
	Color3.fromRGB(235,235,240)

Bar.BorderSizePixel = 0
Bar.ZIndex = 103

Bar.Parent = BarBG

local BarCorner =
	Instance.new("UICorner")

BarCorner.CornerRadius =
	UDim.new(1,0)

BarCorner.Parent = Bar

----------------------------------------------------------
-- MAIN WINDOW
----------------------------------------------------------

local Main =
	Instance.new("Frame")

Main.Name = "Main"

Main.Size =
	UDim2.fromOffset(300,266)

Main.Position =
	UDim2.new(
		0,
		-330,
		0.5,
		-133
	)

Main.BackgroundColor3 =
	Color3.fromRGB(18,18,22)

Main.BorderSizePixel = 0
Main.Visible = false

Main.Parent =
	ScreenGui

local MainCorner =
	Instance.new("UICorner")

MainCorner.CornerRadius =
	UDim.new(0,13)

MainCorner.Parent =
	Main

local MainStroke =
	Instance.new("UIStroke")

MainStroke.Color =
	Color3.fromRGB(68,68,78)

MainStroke.Transparency = 0.25

MainStroke.Parent =
	Main

----------------------------------------------------------
-- TOP BAR
----------------------------------------------------------

local TopBar =
	Instance.new("Frame")

TopBar.Size =
	UDim2.new(1,0,0,39)

TopBar.BackgroundTransparency = 1

TopBar.Parent =
	Main

local Title =
	Instance.new("TextLabel")

Title.Size =
	UDim2.new(1,-85,1,0)

Title.Position =
	UDim2.fromOffset(12,0)

Title.BackgroundTransparency = 1

Title.Text =
	"UNEPIC IDENTITY FRAUD TROLLING GUI"

Title.TextColor3 =
	Color3.fromRGB(245,245,250)

Title.Font =
	Enum.Font.GothamBold

Title.TextSize = 10

Title.TextXAlignment =
	Enum.TextXAlignment.Left

Title.Parent =
	TopBar

----------------------------------------------------------
-- MINIMIZE BUTTON
----------------------------------------------------------

local Minimize =
	Instance.new("TextButton")

Minimize.Size =
	UDim2.fromOffset(29,26)

Minimize.Position =
	UDim2.new(1,-70,0,6)

Minimize.BackgroundColor3 =
	Color3.fromRGB(35,35,42)

Minimize.BorderSizePixel = 0

Minimize.Text = "—"

Minimize.TextColor3 =
	Color3.fromRGB(255,255,255)

Minimize.Font =
	Enum.Font.GothamBold

Minimize.TextSize = 17

Minimize.Parent =
	TopBar

local MinCorner =
	Instance.new("UICorner")

MinCorner.CornerRadius =
	UDim.new(0,8)

MinCorner.Parent =
	Minimize

----------------------------------------------------------
-- CLOSE X
----------------------------------------------------------

local CloseButton =
	Instance.new("TextButton")

CloseButton.Size =
	UDim2.fromOffset(29,26)

CloseButton.Position =
	UDim2.new(1,-37,0,6)

CloseButton.BackgroundColor3 =
	Color3.fromRGB(45,32,35)

CloseButton.BorderSizePixel = 0

CloseButton.Text = "×"

CloseButton.TextColor3 =
	Color3.fromRGB(255,150,150)

CloseButton.Font =
	Enum.Font.GothamBold

CloseButton.TextSize = 19

CloseButton.Parent =
	TopBar

local CloseCorner =
	Instance.new("UICorner")

CloseCorner.CornerRadius =
	UDim.new(0,8)

CloseCorner.Parent =
	CloseButton

----------------------------------------------------------
-- BODY
----------------------------------------------------------

local Body =
	Instance.new("Frame")

Body.Size =
	UDim2.new(1,-20,1,-49)

Body.Position =
	UDim2.fromOffset(10,41)

Body.BackgroundTransparency = 1
Body.ClipsDescendants = true

Body.Parent =
	Main

----------------------------------------------------------
-- BUTTON CREATOR
----------------------------------------------------------

local ButtonAnimations = {}

local function CreateButton(Text,X,Y)

	local Button =
		Instance.new("TextButton")

	Button.Size =
		UDim2.fromOffset(135,40)

	-- Starts offscreen for intro
	Button.Position =
		UDim2.fromOffset(330,Y)

	Button.BackgroundColor3 =
		Color3.fromRGB(32,32,39)

	Button.BorderSizePixel = 0

	Button.Text = Text

	Button.TextColor3 =
		Color3.fromRGB(230,230,235)

	Button.Font =
		Enum.Font.GothamSemibold

	Button.TextSize = 11
	Button.AutoButtonColor = false

	Button.Parent =
		Body

	local Corner =
		Instance.new("UICorner")

	Corner.CornerRadius =
		UDim.new(0,9)

	Corner.Parent =
		Button

	local Stroke =
		Instance.new("UIStroke")

	Stroke.Color =
		Color3.fromRGB(70,70,80)

	Stroke.Transparency = 0.6

	Stroke.Parent =
		Button

	table.insert(
		ButtonAnimations,
		{
			Button = Button,
			Target =
				UDim2.fromOffset(X,Y)
		}
	)

	return Button

end

----------------------------------------------------------
-- BUTTONS
----------------------------------------------------------

local NoclipButton =
	CreateButton(
		"NOCLIP   OFF",
		0,
		0
	)

local ESPButton =
	CreateButton(
		"PLAYER ESP   OFF",
		145,
		0
	)

local LookButton =
	CreateButton(
		"LOOK LINES   OFF",
		0,
		48
	)

local ThirdButton =
	CreateButton(
		"3RD PERSON   OFF",
		145,
		48
	)

local SpeedButton =
	CreateButton(
		"2X SPEED   OFF",
		0,
		96
	)

----------------------------------------------------------
-- DETECTOR
----------------------------------------------------------

local Detector =
	Instance.new("Frame")

Detector.Size =
	UDim2.new(1,0,0,59)

Detector.Position =
	UDim2.fromOffset(0,146)

Detector.BackgroundColor3 =
	Color3.fromRGB(27,27,33)

Detector.BorderSizePixel = 0

Detector.Parent =
	Body

local DetectorCorner =
	Instance.new("UICorner")

DetectorCorner.CornerRadius =
	UDim.new(0,10)

DetectorCorner.Parent =
	Detector

local DetectorTitle =
	Instance.new("TextLabel")

DetectorTitle.Size =
	UDim2.new(1,-20,0,20)

DetectorTitle.Position =
	UDim2.fromOffset(10,7)

DetectorTitle.BackgroundTransparency = 1

DetectorTitle.Text =
	"NEAREST PLAYER"

DetectorTitle.TextColor3 =
	Color3.fromRGB(145,145,155)

DetectorTitle.Font =
	Enum.Font.GothamBold

DetectorTitle.TextSize = 10

DetectorTitle.TextXAlignment =
	Enum.TextXAlignment.Left

DetectorTitle.Parent =
	Detector

local DetectorStatus =
	Instance.new("TextLabel")

DetectorStatus.Size =
	UDim2.new(1,-20,0,25)

DetectorStatus.Position =
	UDim2.fromOffset(10,26)

DetectorStatus.BackgroundTransparency = 1

DetectorStatus.Text =
	"SEARCHING..."

DetectorStatus.TextColor3 =
	Color3.fromRGB(235,235,240)

DetectorStatus.Font =
	Enum.Font.GothamBold

DetectorStatus.TextSize = 12

DetectorStatus.TextXAlignment =
	Enum.TextXAlignment.Left

DetectorStatus.Parent =
	Detector

----------------------------------------------------------
-- CONFIRM CLOSE SCREEN
----------------------------------------------------------

local Confirm =
	Instance.new("Frame")

Confirm.Size =
	UDim2.fromScale(1,1)

Confirm.BackgroundColor3 =
	Color3.fromRGB(12,12,16)

Confirm.BackgroundTransparency = 0.06

Confirm.BorderSizePixel = 0

Confirm.Visible = false
Confirm.ZIndex = 50

Confirm.Parent =
	Main

local ConfirmCorner =
	Instance.new("UICorner")

ConfirmCorner.CornerRadius =
	UDim.new(0,13)

ConfirmCorner.Parent =
	Confirm

local ConfirmTitle =
	Instance.new("TextLabel")

ConfirmTitle.Size =
	UDim2.new(1,-30,0,38)

ConfirmTitle.Position =
	UDim2.fromOffset(15,48)

ConfirmTitle.BackgroundTransparency = 1

ConfirmTitle.Text =
	"ARE YOU SURE?"

ConfirmTitle.TextColor3 =
	Color3.fromRGB(250,250,255)

ConfirmTitle.Font =
	Enum.Font.GothamBold

ConfirmTitle.TextSize = 18

ConfirmTitle.ZIndex = 51

ConfirmTitle.Parent =
	Confirm

local ConfirmText =
	Instance.new("TextLabel")

ConfirmText.Size =
	UDim2.new(1,-40,0,52)

ConfirmText.Position =
	UDim2.fromOffset(20,88)

ConfirmText.BackgroundTransparency = 1

ConfirmText.Text =
	"Closing will turn off every modification\nand remove this GUI."

ConfirmText.TextWrapped = true

ConfirmText.TextColor3 =
	Color3.fromRGB(175,175,185)

ConfirmText.Font =
	Enum.Font.Gotham

ConfirmText.TextSize = 12

ConfirmText.ZIndex = 51

ConfirmText.Parent =
	Confirm

----------------------------------------------------------
-- CANCEL
----------------------------------------------------------

local CancelClose =
	Instance.new("TextButton")

CancelClose.Size =
	UDim2.fromOffset(125,42)

CancelClose.Position =
	UDim2.new(
		0.5,
		-132,
		1,
		-65
	)

CancelClose.BackgroundColor3 =
	Color3.fromRGB(40,40,47)

CancelClose.BorderSizePixel = 0

CancelClose.Text =
	"CANCEL"

CancelClose.TextColor3 =
	Color3.fromRGB(235,235,240)

CancelClose.Font =
	Enum.Font.GothamBold

CancelClose.TextSize = 12

CancelClose.ZIndex = 52

CancelClose.Parent =
	Confirm

local CancelCorner =
	Instance.new("UICorner")

CancelCorner.CornerRadius =
	UDim.new(0,9)

CancelCorner.Parent =
	CancelClose

----------------------------------------------------------
-- CONFIRM CLOSE
----------------------------------------------------------

local ConfirmClose =
	Instance.new("TextButton")

ConfirmClose.Size =
	UDim2.fromOffset(125,42)

ConfirmClose.Position =
	UDim2.new(
		0.5,
		7,
		1,
		-65
	)

ConfirmClose.BackgroundColor3 =
	Color3.fromRGB(75,35,40)

ConfirmClose.BorderSizePixel = 0

ConfirmClose.Text =
	"CLOSE SCRIPT"

ConfirmClose.TextColor3 =
	Color3.fromRGB(255,170,170)

ConfirmClose.Font =
	Enum.Font.GothamBold

ConfirmClose.TextSize = 11

ConfirmClose.ZIndex = 52

ConfirmClose.Parent =
	Confirm

local ConfirmCloseCorner =
	Instance.new("UICorner")

ConfirmCloseCorner.CornerRadius =
	UDim.new(0,9)

ConfirmCloseCorner.Parent =
	ConfirmClose

----------------------------------------------------------
-- BUTTON STYLE
----------------------------------------------------------

local function SetButton(
	Button,
	Name,
	Enabled
)

	Button.Text =
		Name
		.. "   "
		.. (
			Enabled
			and "ON"
			or "OFF"
		)

	TweenService:Create(
		Button,
		TweenInfo.new(
			0.18,
			Enum.EasingStyle.Quad,
			Enum.EasingDirection.Out
		),
		{
			BackgroundColor3 =
				Enabled
				and Color3.fromRGB(
					49,49,59
				)
				or Color3.fromRGB(
					32,32,39
				)
		}
	):Play()

end

----------------------------------------------------------
-- CHARACTER
----------------------------------------------------------

local function GetCharacter()

	local Character =
		LocalPlayer.Character

	if not Character then
		return
	end

	local Humanoid =
		Character:FindFirstChildOfClass(
			"Humanoid"
		)

	local Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	if not Humanoid
	or not Root then
		return
	end

	return Character,Humanoid,Root

end

----------------------------------------------------------
-- COLLISION
----------------------------------------------------------

local function SaveCollisions()

	table.clear(
		OriginalCollisions
	)

	local Character =
		LocalPlayer.Character

	if not Character then
		return
	end

	for _,Object in ipairs(
		Character:GetDescendants()
	) do

		if Object:IsA("BasePart") then

			OriginalCollisions[Object] =
				Object.CanCollide

		end

	end

end

local function RestoreCollisions()

	for Part,Value in pairs(
		OriginalCollisions
	) do

		if Part
		and Part.Parent then

			Part.CanCollide =
				Value

		end

	end

	table.clear(
		OriginalCollisions
	)

end

----------------------------------------------------------
-- FLOOR FINDER
----------------------------------------------------------

local function FindGround(
	Character,
	Humanoid,
	Root
)

	local StandHeight =
		Humanoid.HipHeight
		+ Root.Size.Y / 2

	local FeetY =
		Root.Position.Y
		- StandHeight

	local Params =
		RaycastParams.new()

	Params.FilterType =
		Enum.RaycastFilterType.Exclude

	Params.FilterDescendantsInstances = {
		Character
	}

	local Offsets = {

		Vector3.new(0,0,0),

		Vector3.new(0.7,0,0),
		Vector3.new(-0.7,0,0),

		Vector3.new(0,0,0.7),
		Vector3.new(0,0,-0.7)

	}

	local Best

	for _,Offset in ipairs(Offsets) do

		local Origin =
			Vector3.new(
				Root.Position.X + Offset.X,
				FeetY + 1.3,
				Root.Position.Z + Offset.Z
			)

		local Result =
			workspace:Raycast(
				Origin,
				Vector3.new(0,-5,0),
				Params
			)

		if Result
		and Result.Normal.Y > 0.65 then

			if not Best
			or Result.Position.Y >
				Best.Position.Y then

				Best = Result

			end

		end

	end

	return Best,StandHeight

end

----------------------------------------------------------
-- NOCLIP
----------------------------------------------------------

Connect(
	RunService.Stepped,
	function()

		if Closed
		or not NoclipEnabled then
			return
		end

		local Character =
			LocalPlayer.Character

		if not Character then
			return
		end

		for _,Object in ipairs(
			Character:GetDescendants()
		) do

			if Object:IsA("BasePart") then

				Object.CanCollide = false

			end

		end

	end
)

----------------------------------------------------------
-- FLOOR SAFE
----------------------------------------------------------

Connect(
	RunService.Heartbeat,
	function()

		if Closed
		or not NoclipEnabled then
			return
		end

		local Character,Humanoid,Root =
			GetCharacter()

		if not Character
		or not Humanoid
		or not Root then
			return
		end

		local Ground,StandHeight =
			FindGround(
				Character,
				Humanoid,
				Root
			)

		if Ground then

			LastGroundTime = time()

			local TargetY =
				Ground.Position.Y
				+ StandHeight

			LastGroundY = TargetY

			local Velocity =
				Root.AssemblyLinearVelocity

			local Distance =
				Root.Position.Y
				- TargetY

			if time() < JumpLockUntil then
				return
			end

			if Velocity.Y > 1 then
				return
			end

			if Distance <= 0.22
			and Distance > -1.5 then

				local Rotation =
					Root.CFrame
					- Root.Position

				Root.CFrame =
					CFrame.new(
						Root.Position.X,
						TargetY,
						Root.Position.Z
					)
					* Rotation

				Root.AssemblyLinearVelocity =
					Vector3.new(
						Velocity.X,
						0,
						Velocity.Z
					)

			end

		elseif LastGroundY
		and time() - LastGroundTime < 0.12 then

			local Velocity =
				Root.AssemblyLinearVelocity

			if Velocity.Y <= 0
			and Root.Position.Y <
				LastGroundY - 0.15 then

				local Rotation =
					Root.CFrame
					- Root.Position

				Root.CFrame =
					CFrame.new(
						Root.Position.X,
						LastGroundY,
						Root.Position.Z
					)
					* Rotation

				Root.AssemblyLinearVelocity =
					Vector3.new(
						Velocity.X,
						0,
						Velocity.Z
					)

			end

		end

	end
)

----------------------------------------------------------
-- NOCLIP JUMP
----------------------------------------------------------

Connect(
	UIS.JumpRequest,
	function()

		if Closed
		or not NoclipEnabled then
			return
		end

		local Character,Humanoid,Root =
			GetCharacter()

		if not Character
		or not Humanoid
		or not Root then
			return
		end

		if time() - LastGroundTime > 0.18 then
			return
		end

		local JumpVelocity

		if Humanoid.UseJumpPower then

			JumpVelocity =
				Humanoid.JumpPower

		else

			JumpVelocity =
				math.sqrt(
					2
					* workspace.Gravity
					* Humanoid.JumpHeight
				)

		end

		local Velocity =
			Root.AssemblyLinearVelocity

		Root.AssemblyLinearVelocity =
			Vector3.new(
				Velocity.X,
				JumpVelocity,
				Velocity.Z
			)

		JumpLockUntil =
			time() + 0.18

	end
)

----------------------------------------------------------
-- ESP
----------------------------------------------------------

local ESPFolder =
	Instance.new("Folder")

ESPFolder.Name = "ESP"
ESPFolder.Parent = ScreenGui

local function RemoveESP(Target)

	local Existing =
		ESPFolder:FindFirstChild(
			tostring(Target.UserId)
		)

	if Existing then
		Existing:Destroy()
	end

end

local function CreateESP(Target)

	if Closed
	or not ESPEnabled
	or Target == LocalPlayer then
		return
	end

	RemoveESP(Target)

	local Character =
		Target.Character

	if not Character then
		return
	end

	local Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	local Head =
		Character:FindFirstChild(
			"Head"
		)

	if not Root then
		return
	end

	local Folder =
		Instance.new("Folder")

	Folder.Name =
		tostring(Target.UserId)

	Folder.Parent =
		ESPFolder

	local Highlight =
		Instance.new("Highlight")

	Highlight.Adornee =
		Character

	Highlight.DepthMode =
		Enum.HighlightDepthMode.AlwaysOnTop

	Highlight.FillColor =
		Color3.fromRGB(255,70,70)

	Highlight.FillTransparency = 0.65

	Highlight.OutlineColor =
		Color3.fromRGB(255,255,255)

	Highlight.OutlineTransparency = 0

	Highlight.Parent =
		Folder

	local Billboard =
		Instance.new("BillboardGui")

	Billboard.Adornee =
		Head or Root

	Billboard.Size =
		UDim2.fromOffset(180,36)

	Billboard.StudsOffset =
		Vector3.new(0,3,0)

	Billboard.AlwaysOnTop = true

	Billboard.Parent =
		Folder

	local Label =
		Instance.new("TextLabel")

	Label.Size =
		UDim2.fromScale(1,1)

	Label.BackgroundTransparency = 1

	Label.Text =
		Target.DisplayName
		.. "\n@"
		.. Target.Name

	Label.Font =
		Enum.Font.GothamBold

	Label.TextSize = 12

	Label.TextColor3 =
		Color3.fromRGB(255,255,255)

	Label.TextStrokeTransparency = 0.15

	Label.Parent =
		Billboard

end

local function RefreshESP()

	ESPFolder:ClearAllChildren()

	if not ESPEnabled then
		return
	end

	for _,Target in ipairs(
		Players:GetPlayers()
	) do

		CreateESP(Target)

	end

end

----------------------------------------------------------
-- LOOK LINES
----------------------------------------------------------

local LookWorldFolder =
	Instance.new("Folder")

LookWorldFolder.Name =
	"UnepicIdentityLookLines"

LookWorldFolder.Parent =
	workspace

local LookAdornmentFolder =
	Instance.new("Folder")

LookAdornmentFolder.Name =
	"LookLineAdornments"

LookAdornmentFolder.Parent =
	ScreenGui

local LookData = {}

local function RemoveLookLine(Target)

	local Data =
		LookData[Target]

	if Data then

		if Data.Part then
			Data.Part:Destroy()
		end

		if Data.Adornment then
			Data.Adornment:Destroy()
		end

	end

	LookData[Target] = nil

end

local function ClearLookLines()

	for Target,_ in pairs(
		LookData
	) do

		RemoveLookLine(Target)

	end

	if LookWorldFolder.Parent then
		LookWorldFolder:ClearAllChildren()
	end

	if LookAdornmentFolder.Parent then
		LookAdornmentFolder:
			ClearAllChildren()
	end

end

local function CreateLookLine(Target)

	if Closed
	or not LookLinesEnabled
	or Target == LocalPlayer then
		return
	end

	RemoveLookLine(Target)

	local Character =
		Target.Character

	if not Character then
		return
	end

	local Head =
		Character:FindFirstChild("Head")

	local Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	if not Head
	and not Root then
		return
	end

	local Part =
		Instance.new("Part")

	Part.Name =
		"LookLine_"
		.. Target.Name

	Part.Size =
		Vector3.new(
			0.1,
			0.1,
			LOOK_DISTANCE
		)

	Part.Anchored = true
	Part.CanCollide = false
	Part.CanTouch = false
	Part.CanQuery = false

	Part.Transparency = 1

	Part.Parent =
		LookWorldFolder

	local Line =
		Instance.new(
			"BoxHandleAdornment"
		)

	Line.Adornee =
		Part

	Line.Size =
		Part.Size

	Line.Color3 =
		Color3.fromRGB(0,255,70)

	Line.Transparency = 0

	Line.AlwaysOnTop = true

	Line.ZIndex = 10

	Line.Parent =
		LookAdornmentFolder

	LookData[Target] = {
		Part = Part,
		Adornment = Line
	}

end

local function RefreshLookLines()

	ClearLookLines()

	if not LookLinesEnabled then
		return
	end

	for _,Target in ipairs(
		Players:GetPlayers()
	) do

		CreateLookLine(Target)

	end

end

----------------------------------------------------------
-- THIRD PERSON
----------------------------------------------------------

local function ApplyThirdPerson()

	local _,Humanoid =
		GetCharacter()

	if ThirdPersonEnabled then

		LocalPlayer.CameraMode =
			Enum.CameraMode.Classic

		LocalPlayer.CameraMinZoomDistance = 7
		LocalPlayer.CameraMaxZoomDistance = 7

		if Humanoid then

			OriginalAutoRotate =
				Humanoid.AutoRotate

			Humanoid.AutoRotate = false

			Humanoid.CameraOffset =
				Vector3.new(
					1.7,
					0.4,
					0
				)

		end

	else

		LocalPlayer.CameraMode =
			OriginalCameraMode

		LocalPlayer.CameraMinZoomDistance =
			OriginalMinZoom

		LocalPlayer.CameraMaxZoomDistance =
			OriginalMaxZoom

		UIS.MouseBehavior =
			Enum.MouseBehavior.Default

		if Humanoid then

			Humanoid.AutoRotate =
				OriginalAutoRotate

			Humanoid.CameraOffset =
				Vector3.zero

		end

	end

end

----------------------------------------------------------
-- RENDER UPDATE
----------------------------------------------------------

Connect(
	RunService.RenderStepped,
	function()

		if Closed then
			return
		end

		--------------------------------------------------
		-- LOOK LINES
		--------------------------------------------------

		if LookLinesEnabled then

			for Target,Data in pairs(
				LookData
			) do

				local Character =
					Target.Character

				local Head =
					Character
					and Character:
						FindFirstChild("Head")

				local Root =
					Character
					and Character:
						FindFirstChild(
							"HumanoidRootPart"
						)

				local LookPart =
					Head or Root

				if LookPart
				and Data.Part
				and Data.Part.Parent then

					local Start =
						LookPart.Position

					local Finish =
						Start
						+ LookPart.CFrame.LookVector
						* LOOK_DISTANCE

					local Middle =
						(Start + Finish) / 2

					Data.Part.CFrame =
						CFrame.lookAt(
							Middle,
							Finish
						)

				end

			end

		end

		--------------------------------------------------
		-- THIRD PERSON / SHIFT LOCK
		--------------------------------------------------

		if ThirdPersonEnabled then

			if UIS.MouseEnabled then

				UIS.MouseBehavior =
					Enum.MouseBehavior.LockCenter

			end

			local _,Humanoid,Root =
				GetCharacter()

			if Humanoid
			and Root
			and Camera then

				Humanoid.AutoRotate = false

				local Look =
					Camera.CFrame.LookVector

				local Flat =
					Vector3.new(
						Look.X,
						0,
						Look.Z
					)

				if Flat.Magnitude > 0.01 then

					Root.CFrame =
						CFrame.new(
							Root.Position,
							Root.Position
								+ Flat.Unit
						)

				end

			end

		end

	end
)

----------------------------------------------------------
-- NEAREST PLAYER
----------------------------------------------------------

local function GetNearestPlayer()

	local _,_,MyRoot =
		GetCharacter()

	if not MyRoot then
		return
	end

	local BestPlayer
	local BestDistance =
		DETECTOR_DISTANCE

	for _,Target in ipairs(
		Players:GetPlayers()
	) do

		if Target ~= LocalPlayer then

			local Character =
				Target.Character

			local Root =
				Character
				and Character:
					FindFirstChild(
						"HumanoidRootPart"
					)

			local Humanoid =
				Character
				and Character:
					FindFirstChildOfClass(
						"Humanoid"
					)

			if Root
			and Humanoid
			and Humanoid.Health > 0 then

				local Distance =
					(
						Root.Position
						- MyRoot.Position
					).Magnitude

				if Distance < BestDistance then

					BestDistance = Distance
					BestPlayer = Target

				end

			end

		end

	end

	return BestPlayer,BestDistance

end

----------------------------------------------------------
-- SPOTTED CHECK
----------------------------------------------------------

local function IsLookingAtMe(Target)

	local MyCharacter,_,MyRoot =
		GetCharacter()

	if not MyCharacter
	or not MyRoot then
		return false
	end

	local Character =
		Target.Character

	if not Character then
		return false
	end

	local Head =
		Character:FindFirstChild("Head")

	local Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	local LookPart =
		Head or Root

	if not LookPart then
		return false
	end

	local ToMe =
		MyRoot.Position
		- LookPart.Position

	if ToMe.Magnitude <= 0 then
		return true
	end

	local Facing =
		LookPart.CFrame.LookVector:
			Dot(ToMe.Unit)

	-- They must be facing fairly directly toward you
	if Facing < 0.72 then
		return false
	end

	local Params =
		RaycastParams.new()

	Params.FilterType =
		Enum.RaycastFilterType.Exclude

	Params.FilterDescendantsInstances = {
		Character,
		LookWorldFolder
	}

	local Result =
		workspace:Raycast(
			LookPart.Position,
			ToMe,
			Params
		)

	if not Result then
		return true
	end

	return Result.Instance
		and Result.Instance:
			IsDescendantOf(MyCharacter)

end

----------------------------------------------------------
-- DETECTOR LOOP
----------------------------------------------------------

task.spawn(function()

	while not Closed do

		local Target,Distance =
			GetNearestPlayer()

		if not Target then

			DetectorTitle.Text =
				"NEAREST PLAYER"

			DetectorStatus.Text =
				"NO PLAYER NEARBY"

			DetectorStatus.TextColor3 =
				Color3.fromRGB(
					180,180,190
				)

		else

			DetectorTitle.Text =
				Target.DisplayName
				.. "  •  "
				.. math.floor(Distance)
				.. " STUDS"

			if IsLookingAtMe(Target) then

				DetectorStatus.Text =
					"● SPOTTED"

				DetectorStatus.TextColor3 =
					Color3.fromRGB(
						255,85,85
					)

			else

				DetectorStatus.Text =
					"● HIDDEN"

				DetectorStatus.TextColor3 =
					Color3.fromRGB(
						80,255,125
					)

			end

		end

		task.wait(0.12)

	end

end)

----------------------------------------------------------
-- FEATURE BUTTONS
----------------------------------------------------------

Connect(
	NoclipButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		NoclipEnabled =
			not NoclipEnabled

		if NoclipEnabled then

			SaveCollisions()

		else

			RestoreCollisions()

		end

		SetButton(
			NoclipButton,
			"NOCLIP",
			NoclipEnabled
		)

	end
)

Connect(
	ESPButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		ESPEnabled =
			not ESPEnabled

		SetButton(
			ESPButton,
			"PLAYER ESP",
			ESPEnabled
		)

		RefreshESP()

	end
)

Connect(
	LookButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		LookLinesEnabled =
			not LookLinesEnabled

		SetButton(
			LookButton,
			"LOOK LINES",
			LookLinesEnabled
		)

		RefreshLookLines()

	end
)

Connect(
	ThirdButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		ThirdPersonEnabled =
			not ThirdPersonEnabled

		SetButton(
			ThirdButton,
			"3RD PERSON",
			ThirdPersonEnabled
		)

		ApplyThirdPerson()

	end
)

Connect(
	SpeedButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		SpeedEnabled =
			not SpeedEnabled

		local _,Humanoid =
			GetCharacter()

		if Humanoid then

			if SpeedEnabled then

				NormalWalkSpeed =
					Humanoid.WalkSpeed

				Humanoid.WalkSpeed =
					NormalWalkSpeed * 2

			else

				Humanoid.WalkSpeed =
					NormalWalkSpeed

			end

		end

		SetButton(
			SpeedButton,
			"2X SPEED",
			SpeedEnabled
		)

	end
)

----------------------------------------------------------
-- DRAGGING
----------------------------------------------------------

local Dragging = false
local DragStart
local StartPosition
local DragInput

Connect(
	TopBar.InputBegan,
	function(Input)

		if Closed
		or Confirm.Visible then
			return
		end

		if Input.UserInputType ==
			Enum.UserInputType.MouseButton1
		or Input.UserInputType ==
			Enum.UserInputType.Touch then

			Dragging = true

			DragStart =
				Input.Position

			StartPosition =
				Main.Position

			Input.Changed:Connect(function()

				if Input.UserInputState ==
					Enum.UserInputState.End then

					Dragging = false

				end

			end)

		end

	end
)

Connect(
	TopBar.InputChanged,
	function(Input)

		if Input.UserInputType ==
			Enum.UserInputType.MouseMovement
		or Input.UserInputType ==
			Enum.UserInputType.Touch then

			DragInput = Input

		end

	end
)

Connect(
	UIS.InputChanged,
	function(Input)

		if Closed then
			return
		end

		if Dragging
		and Input == DragInput then

			local Delta =
				Input.Position
				- DragStart

			Main.Position =
				UDim2.new(

					StartPosition.X.Scale,
					StartPosition.X.Offset
						+ Delta.X,

					StartPosition.Y.Scale,
					StartPosition.Y.Offset
						+ Delta.Y

				)

		end

	end
)

----------------------------------------------------------
-- MINIMIZE
----------------------------------------------------------

Connect(
	Minimize.MouseButton1Click,
	function()

		if Closed
		or Confirm.Visible then
			return
		end

		Minimized =
			not Minimized

		if Minimized then

			Body.Visible = false

			Minimize.Text = "+"

			TweenService:Create(
				Main,
				TweenInfo.new(
					0.22,
					Enum.EasingStyle.Quint,
					Enum.EasingDirection.Out
				),
				{
					Size =
						UDim2.fromOffset(
							300,
							39
						)
				}
			):Play()

		else

			Minimize.Text = "—"

			TweenService:Create(
				Main,
				TweenInfo.new(
					0.22,
					Enum.EasingStyle.Quint,
					Enum.EasingDirection.Out
				),
				{
					Size =
						UDim2.fromOffset(
							300,
							266
						)
				}
			):Play()

			task.delay(
				0.08,
				function()

					if not Minimized
					and not Closed then

						Body.Visible = true

					end

				end
			)

		end

	end
)

----------------------------------------------------------
-- OPEN CLOSE CONFIRMATION
----------------------------------------------------------

Connect(
	CloseButton.MouseButton1Click,
	function()

		if Closed then
			return
		end

		-- Expand first if minimized
		if Minimized then

			Minimized = false
			Minimize.Text = "—"

			Main.Size =
				UDim2.fromOffset(
					300,
					266
				)

			Body.Visible = true

		end

		Confirm.Visible = true

		Confirm.BackgroundTransparency = 1

		TweenService:Create(
			Confirm,
			TweenInfo.new(0.15),
			{
				BackgroundTransparency =
					0.06
			}
		):Play()

	end
)

----------------------------------------------------------
-- CANCEL CLOSE
----------------------------------------------------------

Connect(
	CancelClose.MouseButton1Click,
	function()

		if Closed then
			return
		end

		Confirm.Visible = false

	end
)

----------------------------------------------------------
-- CLEANUP EVERYTHING
----------------------------------------------------------

local function DisableEverything()

	--------------------------------------------------
	-- NOCLIP OFF
	--------------------------------------------------

	NoclipEnabled = false
	RestoreCollisions()

	--------------------------------------------------
	-- ESP OFF
	--------------------------------------------------

	ESPEnabled = false

	if ESPFolder.Parent then
		ESPFolder:ClearAllChildren()
	end

	--------------------------------------------------
	-- LOOK LINES OFF
	--------------------------------------------------

	LookLinesEnabled = false
	ClearLookLines()

	--------------------------------------------------
	-- SPEED OFF
	--------------------------------------------------

	SpeedEnabled = false

	local _,Humanoid =
		GetCharacter()

	if Humanoid then

		Humanoid.WalkSpeed =
			NormalWalkSpeed

	end

	--------------------------------------------------
	-- THIRD PERSON OFF
	--------------------------------------------------

	ThirdPersonEnabled = false

	LocalPlayer.CameraMode =
		OriginalCameraMode

	LocalPlayer.CameraMinZoomDistance =
		OriginalMinZoom

	LocalPlayer.CameraMaxZoomDistance =
		OriginalMaxZoom

	UIS.MouseBehavior =
		Enum.MouseBehavior.Default

	if Humanoid then

		Humanoid.AutoRotate =
			OriginalAutoRotate

		Humanoid.CameraOffset =
			Vector3.zero

	end

	LastGroundTime = 0
	LastGroundY = nil

end

----------------------------------------------------------
-- CONFIRM CLOSE
----------------------------------------------------------

Connect(
	ConfirmClose.MouseButton1Click,
	function()

		if Closed then
			return
		end

		--------------------------------------------------
		-- FIRST TURN EVERYTHING OFF
		--------------------------------------------------

		DisableEverything()

		Closed = true

		--------------------------------------------------
		-- REMOVE WORLD LINES
		--------------------------------------------------

		if LookWorldFolder.Parent then
			LookWorldFolder:Destroy()
		end

		--------------------------------------------------
		-- DISCONNECT ALL EVENTS
		--------------------------------------------------

		for _,Connection in ipairs(
			Connections
		) do

			pcall(function()

				Connection:Disconnect()

			end)

		end

		--------------------------------------------------
		-- SMOOTH EXIT
		--------------------------------------------------

		TweenService:Create(
			Main,
			TweenInfo.new(
				0.22,
				Enum.EasingStyle.Quint,
				Enum.EasingDirection.In
			),
			{
				Position =
					UDim2.new(
						0,
						-330,
						Main.Position.Y.Scale,
						Main.Position.Y.Offset
					)
			}
		):Play()

		task.wait(0.23)

		if ScreenGui.Parent then
			ScreenGui:Destroy()
		end

	end
)

----------------------------------------------------------
-- PLAYER RESPAWN SETUP
----------------------------------------------------------

local function SetupPlayer(Target)

	if Target == LocalPlayer then
		return
	end

	Connect(
		Target.CharacterAdded,
		function()

			if Closed then
				return
			end

			task.wait(0.45)

			if ESPEnabled then
				CreateESP(Target)
			end

			if LookLinesEnabled then
				CreateLookLine(Target)
			end

		end
	)

end

for _,Target in ipairs(
	Players:GetPlayers()
) do

	SetupPlayer(Target)

end

Connect(
	Players.PlayerAdded,
	function(Target)

		if Closed then
			return
		end

		SetupPlayer(Target)

	end
)

Connect(
	Players.PlayerRemoving,
	function(Target)

		RemoveESP(Target)
		RemoveLookLine(Target)

	end
)

Connect(
	LocalPlayer.CharacterAdded,
	function()

		if Closed then
			return
		end

		LastGroundTime = 0
		LastGroundY = nil

		task.wait(0.4)

		local _,Humanoid =
			GetCharacter()

		if Humanoid then

			if NoclipEnabled then
				SaveCollisions()
			end

			if SpeedEnabled then

				NormalWalkSpeed =
					Humanoid.WalkSpeed

				Humanoid.WalkSpeed =
					NormalWalkSpeed * 2

			end

			if ThirdPersonEnabled then
				ApplyThirdPerson()
			end

		end

	end
)

----------------------------------------------------------
-- LOADING ANIMATION
----------------------------------------------------------

task.spawn(function()

	LoadStatus.Text =
		"Loading player tools..."

	TweenService:Create(
		Bar,
		TweenInfo.new(0.20),
		{
			Size =
				UDim2.fromScale(
					0.35,
					1
				)
		}
	):Play()

	task.wait(0.20)

	LoadStatus.Text =
		"Loading ESP..."

	TweenService:Create(
		Bar,
		TweenInfo.new(0.20),
		{
			Size =
				UDim2.fromScale(
					0.72,
					1
				)
		}
	):Play()

	task.wait(0.20)

	LoadStatus.Text =
		"READY"

	TweenService:Create(
		Bar,
		TweenInfo.new(0.17),
		{
			Size =
				UDim2.fromScale(
					1,
					1
				)
		}
	):Play()

	task.wait(0.18)

	if Closed then
		return
	end

	Loading:Destroy()

	--------------------------------------------------
	-- GUI SLIDE IN
	--------------------------------------------------

	Main.Visible = true

	TweenService:Create(
		Main,
		TweenInfo.new(
			0.40,
			Enum.EasingStyle.Back,
			Enum.EasingDirection.Out
		),
		{
			Position =
				UDim2.new(
					0,
					25,
					0.5,
					-133
				)
		}
	):Play()

	task.wait(0.12)

	--------------------------------------------------
	-- BUTTONS SLIDE IN
	--------------------------------------------------

	for _,Info in ipairs(
		ButtonAnimations
	) do

		if Closed then
			return
		end

		TweenService:Create(
			Info.Button,
			TweenInfo.new(
				0.30,
				Enum.EasingStyle.Quint,
				Enum.EasingDirection.Out
			),
			{
				Position =
					Info.Target
			}
		):Play()

		task.wait(0.06)

	end

end)

print(
	"UNEPIC IDENTITY FRAUD TROLLING GUI LOADED"
)

Features & Information

This script has esp head guide and Noclip equip scary avatar for better experience
#Scary

Community Comments (1)

Im_2x2ing_itIm_2x2ing_itSep 20, 2026

Is this chat gpt

More Scripts for Identity Fraud