--Published on https://ahmedmode.com
--Credits goes to the devs!
--Scripts Below:

--Script

local FVelocity = Vector3.new(0, 0, 0)
local ECSetting = false
local ISSetting = false
local VMSetting = 1
local SVSetting = 50
local isDynamicVelocity = true
local JPToggle = false
local JPSetting = 50

local function SmoothVelocity(Velocity)
    if isDynamicVelocity then
        if Velocity > 250 or math.random(1, 7) == 1 then
            return 1
        end
        return Velocity * VMSetting
    else
        return SVSetting
    end
end

local function HookCheck(var)
    if not getgenv().hookmetamethod or not getgenv().getnamecallmethod then
        Rayfield:Notify({
           Title = "Compatibility Error",
           Content = "Cannot enable " .. var .. ". Your executor lacks required functions (hookmetamethod/getnamecallmethod).",
           Duration = 5,
           Image = nil,
        })
        return false
    end
    return true
end

local oldindex;
if getgenv().hookmetamethod and getgenv().getnamecallmethod then
    oldindex = hookmetamethod(game, "__index", function(v1, v2)
        if ECSetting and v2 == "Velocity" and getnamecallmethod() == "ToOrientation" then
            return FVelocity
        end
        return oldindex(v1, v2)
    end)
end

local oldnewindex;
if getgenv().hookmetamethod then
    oldnewindex = hookmetamethod(game, "__newindex", function(v1, v2, v3)
        if v2 == "AssemblyLinearVelocity" then
            local newSpeed = SmoothVelocity(math.abs((v3).Magnitude))
            
            local horizontalVelocity = Vector3.new(v3.X, 0, v3.Z)
            
            if horizontalVelocity.Magnitude > 0.001 then
                local newVelocity = horizontalVelocity.Unit * newSpeed
                return oldnewindex(v1, v2, newVelocity)
            else
                return oldnewindex(v1, v2, v3)
            end
        end
        return oldnewindex(v1, v2, v3)
    end)
end

local oldnamecall;
if getgenv().hookmetamethod and getgenv().getnamecallmethod then
    oldnamecall = hookmetamethod(game, "__namecall", function(v1, v2, ...)
        if ISSetting and getnamecallmethod() == "FireServer" and v2 == "SpeedTarget" then
            return oldnamecall(v1, v2, 0)
        end
        return oldnamecall(v1, v2, ...)
    end)
end

task.spawn(function()
    local Players = game:GetService("Players")
    while task.wait() do
        if JPToggle then
            local Character = Players.LocalPlayer.Character
            if Character then
                local Humanoid = Character:FindFirstChildOfClass("Humanoid")
                if Humanoid then
                    -- Set the jump power directly if the toggle is active
                    Humanoid.JumpPower = JPSetting
                end
            end
        end
    end
end)

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local RayfieldLibrary = RayfieldLibrary

local Window = Rayfield:CreateWindow({
   Name = "Ryu Racing",
   LoadingTitle = "Rachie my baby!!!",
   LoadingSubtitle = "by Ryu Nanashi",
   ConfigurationSaving = {
      Enabled = true,
      FolderName = "Ryu_Presents",
      FileName = "Uma_Racing"
   },
   Discord = {
      Enabled = true,
      Invite = "njy8U2kVr9",
      RememberJoins = true 
   },
   KeySystem = false,
})

Rayfield:Notify({
   Title = "Script Loaded",
   Content = "Oji-san is too old for racing, so i made a script for it uhehe!",
   Duration = 5,
   Image = nil,
})

local function ChangeTheme(ThemeName)
    if not RayfieldLibrary or not RayfieldLibrary.Theme then return end
    
    local SelectedTheme = RayfieldLibrary.Theme[ThemeName]
    if not SelectedTheme then return end 

    if Window.Main:FindFirstChild("Topbar") then
        Window.Main.Topbar.BackgroundColor3 = SelectedTheme.Topbar
    end
    
    for _, obj in ipairs(Window:GetDescendants()) do
        if obj:IsA("TextLabel") or obj:IsA("TextBox") or obj:IsA("TextButton") then
            obj.TextColor3 = SelectedTheme.TextColor
            if SelectedTheme.TextFont and SelectedTheme.TextFont ~= "Default" then
                obj.Font = SelectedTheme.TextFont
            end
        elseif obj:IsA("Frame") then
            if obj.Name ~= "Placeholder" and obj.Name ~= "SectionSpacing" and obj.Name ~= "SectionTitle" then
                obj.BackgroundColor3 = SelectedTheme.ElementBackground
            end
            local uiStroke = obj:FindFirstChildOfClass("UIStroke")
            if uiStroke then
                uiStroke.Color = SelectedTheme.ElementStroke
            end
        end
    end
    
    Rayfield:Notify({
        Title = "Theme Applied",
        Content = "Switched to the '" .. ThemeName .. "' theme.",
        Duration = 3,
        Image = nil,
    })
end

local MainTab = Window:CreateTab("Main", 4483362458)
local SettingsTab = Window:CreateTab("Settings", 7734053495)

local ToggleEC = MainTab:CreateToggle({
   Name = "Easy Control",
   Info = "Makes steering significantly easier.",
   CurrentValue = false,
   Flag = "EasyControl",
   Callback = function(Bool)
      if Bool and not HookCheck("Easy Control") then
          ToggleEC:ChangeValue(false)
          return
      end
      ECSetting = Bool
   end,
})

local ToggleIS = MainTab:CreateToggle({
   Name = "Infinite Stamina",
   Info = "Prevents stamina depletion.",
   CurrentValue = false,
   Flag = "InfStamina",
   Callback = function(Bool)
      if Bool and not HookCheck("Infinite Stamina") then
          ToggleIS:ChangeValue(false)
          return
      end
      ISSetting = Bool
   end,
})

MainTab:CreateSection("Velocity Control")

local SliderSV = MainTab:CreateSlider({
    Name = "Static Velocity Amount",
    Info = "Sets a fixed speed (studs/sec) when Static mode is active.",
    Range = {10, 200},
    Increment = 1,
    Suffix = " stud/s",
    CurrentValue = 50,
    Flag = "StaticVelocityValue",
    Callback = function(Value)
        SVSetting = Value
    end,
})

local ToggleVMMode = MainTab:CreateToggle({
    Name = "Velocity Mode (Dynamic/Static)",
    Info = "Toggle to use Dynamic Multiplier (ON) or Static Fixed Velocity (OFF).",
    CurrentValue = true,
    Flag = "DynamicModeToggle",
    Callback = function(Bool)
        isDynamicVelocity = Bool
        local mode = Bool and "Dynamic Multiplier" or "Static Fixed Speed"
        Rayfield:Notify({
            Title = "Velocity Mode Changed",
            Content = "Switched to: " .. mode,
            Duration = 3,
            Image = nil,
        })
    end,
})

local SliderVM = MainTab:CreateSlider({
   Name = "Dynamic Velocity Multiplier",
   Info = "Multiplies your speed when Dynamic mode is active.",
   Range = {1, 3},
   Increment = 0.1,
   Suffix = "x",
   CurrentValue = 1,
   Flag = "VelocityMult",
   Callback = function(Value)
      VMSetting = Value
   end,
})

MainTab:CreateSection("Jump Control")

local ToggleJP = MainTab:CreateToggle({
   Name = "Enable JP",
   Info = "Allows setting a custom jump height/power.",
   CurrentValue = false,
   Flag = "JumpPowerToggle",
   Callback = function(Bool)
      JPToggle = Bool
      if not Bool then
          local Character = game.Players.LocalPlayer.Character
          if Character then
             local Humanoid = Character:FindFirstChildOfClass("Humanoid")
             if Humanoid then
                Humanoid.JumpPower = 0 
             end
          end
      end
   end,
})

local SliderJP = MainTab:CreateSlider({
    Name = "Jump power",
    Info = "The value to set the Humanoid's JumpPower to.",
    Range = {10, 200},
    Increment = 5,
    Suffix = " power",
    CurrentValue = 50,
    Flag = "JumpPowerValue",
    Callback = function(Value)
        JPSetting = Value
    end,
})

MainTab:CreateSection("Skip Stage Warnings")

MainTab:CreateButton({
   Name = "Skip stage (Vulnerable)",
   Interact = 'Click',
   Callback = function()
      if not getgenv().firetouchinterest then
        Rayfield:Notify({
           Title = "Compatibility Error",
           Content = "Cannot execute Skip stage. Your executor lacks the 'firetouchinterest' function.",
           Duration = 5,
           Image = nil,
        })
        return
      end

      for _, v in pairs(workspace:GetDescendants()) do
          if v.Name == "TouchInterest" and v.Parent then
              firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart, v.Parent, 0)
              task.wait(0.05)
              firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart, v.Parent, 1)
          end
      end
   end,
})

MainTab:CreateParagraph({
    Title = "DANGER: Skip Stage Warning",
    Content = "This feature uses touch interest events to trick the game into thinking you hit the stage goal. You should only use this in private servers or sparingly in public servers. The delay must be reasonable, or the game will kick you and potentially flag your account.",
})

MainTab:CreateParagraph({
    Title = "Optimal Skip Usage",
    Content = "This function skips roughly half of the round's progression. To avoid instant kicks, only use it after some time has passed since the start, or when you observe opponents are already making good progress. Use your opponents' positions as a measurement on when to trigger the skip.",
})


MainTab:CreateSection("Misc")

local ButtonDiscord = MainTab:CreateButton({
   Name = "Copy Discord Link",
   Interact = 'Click',
   Callback = function()
    setclipboard("https://discord.gg/njy8U2kVr9")
    Rayfield:Notify({
        Title = "Discord",
        Content = "Link copied to clipboard!",
        Duration = 3,
        Image = nil,
     })
   end,
})

local themes = {}
if RayfieldLibrary and RayfieldLibrary.Theme then
    for name, _ in pairs(RayfieldLibrary.Theme) do
        table.insert(themes, name)
    end
else
    themes = {"Default", "AmberGlow", "Amethyst", "Bloom", "DarkBlue", "Green", "Light", "Ocean", "Serenity"}
end

SettingsTab:CreateDropdown({
   Name = "Interface Theme",
   Options = themes,
   CurrentOption = "Default",
   MultipleOptions = false,
   Flag = "ThemeDropdown",
   Callback = function(Option)
      ChangeTheme(Option)
   end,
})

SettingsTab:CreateButton({
   Name = "Destroy UI",
   Interact = 'Click',
   Callback = function()
      Rayfield:Destroy()
   end,
})

AdBlock Detected

This site relies on ads to stay online.
Please disable your ad blocker to continue.