local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local MainWindow = Rayfield:CreateWindow({ Name = "Gangsta Script", Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default). LoadingTitle = "Gangsta Script Loading...", LoadingSubtitle = "by Hamsta", ShowText = "Menu", -- for mobile users to unhide Rayfield, change if you'd like Theme = "DarkBlue", -- Check https://docs.sirius.menu/rayfield/themes ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode) DisableRayfieldPrompts = false, DisableBuildWarnings = false, -- Prevents Rayfield from emitting warnings when the script has a version mismatch with the interface. -- ScriptID = "sid_xxxxxxxxxxxx", -- Your Script ID from developer.sirius.menu — enables analytics, managed keys, and script hosting ConfigurationSaving = { Enabled = false, FolderName = nil, -- Create a custom folder for your hub/game FileName = "Gangsta Script" }, Discord = { Enabled = false, -- Prompt the user to join your Discord server if their executor supports it Invite = "noinvitelink", -- The Discord invite code, do not include Discord.gg/. E.g. Discord.gg/ABCD would be ABCD RememberJoins = true -- Set this to false to make them join the Discord every time they load it up }, KeySystem = true, -- Set this to true to use our key system KeySettings = { Title = "Enter Key", Subtitle = "Enter the key to access the menu", Note = "You can get the key from the site you got the script from", -- Use this to tell the user how to get a key FileName = "GangstaKey26", -- It is recommended to use something unique, as other scripts using Rayfield may overwrite your key file SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from Key = {"RoScriptsKey"} -- List of keys that the system will accept, can be RAW file links (pastebin, github, etc.) or simple strings ("hello", "key22") } }) local MainTab = MainWindow:CreateTab("Movement", 0) -- Title, Image local RobuxTab = MainWindow:CreateTab("Other", 0) -- Title, Image local InfiniteJumpConnection local NoClipConnection local NoClipOriginalCollisions = {} local CurrentWalkSpeed = 16 local CurrentJumpPower = 50 local NoClipEnabled = false local SetNoClip local function GetCharacter() return LocalPlayer.Character end local function GetHumanoid() local Character = GetCharacter() if not Character then return nil end return Character:FindFirstChildOfClass("Humanoid") end local function SetWalkSpeed(Speed) CurrentWalkSpeed = Speed local Humanoid = GetHumanoid() if Humanoid then Humanoid.WalkSpeed = Speed end end local function ApplyJumpPower(Humanoid, Power) pcall(function() Humanoid.UseJumpPower = true end) Humanoid.JumpPower = Power end local function SetJumpPower(Power) CurrentJumpPower = Power local Humanoid = GetHumanoid() if Humanoid then ApplyJumpPower(Humanoid, Power) end end local function SetSliderValue(Slider, Value) if Slider and Slider.Set then Slider:Set(Value) elseif Slider and Slider.SetValue then Slider:SetValue(Value) elseif Slider and Slider.Update then Slider:Update(Value) end end LocalPlayer.CharacterRemoving:Connect(function(Character) if NoClipEnabled then SetNoClip(false, Character) end end) LocalPlayer.CharacterAdded:Connect(function(Character) NoClipOriginalCollisions = {} local Humanoid = Character:WaitForChild("Humanoid", 5) if not Humanoid then return end Humanoid.WalkSpeed = CurrentWalkSpeed ApplyJumpPower(Humanoid, CurrentJumpPower) if NoClipEnabled then SetNoClip(true) end end) local CurrentHumanoid = GetHumanoid() if CurrentHumanoid then CurrentHumanoid.WalkSpeed = CurrentWalkSpeed ApplyJumpPower(CurrentHumanoid, CurrentJumpPower) end function SetNoClip(Enabled, CharacterOverride) local Character = CharacterOverride or GetCharacter() if not Character then if not Enabled then NoClipOriginalCollisions = {} end return end for _, Part in pairs(Character:GetDescendants()) do if Part:IsA("BasePart") then if Enabled then if NoClipOriginalCollisions[Part] == nil then NoClipOriginalCollisions[Part] = Part.CanCollide end Part.CanCollide = false elseif NoClipOriginalCollisions[Part] ~= nil then Part.CanCollide = NoClipOriginalCollisions[Part] end end end if not Enabled then NoClipOriginalCollisions = {} end end MainTab:CreateSection("Infinite Jump & NoClip") local Toggle1 = MainTab:CreateToggle({ Name = "Infinite Jump", CurrentValue = false, Flag = "Toggle1", -- A flag is the identifier for the configuration file; make sure every element has a different flag if you're using configuration saving to ensure no overlaps Callback = function(Value) if Value then if InfiniteJumpConnection then InfiniteJumpConnection:Disconnect() end InfiniteJumpConnection = UserInputService.JumpRequest:Connect(function() local Humanoid = GetHumanoid() if Humanoid then Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) elseif InfiniteJumpConnection then InfiniteJumpConnection:Disconnect() InfiniteJumpConnection = nil end end, }) local Toggle2 = MainTab:CreateToggle({ Name = "NoClip", CurrentValue = false, Flag = "Toggle2", -- A flag is the identifier for the configuration file; make sure every element has a different flag if you're using configuration saving to ensure no overlaps Callback = function(Value) NoClipEnabled = Value if Value then if NoClipConnection then NoClipConnection:Disconnect() end SetNoClip(true) NoClipConnection = RunService.Stepped:Connect(function() SetNoClip(true) end) else if NoClipConnection then NoClipConnection:Disconnect() NoClipConnection = nil end SetNoClip(false) end end, }) MainTab:CreateSection("Speed & Jump Power") local Slider1 = MainTab:CreateSlider({ Name = "Speed", Range = {2, 100}, Increment = 2, Suffix = "Speed", CurrentValue = 16, Flag = "Slider1", -- A flag is the identifier for the configuration file; make sure every element has a different flag if you're using configuration saving to ensure no overlaps Callback = function(Value) SetWalkSpeed(Value) end, }) local Slider2 = MainTab:CreateSlider({ Name = "Jump Power", Range = {2, 250}, Increment = 2, Suffix = "Power", CurrentValue = 50, Flag = "Slider2", -- A flag is the identifier for the configuration file; make sure every element has a different flag if you're using configuration saving to ensure no overlaps Callback = function(Value) SetJumpPower(Value) end, }) local Button1 = MainTab:CreateButton({ Name = "Reset Speed & Jump Power", Callback = function() SetWalkSpeed(16) SetJumpPower(50) SetSliderValue(Slider1, 16) SetSliderValue(Slider2, 50) end, }) RobuxTab:CreateSection("Infinite Robux") local Toggle3 = RobuxTab:CreateToggle({ Name = "Infinite Robux", CurrentValue = false, Flag = "Toggle3", -- A flag is the identifier for the configuration file; make sure every element has a different flag if you're using configuration saving to ensure no overlaps Callback = function(Value) if Value then Rayfield:Notify({ Title = "Infinite Robux ON", Content = "You will now have infinite robux (gamepass & developer product purchases only)", Duration = 6.5, Image = 0, }) else Rayfield:Notify({ Title = "Infinite Robux OFF", Content = "You will now have the amount of robux which is on your account", Duration = 6.5, Image = 0, }) end end, })