Gravity coil + speed coil
Key RequiredUniversal

Gravity coil + speed coil

Universal ScriptBleeldudeBleeldude 1K views 11.6K executesUpdated Sep 28, 2026
Unrated
00
Lua Script•468 lines (10065 chars)
-- Script em ServerScriptService
-- Classic Speed Coil + Gravity Coil
-- Startup message added

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

-- Configurações
local SPEED_COIL_SPEED = 32
local GRAVITY_REDUCTION = 0.75

-- Assets clássicos
local MESH_ID = "rbxassetid://16606212"

-- Texturas do mesh
local SPEED_MESH_TEXTURE = "rbxassetid://99170547"
local GRAVITY_MESH_TEXTURE = "rbxassetid://16606141"

-- Ícones do inventário
local SPEED_ICON = "rbxassetid://99170415"
local GRAVITY_ICON = "rbxassetid://16619617"

local SPEED_SOUND = "rbxassetid://99173388"
local GRAVITY_SOUND = "rbxassetid://16619553"

-- ===================== STARTUP MESSAGE =====================

local function createStartupMessage(player)
	local playerGui = player:WaitForChild("PlayerGui")

	-- Prevent duplicates
	if playerGui:FindFirstChild("ZoewarStartup") then
		return
	end

	local gui = Instance.new("ScreenGui")
	gui.Name = "ZoewarStartup"
	gui.ResetOnSpawn = false
	gui.IgnoreGuiInset = true
	gui.DisplayOrder = 999
	gui.Parent = playerGui

	local background = Instance.new("Frame")
	background.Name = "Background"
	background.AnchorPoint = Vector2.new(0.5, 0.5)
	background.Position = UDim2.fromScale(0.5, 0.5)
	background.Size = UDim2.fromOffset(270, 90)
	background.BackgroundColor3 = Color3.fromRGB(10, 15, 25)
	background.BackgroundTransparency = 0.35
	background.BorderSizePixel = 0
	background.Parent = gui

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 14)
	corner.Parent = background

	-- Frosted glass effect
	local blur = Instance.new("BlurEffect")
	blur.Name = "MessageBlur"
	blur.Size = 0
	blur.Parent = game:GetService("Lighting")

	local title = Instance.new("TextLabel")
	title.Name = "Title"
	title.BackgroundTransparency = 1
	title.AnchorPoint = Vector2.new(0.5, 0.5)
	title.Position = UDim2.fromScale(0.5, 0.38)
	title.Size = UDim2.new(1, -20, 0, 28)
	title.Font = Enum.Font.GothamBold
	title.Text = "Made by _Zoewar_"
	title.TextColor3 = Color3.fromRGB(60, 160, 255)
	title.TextSize = 20
	title.TextTransparency = 1
	title.Parent = background

	local subtitle = Instance.new("TextLabel")
	subtitle.Name = "Subtitle"
	subtitle.BackgroundTransparency = 1
	subtitle.AnchorPoint = Vector2.new(0.5, 0.5)
	subtitle.Position = UDim2.fromScale(0.5, 0.68)
	subtitle.Size = UDim2.new(1, -20, 0, 22)
	subtitle.Font = Enum.Font.Gotham
	subtitle.Text = "on tiktok only"
	subtitle.TextColor3 = Color3.fromRGB(60, 160, 255)
	subtitle.TextSize = 13
	subtitle.TextTransparency = 1
	subtitle.Parent = background

	-- Smooth entrance
	TweenService:Create(
		title,
		TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		{TextTransparency = 0}
	):Play()

	TweenService:Create(
		subtitle,
		TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		{TextTransparency = 0}
	):Play()

	TweenService:Create(
		blur,
		TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		{Size = 8}
	):Play()

	-- Display time
	task.wait(2.5)

	-- Smooth disappearance
	local fadeInfo = TweenInfo.new(
		0.8,
		Enum.EasingStyle.Quad,
		Enum.EasingDirection.InOut
	)

	TweenService:Create(background, fadeInfo, {
		BackgroundTransparency = 1
	}):Play()

	TweenService:Create(title, fadeInfo, {
		TextTransparency = 1
	}):Play()

	TweenService:Create(subtitle, fadeInfo, {
		TextTransparency = 1
	}):Play()

	local blurTween = TweenService:Create(blur, fadeInfo, {
		Size = 0
	})

	blurTween:Play()

	blurTween.Completed:Wait()

	blur:Destroy()
	gui:Destroy()
end

Players.PlayerAdded:Connect(function(player)
	task.spawn(function()
		createStartupMessage(player)
	end)
end)

for _, player in ipairs(Players:GetPlayers()) do
	task.spawn(function()
		createStartupMessage(player)
	end)
end

-- ===================== CONTROLE DAS MOLAS =====================

local speedConnections = {}
local gravityConnections = {}

local function removeSpeedEffect(player)
	local data = speedConnections[player]

	if data then
		if data.connection then
			data.connection:Disconnect()
		end

		speedConnections[player] = nil
	end

	local character = player.Character
	if character then
		local humanoid = character:FindFirstChildOfClass("Humanoid")

		if humanoid then
			humanoid.WalkSpeed = 16
		end
	end
end

local function applySpeedEffect(player, tool)
	removeSpeedEffect(player)

	local character = player.Character
	if not character then
		return
	end

	local humanoid = character:FindFirstChildOfClass("Humanoid")
	if not humanoid then
		return
	end

	humanoid.WalkSpeed = SPEED_COIL_SPEED

	local handle = tool:FindFirstChild("Handle")
	local sound = handle and handle:FindFirstChild("CoilSound")

	if sound then
		sound:Play()
	end

	speedConnections[player] = {
		connection = tool.Unequipped:Connect(function()
			removeSpeedEffect(player)
		end)
	}
end

local function removeGravityEffect(player)
	local data = gravityConnections[player]

	if data then
		if data.connection then
			data.connection:Disconnect()
		end

		if data.heartbeat then
			data.heartbeat:Disconnect()
		end

		gravityConnections[player] = nil
	end

	local character = player.Character

	if character then
		local root = character:FindFirstChild("HumanoidRootPart")

		if root then
			local force = root:FindFirstChild("GravityCoilEffect")

			if force then
				force:Destroy()
			end
		end
	end
end

local function applyGravityEffect(player, tool)
	removeGravityEffect(player)

	local character = player.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

	local handle = tool:FindFirstChild("Handle")
	local sound = handle and handle:FindFirstChild("CoilSound")

	if sound then
		sound:Play()
	end

	local force = Instance.new("BodyForce")
	force.Name = "GravityCoilEffect"
	force.Parent = root

	local mass = root.AssemblyMass
	local gravity = workspace.Gravity

	force.Force = Vector3.new(
		0,
		mass * gravity * GRAVITY_REDUCTION,
		0
	)

	local oldJumpPower = humanoid.JumpPower
	local oldJumpHeight = humanoid.JumpHeight
	local useJumpPower = humanoid.UseJumpPower

	if useJumpPower then
		humanoid.JumpPower = 75
	else
		humanoid.JumpHeight = 18
	end

	local connection
	local heartbeat

	connection = tool.Unequipped:Connect(function()
		if connection then
			connection:Disconnect()
		end

		if heartbeat then
			heartbeat:Disconnect()
		end

		if force then
			force:Destroy()
		end

		if humanoid and humanoid.Parent then
			if useJumpPower then
				humanoid.JumpPower = oldJumpPower
			else
				humanoid.JumpHeight = oldJumpHeight
			end
		end

		gravityConnections[player] = nil
	end)

	heartbeat = RunService.Heartbeat:Connect(function()
		if not tool.Parent
			or tool.Parent ~= character
			or not character.Parent
			or not humanoid.Parent
			or not root.Parent then

			removeGravityEffect(player)
			return
		end

		local currentMass = root.AssemblyMass

		force.Force = Vector3.new(
			0,
			currentMass * workspace.Gravity * GRAVITY_REDUCTION,
			0
		)
	end)

	gravityConnections[player] = {
		connection = connection,
		heartbeat = heartbeat
	}

	humanoid.Died:Connect(function()
		removeGravityEffect(player)
	end)
end

-- ===================== SPEED COIL =====================

local function createSpeedCoil(player)
	local tool = Instance.new("Tool")

	tool.Name = "Speed Coil"
	tool.ToolTip = "Speed Up!"
	tool.CanBeDropped = false
	tool.RequiresHandle = true
	tool.TextureId = SPEED_ICON

	local handle = Instance.new("Part")

	handle.Name = "Handle"
	handle.Size = Vector3.new(1, 1.2, 2)
	handle.CanCollide = false
	handle.Massless = true
	handle.Parent = tool

	local mesh = Instance.new("SpecialMesh")

	mesh.MeshType = Enum.MeshType.FileMesh
	mesh.MeshId = MESH_ID
	mesh.TextureId = SPEED_MESH_TEXTURE
	mesh.Scale = Vector3.new(0.7, 0.7, 0.7)
	mesh.Parent = handle

	local sound = Instance.new("Sound")

	sound.Name = "CoilSound"
	sound.SoundId = SPEED_SOUND
	sound.Volume = 1
	sound.Parent = handle

	tool.Equipped:Connect(function()
		applySpeedEffect(player, tool)
	end)

	tool.Unequipped:Connect(function()
		removeSpeedEffect(player)
	end)

	return tool
end

-- ===================== GRAVITY COIL =====================

local function createGravityCoil(player)
	local tool = Instance.new("Tool")

	tool.Name = "Gravity Coil"
	tool.ToolTip = "Jump higher!"
	tool.CanBeDropped = false
	tool.RequiresHandle = true
	tool.TextureId = GRAVITY_ICON

	local handle = Instance.new("Part")

	handle.Name = "Handle"
	handle.Size = Vector3.new(1, 1.2, 2)
	handle.CanCollide = false
	handle.Massless = true
	handle.Parent = tool

	local mesh = Instance.new("SpecialMesh")

	mesh.MeshType = Enum.MeshType.FileMesh
	mesh.MeshId = MESH_ID
	mesh.TextureId = GRAVITY_MESH_TEXTURE
	mesh.Scale = Vector3.new(0.7, 0.7, 0.7)
	mesh.Parent = handle

	local sound = Instance.new("Sound")

	sound.Name = "CoilSound"
	sound.SoundId = GRAVITY_SOUND
	sound.Volume = 1
	sound.Parent = handle

	tool.Equipped:Connect(function()
		applyGravityEffect(player, tool)
	end)

	tool.Unequipped:Connect(function()
		removeGravityEffect(player)
	end)

	return tool
end

-- ===================== DELIVERY =====================

local function giveCoils(player)

	local function onCharacterAdded(character)

		task.wait(0.6)

		local backpack = player:WaitForChild("Backpack")

		if not backpack:FindFirstChild("Speed Coil")
			and not character:FindFirstChild("Speed Coil") then

			createSpeedCoil(player).Parent = backpack
		end

		if not backpack:FindFirstChild("Gravity Coil")
			and not character:FindFirstChild("Gravity Coil") then

			createGravityCoil(player).Parent = backpack
		end
	end

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

	player.CharacterAdded:Connect(onCharacterAdded)
end

Players.PlayerAdded:Connect(giveCoils)

for _, player in ipairs(Players:GetPlayers()) do
	giveCoils(player)
end

print("Classic coils delivered with startup message.")

Features & Information

It has speed coil and jump coil whatever that is

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts