
KeylessUniversal

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local player = Players.LocalPlayer
-- === CONFIG ===
local LineCount = 4
local Radius = 7
local LineLength = 15
local LabelText = "CHROMATIC"
-- === CROSSHAIR OBJECTS ===
local CrosshairLines = {}
for i = 1, LineCount do
local line = Drawing.new("Line")
line.Thickness = 2
line.Visible = true
table.insert(CrosshairLines, line)
end
local Dot = Drawing.new("Circle")
Dot.Radius = 2
Dot.Filled = true
Dot.Visible = true
local Label = Drawing.new("Text")
Label.Text = LabelText
Label.Size = 16
Label.Center = true
Label.Outline = true
Label.Visible = true
Label.Font = 2
-- === MOUSE HIDING ===
local function hideMouse()
UserInputService.MouseIconEnabled = false
end
-- === Hide mouse on respawn too ===
player.CharacterAdded:Connect(function()
task.wait(0.5)
hideMouse()
end)
-- Initial hide
hideMouse()
-- === FUNCTION: Get rainbow color (HSV to RGB) ===
local function getRainbowColor(timeOffset)
local hue = (tick() + timeOffset) % 5 / 5 -- cycle every 5 seconds
return Color3.fromHSV(hue, 1, 1)
end
-- === MAIN ANIMATION LOOP ===
local angle = 0
RunService.RenderStepped:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
local center = Vector2.new(mousePos.X, mousePos.Y)
local rainbowColor = getRainbowColor(0)
-- Update crosshair lines
for i, line in ipairs(CrosshairLines) do
local a = angle + (math.pi * 2 / LineCount) * (i - 1)
local from = Vector2.new(center.X + math.cos(a) * Radius, center.Y + math.sin(a) * Radius)
local to = Vector2.new(center.X + math.cos(a) * (Radius + LineLength), center.Y + math.sin(a) * (Radius + LineLength))
line.From = from
line.To = to
line.Color = rainbowColor
end
Dot.Position = center
Dot.Color = rainbowColor
Label.Position = Vector2.new(center.X, center.Y + 25)
Label.Color = rainbowColor
angle += 0.05
end)



It's not a crosshair