
Keyless Patched

if getgenv().AnimeRacingClicker then
pcall(function()
getgenv().AnimeRacingClicker:Unload()
end)
getgenv().AnimeRacingClicker = nil
end
local baseUrl = "https://raw.githubusercontent.com/croksyscript/CrypticLoader/refs/heads/main/Obsidian/Obsidian_UI/"
local ok, Library = pcall(function()
return loadstring(game:HttpGet(baseUrl .. "Obsidian_UI.lua"))()
end)
if not ok or not Library then
return
end
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local VirtualUser = game:GetService("VirtualUser")
local player = Players.LocalPlayer
local Knit = getrenv()._G.Knit
for _ = 1, 40 do
if Knit and Knit.Controllers and Knit.Controllers.RaceController then
break
end
task.wait(0.5)
Knit = getrenv()._G.Knit
end
if not (Knit and Knit.Controllers and Knit.Controllers.RaceController) then
Library:Unload()
return
end
getgenv().AnimeRacingClicker = Library
local raceController = Knit.Controllers.RaceController
local regionController = Knit.Controllers.RegionController
local autoRunController = Knit.Controllers.AutoRunController
local movementController = Knit.Controllers.RaceMovementController
local clickerService = Knit.GetService("ClickerService")
local movementService = Knit.GetService("RaceMovementService")
local raceGenerator = Knit.GetService("RaceGeneratorService")
local settingsService = Knit.GetService("GameSettingsService")
local raceService = Knit.GetService("RaceService")
local regionTable = require(ReplicatedStorage.DataBank.RegionTable)
local active = true
local connections = {}
local overlay
local lastJoin = 0
local speed = 0
local wallsReached = 0
local wallsTotal = 16
local worldKeys = {}
local autoWorld = "Best Money (auto)"
local function notify(text, time)
task.spawn(function()
pcall(function()
Library:Notify(text, time or 3)
end)
end)
end
local function formatNumber(value)
if value >= 1e9 then
return string.format("%.2e", value)
end
if value >= 1e6 then
return string.format("%.1fM", value / 1e6)
end
if value >= 1e3 then
return string.format("%.1fk", value / 1e3)
end
return string.format("%.0f", value)
end
local function secondsLeft()
return math.max(0, raceController.Timer - os.time())
end
local function rootPart()
local character = player.Character
return character and character:FindFirstChild("HumanoidRootPart")
end
local function currentWorld()
return regionController.playersRegion[player]
end
local function loadWorlds()
local worlds = {}
for key, data in pairs(regionTable) do
if type(data) == "table" and key ~= "World0" and regionController.AllowedRegions[key] then
table.insert(worlds, {
key = key,
money = data.ShurikensMultiplier or 0,
click = data.ClickMultiplier or 0,
name = string.format("%s %s | %s | x%s", tostring(data.WorldName), tostring(data.Island), key, formatNumber(data.ShurikensMultiplier or 0)),
})
end
end
table.sort(worlds, function(a, b)
if a.money ~= b.money then
return a.money > b.money
end
return a.click > b.click
end)
worldKeys = { [autoWorld] = worlds[1] and worlds[1].key }
local names = { autoWorld }
for _, world in ipairs(worlds) do
worldKeys[world.name] = world.key
table.insert(names, world.name)
end
return names
end
local function targetWorld()
local picked = Library.Options.RaceWorld and Library.Options.RaceWorld.Value
return worldKeys[picked] or currentWorld()
end
local function joinRace()
local world = targetWorld()
if not world or world == "World0" then
return
end
pcall(function()
movementService.TeleportToRace:Fire(world)
end)
end
local function click()
local success, gain = pcall(function()
return clickerService:PlayerClick()
end)
if success and gain and Library.Toggles.ClickEffect.Value then
pcall(function()
Knit.Controllers.ClickerController:TriggerClickBounce(gain)
end)
end
end
local function setAutoRun(state)
pcall(function()
if state then
autoRunController:StartAutoRun()
else
autoRunController:StopAutoRun()
end
settingsService:SaveSetting("AutoRun", state)
end)
end
local Window = Library:CreateWindow({
Title = "Cryptic Hub | Anime Racing Clicker",
Footer = ".gg/XDpsSW7Ybs",
Icon = 120217226033572,
NotifySide = "Right",
Center = true,
AutoShow = true,
ToggleKeybind = Enum.KeyCode.RightControl,
Folder = "CrypticHub/AnimeRacingClicker",
})
local Tabs = {
Main = Window:AddTab("Main", "zap"),
Clicker = Window:AddTab("Clicker", "mouse-pointer-click"),
Race = Window:AddTab("Race", "flag"),
}
local Toggles = Library.Toggles
local Options = Library.Options
local stateLabel, worldLabel, speedLabel, wallLabel
local function buildMain(tab)
local auto = tab:AddGroupbox({ Side = "Left", Name = "Automation", IconName = "bot" })
auto:AddToggle("AutoClick", {
Text = "Auto Click",
Tooltip = "Clicks during the click phase to gain speed",
}):AddKeyPicker("AutoClickKey", {
Text = "Auto Click",
Default = "C",
Mode = "Toggle",
SyncToggleState = true,
})
auto:AddToggle("AutoJoin", {
Text = "Auto Join Race",
Tooltip = "Joins the selected world when the race starts",
}):AddKeyPicker("AutoJoinKey", {
Text = "Auto Join Race",
Default = "J",
Mode = "Toggle",
SyncToggleState = true,
})
auto:AddToggle("AutoRun", {
Text = "Auto Run",
Callback = setAutoRun,
})
auto:AddToggle("ForceForward", {
Text = "Force Forward Input",
})
auto:AddToggle("AntiAfk", {
Text = "Anti AFK",
Default = true,
})
auto:AddButton({
Text = "Join Race Now",
Func = joinRace,
})
local info = tab:AddGroupbox({ Side = "Right", Name = "Live Info", IconName = "activity" })
stateLabel = info:AddLabel("State: -")
worldLabel = info:AddLabel("World: -")
speedLabel = info:AddLabel("Speed: -")
wallLabel = info:AddLabel("Walls: -")
end
local function buildClicker(tab)
local box = tab:AddGroupbox({ Side = "Left", Name = "Click Settings", IconName = "mouse-pointer-click" })
box:AddSlider("ClicksPerSecond", {
Text = "Clicks per second",
Default = 15,
Min = 1,
Max = 40,
Rounding = 0,
Tooltip = "The server accepts about 15 clicks per second",
})
box:AddSlider("ClickWindow", {
Text = "Only click in last (s)",
Default = 60,
Min = 1,
Max = 60,
Rounding = 0,
Suffix = "s",
})
box:AddToggle("ClickEffect", {
Text = "Show Click Effect",
})
end
local function buildRace(tab)
local world = tab:AddGroupbox({ Side = "Left", Name = "World", IconName = "globe" })
world:AddDropdown("RaceWorld", {
Text = "Race World",
Values = loadWorlds(),
Default = 1,
Searchable = true,
MaxVisibleDropdownItems = 10,
Tooltip = "Unlocked worlds, sorted by money multiplier",
})
world:AddButton({
Text = "Refresh Worlds",
Func = function()
Options.RaceWorld:SetValues(loadWorlds())
Options.RaceWorld:SetValue(autoWorld)
end,
})
world:AddSlider("JoinRetry", {
Text = "Retry every",
Default = 2,
Min = 1,
Max = 10,
Rounding = 0,
Suffix = "s",
})
local extras = tab:AddGroupbox({ Side = "Right", Name = "Notifications", IconName = "bell" })
extras:AddToggle("WallNotify", {
Text = "Notify on wall",
Default = true,
})
extras:AddToggle("PhaseNotify", {
Text = "Notify on phase change",
})
extras:AddToggle("Overlay", {
Text = "Status Overlay",
Callback = function(value)
if value and not overlay then
overlay = Library:AddDraggableLabel("Starting...")
elseif not value and overlay then
overlay:Destroy()
overlay = nil
end
end,
})
end
buildMain(Tabs.Main)
buildClicker(Tabs.Clicker)
buildRace(Tabs.Race)
local function loop(interval, body)
task.spawn(function()
while active and not Library.Unloaded do
body()
task.wait(interval)
end
end)
end
loop(0.05, function()
if not Toggles.AutoClick.Value or raceController.State ~= "Click" then
return
end
if secondsLeft() > Options.ClickWindow.Value then
return
end
task.spawn(click)
task.wait(1 / Options.ClicksPerSecond.Value - 0.05)
end)
loop(0.25, function()
if not Toggles.AutoJoin.Value or raceController.State ~= "Running" then
return
end
local root = rootPart()
local atStart = not root or root.Position.Z < 65
local wrongWorld = currentWorld() ~= targetWorld()
local needsJoin = wrongWorld or (atStart and not movementController.IsActive)
if needsJoin and os.clock() - lastJoin >= Options.JoinRetry.Value then
lastJoin = os.clock()
joinRace()
end
end)
loop(0.5, function()
if Toggles.AutoRun.Value and not autoRunController.Activated then
setAutoRun(true)
end
end)
loop(0.05, function()
if Toggles.ForceForward.Value and movementController.IsActive then
movementService.SendMoveDirection:Fire(Vector3.new(0, 0, 1))
end
end)
loop(0.25, function()
local state = raceController.State
local left = secondsLeft()
stateLabel:SetText(string.format("State: %s (%ds)", state ~= "" and state or "-", left))
worldLabel:SetText("World: " .. tostring(currentWorld()))
speedLabel:SetText("Speed: " .. formatNumber(speed) .. " studs/s")
wallLabel:SetText(string.format("Walls: %d/%d", wallsReached, wallsTotal))
if overlay then
overlay:SetText(string.format("%s %ds | Walls %d/%d", state, left, wallsReached, wallsTotal))
end
end)
local function listen(signal, callback)
table.insert(connections, signal:Connect(callback))
end
listen(raceGenerator.CheckpointReached, function(number, total)
wallsReached = number or wallsReached
wallsTotal = total or wallsTotal
if Toggles.WallNotify.Value then
notify(string.format("Wall %s/%s reached", tostring(number), tostring(total)), 2)
end
end)
listen(movementService.SyncSpeed, function(value)
if type(value) == "number" then
speed = value
end
end)
listen(raceService.TriggerState, function(state)
if state == "Running" then
wallsReached = 0
end
if Toggles.PhaseNotify.Value then
notify("Phase: " .. tostring(state), 2)
end
end)
listen(player.Idled, function()
if Toggles.AntiAfk.Value then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end
end)
Library:OnUnload(function()
active = false
for _, connection in ipairs(connections) do
connection:Disconnect()
end
if overlay then
overlay:Destroy()
end
if getgenv().AnimeRacingClicker == Library then
getgenv().AnimeRacingClicker = nil
end
end)No comments yet for this script.



