Ruleta script
Key RequiredUniversal

Ruleta script

Universal ScriptKuberz_31Kuberz_31 485 views 237 executesUpdated Feb 1, 2026
Unrated
00
Lua Script•186 lines (4679 chars)
-- ruleta script 🗣️ 

math.randomseed(os.clock())

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

-- Humanoid seguro
local function getHumanoid()
	while true do
		local char = player.Character
		if char and char:FindFirstChild("Humanoid") then
			return char.Humanoid
		end
		task.wait()
	end
end

local humanoid = getHumanoid()

-- Valores base
local normalSpeed = 16
local fastSpeed = 32
local slowSpeed = 8
local normalJump = 50
local highJump = 120
local normalGravity = workspace.Gravity

-- Símbolos
local symbols = {"⚡","🤡","🦘","🧱","👻","🔥"}

-- GUI
local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.ResetOnSpawn = false

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 260, 0, 110)
frame.Position = UDim2.new(0.5, -130, 0.15, 0)
frame.BackgroundColor3 = Color3.fromRGB(15,15,15)
frame.BorderSizePixel = 0
frame.Active = true

-- Texto de creador
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1,0,0,20)
title.Position = UDim2.new(0,0,0,0)
title.BackgroundTransparency = 1
title.TextColor3 = Color3.new(1,1,1)
title.TextScaled = true
title.Font = Enum.Font.GothamBold
title.Text = "Creador: Smokekidd"

-- Slots
local labels = {}
for i = 1, 3 do
	local lbl = Instance.new("TextLabel", frame)
	lbl.Size = UDim2.new(0, 60, 0, 60)
	lbl.Position = UDim2.new(0, 10 + (i-1)*75, 0, 25)
	lbl.BackgroundColor3 = Color3.fromRGB(30,30,30)
	lbl.TextColor3 = Color3.new(1,1,1)
	lbl.TextScaled = true
	lbl.Font = Enum.Font.GothamBold
	lbl.Text = "❔"
	lbl.Parent = frame
	table.insert(labels, lbl)
end

-- Reset efectos
local function resetEffects()
	humanoid.WalkSpeed = normalSpeed
	humanoid.JumpPower = normalJump
	workspace.Gravity = normalGravity
	for _, p in pairs(player.Character:GetDescendants()) do
		if p:IsA("BasePart") then
			p.CanCollide = true
		end
	end
end

-- Aplicar efecto
local function applyEffect(symbol)
	resetEffects()
	if symbol == "⚡" then
		humanoid.WalkSpeed = fastSpeed
	elseif symbol == "🤡" then
		humanoid.WalkSpeed = slowSpeed
	elseif symbol == "🦘" then
		humanoid.JumpPower = highJump
	elseif symbol == "🧱" then
		workspace.Gravity = 60
	elseif symbol == "👻" then
		for _, p in pairs(player.Character:GetDescendants()) do
			if p:IsA("BasePart") then
				p.CanCollide = false
			end
		end
	elseif symbol == "🔥" then
		humanoid.WalkSpeed = fastSpeed
		humanoid.JumpPower = highJump
	end
end

-- 🎰 Animación de giro con detención automática
local function spinSlots()
	local results = {"❔","❔","❔"}
	local duration = 2.5
	local startTime = os.clock()
	local finished = false

	while not finished do
		local elapsed = os.clock() - startTime
		local progress = elapsed / duration
		local delayTime = math.clamp(0.05 + progress * 0.2, 0.05, 0.25)

		for i = 1, 3 do
			if results[i] == "❔" then
				labels[i].Text = symbols[math.random(#symbols)]
			end
		end

		-- Detener gradualmente
		if elapsed >= duration * 0.4 and results[1] == "❔" then results[1] = labels[1].Text end
		if elapsed >= duration * 0.7 and results[2] == "❔" then results[2] = labels[2].Text end
		if elapsed >= duration * 1.0 and results[3] == "❔" then results[3] = labels[3].Text end

		if results[1] ~= "❔" and results[2] ~= "❔" and results[3] ~= "❔" then
			finished = true
		end

		task.wait(delayTime)
	end

	if results[1] == results[2] and results[2] == results[3] then
		applyEffect(results[1])
		frame.BackgroundColor3 = Color3.fromRGB(40,80,40)
	else
		frame.BackgroundColor3 = Color3.fromRGB(15,15,15)
	end
end

-- Respawn
player.CharacterAdded:Connect(function()
	humanoid = getHumanoid()
	resetEffects()
end)

-- Giro automático
task.spawn(function()
	while true do
		task.wait(3)
		spinSlots()
	end
end)

-- 🖱️📱 Mover GUI
local dragging, dragStart, startPos
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
	end
end)

frame.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
		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
end)

Features & Information

Es un script mío que cree te agrega efectos si tiene 3 iguales

Community Comments (4)

t_axest_axesFeb 1, 2026

gpt slop ahh script

Replying to @t_axes
Kuberz_31Kuberz_31Feb 1, 2026

@Vynxalizer igual funciona wuey

Replying to @Kuberz_31
Paddling3581Paddling3581Feb 1, 2026

@SmokekiddD hola

Replying to @Kuberz_31
t_axest_axesFeb 1, 2026

@SmokekiddD "works" *ody cares dawg, just learn to script.

More Scripts for Universal Scripts