Last active
August 19, 2025 17:29
-
-
Save robloxluakrnlaccount/c30876db03971c746eb1e6eb80180e89 to your computer and use it in GitHub Desktop.
Panel Version 2 NonRayfield
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --[[ | |
| you better have a good reason on WHY you are looking at the script raw | |
| ]] | |
| if not game.Players.LocalPlayer.PlayerScripts:FindFirstChild("Loaded") then | |
| local data = Instance.new("NumberValue") --does this really matter no i added it for a damn reason | |
| data.Name = "Loaded" | |
| data.Parent = game.Players.LocalPlayer.PlayerScripts | |
| --[[ ============================================================ | |
| RAYFIELD LOCAL (drop-in replacement; no loadstring/HttpGet) | |
| Supports: | |
| - Rayfield:CreateWindow({...}) | |
| - Rayfield:Notify({Title, Content, Duration}) | |
| - Window:CreateTab("Name", iconAssetId) | |
| - Tab:CreateButton({...}) | |
| - Tab:CreateToggle({...}) | |
| - Tab:CreateSlider({...}) | |
| - Tab:CreateInput({...}) | |
| Features: | |
| - Dark, Rayfield-like styling (rounded corners, shadows) | |
| - Draggable window | |
| - Sidebar tabs with icons | |
| - Autosizing ScrollingFrame per tab | |
| - Stacking / animated notifications | |
| - Slider supports Range, Increment, Suffix, CurrentValue | |
| - Toggle returns controller with :Set(bool)/:Get() | |
| ============================================================ ]] | |
| local Players = game:GetService("Players") | |
| local TweenService = game:GetService("TweenService") | |
| local UserInputService = game:GetService("UserInputService") | |
| local LocalPlayer = Players.LocalPlayer | |
| local GuiParent = (pcall(function() return game:GetService("CoreGui") end) and game:GetService("CoreGui")) or LocalPlayer:WaitForChild("PlayerGui") | |
| local function makeDraggable(frame, handle) | |
| handle = handle or frame | |
| local dragging, dragStart, startPos | |
| handle.InputBegan:Connect(function(input) | |
| if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
| dragging = true | |
| dragStart = input.Position | |
| startPos = frame.Position | |
| input.Changed:Connect(function() | |
| if input.UserInputState == Enum.UserInputState.End then dragging = false end | |
| end) | |
| end | |
| end) | |
| UserInputService.InputChanged:Connect(function(input) | |
| if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then | |
| local delta = input.Position - dragStart | |
| frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) | |
| end | |
| end) | |
| end | |
| local function clamp(v, a, b) return math.max(a, math.min(b, v)) end | |
| local function stepTo(value, increment) | |
| if not increment or increment <= 0 then return value end | |
| return math.floor((value / increment) + 0.5) * increment | |
| end | |
| local Rayfield = (function() | |
| -- root ScreenGui + global notif holder | |
| local ScreenGui = Instance.new("ScreenGui") | |
| ScreenGui.Name = "RayfieldLocalUI" | |
| ScreenGui.IgnoreGuiInset = true | |
| ScreenGui.ResetOnSpawn = false | |
| ScreenGui.Parent = GuiParent | |
| local NotifHolder = Instance.new("Frame") | |
| NotifHolder.Name = "NotifHolder" | |
| NotifHolder.Size = UDim2.new(0, 340, 1, -40) | |
| NotifHolder.Position = UDim2.new(1, -360, 0, 20) | |
| NotifHolder.BackgroundTransparency = 1 | |
| NotifHolder.Parent = ScreenGui | |
| local NotifList = Instance.new("UIListLayout") | |
| NotifList.SortOrder = Enum.SortOrder.LayoutOrder | |
| NotifList.Padding = UDim.new(0, 8) | |
| NotifList.Parent = NotifHolder | |
| local Ray = {} | |
| function Ray:Notify(opts) | |
| -- opts: {Title, Content, Duration} | |
| local dur = tonumber(opts.Duration) or 3 | |
| local title = tostring(opts.Title or "Notification") | |
| local content = tostring(opts.Content or "") | |
| local container = Instance.new("Frame") | |
| container.Size = UDim2.new(1, 0, 0, 72) | |
| container.BackgroundColor3 = Color3.fromRGB(28, 28, 28) | |
| container.BorderSizePixel = 0 | |
| container.BackgroundTransparency = 0.1 | |
| container.Parent = NotifHolder | |
| container.ClipsDescendants = true | |
| local corner = Instance.new("UICorner", container) corner.CornerRadius = UDim.new(0, 8) | |
| local stroke = Instance.new("UIStroke", container) stroke.Color = Color3.fromRGB(55,55,55) stroke.Thickness = 1 | |
| local Title = Instance.new("TextLabel") | |
| Title.BackgroundTransparency = 1 | |
| Title.Font = Enum.Font.GothamBold | |
| Title.TextSize = 16 | |
| Title.TextXAlignment = Enum.TextXAlignment.Left | |
| Title.TextColor3 = Color3.fromRGB(255,255,255) | |
| Title.Text = title | |
| Title.Position = UDim2.new(0, 12, 0, 8) | |
| Title.Size = UDim2.new(1, -24, 0, 20) | |
| Title.Parent = container | |
| local Content = Instance.new("TextLabel") | |
| Content.BackgroundTransparency = 1 | |
| Content.Font = Enum.Font.Gotham | |
| Content.TextSize = 14 | |
| Content.TextWrapped = true | |
| Content.TextXAlignment = Enum.TextXAlignment.Left | |
| Content.TextYAlignment = Enum.TextYAlignment.Top | |
| Content.TextColor3 = Color3.fromRGB(220,220,220) | |
| Content.Text = content | |
| Content.Position = UDim2.new(0, 12, 0, 30) | |
| Content.Size = UDim2.new(1, -24, 1, -38) | |
| Content.Parent = container | |
| -- slide-in subtle | |
| container.Position = UDim2.new(0, 16, 0, 0) | |
| container.BackgroundTransparency = 0.25 | |
| TweenService:Create(container, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { | |
| Position = UDim2.new(0, 0, 0, 0), | |
| BackgroundTransparency = 0.1 | |
| }):Play() | |
| task.delay(dur, function() | |
| if container and container.Parent then | |
| local t = TweenService:Create(container, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { | |
| Position = UDim2.new(0, 16, 0, 0), | |
| BackgroundTransparency = 1 | |
| }) | |
| t:Play() | |
| t.Completed:Wait() | |
| if container then container:Destroy() end | |
| end | |
| end) | |
| end | |
| function Ray:CreateWindow(config) | |
| -- config keys are accepted but most are cosmetic here | |
| local Window = {} | |
| local Main = Instance.new("Frame") | |
| Main.Name = "RayfieldWindow" | |
| Main.Size = UDim2.new(0, 720, 0, 460) | |
| Main.Position = UDim2.new(0.5, -360, 0.5, -230) | |
| Main.BackgroundColor3 = Color3.fromRGB(20,20,20) | |
| Main.BorderSizePixel = 0 | |
| Main.Parent = ScreenGui | |
| Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 12) | |
| local Shadow = Instance.new("ImageLabel") | |
| Shadow.Name = "Shadow" | |
| Shadow.BackgroundTransparency = 1 | |
| Shadow.Image = "rbxassetid://5028857084" | |
| Shadow.ImageTransparency = 0.55 | |
| Shadow.ScaleType = Enum.ScaleType.Slice | |
| Shadow.SliceCenter = Rect.new(24,24,276,276) | |
| Shadow.Size = UDim2.new(1, 50, 1, 50) | |
| Shadow.Position = UDim2.new(0, -25, 0, -25) | |
| Shadow.Parent = Main | |
| local TitleBar = Instance.new("Frame") | |
| TitleBar.Size = UDim2.new(1, 0, 0, 42) | |
| TitleBar.BackgroundColor3 = Color3.fromRGB(26,26,26) | |
| TitleBar.BorderSizePixel = 0 | |
| TitleBar.Parent = Main | |
| Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 12) | |
| local Title = Instance.new("TextLabel") | |
| Title.BackgroundTransparency = 1 | |
| Title.Font = Enum.Font.GothamBold | |
| Title.TextSize = 16 | |
| Title.TextXAlignment = Enum.TextXAlignment.Left | |
| Title.TextColor3 = Color3.fromRGB(255,255,255) | |
| Title.Text = tostring(config.Name or "Rayfield") | |
| Title.Position = UDim2.new(0, 14, 0, 0) | |
| Title.Size = UDim2.new(1, -28, 1, 0) | |
| Title.Parent = TitleBar | |
| makeDraggable(Main, TitleBar) | |
| local Sidebar = Instance.new("Frame") | |
| Sidebar.Name = "Sidebar" | |
| Sidebar.Size = UDim2.new(0, 170, 1, -58) | |
| Sidebar.Position = UDim2.new(0, 12, 0, 50) | |
| Sidebar.BackgroundColor3 = Color3.fromRGB(18,18,18) | |
| Sidebar.BorderSizePixel = 0 | |
| Sidebar.Parent = Main | |
| Instance.new("UICorner", Sidebar).CornerRadius = UDim.new(0, 10) | |
| local SideLayout = Instance.new("UIListLayout", Sidebar) | |
| SideLayout.Padding = UDim.new(0, 6) | |
| SideLayout.SortOrder = Enum.SortOrder.LayoutOrder | |
| local Content = Instance.new("Frame") | |
| Content.Name = "Content" | |
| Content.Size = UDim2.new(1, -194, 1, -58) | |
| Content.Position = UDim2.new(0, 182, 0, 50) | |
| Content.BackgroundColor3 = Color3.fromRGB(25,25,25) | |
| Content.BorderSizePixel = 0 | |
| Content.Parent = Main | |
| Instance.new("UICorner", Content).CornerRadius = UDim.new(0, 10) | |
| local TabsMap = {} -- [button] = page | |
| function Window:CreateTab(tabName, iconAssetId) | |
| local Tab = {} | |
| local TabBtn = Instance.new("TextButton") | |
| TabBtn.Size = UDim2.new(1, -12, 0, 38) | |
| TabBtn.BackgroundColor3 = Color3.fromRGB(34,34,34) | |
| TabBtn.Text = " " .. tostring(tabName or "Tab") | |
| TabBtn.TextColor3 = Color3.fromRGB(255,255,255) | |
| TabBtn.TextXAlignment = Enum.TextXAlignment.Left | |
| TabBtn.Font = Enum.Font.Gotham | |
| TabBtn.TextSize = 14 | |
| TabBtn.AutoButtonColor = false | |
| TabBtn.Parent = Sidebar | |
| Instance.new("UICorner", TabBtn).CornerRadius = UDim.new(0, 8) | |
| local Hover = Instance.new("Frame") | |
| Hover.Size = UDim2.new(0, 3, 1, 0) | |
| Hover.Position = UDim2.new(0, 0, 0, 0) | |
| Hover.BackgroundColor3 = Color3.fromRGB(0, 170, 255) | |
| Hover.BackgroundTransparency = 1 | |
| Hover.Parent = TabBtn | |
| Instance.new("UICorner", Hover).CornerRadius = UDim.new(0, 2) | |
| if iconAssetId then | |
| local Icon = Instance.new("ImageLabel") | |
| Icon.BackgroundTransparency = 1 | |
| Icon.Size = UDim2.new(0, 18, 0, 18) | |
| Icon.Position = UDim2.new(0, 10, 0.5, -9) | |
| Icon.Image = ("rbxassetid://%s"):format(tostring(iconAssetId)) | |
| Icon.Parent = TabBtn | |
| end | |
| local Page = Instance.new("ScrollingFrame") | |
| Page.Size = UDim2.new(1, -16, 1, -16) | |
| Page.Position = UDim2.new(0, 8, 0, 8) | |
| Page.BackgroundTransparency = 1 | |
| Page.ScrollBarThickness = 6 | |
| Page.CanvasSize = UDim2.new(0, 0, 0, 0) | |
| Page.Visible = false | |
| Page.Parent = Content | |
| local PageLayout = Instance.new("UIListLayout", Page) | |
| PageLayout.Padding = UDim.new(0, 8) | |
| PageLayout.SortOrder = Enum.SortOrder.LayoutOrder | |
| PageLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() | |
| Page.CanvasSize = UDim2.new(0, 0, 0, PageLayout.AbsoluteContentSize.Y + 12) | |
| end) | |
| local function setActive(active) | |
| TweenService:Create(Hover, TweenInfo.new(0.2), {BackgroundTransparency = active and 0 or 1}):Play() | |
| Page.Visible = active | |
| end | |
| TabBtn.MouseEnter:Connect(function() | |
| if not Page.Visible then | |
| TweenService:Create(TabBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(40,40,40)}):Play() | |
| end | |
| end) | |
| TabBtn.MouseLeave:Connect(function() | |
| if not Page.Visible then | |
| TweenService:Create(TabBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(34,34,34)}):Play() | |
| end | |
| end) | |
| TabBtn.MouseButton1Click:Connect(function() | |
| for btn, pg in pairs(TabsMap) do | |
| TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(34,34,34)}):Play() | |
| pg.Visible = false | |
| btn:FindFirstChild("Frame").BackgroundTransparency = 1 | |
| end | |
| TweenService:Create(TabBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(48,48,48)}):Play() | |
| setActive(true) | |
| end) | |
| -- first tab auto-select | |
| if #Sidebar:GetChildren() <= 3 then | |
| TabBtn.BackgroundColor3 = Color3.fromRGB(48,48,48) | |
| setActive(true) | |
| end | |
| TabsMap[TabBtn] = Page | |
| -- controls | |
| function Tab:CreateButton(opts) | |
| local Name = tostring(opts.Name or "Button") | |
| local Callback = opts.Callback or function() end | |
| local Btn = Instance.new("TextButton") | |
| Btn.Size = UDim2.new(1, -8, 0, 38) | |
| Btn.BackgroundColor3 = Color3.fromRGB(40,40,40) | |
| Btn.AutoButtonColor = false | |
| Btn.Text = Name | |
| Btn.TextColor3 = Color3.fromRGB(255,255,255) | |
| Btn.Font = Enum.Font.Gotham | |
| Btn.TextSize = 14 | |
| Btn.Parent = Page | |
| Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 8) | |
| local st = Instance.new("UIStroke", Btn) st.Color = Color3.fromRGB(55,55,55) | |
| Btn.MouseButton1Click:Connect(function() | |
| TweenService:Create(Btn, TweenInfo.new(0.08), {BackgroundColor3 = Color3.fromRGB(52,52,52)}):Play() | |
| task.wait(0.09) | |
| TweenService:Create(Btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(40,40,40)}):Play() | |
| Callback() | |
| end) | |
| end | |
| function Tab:CreateToggle(opts) | |
| local Name = tostring(opts.Name or "Toggle") | |
| local State = (opts.CurrentValue == true) | |
| local Callback = opts.Callback or function(_) end | |
| local Row = Instance.new("Frame") | |
| Row.Size = UDim2.new(1, -8, 0, 38) | |
| Row.BackgroundColor3 = Color3.fromRGB(40,40,40) | |
| Row.Parent = Page | |
| Instance.new("UICorner", Row).CornerRadius = UDim.new(0, 8) | |
| local st = Instance.new("UIStroke", Row) st.Color = Color3.fromRGB(55,55,55) | |
| local Label = Instance.new("TextLabel") | |
| Label.BackgroundTransparency = 1 | |
| Label.Font = Enum.Font.Gotham | |
| Label.TextSize = 14 | |
| Label.TextXAlignment = Enum.TextXAlignment.Left | |
| Label.TextColor3 = Color3.fromRGB(255,255,255) | |
| Label.Text = Name | |
| Label.Position = UDim2.new(0, 12, 0, 0) | |
| Label.Size = UDim2.new(1, -80, 1, 0) | |
| Label.Parent = Row | |
| local Knob = Instance.new("TextButton") | |
| Knob.Size = UDim2.new(0, 46, 0, 22) | |
| Knob.Position = UDim2.new(1, -58, 0.5, -11) | |
| Knob.BackgroundColor3 = State and Color3.fromRGB(0,170,100) or Color3.fromRGB(85,85,85) | |
| Knob.Text = "" | |
| Knob.AutoButtonColor = false | |
| Knob.Parent = Row | |
| Instance.new("UICorner", Knob).CornerRadius = UDim.new(1, 0) | |
| local Dot = Instance.new("Frame") | |
| Dot.Size = UDim2.new(0, 18, 0, 18) | |
| Dot.Position = State and UDim2.new(1, -20, 0.5, -9) or UDim2.new(0, 2, 0.5, -9) | |
| Dot.BackgroundColor3 = Color3.fromRGB(240,240,240) | |
| Dot.Parent = Knob | |
| Instance.new("UICorner", Dot).CornerRadius = UDim.new(1, 0) | |
| local function set(val) | |
| State = val and true or false | |
| TweenService:Create(Knob, TweenInfo.new(0.12), {BackgroundColor3 = State and Color3.fromRGB(0,170,100) or Color3.fromRGB(85,85,85)}):Play() | |
| TweenService:Create(Dot, TweenInfo.new(0.12), {Position = State and UDim2.new(1, -20, 0.5, -9) or UDim2.new(0, 2, 0.5, -9)}):Play() | |
| Callback(State) | |
| end | |
| Knob.MouseButton1Click:Connect(function() set(not State) end) | |
| return { | |
| Set = set, | |
| Get = function() return State end, | |
| Object = Row | |
| } | |
| end | |
| function Tab:CreateSlider(opts) | |
| local Name = tostring(opts.Name or "Slider") | |
| local Range = opts.Range or {0, 100} | |
| local min, max = tonumber(Range[1]) or 0, tonumber(Range[2]) or 100 | |
| if min > max then min, max = max, min end | |
| local Increment = tonumber(opts.Increment) or 1 | |
| local Suffix = tostring(opts.Suffix or "") | |
| local Value = clamp(tonumber(opts.CurrentValue) or min, min, max) | |
| Value = stepTo(Value, Increment) | |
| local Callback = opts.Callback or function(_) end | |
| local Row = Instance.new("Frame") | |
| Row.Size = UDim2.new(1, -8, 0, 56) | |
| Row.BackgroundColor3 = Color3.fromRGB(40,40,40) | |
| Row.Parent = Page | |
| Instance.new("UICorner", Row).CornerRadius = UDim.new(0, 8) | |
| local st = Instance.new("UIStroke", Row) st.Color = Color3.fromRGB(55,55,55) | |
| local Label = Instance.new("TextLabel") | |
| Label.BackgroundTransparency = 1 | |
| Label.Font = Enum.Font.Gotham | |
| Label.TextSize = 14 | |
| Label.TextXAlignment = Enum.TextXAlignment.Left | |
| Label.TextColor3 = Color3.fromRGB(255,255,255) | |
| Label.Text = ("%s"):format(Name) | |
| Label.Position = UDim2.new(0, 12, 0, 6) | |
| Label.Size = UDim2.new(1, -130, 0, 20) | |
| Label.Parent = Row | |
| local ValText = Instance.new("TextLabel") | |
| ValText.BackgroundTransparency = 1 | |
| ValText.Font = Enum.Font.Gotham | |
| ValText.TextSize = 14 | |
| ValText.TextXAlignment = Enum.TextXAlignment.Right | |
| ValText.TextColor3 = Color3.fromRGB(200,200,200) | |
| ValText.Text = ("%s %s"):format(Value, Suffix) | |
| ValText.Position = UDim2.new(1, -120, 0, 6) | |
| ValText.Size = UDim2.new(0, 110, 0, 20) | |
| ValText.Parent = Row | |
| local Bar = Instance.new("Frame") | |
| Bar.Size = UDim2.new(1, -24, 0, 10) | |
| Bar.Position = UDim2.new(0, 12, 0, 36) | |
| Bar.BackgroundColor3 = Color3.fromRGB(70,70,70) | |
| Bar.Parent = Row | |
| Instance.new("UICorner", Bar).CornerRadius = UDim.new(1, 0) | |
| local Fill = Instance.new("Frame") | |
| Fill.Size = UDim2.new((Value - min)/(max - min), 0, 1, 0) | |
| Fill.BackgroundColor3 = Color3.fromRGB(0,170,255) | |
| Fill.Parent = Bar | |
| Instance.new("UICorner", Fill).CornerRadius = UDim.new(1, 0) | |
| local dragging = false | |
| local function setFromX(x) | |
| local percent = clamp((x - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, 0, 1) | |
| local v = min + (max - min) * percent | |
| v = clamp(stepTo(v, Increment), min, max) | |
| Value = v | |
| Fill.Size = UDim2.new((Value - min)/(max - min), 0, 1, 0) | |
| ValText.Text = ("%s %s"):format(Value, Suffix) | |
| Callback(Value) | |
| end | |
| Bar.InputBegan:Connect(function(input) | |
| if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
| dragging = true | |
| setFromX(input.Position.X) | |
| end | |
| end) | |
| Bar.InputEnded:Connect(function(input) | |
| if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end | |
| end) | |
| UserInputService.InputChanged:Connect(function(input) | |
| if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then | |
| setFromX(input.Position.X) | |
| end | |
| end) | |
| end | |
| function Tab:CreateInput(opts) | |
| local Name = tostring(opts.Name or "Input") | |
| local Placeholder = tostring(opts.PlaceholderText or "") | |
| local RemoveAfter = (opts.RemoveTextAfterFocusLost == true) | |
| local CurrentValue = tostring(opts.CurrentValue or "") | |
| local Callback = opts.Callback or function(_) end | |
| local Row = Instance.new("Frame") | |
| Row.Size = UDim2.new(1, -8, 0, 44) | |
| Row.BackgroundColor3 = Color3.fromRGB(40,40,40) | |
| Row.Parent = Page | |
| Instance.new("UICorner", Row).CornerRadius = UDim.new(0, 8) | |
| local st = Instance.new("UIStroke", Row) st.Color = Color3.fromRGB(55,55,55) | |
| local Label = Instance.new("TextLabel") | |
| Label.BackgroundTransparency = 1 | |
| Label.Font = Enum.Font.Gotham | |
| Label.TextSize = 14 | |
| Label.TextXAlignment = Enum.TextXAlignment.Left | |
| Label.TextColor3 = Color3.fromRGB(255,255,255) | |
| Label.Text = Name | |
| Label.Position = UDim2.new(0, 12, 0, 0) | |
| Label.Size = UDim2.new(0.5, -12, 1, 0) | |
| Label.Parent = Row | |
| local Box = Instance.new("TextBox") | |
| Box.BackgroundColor3 = Color3.fromRGB(30,30,30) | |
| Box.TextColor3 = Color3.fromRGB(255,255,255) | |
| Box.PlaceholderColor3 = Color3.fromRGB(175,175,175) | |
| Box.Font = Enum.Font.Gotham | |
| Box.TextSize = 14 | |
| Box.TextXAlignment = Enum.TextXAlignment.Left | |
| Box.Text = CurrentValue | |
| Box.PlaceholderText = Placeholder | |
| Box.ClearTextOnFocus = false | |
| Box.Size = UDim2.new(0.5, -12, 0, 28) | |
| Box.Position = UDim2.new(0.5, 6, 0.5, -14) | |
| Box.Parent = Row | |
| Instance.new("UICorner", Box).CornerRadius = UDim.new(0, 6) | |
| local st2 = Instance.new("UIStroke", Box) st2.Color = Color3.fromRGB(55,55,55) | |
| Box.FocusLost:Connect(function() | |
| local txt = Box.Text | |
| Callback(txt) | |
| if RemoveAfter then | |
| Box.Text = "" | |
| end | |
| end) | |
| end | |
| return Tab | |
| end | |
| return Window | |
| end | |
| return Ray | |
| end)() | |
| --[[ ============================================================ | |
| YOUR ORIGINAL SCRIPT (unchanged), but using local Rayfield above | |
| ============================================================ ]] | |
| --[[ | |
| Rayfield script if you are looking at it raw i will find you | |
| anyways this is a offical w112nd watch out for fake versions | |
| ]] | |
| -- local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))() <-- REMOVED | |
| local event = "" | |
| local fling = false | |
| local opt = false | |
| local antiteleport = false | |
| local range = 15 | |
| local partsdipping = false | |
| -- Create the main window | |
| local noclip = false | |
| local speed = 16 | |
| local infjump = false | |
| local fakerun = false | |
| local infjumpv2 = false | |
| local antifling = false | |
| local Window = Rayfield:CreateWindow({ | |
| Name = "W112ND", | |
| LoadingTitle = "Please wait", | |
| LoadingSubtitle = "By windows11_2nd", | |
| ShowText = "W112ND", | |
| ConfigurationSaving = { | |
| Enabled = true, | |
| FolderName = "Exploits", | |
| FileName = "Tools" | |
| }, | |
| Discord = { | |
| Enabled = false, | |
| Invite = "", | |
| RememberJoins = true | |
| }, | |
| KeySystem = false | |
| }) | |
| Rayfield:Notify({ | |
| Title = "Warning", | |
| Content = "This is the only OFFICAL W112ND watch out for fake versions.", | |
| Duration = 4 | |
| }) | |
| -- Create a tab | |
| local Tab = Window:CreateTab("Universial", 4483362458) | |
| local Tab2 = Window:CreateTab("MM2", 4483362458) | |
| local Tab3 = Window:CreateTab("Fred's House", 4483362458) | |
| -- Add a button | |
| Tab:CreateButton({ | |
| Name = "Get all tools", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Message", | |
| Content = "Getting all tools!", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(game:GetDescendants()) do | |
| if v:IsA("Tool") then | |
| v:Clone().Parent = game.Players.LocalPlayer.Backpack | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Teleport to tools (workspace)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Message", | |
| Content = "Getting all tools!", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Tool") then | |
| game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = v.Handle.CFrame | |
| task.wait() | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Teleport to every parts (workspace)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Message", | |
| Content = "Teleporting..", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("BasePart") then | |
| game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = v.CFrame | |
| task.wait() | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Aimbot", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "HUD", | |
| Content = "Setting up aimbot!", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| game.Players.LocalPlayer:GetMouse().Target = player.Character.HumanoidRootPart | |
| task.wait(0.15) | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab2:CreateButton({ | |
| Name = "Read Users (only after round started)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up", | |
| Content = "Fetching for people", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| for i,v in pairs(player.Backpack:GetChildren()) do | |
| if v:IsA("Tool") then | |
| if v.Name ~= "Emotes" then | |
| if v.Name ~= "AAAAA" then | |
| local hl = Instance.new("Highlight") | |
| local bb = Instance.new("BillboardGui") | |
| local tt = Instance.new("TextLabel") | |
| hl.FillColor = Color3.new(1, 1, 1) | |
| hl.OutlineColor = Color3.new(1, 1, 1) | |
| hl.Parent = player.Character | |
| bb.Size = UDim2.new(0,100,0,25) | |
| tt.Text = v.Name | |
| bb.AlwaysOnTop = true | |
| tt.BackgroundTransparency = 1 | |
| tt.TextColor3 = Color3.new(1, 1, 1) | |
| tt.TextScaled = true | |
| tt.Font = Enum.Font.BuilderSansBold | |
| bb.StudsOffsetWorldSpace = Vector3.new(0,4,0) | |
| tt.Parent = bb | |
| bb.Enabled = true | |
| tt.TextTransparency = 0 | |
| tt.Visible = true | |
| tt.Size = UDim2.new(1,0,1,0) | |
| bb.Parent = player.Character | |
| if v.Name == "Knife" then | |
| hl.FillColor = Color3.new(1, 0, 0) | |
| end | |
| if v.Name == "Gun" then | |
| hl.FillColor = Color3.new(0, 0.482353, 1) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Fetch for Users", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up!", | |
| Content = "Fetching for players...", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| local hl = Instance.new("Highlight") | |
| hl.FillColor = Color3.new(1, 1, 1) | |
| hl.OutlineColor = Color3.new(1, 1, 1) | |
| hl.Parent = player.Character | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Fetch for Users (Via username)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up!", | |
| Content = "Fetching for players by username...", | |
| Duration = 4 | |
| }) | |
| for i,part in pairs(workspace:GetDescendants()) do | |
| if part:IsA("Model") then | |
| local player = game.Players | |
| for i,v in pairs(player:GetDescendants()) do | |
| if v:IsA("Player") then | |
| if v.Name == part.Name then | |
| local hl = Instance.new("Highlight") | |
| hl.FillColor = Color3.new(1, 1, 1) | |
| hl.OutlineColor = Color3.new(1, 1, 1) | |
| hl.Parent = v.Character | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab2:CreateButton({ | |
| Name = "Go to Sheriff (only after round started)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up", | |
| Content = "Fetching for sheriff", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| for i,v in pairs(player.Backpack:GetChildren()) do | |
| if v:IsA("Tool") and v.Name == "Gun" then | |
| game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab2:CreateButton({ | |
| Name = "Go to Murderer (only after round started)", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up", | |
| Content = "Fetching for murderer", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| for i,v in pairs(player.Backpack:GetChildren()) do | |
| if v:IsA("Tool") and v.Name == "Knife" then | |
| game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Teleport to everyone", | |
| Callback = function() | |
| Rayfield:Notify({ | |
| Title = "Heads Up!", | |
| Content = "Teleporting To everyone (5ms)!", | |
| Duration = 4 | |
| }) | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("Model") then | |
| local plr = game.Players:GetPlayerFromCharacter(v) | |
| if plr then | |
| game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = plr.Character.HumanoidRootPart.CFrame | |
| task.wait(0.5) | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| Tab:CreateSlider({ | |
| Name = "Speed", | |
| Range = {1, 100}, | |
| Increment = 1, | |
| Suffix = "USpeed", | |
| CurrentValue = 16, | |
| Flag = "UserSpeed", | |
| Callback = function(Value) | |
| game.Players.LocalPlayer.Character:WaitForChild("Humanoid").WalkSpeed = Value | |
| speed = Value | |
| end, | |
| }) | |
| Tab:CreateInput({ | |
| Name = "RemoteEvents", | |
| CurrentValue = "", | |
| PlaceholderText = "Fire all remote event text", | |
| RemoveTextAfterFocusLost = false, | |
| Flag = "FARET", | |
| Callback = function(Text) | |
| for i,v in pairs(game.ReplicatedStorage:GetDescendants()) do | |
| if v:IsA("RemoteEvent") then | |
| v:FireServer(Text) | |
| end | |
| end | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Noclip", | |
| CurrentValue = false, | |
| Flag = "Nocliping", | |
| Callback = function(Value) | |
| noclip = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Xray", | |
| CurrentValue = false, | |
| Flag = "Xray", | |
| Callback = function(Value) | |
| if Value == true then | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("BasePart") then | |
| v.LocalTransparencyModifier = 0.5 | |
| end | |
| end | |
| else | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("BasePart") then | |
| v.LocalTransparencyModifier = 0 | |
| end | |
| end | |
| end | |
| end, | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Remove Client Kick Scripts", | |
| Callback = function() | |
| for i,v in pairs(workspace:GetDescendants()) do | |
| if v:IsA("LocalScript") then | |
| if v.Source and typeof(v.Source) == "string" and v.Source:lower():find("kick") then | |
| v:Destroy() | |
| end | |
| end | |
| end | |
| end | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Optimization", | |
| CurrentValue = false, | |
| Flag = "opt", | |
| Callback = function(Value) | |
| opt = Value | |
| end, | |
| }) | |
| Tab:CreateSlider({ | |
| Name = "Render", | |
| Range = {1, 100}, | |
| Increment = 1, | |
| Suffix = "rendering", | |
| CurrentValue = 15, | |
| Flag = "renderopt", | |
| Callback = function(Value) | |
| range = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Walkfling", | |
| CurrentValue = false, | |
| Flag = "WF", | |
| Callback = function(Value) | |
| fling = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Fake Run", | |
| CurrentValue = false, | |
| Flag = "FR", | |
| Callback = function(Value) | |
| fakerun = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Inf Jump", | |
| CurrentValue = false, | |
| Flag = "IJ", | |
| Callback = function(Value) | |
| infjump = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "(Stable) Inf Jump", | |
| CurrentValue = false, | |
| Flag = "IJ", | |
| Callback = function(Value) | |
| infjumpv2 = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Anti-Teleport (best for anticheat games)", | |
| CurrentValue = false, | |
| Flag = "ANTITeleport", | |
| Callback = function(Value) | |
| antiteleport = Value | |
| end, | |
| }) | |
| local Toggle = Tab:CreateToggle({ | |
| Name = "Anti-Fling V2", | |
| CurrentValue = false, | |
| Flag = "AntiFling", | |
| Callback = function(Value) | |
| antifling = Value | |
| end, | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Dipping parts", | |
| Callback = function() | |
| partsdipping = true | |
| end | |
| }) | |
| local Toggle = Tab3:CreateToggle({ | |
| Name = "Inf Stamina", | |
| CurrentValue = false, | |
| Flag = "infstamina", | |
| Callback = function(Value) | |
| if Value == true then | |
| if game.Players.LocalPlayer.Character:FindFirstChild("Advantage") then | |
| game.Players.LocalPlayer.Character:FindFirstChild("Advantage").Value = math.huge | |
| end | |
| else | |
| if game.Players.LocalPlayer.Character:FindFirstChild("Advantage") then | |
| game.Players.LocalPlayer.Character:FindFirstChild("Advantage").Value = 1 | |
| end | |
| end | |
| end, | |
| }) | |
| Tab:CreateButton({ | |
| Name = "Spawn F3X", | |
| Callback = function() | |
| local obj = game:GetObjects("rbxassetid://142785488")[1] -- F3X asset | |
| obj.Parent = game.Players.LocalPlayer.Backpack | |
| for _,desc in ipairs(obj:GetDescendants()) do | |
| if desc:IsA("Script") then | |
| desc:Destroy() -- remove server-only scripts | |
| end | |
| end | |
| end | |
| }) | |
| function render() | |
| if noclip == true then | |
| for i,v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do | |
| if v:IsA("BasePart") then | |
| v.CanCollide = false | |
| v.LocalTransparencyModifier = 0.5 | |
| end | |
| end | |
| else | |
| for i,v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do | |
| if v:IsA("BasePart") then | |
| v.LocalTransparencyModifier = 0 | |
| end | |
| end | |
| end | |
| game.Players.LocalPlayer.Character:WaitForChild("Humanoid").WalkSpeed = speed | |
| end | |
| game:GetService("RunService").RenderStepped:Connect(render) | |
| game:GetService("RunService").Heartbeat:Connect(render) | |
| game:GetService("RunService").PreRender:Connect(render) | |
| game:GetService("RunService").PreAnimation:Connect(render) | |
| game:GetService("RunService").PreSimulation:Connect(render) | |
| game:GetService("RunService").PostSimulation:Connect(render) | |
| game:GetService("RunService").Stepped:Connect(render) | |
| function antiteleportation() | |
| local player = game.Players.LocalPlayer | |
| local char = player.Character or player.CharacterAdded:Wait() | |
| local hrp = char:WaitForChild("HumanoidRootPart") | |
| local humanoid = char:WaitForChild("Humanoid") | |
| local lastPos = hrp.Position | |
| while task.wait() do | |
| if not antiteleport then | |
| break -- exit the loop if toggle is false | |
| end | |
| local distance = (hrp.Position - lastPos).Magnitude | |
| if distance > 5 then -- detect large teleport | |
| hrp.CFrame = CFrame.new(lastPos) | |
| hrp.Anchored = false | |
| end | |
| lastPos = hrp.Position | |
| end | |
| end | |
| game:GetService("RunService").RenderStepped:Connect(antiteleportation) | |
| game:GetService("RunService").Heartbeat:Connect(antiteleportation) | |
| game:GetService("RunService").PreRender:Connect(antiteleportation) | |
| game:GetService("RunService").PreAnimation:Connect(antiteleportation) | |
| game:GetService("RunService").PreSimulation:Connect(antiteleportation) | |
| game:GetService("RunService").PostSimulation:Connect(antiteleportation) | |
| game:GetService("RunService").Stepped:Connect(antiteleportation) | |
| -- LocalScript (e.g., StarterPlayerScripts) | |
| local Players = game:GetService("Players") | |
| local RunService = game:GetService("RunService") | |
| local UserInputService = game:GetService("UserInputService") | |
| local player = game.Players.LocalPlayer | |
| local character = player.Character or player.CharacterAdded:Wait() | |
| local hrp = character:WaitForChild("HumanoidRootPart") | |
| local waiting = false | |
| local function InfJumpRender() | |
| local player = game.Players.LocalPlayer | |
| local character = player.Character or player.CharacterAdded:Wait() | |
| local humanoid = character:WaitForChild("Humanoid") | |
| local rootPart = character:WaitForChild("HumanoidRootPart") | |
| if infjump and not waiting and humanoid.Jump then | |
| -- preserve current horizontal speed, only change Y | |
| local currentVel = rootPart.AssemblyLinearVelocity | |
| humanoid.UseJumpPower = true | |
| rootPart.AssemblyLinearVelocity = Vector3.new( | |
| currentVel.X, | |
| humanoid.JumpPower, | |
| currentVel.Z | |
| ) | |
| -- wait until jump key is released | |
| waiting = true | |
| repeat task.wait() until not humanoid.Jump | |
| waiting = false | |
| end | |
| end | |
| local waiting2 = false | |
| local function RunRenderFakeRun() | |
| local humanoid = game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart") ::BasePart | |
| if fakerun == true then | |
| if waiting2 == false then | |
| if humanoid then | |
| humanoid.AssemblyLinearVelocity = Vector3.new(0,0,50) | |
| humanoid.Anchored = true | |
| else | |
| humanoid.AssemblyLinearVelocity = Vector3.new(0,0,0) | |
| humanoid.Anchored = false | |
| repeat | |
| waiting2 = true | |
| task.wait() | |
| until fakerun == true | |
| waiting2 = false | |
| end | |
| end | |
| end | |
| end | |
| local running = false | |
| local function start() | |
| if running == true then | |
| running = true | |
| repeat | |
| for i,v in pairs(workspace:GetChildren()) do | |
| if v:IsA("Model") then | |
| local player = game.Players:GetPlayerFromCharacter(v) | |
| if player then | |
| local char = player.Character:: Model | |
| local root = char:WaitForChild("HumanoidRootPart"):: BasePart | |
| local applyvelc = 1000000:: number | |
| root.AssemblyLinearVelocity = Vector3.new(0,applyvelc,0) | |
| end | |
| end | |
| end | |
| task.wait() | |
| until fling == false | |
| running = false | |
| end | |
| end | |
| local function antiflingrun() | |
| local player = game.Players.LocalPlayer | |
| local char = player.Character | |
| local root = char:WaitForChild("HumanoidRootPart"):: BasePart | |
| if antifling == true then | |
| root.AssemblyLinearVelocity = Vector3.new(0,0,0) | |
| end | |
| end | |
| RunService.RenderStepped:Connect(antiflingrun) | |
| local function infreader() | |
| local UserInputService = game:GetService("UserInputService") | |
| local player = game.Players.LocalPlayer | |
| local char = player.Character or player.CharacterAdded:Wait() | |
| local humanoid = char:WaitForChild("Humanoid") | |
| UserInputService.JumpRequest:Connect(function() | |
| if infjumpv2 then | |
| humanoid:ChangeState(Enum.HumanoidStateType.Jumping) | |
| end | |
| end) | |
| end | |
| infreader() | |
| RunService.RenderStepped:Connect(start) | |
| RunService.RenderStepped:Connect(InfJumpRender) | |
| RunService.RenderStepped:Connect(RunRenderFakeRun) | |
| game:GetService("RunService").RenderStepped:Connect(function() | |
| if partsdipping == true then | |
| for i,v in pairs(workspace:GetChildren()) do | |
| if not game.Players:GetPlayerFromCharacter(v.Parent) then | |
| if v:IsA("BasePart") then | |
| local range = 10 | |
| local pos = game.Players.LocalPlayer:DistanceFromCharacter(Vector3.new(v.Position.X,4,v.Position.Z)) | |
| if pos > range then | |
| pos = range | |
| end | |
| v.Size = Vector3.new(v.Size.X,pos,v.Size.Z) | |
| end | |
| end | |
| end | |
| end | |
| end) | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment