Sandevistan mobile
Key RequiredUniversal

Sandevistan mobile

Universal Scripthornetshawadidahornetshawadida 95 views 3.8K executesUpdated Jul 19, 2026
Unrated
00
Lua Script•373 lines (9639 chars)
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local ContextActionService = game:GetService("ContextActionService") -- Mudado para ContextActionService
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera

-- Settings
local ACTION_NAME = "SandevistanToggle" -- Nome da ação para o mobile/teclado
local TOGGLE_KEY = Enum.KeyCode.F
local NORMAL_SPEED = 16
local BOOSTED_SPEED = 80
local NORMAL_JUMP_POWER = 50
local BOOSTED_JUMP_POWER = 70
local SANDEVISTAN_DURATION = 4.2
local CLONE_INTERVAL = 0.03
local CLONE_FADE_TIME = 0.05

-- State
local isActive = false
local activeClones = {}
local flashGui = nil
local currentShakeConnection = nil
local deactivateCoroutine = nil
local character, humanoid
local cloneSpawning = false
local activeSeat = nil
local activeWeld = nil

-- Time scale
local timeSpeed = Instance.new("NumberValue")
timeSpeed.Name = "TimeSpeed"
timeSpeed.Value = 1
timeSpeed.Parent = Workspace

-- Effects
local colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Name = "SandevistanEffect"
colorCorrection.Parent = Lighting

local sound = Instance.new("Sound")
sound.Name = "SandevistanSound"
sound.SoundId = "rbxassetid://130840290979991"
sound.Volume = 1
sound.Looped = false
sound.Parent = Workspace

local colorSequence = {
	Color3.fromRGB(75, 255, 33),
	Color3.fromRGB(0, 240, 255),
	Color3.fromRGB(244, 213, 253),
	Color3.fromRGB(119, 34, 137),
	Color3.fromRGB(248, 230, 2)
}

local effectColors = {
	Active = { Contrast = 0.5, Saturation = 0.25, TintColor = Color3.fromRGB(85, 255, 127) },
	Inactive = { Contrast = 0, Saturation = 0, TintColor = Color3.new(1, 1, 1) }
}

-- GUI flash
local function flashScreen()
	if flashGui then flashGui:Destroy() end

	flashGui = Instance.new("ScreenGui")
	flashGui.Name = "SandevistanFlashGui"
	flashGui.IgnoreGuiInset = true
	flashGui.ResetOnSpawn = false
	flashGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
	flashGui.Parent = player:WaitForChild("PlayerGui")

	local flash = Instance.new("Frame")
	flash.Size = UDim2.new(1, 0, 1, 0)
	flash.Position = UDim2.new(0, 0, 0, 0)
	flash.BackgroundColor3 = Color3.new(1, 1, 1)
	flash.BorderSizePixel = 0
	flash.BackgroundTransparency = 1
	flash.ZIndex = 999
	flash.Parent = flashGui

	local tweenIn = TweenService:Create(flash, TweenInfo.new(0.05), { BackgroundTransparency = 0 })
	tweenIn:Play()
	tweenIn.Completed:Wait()

	local tweenOut = TweenService:Create(flash, TweenInfo.new(0.3), { BackgroundTransparency = 1 })
	tweenOut:Play()
	tweenOut.Completed:Wait()

	flashGui:Destroy()
end

-- Camera shake
local function cameraShake(duration, magnitude)
	if currentShakeConnection then
		currentShakeConnection:Disconnect()
	end
	local startTime = tick()
	currentShakeConnection = RunService.RenderStepped:Connect(function()
		local elapsed = tick() - startTime
		if elapsed > duration then
			currentShakeConnection:Disconnect()
			currentShakeConnection = nil
			return
		end
		local offset = CFrame.new(
			(math.random() - 0.5) * 2 * magnitude,
			(math.random() - 0.5) * 2 * magnitude,
			(math.random() - 0.5) * 2 * magnitude
		)
		camera.CFrame = camera.CFrame * offset
	end)
end

-- Clone
local function createClone()
	if not character or not character:FindFirstChild("HumanoidRootPart") then return end
	character.Archivable = true

	local clone = character:Clone()
	local root = character:FindFirstChild("HumanoidRootPart")
	if not root then return end

	clone.Name = "SandevistanClone"
	clone.Parent = workspace
	clone:SetPrimaryPartCFrame(root.CFrame * CFrame.new(0, 1.5, 0))

	local humanoidClone = clone:FindFirstChildOfClass("Humanoid")
	if humanoidClone then humanoidClone:Destroy() end

	for _, obj in ipairs(clone:GetDescendants()) do
		if obj:IsA("BasePart") then
			obj.Anchored = true
			obj.CanCollide = false
			obj.Transparency = 0
		elseif obj:IsA("Decal") then
			obj.Transparency = 0
		end
	end

	local highlight = Instance.new("Highlight")
	highlight.FillColor = colorSequence[1]
	highlight.OutlineColor = colorSequence[1]
	highlight.FillTransparency = 0.3
	highlight.OutlineTransparency = 0.6
	highlight.DepthMode = Enum.HighlightDepthMode.Occluded
	highlight.Parent = clone

	local index = 1
	local duration = SANDEVISTAN_DURATION / #colorSequence
	local function cycleColor()
		index = index % #colorSequence + 1
		local tween = TweenService:Create(highlight, TweenInfo.new(duration), {
			FillColor = colorSequence[index],
			OutlineColor = colorSequence[index]
		})
		tween:Play()
		tween.Completed:Wait()
		if clone.Parent then cycleColor() end
	end

	task.spawn(cycleColor)
	table.insert(activeClones, { clone = clone, highlight = highlight })
end

-- Cleanup
local function cleanupClones(immediate)
	for _, data in ipairs(activeClones) do
		local clone, highlight = data.clone, data.highlight
		for _, part in ipairs(clone:GetDescendants()) do
			if part:IsA("BasePart") or part:IsA("Decal") then
				if immediate then
					part.Transparency = 1
				else
					TweenService:Create(part, TweenInfo.new(CLONE_FADE_TIME), { Transparency = 1 }):Play()
				end
			end
		end
		if immediate then
			clone:Destroy()
		else
			TweenService:Create(highlight, TweenInfo.new(CLONE_FADE_TIME), {
				FillTransparency = 1,
				OutlineTransparency = 1
			}):Play()
			task.delay(CLONE_FADE_TIME, function()
				if clone and clone.Parent then clone:Destroy() end
			end)
		end
	end
	activeClones = {}
end

-- Visuals / Time
local function setVisuals(active)
	TweenService:Create(colorCorrection, TweenInfo.new(0.4), effectColors[active and "Active" or "Inactive"]):Play()
end

local function setTimeScale(scale)
	TweenService:Create(timeSpeed, TweenInfo.new(0.4), { Value = scale }):Play()
end

-- Freeze other players
local function freezeOthers(freeze)
	for _, p in ipairs(Players:GetPlayers()) do
		if p ~= player and p.Character then
			for _, part in ipairs(p.Character:GetDescendants()) do
				if part:IsA("BasePart") then
					part.Anchored = freeze
				end
			end
		end
	end
end

-- Lag switch
local function activateLagSwitch()
	if not character then return end
	local hrp = character:FindFirstChild("HumanoidRootPart")
	local torso = character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso")
	if not hrp or not torso then return end

	local seat = Instance.new("Seat")
	seat.Name = "invischair"
	seat.Transparency = 1
	seat.Anchored = false
	seat.CanCollide = false
	seat.Position = hrp.Position
	seat.Parent = workspace
	activeSeat = seat

	local weld = Instance.new("Weld")
	weld.Part0 = seat
	weld.Part1 = torso
	weld.Parent = seat
	activeWeld = weld

	task.wait()
	seat.CFrame = hrp.CFrame
end

local function deactivateLagSwitch()
	if activeWeld then
		activeWeld:Destroy()
		activeWeld = nil
	end
	if activeSeat then
		activeSeat:Destroy()
		activeSeat = nil
	end
end

-- Clone spawning
local function startCloneSpawning()
	cloneSpawning = true
	coroutine.wrap(function()
		while cloneSpawning do
			createClone()
			task.wait(CLONE_INTERVAL)
		end
	end)()
end

local function stopCloneSpawning()
	cloneSpawning = false
end

-- Main toggle functions
local function activate()
	if isActive then return end
	isActive = true
	humanoid.WalkSpeed = BOOSTED_SPEED
	humanoid.JumpPower = BOOSTED_JUMP_POWER
	setVisuals(true)
	setTimeScale(0.1)
	freezeOthers(true)
	sound:Play()
	activateLagSwitch()

	task.spawn(function()
		flashScreen()
		cameraShake(0.25, 0.2)
	end)

	startCloneSpawning()

	if deactivateCoroutine and coroutine.status(deactivateCoroutine) == "suspended" then
		coroutine.close(deactivateCoroutine)
	end

	deactivateCoroutine = coroutine.create(function()
		task.wait(SANDEVISTAN_DURATION)
		deactivate()
	end)
	coroutine.resume(deactivateCoroutine)
end

function deactivate()
	if not isActive then return end
	isActive = false

	stopCloneSpawning()
	task.wait(CLONE_INTERVAL * 1.1)

	humanoid.WalkSpeed = NORMAL_SPEED
	humanoid.JumpPower = NORMAL_JUMP_POWER
	setVisuals(false)
	setTimeScale(1)
	freezeOthers(false)
	deactivateLagSwitch()

	if sound.IsPlaying then
		local tween = TweenService:Create(sound, TweenInfo.new(0.4), { Volume = 0 })
		tween:Play()
		tween.Completed:Connect(function()
			sound:Stop()
			sound.Volume = 1
		end)
	end

	task.spawn(function()
		flashScreen()
		cameraShake(0.25, 0.2)
	end)

	cleanupClones(false)
end

local function toggleSandevistan()
	if isActive then
		deactivate()
	else
		activate()
	end
end

local function bindCharacter(char)
	character = char
	humanoid = character:WaitForChild("Humanoid")
end

-- Bind character
player.CharacterAdded:Connect(bindCharacter)
if player.Character then
	bindCharacter(player.Character)
end

-- Função que lida com o input do botão/teclado
local function handleAction(actionName, inputState, inputObject)
	if inputState == Enum.UserInputState.Begin then
		toggleSandevistan()
	end
end

-- Cria o botão na tela (Mobile) e vincula à tecla F (PC)
ContextActionService:BindAction(ACTION_NAME, handleAction, true, TOGGLE_KEY)

-- Configurações visuais do botão Mobile
local mobileButton = ContextActionService:GetButton(ACTION_NAME)
if mobileButton then
	mobileButton.Size = UDim2.new(0, 60, 0, 60)
	-- Altera o texto do botão na tela
	local textLabel = Instance.new("TextLabel")
	textLabel.Size = UDim2.new(1, 0, 1, 0)
	textLabel.BackgroundTransparency = 1
	textLabel.Text = "Sandy"
	textLabel.TextColor3 = Color3.fromRGB(248, 230, 2) -- Amarelo Cyberpunk
	textLabel.TextSize = 16
	textLabel.Font = Enum.Font.GothamBold
	textLabel.Parent = mobileButton
end

Features & Information

Gives u super speed

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts