TouchLine script
Key Required

TouchLine script

TOUCHLINEraidenchillraidenchill 2.9K views 11.2K executesUpdated Jul 19, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•612 lines (18793 chars)
--[[
	âš¡ RAI HUB | PHANTOM EDITION (UNIVERSAL COMPATIBILITY)
	Premium Minimalist Dark UI & Tactically Optimized
	Key System Integrated [0]
	Toggle Menu: [RIGHT SHIFT] or [RAI BUTTON]
]]

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

local player = Players.LocalPlayer
local workspace = game:GetService("Workspace")

local CORRECT_KEY = "2011"
local TOGGLE_KEY = Enum.KeyCode.RightShift
local BALL_NAME = "Ball"  
local DEFAULT_SIZE = 1
local MAX_SIZE = 10
local MIN_SIZE = 0.5

local enabled = false
local allowCollision = true 
local currentSize = DEFAULT_SIZE
local guiVisible = true
local keyUnlocked = false 
local trackedBalls = {} 

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "RAIHUB_PHANTOM_UNIVERSAL"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = player:WaitForChild("PlayerGui")

local loopConnection

-- ==========================================
-- THEME COLOR PALETTE (PHANTOM RED/DARK)
-- ==========================================
local BG_MAIN = Color3.fromRGB(10, 10, 13)
local BG_SECONDARY = Color3.fromRGB(18, 18, 24)
local ACCENT_COLOR = Color3.fromRGB(255, 46, 82) -- Neon Crimson
local TEXT_PRIMARY = Color3.fromRGB(245, 245, 250)
local TEXT_MUTED = Color3.fromRGB(100, 105, 120)
local BORDER_COLOR = Color3.fromRGB(28, 29, 36)

-- ==========================================
-- SMOOTH TWEEN HELPER
-- ==========================================
local function tween(object, info, property)
	TweenService:Create(object, TweenInfo.new(info, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), property):Play()
end

-- ==========================================
-- UNIVERSAL DRAG FUNCTION (PC & MOBILE)
-- ==========================================
local function makeDraggable(frame)
	local dragging, dragInput, dragStart, startPos
	
	local function update(input)
		local delta = input.Position - dragStart
		frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
	
	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = frame.Position
			
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)
	
	frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)
	
	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			update(input)
		end
	end)
end

-- ==========================================
-- FIXED FLOATING MOBILE TOGGLE BUTTON
-- ==========================================
local mobileToggleBtn = Instance.new("TextButton")
mobileToggleBtn.Name = "MobileToggleBtn"
mobileToggleBtn.Size = UDim2.new(0, 75, 0, 40) -- Adjusted dimensions to safely contain string layout
mobileToggleBtn.Position = UDim2.new(0, 20, 0, 20)
mobileToggleBtn.BackgroundColor3 = BG_MAIN
mobileToggleBtn.Text = "RAI"
mobileToggleBtn.TextColor3 = ACCENT_COLOR
mobileToggleBtn.TextSize = 13
mobileToggleBtn.Font = Enum.Font.GothamBold
mobileToggleBtn.Visible = false
mobileToggleBtn.Active = true
mobileToggleBtn.Parent = screenGui

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

local mobileToggleStroke = Instance.new("UIStroke")
mobileToggleStroke.Color = ACCENT_COLOR
mobileToggleStroke.Thickness = 1.5
mobileToggleStroke.Parent = mobileToggleBtn

makeDraggable(mobileToggleBtn)

-- ==========================================
-- MAIN INTERFACE FRAME (ENLARGED WINDOW)
-- ==========================================
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 380, 0, 320)
mainFrame.Position = UDim2.new(0.5, -190, 0.5, -160)
mainFrame.BackgroundColor3 = BG_MAIN
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Visible = false
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = mainFrame

local stroke = Instance.new("UIStroke")
stroke.Color = BORDER_COLOR
stroke.Thickness = 1
stroke.Parent = mainFrame

makeDraggable(mainFrame)

-- Top Accent Bar
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 3)
topBar.Position = UDim2.new(0, 0, 0, 0)
topBar.BackgroundColor3 = ACCENT_COLOR
topBar.BorderSizePixel = 0
topBar.Parent = mainFrame
Instance.new("UICorner", topBar).CornerRadius = UDim.new(0, 8)

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -24, 0, 50)
title.Position = UDim2.new(0, 16, 0, 3)
title.BackgroundTransparency = 1
title.Text = "HITBOX EXPANDER // DASHBOARD"
title.TextColor3 = TEXT_PRIMARY
title.TextSize = 14
title.Font = Enum.Font.Code
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = mainFrame

local infoLabel = Instance.new("TextLabel")
infoLabel.Size = UDim2.new(1, -24, 0, 50)
infoLabel.Position = UDim2.new(0, 0, 0, 0)
infoLabel.BackgroundTransparency = 1
infoLabel.Text = "[R-SHIFT]"
infoLabel.TextColor3 = TEXT_MUTED
infoLabel.TextSize = 11
infoLabel.Font = Enum.Font.Code
infoLabel.TextXAlignment = Enum.TextXAlignment.Right
infoLabel.Parent = title

local container = Instance.new("Frame")
container.Size = UDim2.new(1, -32, 1, -70)
container.Position = UDim2.new(0, 16, 0, 55)
container.BackgroundTransparency = 1
container.Parent = mainFrame

local toggleBtn = Instance.new("TextButton")
toggleBtn.Name = "ToggleBtn"
toggleBtn.Size = UDim2.new(0.48, 0, 0, 42)
toggleBtn.Position = UDim2.new(0, 0, 0, 5)
toggleBtn.BackgroundColor3 = BG_SECONDARY
toggleBtn.Text = "INITIALIZE"
toggleBtn.TextColor3 = TEXT_MUTED
toggleBtn.TextSize = 11
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.Parent = container

local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 4)
toggleCorner.Parent = toggleBtn

local toggleStroke = Instance.new("UIStroke")
toggleStroke.Color = BORDER_COLOR
toggleStroke.Thickness = 1
toggleStroke.Parent = toggleBtn

local colBtn = Instance.new("TextButton")
colBtn.Name = "ColBtn"
colBtn.Size = UDim2.new(0.48, 0, 0, 42)
colBtn.Position = UDim2.new(0.52, 0, 0, 5)
colBtn.BackgroundColor3 = BG_SECONDARY
colBtn.Text = "COLLISION: ON"
colBtn.TextColor3 = ACCENT_COLOR
colBtn.TextSize = 11
colBtn.Font = Enum.Font.GothamBold
colBtn.Parent = container

local colCorner = Instance.new("UICorner")
colCorner.CornerRadius = UDim.new(0, 4)
colCorner.Parent = colBtn

local colStroke = Instance.new("UIStroke")
colStroke.Color = ACCENT_COLOR
colStroke.Thickness = 1
colStroke.Parent = colBtn

local sliderContainer = Instance.new("Frame")
sliderContainer.Size = UDim2.new(1, 0, 0, 65)
sliderContainer.Position = UDim2.new(0, 0, 0, 65)
sliderContainer.BackgroundTransparency = 1
sliderContainer.Parent = container

local sliderLabel = Instance.new("TextLabel")
sliderLabel.Size = UDim2.new(1, 0, 0, 20)
sliderLabel.Position = UDim2.new(0, 0, 0, 5)
sliderLabel.BackgroundTransparency = 1
sliderLabel.Text = "TARGET MULTIPLIER: " .. string.format("%.1f", currentSize) .. "X"
sliderLabel.TextColor3 = TEXT_PRIMARY
sliderLabel.TextSize = 11
sliderLabel.Font = Enum.Font.Code
sliderLabel.TextXAlignment = Enum.TextXAlignment.Left
sliderLabel.Parent = sliderContainer

local sliderBg = Instance.new("Frame")
sliderBg.Name = "SliderBg"
sliderBg.Size = UDim2.new(1, 0, 0, 4)
sliderBg.Position = UDim2.new(0, 0, 0, 40)
sliderBg.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
sliderBg.BorderSizePixel = 0
sliderBg.Parent = sliderContainer

local sliderBgCorner = Instance.new("UICorner")
sliderBgCorner.CornerRadius = UDim.new(0, 2)
sliderBgCorner.Parent = sliderBg

local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new((currentSize - MIN_SIZE) / (MAX_SIZE - MIN_SIZE), 0, 1, 0)
sliderFill.BackgroundColor3 = ACCENT_COLOR
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderBg

local sliderFillCorner = Instance.new("UICorner")
sliderFillCorner.CornerRadius = UDim.new(0, 2)
sliderFillCorner.Parent = sliderFill

local knob = Instance.new("Frame")
knob.Size = UDim2.new(0, 12, 0, 12)
knob.Position = UDim2.new((currentSize - MIN_SIZE) / (MAX_SIZE - MIN_SIZE), -6, 0.5, -6)
knob.BackgroundColor3 = TEXT_PRIMARY
knob.Parent = sliderBg

local knobCorner = Instance.new("UICorner")
knobCorner.CornerRadius = UDim.new(1, 0)
knobCorner.Parent = knob

local killBtn = Instance.new("TextButton")
killBtn.Name = "KillBtn"
killBtn.Size = UDim2.new(1, 0, 0, 42)
killBtn.Position = UDim2.new(0, 0, 0, 150)
killBtn.BackgroundColor3 = Color3.fromRGB(22, 12, 15)
killBtn.Text = "TERMINATE OPERATIONS"
killBtn.TextColor3 = Color3.fromRGB(255, 60, 80)
killBtn.TextSize = 11
killBtn.Font = Enum.Font.GothamBold
killBtn.Parent = container

local killCorner = Instance.new("UICorner")
killCorner.CornerRadius = UDim.new(0, 4)
killCorner.Parent = killBtn

local killStroke = Instance.new("UIStroke")
killStroke.Color = Color3.fromRGB(70, 20, 30)
killStroke.Thickness = 1
killStroke.Parent = killBtn

local creditsLabel = Instance.new("TextLabel")
creditsLabel.Size = UDim2.new(1, 0, 0, 20)
creditsLabel.Position = UDim2.new(0, 0, 1, -5)
creditsLabel.BackgroundTransparency = 1
creditsLabel.Text = "SYSTEMS BY RAIDEN // BUILD 2.5"
creditsLabel.TextColor3 = Color3.fromRGB(50, 52, 65)
creditsLabel.TextSize = 10
creditsLabel.Font = Enum.Font.Code
creditsLabel.TextXAlignment = Enum.TextXAlignment.Left
creditsLabel.Parent = container

-- ==========================================
-- KEY GATE INTERFACE SYSTEM (ENLARGED WINDOW)
-- ==========================================
local keyFrame = Instance.new("Frame")
keyFrame.Name = "KeyFrame"
keyFrame.Size = UDim2.new(0, 340, 0, 200)
keyFrame.Position = UDim2.new(0.5, -170, 0.5, -100)
keyFrame.BackgroundColor3 = BG_MAIN
keyFrame.BorderSizePixel = 0
keyFrame.Active = true
keyFrame.Parent = screenGui

local keyCorner = Instance.new("UICorner")
keyCorner.CornerRadius = UDim.new(0, 8)
keyCorner.Parent = keyFrame

local keyStroke = Instance.new("UIStroke")
keyStroke.Color = BORDER_COLOR
keyStroke.Thickness = 1
keyStroke.Parent = keyFrame

makeDraggable(keyFrame)

local keyTopBar = Instance.new("Frame")
keyTopBar.Size = UDim2.new(1, 0, 0, 3)
keyTopBar.Position = UDim2.new(0, 0, 0, 0)
keyTopBar.BackgroundColor3 = ACCENT_COLOR
keyTopBar.BorderSizePixel = 0
keyTopBar.Parent = keyFrame
Instance.new("UICorner", keyTopBar).CornerRadius = UDim.new(0, 8)

local keyTitle = Instance.new("TextLabel")
keyTitle.Size = UDim2.new(1, -24, 0, 50)
keyTitle.Position = UDim2.new(0, 16, 0, 3)
keyTitle.BackgroundTransparency = 1
keyTitle.Text = "RAI HUB // SECURE GATEWAY"
keyTitle.TextColor3 = TEXT_PRIMARY
keyTitle.TextSize = 13
keyTitle.Font = Enum.Font.Code
keyTitle.TextXAlignment = Enum.TextXAlignment.Left
keyTitle.Parent = keyFrame

local noticeBox = Instance.new("TextBox")
noticeBox.Name = "NoticeBox"
noticeBox.Size = UDim2.new(1, -32, 0, 28)
noticeBox.Position = UDim2.new(0, 16, 0, 53)
noticeBox.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
noticeBox.BorderSizePixel = 0
noticeBox.ClearTextOnFocus = false
noticeBox.Text = "FIND SECURITY KEY IN COMMUNITY PLATFORM"
noticeBox.TextColor3 = Color3.fromRGB(130, 135, 150)
noticeBox.TextSize = 10
noticeBox.Font = Enum.Font.Code
noticeBox.TextEditable = false
noticeBox.Parent = keyFrame

