
KeylessUniversal

-- Serviços
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
-- Criando ScreenGui para o Cursor
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "VirtualMouseGui"
ScreenGui.ResetOnSpawn = false
if gethui then
ScreenGui.Parent = gethui()
elseif syn and syn.protect_gui then
syn.protect_gui(ScreenGui)
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
else
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end
-- Ícone do Cursor de PC
local Cursor = Instance.new("ImageLabel")
Cursor.Name = "VirtualCursor"
Cursor.Size = UDim2.new(0, 18, 0, 18)
Cursor.Image = "rbxassetid://6031097225" -- ID da imagem de seta do mouse
Cursor.BackgroundTransparency = 1
Cursor.ImageColor3 = Color3.fromRGB(255, 255, 255)
Cursor.ZIndex = 1000
Cursor.AnchorPoint = Vector2.new(0, 0)
Cursor.Position = UDim2.new(0.5, 0, 0.5, 0)
Cursor.Parent = ScreenGui
-- Posição do Mouse Virtual
local virtualMousePos = Vector2.new(
workspace.CurrentCamera.ViewportSize.X / 2,
workspace.CurrentCamera.ViewportSize.Y / 2
)
-- Atualização da Posição do Cursor Visual
local function updateCursorPosition()
Cursor.Position = UDim2.new(0, virtualMousePos.X, 0, virtualMousePos.Y)
end
updateCursorPosition()
-- Lógica do Trackpad (Arrastar na tela move a seta)
local lastTouchPos = nil
UserInputService.TouchStarted:Connect(function(touch, gameProcessed)
lastTouchPos = Vector2.new(touch.Position.X, touch.Position.Y)
end)
UserInputService.TouchMoved:Connect(function(touch, gameProcessed)
if lastTouchPos then
local currentTouchPos = Vector2.new(touch.Position.X, touch.Position.Y)
local delta = currentTouchPos - lastTouchPos
-- Sensibilidade do Trackpad
local sensitivity = 1.2
-- Atualizar coordenadas virtuais mantendo dentro da tela
local viewportSize = workspace.CurrentCamera.ViewportSize
virtualMousePos = Vector2.new(
math.clamp(virtualMousePos.X + (delta.X * sensitivity), 0, viewportSize.X),
math.clamp(virtualMousePos.Y + (delta.Y * sensitivity), 0, viewportSize.Y)
)
updateCursorPosition()No comments yet for this script.



