-- [โšก] RAGE mode - Dynamic Hitboxes -- Educational purposes only local Services = { Players = game:GetService("Players"), RunService = game:GetService("RunService"), Workspace = game:GetService("Workspace"), CoreGui = game:GetService("CoreGui"), TeleportService = game:GetService("TeleportService"), UserInputService = game:GetService("UserInputService") } local LocalPlayer = Services.Players.LocalPlayer local Camera = Services.Workspace.CurrentCamera -- ============================ -- SIMPLE RAYFIELD LOADER (FIXED) -- ============================ local Rayfield, Window -- Try loading Rayfield local function LoadRayfield() for _, url in pairs({ "https://sirius.menu/rayfield", "https://raw.githubusercontent.com/shlexware/Rayfield/main/source" }) do local success, result = pcall(function() return loadstring(game:HttpGet(url))() end) if success and result then return result end end return nil end -- Create UI Rayfield = LoadRayfield() if not Rayfield then warn("Rayfield failed to load") return end Window = Rayfield:CreateWindow({ Name = "๐ŸŽฏ Dynamic Hitboxes", LoadingTitle = "โšก Loading System...", LoadingSubtitle = "Dynamic Hitbox System", ConfigurationSaving = {Enabled = true, FileName = "HitboxConfig"}, KeySystem = false, Theme = "Dark", ToggleUIKeybind = Enum.KeyCode.K }) -- ============================ -- DYNAMIC HITBOX SYSTEM -- ============================ local Hitbox = { Enabled = false, Interval = 5, MinSize = 1.0, MaxSize = 8.0, CurrentSize = 3.0, Color = Color3.fromRGB(0, 255, 100), Transparency = 0.35, UpdateThread = nil } function Hitbox:Unload() -- Stop everything self.Enabled = false if self.UpdateThread then self.UpdateThread:Disconnect() self.UpdateThread = nil end -- Remove all hitboxes for _, model in ipairs(Services.Workspace:GetChildren()) do if model:IsA("Model") and model.Name:match("^CLIENT_BALL_%d+$") then local hitbox = model:FindFirstChild("DYNAMIC_HITBOX") if hitbox then hitbox:Destroy() end end end -- Destroy UI if Rayfield and Rayfield.Destroy then Rayfield:Destroy() end print("[๐Ÿ”ด] System unloaded") end function Hitbox:GetRandomSize() return math.random(self.MinSize * 10, self.MaxSize * 10) / 10 end function Hitbox:ApplyToBall(model) if not model:IsA("Model") then return end if not model.Name:match("^CLIENT_BALL_%d+$") then return end -- Find base part local basePart for _, child in ipairs(model:GetDescendants()) do if child:IsA("BasePart") then basePart = child break end end if not basePart then return end -- Create or update hitbox local hitbox = model:FindFirstChild("DYNAMIC_HITBOX") if not hitbox then hitbox = Instance.new("Part") hitbox.Name = "DYNAMIC_HITBOX" hitbox.Shape = Enum.PartType.Ball hitbox.Size = Vector3.new(2, 2, 2) * self.CurrentSize hitbox.CFrame = basePart.CFrame hitbox.Anchored = true hitbox.CanCollide = false hitbox.Transparency = self.Transparency hitbox.Material = Enum.Material.Neon hitbox.Color = self.Color hitbox.Parent = model else hitbox.Size = Vector3.new(2, 2, 2) * self.CurrentSize hitbox.Transparency = self.Transparency hitbox.Color = self.Color end end function Hitbox:UpdateAll() if not self.Enabled then return end self.CurrentSize = self:GetRandomSize() for _, model in ipairs(Services.Workspace:GetChildren()) do if model:IsA("Model") and model.Name:match("^CLIENT_BALL_%d+$") then self:ApplyToBall(model) end end end function Hitbox:StartAutoUpdate() if self.UpdateThread then self.UpdateThread:Disconnect() end self.UpdateThread = Services.RunService.Heartbeat:Connect(function() if tick() - (self.LastUpdate or 0) >= self.Interval then self:UpdateAll() self.LastUpdate = tick() end end) end function Hitbox:Cleanup() for _, model in ipairs(Services.Workspace:GetChildren()) do if model:IsA("Model") and model.Name:match("^CLIENT_BALL_%d+$") then local hitbox = model:FindFirstChild("DYNAMIC_HITBOX") if hitbox then hitbox:Destroy() end end end if self.UpdateThread then self.UpdateThread:Disconnect() self.UpdateThread = nil end end -- Monitor new balls Services.Workspace.ChildAdded:Connect(function(child) if child:IsA("Model") and child.Name:match("^CLIENT_BALL_%d+$") then task.wait(0.1) if Hitbox.Enabled then Hitbox:ApplyToBall(child) end end end) -- ============================ -- ๐ŸŽฏ UI CONTROLS -- ============================ local MainTab = Window:CreateTab("๐ŸŽฏ Hitboxes", "target") MainTab:CreateToggle({ Name = "โšก Enable Hitboxes", CurrentValue = Hitbox.Enabled, Callback = function(state) Hitbox.Enabled = state if state then Hitbox:StartAutoUpdate() Hitbox:UpdateAll() Rayfield:Notify({ Title = "โœ… Hitboxes ON", Content = "Auto-updating every " .. Hitbox.Interval .. "s", Duration = 3 }) else Hitbox:Cleanup() Rayfield:Notify({ Title = "โ›” Hitboxes OFF", Content = "All hitboxes removed", Duration = 3 }) end end }) MainTab:CreateSlider({ Name = "๐Ÿ”„ Update Interval", Range = {1, 30}, Increment = 1, Suffix = " seconds", CurrentValue = Hitbox.Interval, Callback = function(value) Hitbox.Interval = value if Hitbox.Enabled then Hitbox:StartAutoUpdate() end end }) MainTab:CreateSlider({ Name = "๐Ÿ“ Min Size", Range = {0.5, 5}, Increment = 0.1, Suffix = "x", CurrentValue = Hitbox.MinSize, Callback = function(value) Hitbox.MinSize = value if Hitbox.Enabled then Hitbox:UpdateAll() end end }) MainTab:CreateSlider({ Name = "๐Ÿ“ Max Size", Range = {1, 15}, Increment = 0.1, Suffix = "x", CurrentValue = Hitbox.MaxSize, Callback = function(value) Hitbox.MaxSize = value if Hitbox.Enabled then Hitbox:UpdateAll() end end }) MainTab:CreateColorPicker({ Name = "๐ŸŽจ Color", Color = Hitbox.Color, Callback = function(color) Hitbox.Color = color if Hitbox.Enabled then Hitbox:UpdateAll() end end }) MainTab:CreateSlider({ Name = "๐Ÿ” Transparency", Range = {0, 1}, Increment = 0.05, Suffix = "", CurrentValue = Hitbox.Transparency, Callback = function(value) Hitbox.Transparency = value if Hitbox.Enabled then Hitbox:UpdateAll() end end }) MainTab:CreateButton({ Name = "๐Ÿ”„ Update Now", Callback = function() if Hitbox.Enabled then Hitbox:UpdateAll() Rayfield:Notify({ Title = "โšก Updated", Content = "New sizes applied", Duration = 2 }) end end }) MainTab:CreateButton({ Name = "๐ŸŽฒ Random Color", Callback = function() Hitbox.Color = Color3.fromRGB( math.random(50, 255), math.random(50, 255), math.random(50, 255) ) if Hitbox.Enabled then Hitbox:UpdateAll() end Rayfield:Notify({ Title = "๐ŸŒˆ Random Color", Content = string.format("RGB(%d, %d, %d)", math.floor(Hitbox.Color.R * 255), math.floor(Hitbox.Color.G * 255), math.floor(Hitbox.Color.B * 255)), Duration = 3 }) end }) -- ============================ -- โš™๏ธ UTILITIES -- ============================ local UtilTab = Window:CreateTab("โš™๏ธ Utilities", "settings") UtilTab:CreateButton({ Name = "๐Ÿงน Clear Hitboxes", Callback = function() Hitbox:Cleanup() Rayfield:Notify({ Title = "๐Ÿงน Cleared", Content = "All hitboxes removed", Duration = 3 }) end }) UtilTab:CreateButton({ Name = "๐Ÿ”„ Rejoin Server", Callback = function() Services.TeleportService:Teleport(game.PlaceId, LocalPlayer) end }) UtilTab:CreateButton({ Name = "๐Ÿ”ด Unload Script", Callback = function() Rayfield:Notify({ Title = "๐Ÿ”ด Unloading...", Content = "Removing everything", Duration = 3 }) task.wait(1) Hitbox:Unload() end }) UtilTab:CreateParagraph({ Title = "โš ๏ธ Warning", Content = "Unload will remove ALL hitboxes and close UI. Use 'Clear Hitboxes' to just remove visuals." }) -- ============================ -- ๐Ÿ“Š INFO -- ============================ local InfoTab = Window:CreateTab("๐Ÿ“Š Info", "info") InfoTab:CreateParagraph({ Title = "๐ŸŽฏ Dynamic Hitbox System", Content = "โšก Auto-changing hitbox sizes\n๐ŸŽจ Custom colors & transparency\n๐Ÿ”„ Random updates every interval\n๐Ÿงน Easy cleanup & unload" }) InfoTab:CreateButton({ Name = "๐Ÿ“Š Show Status", Callback = function() Rayfield:Notify({ Title = "๐Ÿ“Š System Status", Content = "Enabled: " .. (Hitbox.Enabled and "โœ…" or "โŒ") .. "\nInterval: " .. Hitbox.Interval .. "s" .. "\nSize: " .. Hitbox.MinSize .. "x - " .. Hitbox.MaxSize .. "x" .. "\nTransparency: " .. string.format("%.2f", Hitbox.Transparency), Duration = 5 }) end }) -- ============================ -- ๐Ÿ”ง INITIALIZATION -- ============================ task.wait(1) Rayfield:Notify({ Title = "๐ŸŽฏ System Ready", Content = "Press K to toggle menu", Duration = 4 }) print("[โšก] Dynamic Hitbox System Loaded") print("[โ„น๏ธ] Press K to toggle menu")