local noticeCorner = Instance.new("UICorner")
noticeCorner.CornerRadius = UDim.new(0, 4)
noticeCorner.Parent = noticeBox

local noticeStroke = Instance.new("UIStroke")
noticeStroke.Color = Color3.fromRGB(25, 26, 33)
noticeStroke.Thickness = 1
noticeStroke.Parent = noticeBox

local keyInput = Instance.new("TextBox")
keyInput.Name = "KeyInput"
keyInput.Size = UDim2.new(1, -32, 0, 42)
keyInput.Position = UDim2.new(0, 16, 0, 93)
keyInput.BackgroundColor3 = BG_SECONDARY
keyInput.BorderSizePixel = 0
keyInput.ClearTextOnFocus = true
keyInput.Text = ""
keyInput.PlaceholderText = "ENTER ACCESS CREDENTIAL..."
keyInput.PlaceholderColor3 = TEXT_MUTED
keyInput.TextColor3 = TEXT_PRIMARY
keyInput.TextSize = 11
keyInput.Font = Enum.Font.Code
keyInput.Parent = keyFrame

local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 4)
inputCorner.Parent = keyInput

local inputStroke = Instance.new("UIStroke")
inputStroke.Color = BORDER_COLOR
inputStroke.Thickness = 1
inputStroke.Parent = keyInput

local submitBtn = Instance.new("TextButton")
submitBtn.Name = "SubmitBtn"
submitBtn.Size = UDim2.new(1, -32, 0, 42)
submitBtn.Position = UDim2.new(0, 16, 0, 145)
submitBtn.BackgroundColor3 = BG_SECONDARY
submitBtn.Text = "EXECUTE AUTHENTICATION"
submitBtn.TextColor3 = ACCENT_COLOR
submitBtn.TextSize = 11
submitBtn.Font = Enum.Font.GothamBold
submitBtn.Parent = keyFrame

local submitCorner = Instance.new("UICorner")
submitCorner.CornerRadius = UDim.new(0, 4)
submitCorner.Parent = submitBtn

local submitStroke = Instance.new("UIStroke")
submitStroke.Color = ACCENT_COLOR
submitStroke.Thickness = 1
submitStroke.Parent = submitBtn

-- ==========================================
-- HOVER EFFECT ANIMATIONS
-- ==========================================
local function applyHoverEffects(button, strokeObj, normalColor, hoverColor)
	button.MouseEnter:Connect(function()
		tween(button, 0.2, {BackgroundColor3 = Color3.fromRGB(24, 25, 32)})
		if strokeObj then tween(strokeObj, 0.2, {Color = hoverColor}) end
	end)
	button.MouseLeave:Connect(function()
		tween(button, 0.2, {BG_SECONDARY})
		if strokeObj then tween(strokeObj, 0.2, {Color = normalColor}) end
	end)
end

applyHoverEffects(submitBtn, submitStroke, ACCENT_COLOR, Color3.fromRGB(255, 100, 120))
applyHoverEffects(colBtn, colStroke, ACCENT_COLOR, Color3.fromRGB(255, 100, 120))

-- ==========================================
-- FUNCTIONAL CORE
-- ==========================================
local function addBall(part)
	if part:IsA("BasePart") and not trackedBalls[part] then
		trackedBalls[part] = {
			Size = part.Size,
			CanCollide = part.CanCollide
		}
		
		part.AncestryChanged:Connect(function()
			if part.Parent == nil then
				trackedBalls[part] = nil
			end
		end)
	end
end

workspace.DescendantAdded:Connect(function(descendant)
	if descendant.Name == BALL_NAME then
		addBall(descendant)
	end
end)

for _, descendant in pairs(workspace:GetDescendants()) do
	if descendant.Name == BALL_NAME then
		addBall(descendant)
	end
end

local function updateCollisionUI()
	if allowCollision then
		colBtn.Text = "COLLISION: ON"
		colBtn.TextColor3 = ACCENT_COLOR
		colStroke.Color = ACCENT_COLOR
	else
		colBtn.Text = "COLLISION: OFF"
		colBtn.TextColor3 = TEXT_MUTED
		colStroke.Color = BORDER_COLOR
	end
end

loopConnection = RunService.Heartbeat:Connect(function()
	if not enabled then return end
	
	for part, originalProps in pairs(trackedBalls) do
		if part and part.Parent then
			local newSize = Vector3.new(
				originalProps.Size.X * currentSize,
				originalProps.Size.Y * currentSize,
				originalProps.Size.Z * currentSize
			)
			
			if part.Size ~= newSize then
				part.Size = newSize
			end
			
			if allowCollision then
				if part.CanCollide ~= true then
					part.CanCollide = true
				end
			else
				if part.CanCollide ~= originalProps.CanCollide then
					part.CanCollide = originalProps.CanCollide
				end
			end
		end
	end
end)

toggleBtn.MouseButton1Click:Connect(function()
	enabled = not enabled
	if enabled then
		toggleBtn.Text = "ACTIVE OPERATIONAL"
		toggleBtn.TextColor3 = Color3.fromRGB(0, 255, 140)
		toggleStroke.Color = Color3.fromRGB(0, 255, 140)
	else
		toggleBtn.Text = "INITIALIZE"
		toggleBtn.TextColor3 = TEXT_MUTED
		toggleStroke.Color = BORDER_COLOR
		
		for part, originalProps in pairs(trackedBalls) do
			if part and part.Parent then
				part.Size = originalProps.Size
				part.CanCollide = originalProps.CanCollide
			end
		end
	end
end)

colBtn.MouseButton1Click:Connect(function()
	allowCollision = not allowCollision
	updateCollisionUI()
end)

-- Universal Slider Input Logic
local dragging = false

local function updateSlider(input)
	local mouseX = input.Position.X
	local sliderAbsPos = sliderBg.AbsolutePosition.X
	local sliderAbsSize = sliderBg.AbsoluteSize.X
	local percent = math.clamp((mouseX - sliderAbsPos) / sliderAbsSize, 0, 1)
	
	currentSize = MIN_SIZE + percent * (MAX_SIZE - MIN_SIZE)
	sliderFill.Size = UDim2.new(percent, 0, 1, 0)
	knob.Position = UDim2.new(percent, -6, 0.5, -6)
	sliderLabel.Text = "TARGET MULTIPLIER: " .. string.format("%.1f", currentSize) .. "X"
end

sliderBg.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		updateSlider(input)
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = false
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
		updateSlider(input)
	end
end)

local function toggleGui()
	if not keyUnlocked then return end
	guiVisible = not guiVisible
	mainFrame.Visible = guiVisible
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	if input.KeyCode == TOGGLE_KEY then
		toggleGui()
	end
end)

mobileToggleBtn.MouseButton1Click:Connect(function()
	toggleGui()
end)

-- Verification Handle
submitBtn.MouseButton1Click:Connect(function()
	if keyInput.Text == CORRECT_KEY then
		keyUnlocked = true
		keyFrame:Destroy()
		mainFrame.Visible = true
		mobileToggleBtn.Visible = true
	else
		keyInput.Text = ""
		keyInput.PlaceholderText = "CRITICAL: INVALID KEY SEQUENCE"
		keyInput.PlaceholderColor3 = Color3.fromRGB(255, 50, 50)
		inputStroke.Color = Color3.fromRGB(255, 50, 50)
		
		task.delay(2, function()
			if keyInput and keyInput.Parent then
				keyInput.PlaceholderText = "ENTER ACCESS CREDENTIAL..."
				keyInput.PlaceholderColor3 = TEXT_MUTED
				inputStroke.Color = BORDER_COLOR
			end
		end)
	end
end)

-- Clean Terminal Shutdown
killBtn.MouseButton1Click:Connect(function()
	enabled = false
	if loopConnection then
		loopConnection:Disconnect()
	end
	
	for part, originalProps in pairs(trackedBalls) do
		if part and part.Parent then
			part.Size = originalProps.Size
			part.CanCollide = originalProps.CanCollide
		end
	end
	
	trackedBalls = nil
	screenGui:Destroy()
end)

Features & Information

https://discord.gg/AWS9QxsMU EXTENDS BALL HITBOX CREATES A BIGGER COLIOSION CAN DISSABLE IT ALSO

Community Comments (2)

shlxshlxAug 18, 2026

Nga just stealed my script 🤣

Replying to @shlx
radengaming695radengaming695Aug 31, 2026

@e8y3 no i aint i made this

More Scripts for TOUCHLINE