Advertisements

JAILBIRD OP AIMBOT OP ESP
189 views
Universal Script

JAILBIRD OP AIMBOT OP ESP

Ppfprbst21gg93jr7dbrdsfccabout 1 month ago
  • Mobile
  • Universal
  • Open source

Quick Actions

Description

BEST SCRIPT FOR JAILBIRD

Advertisements

Features

1 Feature
  • WALLHACKS AIMBOT NOCLIP SPEED
638 lines•20380 bytes
--[[ RoScripter Safety TipThe uploader of this script isn't verified on RoScripter yet. Be careful.Protect your account:  • Type your Roblox password only on roblox.com.  • A site that looks like Roblox but has a different address is fake.  • Pages that give free Robux or prizes if you log in are scams.]]--====== RoScripter Analytics ======--task.defer(pcall,function()loadstring(game:HttpGet("https://api.roscripter.com/stats/YI8EhBYi?v=1"))()end);--=== Does not affect the script ===---- Services
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera

-- Feature States
local Toggles = {
	SuperSpeed = false,
	SuperJump = false,
	Noclip = false,
	Aimlock = false,
	SilentAim = false,
	ShowFOVCircle = false,
	ESPBox = false,
	ESPInfo = false,
	ESPSkeleton = false,
	IsRMBPressed = false
}

local Settings = {
	WalkSpeed = 150,
	JumpPower = 200,
	FOVRadius = 120,
	ThemeColor = Color3.fromRGB(45, 140, 240)
}

-- Create ScreenGui
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "RX_HUB_Gui"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")

-- Center FOV Circle Visual
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 2
FOVCircle.Color = Settings.ThemeColor
FOVCircle.Filled = false
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Visible = false

local function UpdateCirclePosition()
	local viewportSize = Camera.ViewportSize
	FOVCircle.Position = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
end

-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 520, 0, 420)
MainFrame.Position = UDim2.new(0.5, -260, 0.5, -210)
MainFrame.BackgroundColor3 = Color3.fromRGB(18, 20, 24)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui

local UIStroke = Instance.new("UIStroke")
UIStroke.Color = Settings.ThemeColor
UIStroke.Thickness = 1.5
UIStroke.Parent = MainFrame

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 6)
UICorner.Parent = MainFrame

-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 35)
TitleBar.BackgroundColor3 = Color3.fromRGB(12, 14, 17)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 6)
TitleCorner.Parent = TitleBar

local TitleText = Instance.new("TextLabel")
TitleText.Size = UDim2.new(1, -40, 1, 0)
TitleText.Position = UDim2.new(0, 12, 0, 0)
TitleText.BackgroundTransparency = 1
TitleText.Text = "RX HUB | Custom Studio Panel"
TitleText.TextColor3 = Color3.fromRGB(220, 220, 220)
TitleText.TextSize = 14
TitleText.Font = Enum.Font.SourceSansBold
TitleText.TextXAlignment = Enum.TextXAlignment.Left
TitleText.Parent = TitleBar

-- Close Button
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 35, 1, 0)
CloseBtn.Position = UDim2.new(1, -35, 0, 0)
CloseBtn.BackgroundTransparency = 1
CloseBtn.Text = "X"
CloseBtn.TextColor3 = Color3.fromRGB(200, 50, 50)
CloseBtn.TextSize = 14
CloseBtn.Font = Enum.Font.SourceSansBold
CloseBtn.Parent = TitleBar

CloseBtn.MouseButton1Click:Connect(function()
	FOVCircle:Remove()
	ScreenGui:Destroy()
end)

-- Tab Container
local TabContainer = Instance.new("Frame")
TabContainer.Size = UDim2.new(1, 0, 0, 30)
TabContainer.Position = UDim2.new(0, 0, 0, 35)
TabContainer.BackgroundColor3 = Color3.fromRGB(25, 28, 33)
TabContainer.BorderSizePixel = 0
TabContainer.Parent = MainFrame

local TabListLayout = Instance.new("UIListLayout")
TabListLayout.FillDirection = Enum.FillDirection.Horizontal
TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabListLayout.Parent = TabContainer

-- Content Frame
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -20, 1, -75)
ContentFrame.Position = UDim2.new(0, 10, 0, 70)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainFrame

local Pages = {}

local function CreateTab(name, order)
	local TabBtn = Instance.new("TextButton")
	TabBtn.Size = UDim2.new(0.2, 0, 1, 0)
	TabBtn.BackgroundColor3 = Color3.fromRGB(25, 28, 33)
	TabBtn.BorderSizePixel = 0
	TabBtn.Text = name
	TabBtn.TextColor3 = Color3.fromRGB(150, 150, 150)
	TabBtn.Font = Enum.Font.SourceSansBold
	TabBtn.TextSize = 13
	TabBtn.LayoutOrder = order
	TabBtn.Parent = TabContainer

	local Page = Instance.new("ScrollingFrame")
	Page.Size = UDim2.new(1, 0, 1, 0)
	Page.BackgroundTransparency = 1
	Page.BorderSizePixel = 0
	Page.ScrollBarThickness = 4
	Page.Visible = (order == 1)
	Page.Parent = ContentFrame

	local PageLayout = Instance.new("UIListLayout")
	PageLayout.SortOrder = Enum.SortOrder.LayoutOrder
	PageLayout.Padding = UDim.new(0, 8)
	PageLayout.Parent = Page

	Pages[name] = {Button = TabBtn, Frame = Page}

	if order == 1 then
		TabBtn.TextColor3 = Settings.ThemeColor
	end

	TabBtn.MouseButton1Click:Connect(function()
		for _, data in pairs(Pages) do
			data.Frame.Visible = false
			data.Button.TextColor3 = Color3.fromRGB(150, 150, 150)
		end
		Page.Visible = true
		TabBtn.TextColor3 = Settings.ThemeColor
	end)

	return Page
end

local CombatPage = CreateTab("Combat", 1)
local VisualsPage = CreateTab("Visuals", 2)
local MovementPage = CreateTab("Movement", 3)
local TeleportPage = CreateTab("Teleport", 4)
local SettingsPage = CreateTab("Settings", 5)

-- Helper UI Functions
local function AddButton(parent, text, callback)
	local BtnFrame = Instance.new("Frame")
	BtnFrame.Size = UDim2.new(1, 0, 0, 36)
	BtnFrame.BackgroundColor3 = Color3.fromRGB(28, 32, 38)
	BtnFrame.BorderSizePixel = 0
	BtnFrame.Parent = parent

	local BtnCorner = Instance.new("UICorner")
	BtnCorner.CornerRadius = UDim.new(0, 4)
	BtnCorner.Parent = BtnFrame

	local Button = Instance.new("TextButton")
	Button.Size = UDim2.new(1, 0, 1, 0)
	Button.BackgroundTransparency = 1
	Button.Text = text
	Button.TextColor3 = Color3.fromRGB(220, 220, 220)
	Button.Font = Enum.Font.SourceSansSemibold
	Button.TextSize = 14
	Button.Parent = BtnFrame

	Button.MouseButton1Click:Connect(callback)
end

local function AddToggle(parent, text, defaultState, callback)
	local ToggleFrame = Instance.new("Frame")
	ToggleFrame.Size = UDim2.new(1, 0, 0, 36)
	ToggleFrame.BackgroundColor3 = Color3.fromRGB(28, 32, 38)
	ToggleFrame.BorderSizePixel = 0
	ToggleFrame.Parent = parent

	local Corner = Instance.new("UICorner")
	Corner.CornerRadius = UDim.new(0, 4)
	Corner.Parent = ToggleFrame

	local Label = Instance.new("TextLabel")
	Label.Size = UDim2.new(0.7, 0, 1, 0)
	Label.Position = UDim2.new(0, 10, 0, 0)
	Label.BackgroundTransparency = 1
	Label.Text = text
	Label.TextColor3 = Color3.fromRGB(200, 200, 200)
	Label.Font = Enum.Font.SourceSans
	Label.TextSize = 14
	Label.TextXAlignment = Enum.TextXAlignment.Left
	Label.Parent = ToggleFrame

	local Box = Instance.new("TextButton")
	Box.Size = UDim2.new(0, 20, 0, 20)
	Box.Position = UDim2.new(1, -30, 0.5, -10)
	Box.BackgroundColor3 = defaultState and Settings.ThemeColor or Color3.fromRGB(40, 44, 52)
	Box.Text = ""
	Box.Parent = ToggleFrame

	local BoxCorner = Instance.new("UICorner")
	BoxCorner.CornerRadius = UDim.new(0, 3)
	BoxCorner.Parent = Box

	local toggled = defaultState

	Box.MouseButton1Click:Connect(function()
		toggled = not toggled
		Box.BackgroundColor3 = toggled and Settings.ThemeColor or Color3.fromRGB(40, 44, 52)
		callback(toggled)
	end)
end

----------------------------------------------------
-- AIMLOCK HELPERS
----------------------------------------------------
local function GetClosestPlayer()
	local closestPlayer = nil
	local shortestDistance = Settings.FOVRadius
	local centerPosition = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)

	for _, player in ipairs(Players:GetPlayers()) do
		if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChild("Humanoid") then
			if player.Character.Humanoid.Health > 0 then
				local pos, onScreen = Camera:WorldToViewportPoint(player.Character.HumanoidRootPart.Position)
				if onScreen then
					local dist = (Vector2.new(pos.X, pos.Y) - centerPosition).Magnitude
					if dist < shortestDistance then
						shortestDistance = dist
						closestPlayer = player
					end
				end
			end
		end
	end
	return closestPlayer
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	if input.KeyCode == Enum.KeyCode.Q then
		Toggles.Aimlock = not Toggles.Aimlock
	elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
		Toggles.IsRMBPressed = true
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton2 then
		Toggles.IsRMBPressed = false
	end
end)

----------------------------------------------------
-- COMBAT TAB
----------------------------------------------------
AddToggle(CombatPage, "Aimlock (Key: Q / Hold RMB)", false, function(state)
	Toggles.Aimlock = state
end)

AddToggle(CombatPage, "Show Center FOV Circle", false, function(state)
	Toggles.ShowFOVCircle = state
	FOVCircle.Visible = state
end)

local FOVControlFrame = Instance.new("Frame")
FOVControlFrame.Size = UDim2.new(1, 0, 0, 40)
FOVControlFrame.BackgroundColor3 = Color3.fromRGB(28, 32, 38)
FOVControlFrame.Parent = CombatPage

local FOVCorner = Instance.new("UICorner")
FOVCorner.CornerRadius = UDim.new(0, 4)
FOVCorner.Parent = FOVControlFrame

local FOVLabel = Instance.new("TextLabel")
FOVLabel.Size = UDim2.new(0.5, 0, 1, 0)
FOVLabel.Position = UDim2.new(0, 10, 0, 0)
FOVLabel.BackgroundTransparency = 1
FOVLabel.Text = "FOV Radius: " .. Settings.FOVRadius
FOVLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
FOVLabel.Font = Enum.Font.SourceSansBold
FOVLabel.TextSize = 14
FOVLabel.TextXAlignment = Enum.TextXAlignment.Left
FOVLabel.Parent = FOVControlFrame

local MinusBtn = Instance.new("TextButton")
MinusBtn.Size = UDim2.new(0, 40, 0, 26)
MinusBtn.Position = UDim2.new(1, -95, 0.5, -13)
MinusBtn.BackgroundColor3 = Color3.fromRGB(45, 50, 60)
MinusBtn.Text = "-20"
MinusBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
MinusBtn.Font = Enum.Font.SourceSansBold
MinusBtn.Parent = FOVControlFrame

local PlusBtn = Instance.new("TextButton")
PlusBtn.Size = UDim2.new(0, 40, 0, 26)
PlusBtn.Position = UDim2.new(1, -45, 0.5, -13)
PlusBtn.BackgroundColor3 = Settings.ThemeColor
PlusBtn.Text = "+20"
PlusBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
PlusBtn.Font = Enum.Font.SourceSansBold
PlusBtn.Parent = FOVControlFrame

MinusBtn.MouseButton1Click:Connect(function()
	Settings.FOVRadius = math.max(10, Settings.FOVRadius - 20)
	FOVCircle.Radius = Settings.FOVRadius
	FOVLabel.Text = "FOV Radius: " .. Settings.FOVRadius
end)

PlusBtn.MouseButton1Click:Connect(function()
	Settings.FOVRadius = math.min(500, Settings.FOVRadius + 20)
	FOVCircle.Radius = Settings.FOVRadius
	FOVLabel.Text = "FOV Radius: " .. Settings.FOVRadius
end)

----------------------------------------------------
-- VISUALS TAB (2D BOX, TOP/BOTTOM TEXT, SKELETON)
----------------------------------------------------
local ESP_Storage = {}

local LimbConnections = {
	-- Head to Spine
	{"Head", "UpperTorso"},
	{"UpperTorso", "LowerTorso"},
	-- R15 Arms
	{"UpperTorso", "RightUpperArm"},
	{"RightUpperArm", "RightLowerArm"},
	{"RightLowerArm", "RightHand"},
	{"UpperTorso", "LeftUpperArm"},
	{"LeftUpperArm", "LeftLowerArm"},
	{"LeftLowerArm", "LeftHand"},
	-- R15 Legs
	{"LowerTorso", "RightUpperLeg"},
	{"RightUpperLeg", "RightLowerLeg"},
	{"RightLowerLeg", "RightFoot"},
	{"LowerTorso", "LeftUpperLeg"},
	{"LeftUpperLeg", "LeftLowerLeg"},
	{"LeftLowerLeg", "LeftFoot"},
	-- R6 Fallback Joints
	{"Torso", "Head"},
	{"Torso", "Left Arm"},
	{"Torso", "Right Arm"},
	{"Torso", "Left Leg"},
	{"Torso", "Right Leg"}
}

local function CreateDrawLine()
	local line = Drawing.new("Line")
	line.Thickness = 1.5
	line.Color = Color3.fromRGB(255, 255, 255)
	line.Visible = false
	return line
end

local function RemoveESP(player)
	if ESP_Storage[player] then
		if ESP_Storage[player].Box then ESP_Storage[player].Box:Remove() end
		if ESP_Storage[player].TopText then ESP_Storage[player].TopText:Remove() end
		if ESP_Storage[player].BottomText then ESP_Storage[player].BottomText:Remove() end
		if ESP_Storage[player].SkeletonLines then
			for _, line in ipairs(ESP_Storage[player].SkeletonLines) do
				line:Remove()
			end
		end
		ESP_Storage[player] = nil
	end
end

local function ApplyESP(player)
	if player == LocalPlayer then return end

	RemoveESP(player)

	local box = Drawing.new("Square")
	box.Thickness = 1.5
	box.Color = Settings.ThemeColor
	box.Filled = false
	box.Visible = false

	local topText = Drawing.new("Text")
	topText.Size = 13
	topText.Color = Color3.fromRGB(255, 255, 255)
	topText.Center = true
	topText.Outline = true
	topText.Visible = false

	local bottomText = Drawing.new("Text")
	bottomText.Size = 12
	bottomText.Color = Color3.fromRGB(220, 220, 220)
	bottomText.Center = true
	bottomText.Outline = true
	bottomText.Visible = false

	local skelLines = {}
	for i = 1, #LimbConnections do
		table.insert(skelLines, CreateDrawLine())
	end

	ESP_Storage[player] = {
		Box = box,
		TopText = topText,
		BottomText = bottomText,
		SkeletonLines = skelLines
	}
end

for _, player in ipairs(Players:GetPlayers()) do ApplyESP(player) end
Players.PlayerAdded:Connect(ApplyESP)
Players.PlayerRemoving:Connect(RemoveESP)

AddToggle(VisualsPage, "2D Box ESP", false, function(state)
	Toggles.ESPBox = state
end)

AddToggle(VisualsPage, "Top & Bottom Info ESP", false, function(state)
	Toggles.ESPInfo = state
end)

AddToggle(VisualsPage, "Skeleton ESP", false, function(state)
	Toggles.ESPSkeleton = state
end)

----------------------------------------------------
-- MOVEMENT TAB
----------------------------------------------------
AddToggle(MovementPage, "Super Speed (150)", false, function(state)
	Toggles.SuperSpeed = state
	if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
		LocalPlayer.Character.Humanoid.WalkSpeed = state and Settings.WalkSpeed or 16
	end
end)

AddToggle(MovementPage, "Super Jump (200)", false, function(state)
	Toggles.SuperJump = state
	if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
		LocalPlayer.Character.Humanoid.UseJumpPower = true
		LocalPlayer.Character.Humanoid.JumpPower = state and Settings.JumpPower or 50
	end
end)

AddToggle(MovementPage, "Noclip", false, function(state)
	Toggles.Noclip = state
end)

----------------------------------------------------
-- TELEPORT TAB
----------------------------------------------------
AddButton(TeleportPage, "Teleport to Best Island", function()
	local char = LocalPlayer.Character
	if not char or not char:FindFirstChild("HumanoidRootPart") then return end

	local targetPart = Workspace:FindFirstChild("BestIsland", true)
	if targetPart then
		if targetPart:IsA("Model") then
			char.HumanoidRootPart.CFrame = targetPart:GetPrimaryPartCFrame() + Vector3.new(0, 5, 0)
		elseif targetPart:IsA("BasePart") then
			char.HumanoidRootPart.CFrame = targetPart.CFrame + Vector3.new(0, 5, 0)
		end
	else
		warn("BestIsland object not found in Workspace!")
	end
end)

----------------------------------------------------
-- SETTINGS TAB
----------------------------------------------------
AddButton(SettingsPage, "Close Panel", function()
	FOVCircle:Remove()
	for player, _ in pairs(ESP_Storage) do RemoveESP(player) end
	ScreenGui:Destroy()
end)

----------------------------------------------------
-- CORE RENDER LOOP
----------------------------------------------------
RunService.RenderStepped:Connect(function()
	if Toggles.ShowFOVCircle then UpdateCirclePosition() end

	if Toggles.Aimlock or Toggles.IsRMBPressed then
		local target = GetClosestPlayer()
		if target and target.Character and target.Character:FindFirstChild("Head") then
			Camera.CFrame = CFrame.new(Camera.CFrame.Position, target.Character.Head.Position)
		end
	end

	if Toggles.Noclip and LocalPlayer.Character then
		for _, part in ipairs(LocalPlayer.Character:GetDescendants()) do
			if part:IsA("BasePart") and part.CanCollide then
				part.CanCollide = false
			end
		end
	end

	-- Render 2D ESP & Skeleton
	local myChar = LocalPlayer.Character
	local myHrp = myChar and myChar:FindFirstChild("HumanoidRootPart")

	for player, esp in pairs(ESP_Storage) do
		local char = player.Character
		local hrp = char and char:FindFirstChild("HumanoidRootPart")
		local hum = char and char:FindFirstChild("Humanoid")

		if char and hrp and hum and hum.Health > 0 then
			local hrpPos, onScreen = Camera:WorldToViewportPoint(hrp.Position)

			if onScreen then
				-- Calculate 2D Box Dimensions
				local head = char:FindFirstChild("Head")
				local headPos = head and Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0)) or Vector3.new(hrpPos.X, hrpPos.Y - 30, 0)
				local legPos = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0))

				local height = math.abs(headPos.Y - legPos.Y)
				local width = height * 0.65
				local boxPos = Vector2.new(hrpPos.X - width / 2, headPos.Y)

				-- 2D Box ESP
				if Toggles.ESPBox then
					esp.Box.Size = Vector2.new(width, height)
					esp.Box.Position = boxPos
					esp.Box.Visible = true
				else
					esp.Box.Visible = false
				end

				-- Top & Bottom Info ESP
				if Toggles.ESPInfo then
					-- Top Text (Name)
					esp.TopText.Position = Vector2.new(hrpPos.X, boxPos.Y - 16)
					esp.TopText.Text = player.Name
					esp.TopText.Visible = true

					-- Bottom Text (HP, Distance, Item)
					local dist = myHrp and math.floor((myHrp.Position - hrp.Position).Magnitude) or 0
					local tool = char:FindFirstChildOfClass("Tool")
					local toolName = tool and tool.Name or "None"

					esp.BottomText.Position = Vector2.new(hrpPos.X, boxPos.Y + height + 4)
					esp.BottomText.Text = string.format("[%d HP] | [%dm] | %s", math.floor(hum.Health), dist, toolName)
					esp.BottomText.Visible = true
				else
					esp.TopText.Visible = false
					esp.BottomText.Visible = false
				end

				-- Skeleton ESP
				if Toggles.ESPSkeleton then
					for i, pair in ipairs(LimbConnections) do
						local partA = char:FindFirstChild(pair[1])
						local partB = char:FindFirstChild(pair[2])
						local line = esp.SkeletonLines[i]

						if partA and partB and line then
							local posA, visA = Camera:WorldToViewportPoint(partA.Position)
							local posB, visB = Camera:WorldToViewportPoint(partB.Position)

							if visA and visB then
								line.From = Vector2.new(posA.X, posA.Y)
								line.To = Vector2.new(posB.X, posB.Y)
								line.Visible = true
							else
								line.Visible = false
							end
						elseif line then
							line.Visible = false
						end
					end
				else
					for _, line in ipairs(esp.SkeletonLines) do line.Visible = false end
				end
			else
				-- Hide ESP when off-screen
				esp.Box.Visible = false
				esp.TopText.Visible = false
				esp.BottomText.Visible = false
				for _, line in ipairs(esp.SkeletonLines) do line.Visible = false end
			end
		else
			-- Hide ESP when dead or missing parts
			esp.Box.Visible = false
			esp.TopText.Visible = false
			esp.BottomText.Visible = false
			for _, line in ipairs(esp.SkeletonLines) do line.Visible = false end
		end
	end
end)

LocalPlayer.CharacterAdded:Connect(function(char)
	local hum = char:WaitForChild("Humanoid")
	if Toggles.SuperSpeed then hum.WalkSpeed = Settings.WalkSpeed end
	if Toggles.SuperJump then 
		hum.UseJumpPower = true
		hum.JumpPower = Settings.JumpPower 
	end
end)

Advertisements

Comments

0

Did it work for you? Sign in to share your experience.

Sign in to comment

No comments yet

Tried it? Let others know if it works.