Thanh Script V2
Key RequiredUniversal

Thanh Script V2

Universal Scriptc00lkiddHeHec00lkiddHeHe 245 views 326 executesUpdated Feb 21, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•259 lines (7491 chars)
-- 🔥 Thạnh Script V2 | TikTok: phuoc.thanh1409

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

local Player = Players.LocalPlayer
local Character, Humanoid, HRP

-- ========= STATES =========
Invisible = false
InfiniteJump = false
Flying = false
FlySpeed = 50
NoClip = false
BodyVelocity = nil
BodyGyro = nil

_G.WalkSpeed = 16
_G.JumpPower = 50
_G.ForceJump = true -- 🔥 FIX JUMP FULL

-- ========= LOAD CHARACTER =========
local originalTransparency = {}

local function LoadCharacter(char)
	Character = char
	Humanoid = char:WaitForChild("Humanoid")
	HRP = char:WaitForChild("HumanoidRootPart")

	-- 🔥 FIX JUMP FULL
	Humanoid.UseJumpPower = true
	Humanoid.WalkSpeed = _G.WalkSpeed
	Humanoid.JumpPower = _G.JumpPower

	originalTransparency = {}
	for _,v in pairs(Character:GetDescendants()) do
		if v:IsA("BasePart") or v:IsA("Decal") then
			originalTransparency[v] = v.Transparency
		end
	end

	Humanoid.Died:Connect(function()
		Flying = false
		if BodyVelocity then BodyVelocity:Destroy() end
		if BodyGyro then BodyGyro:Destroy() end
	end)
end

LoadCharacter(Player.Character or Player.CharacterAdded:Wait())
Player.CharacterAdded:Connect(LoadCharacter)

-- ========= GUI =========
local ScreenGui = Instance.new("ScreenGui", Player.PlayerGui)
ScreenGui.Name = "ThanhScriptV2"
ScreenGui.ResetOnSpawn = false

local Main = Instance.new("Frame", ScreenGui)
Main.Size = UDim2.new(0,300,0,520)
Main.Position = UDim2.new(0.05,0,0.15,0)
Main.BackgroundColor3 = Color3.fromRGB(30,30,30)
Main.Active = true
Main.Draggable = true
Instance.new("UICorner", Main)

-- ========= SOUND =========
local ClickSound = Instance.new("Sound", Main)
ClickSound.SoundId = "rbxassetid://12221967"
ClickSound.Volume = 0.8
local function PlayClick() ClickSound:Play() end

-- ========= LOGO =========
local LogoBtn = Instance.new("ImageButton", ScreenGui)
LogoBtn.Size = UDim2.new(0,60,0,60)
LogoBtn.Position = UDim2.new(0.02,0,0.45,0)
LogoBtn.BackgroundColor3 = Color3.fromRGB(0,170,255)
LogoBtn.Active = true
LogoBtn.Draggable = true
Instance.new("UICorner", LogoBtn).CornerRadius = UDim.new(1,0)
LogoBtn.Image = "rbxassetid://8408806744"

LogoBtn.MouseButton1Click:Connect(function()
	PlayClick()
	Main.Visible = not Main.Visible
end)

-- ========= TITLE =========
local Title = Instance.new("TextLabel", Main)
Title.Size = UDim2.new(1,0,0,40)
Title.BackgroundTransparency = 1
Title.Text = "🔥 Thạnh Script V2 🔥"
Title.TextColor3 = Color3.fromRGB(0,255,255)
Title.Font = Enum.Font.GothamBold
Title.TextScaled = true

local Credit = Instance.new("TextLabel", Main)
Credit.Position = UDim2.new(0,0,0,35)
Credit.Size = UDim2.new(1,0,0,25)
Credit.BackgroundTransparency = 1
Credit.Text = "TikTok: phuoc.thanh1409"
Credit.TextColor3 = Color3.fromRGB(200,200,200)
Credit.TextScaled = true

-- ========= BUTTON =========
local function CreateButton(text, y)
	local b = Instance.new("TextButton", Main)
	b.Size = UDim2.new(0.9,0,0,35)
	b.Position = UDim2.new(0.05,0,0,y)
	b.Text = text
	b.BackgroundColor3 = Color3.fromRGB(50,50,50)
	b.TextColor3 = Color3.new(1,1,1)
	b.Font = Enum.Font.GothamBold
	b.TextScaled = true
	Instance.new("UICorner", b)
	b.MouseButton1Click:Connect(PlayClick)
	return b
end

-- ========= SLIDER =========
local function CreateSlider(titleText, y, min, max, default, callback)
	local T = Instance.new("TextLabel", Main)
	T.Position = UDim2.new(0.05,0,0,y)
	T.Size = UDim2.new(0.9,0,0,22)
	T.BackgroundTransparency = 1
	T.Text = titleText..": "..default
	T.TextColor3 = Color3.new(1,1,1)
	T.Font = Enum.Font.GothamBold
	T.TextScaled = true

	local Bar = Instance.new("Frame", Main)
	Bar.Position = UDim2.new(0.05,0,0,y+25)
	Bar.Size = UDim2.new(0.9,0,0,10)
	Bar.BackgroundColor3 = Color3.fromRGB(60,60,60)
	Instance.new("UICorner", Bar)

	local Fill = Instance.new("Frame", Bar)
	Fill.Size = UDim2.new((default-min)/(max-min),0,1,0)
	Fill.BackgroundColor3 = Color3.fromRGB(0,200,255)
	Instance.new("UICorner", Fill)

	local dragging = false

	Bar.InputBegan:Connect(function(i)
		if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			PlayClick()
		end
	end)

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

	RunService.RenderStepped:Connect(function()
		if dragging then
			local pos = math.clamp((UIS:GetMouseLocation().X - Bar.AbsolutePosition.X)/Bar.AbsoluteSize.X,0,1)
			Fill.Size = UDim2.new(pos,0,1,0)
			local value = math.floor(min + (max-min)*pos)
			T.Text = titleText..": "..value
			callback(value)
		end
	end)
end

-- ========= SLIDERS =========
CreateSlider("🏃 WalkSpeed", 80, 10, 150, 16, function(v)
	_G.WalkSpeed = v
	if Humanoid then Humanoid.WalkSpeed = v end
end)

-- 🔥 JUMP FULL SLIDER (ĐÃ FIX)
CreateSlider("🦘 JumpPower", 135, 20, 300, 50, function(v)
	_G.JumpPower = v
	if Humanoid then
		Humanoid.UseJumpPower = true
		Humanoid.JumpPower = v
	end
end)

-- ========= BUTTONS =========
local FlyBtn     = CreateButton("🕊️ Bay: OFF", 190)
local SpeedUp    = CreateButton("➕ Tốc độ bay +", 235)
local SpeedDown  = CreateButton("➖ Tốc độ bay -", 280)
local InfJumpBtn = CreateButton("🦘 Infinite Jump: OFF", 325)
local InvisBtn   = CreateButton("👻 Tàng hình: OFF", 370)
local NoclipBtn  = CreateButton("🚪 Xuyên tường: OFF", 415)

-- ========= INFINITE JUMP =========
InfJumpBtn.MouseButton1Click:Connect(function()
	InfiniteJump = not InfiniteJump
	InfJumpBtn.Text = "🦘 Infinite Jump: "..(InfiniteJump and "ON" or "OFF")
end)

UIS.JumpRequest:Connect(function()
	if InfiniteJump and Humanoid then
		Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end)

-- ========= FLY =========
FlyBtn.MouseButton1Click:Connect(function()
	Flying = not Flying
	if Flying and HRP then
		BodyVelocity = Instance.new("BodyVelocity", HRP)
		BodyVelocity.MaxForce = Vector3.new(9e9,9e9,9e9)
		BodyGyro = Instance.new("BodyGyro", HRP)
		BodyGyro.MaxTorque = Vector3.new(9e9,9e9,9e9)
	else
		if BodyVelocity then BodyVelocity:Destroy() end
		if BodyGyro then BodyGyro:Destroy() end
	end
	FlyBtn.Text = "🕊️ Bay: "..(Flying and "ON" or "OFF")
end)

RunService.RenderStepped:Connect(function()
	if Flying and BodyVelocity and BodyGyro then
		local cam = workspace.CurrentCamera
		BodyVelocity.Velocity = cam.CFrame.LookVector * FlySpeed
		BodyGyro.CFrame = cam.CFrame
	end
end)

SpeedUp.MouseButton1Click:Connect(function() FlySpeed += 10 end)
SpeedDown.MouseButton1Click:Connect(function() FlySpeed = math.max(10, FlySpeed-10) end)

-- ========= INVISIBLE =========
InvisBtn.MouseButton1Click:Connect(function()
	Invisible = not Invisible
	for v,t in pairs(originalTransparency) do
		if v then v.Transparency = Invisible and 1 or t end
	end
	InvisBtn.Text = "👻 Tàng hình: "..(Invisible and "ON" or "OFF")
end)

-- ========= NOCLIP =========
NoclipBtn.MouseButton1Click:Connect(function()
	NoClip = not NoClip
	NoclipBtn.Text = "🚪 Xuyên tường: "..(NoClip and "ON" or "OFF")
end)

-- ========= FORCE JUMP + NOCLIP LOOP =========
RunService.Stepped:Connect(function()
	if Humanoid and _G.ForceJump then
		Humanoid.UseJumpPower = true
		if Humanoid.JumpPower ~= _G.JumpPower then
			Humanoid.JumpPower = _G.JumpPower
		end
	end

	if Character then
		for _,v in pairs(Character:GetChildren()) do
			if v:IsA("BasePart") then
				v.CanCollide = not NoClip
			end
		end
	end
end)

Features & Information

TS V2 by Hellokaymy.
#Script#Roblox#TS

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts