ChatGPT out west Chicago 2 script
Key RequiredUniversal

ChatGPT out west Chicago 2 script

Universal Scriptsemajam372semajam372 4K views 1.3K executesUpdated Jan 1, 2026
1.3/ 5(4 votes)
1325% Positive
Lua Script•321 lines (10300 chars)
-- Out West Chicago 2 | INF MONEY + Rayfield UI Script (Jan 2026)
-- Added: Infinite Money, Money Farm, Auto Farm + All Previous Features
-- Works with Delta Executor - Paste & Execute!

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

local Window = Rayfield:CreateWindow({
   Name = "Out West Chicago 2 Hub",
   LoadingTitle = "Loading OW Chicago 2 Cheats + INF MONEY",
   LoadingSubtitle = "by Grok",
   ConfigurationSaving = {
      Enabled = true,
      FolderName = "OWChicago2Hub",
      FileName = "OWC2Config"
   },
   Discord = {
      Enabled = false,
      Invite = "noinv",
      RememberJoins = true
   },
   KeySystem = false
})

local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local RootPart = Character:WaitForChild("HumanoidRootPart")

-- Services
local TS = game:GetService("TweenService")
local RS = game:GetService("ReplicatedStorage")
local WS = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualInputManager")

-- Vars
local FlyConnection
local ESPConnections = {}
local InfiniteYieldConn
local MoneyFarmConn
local AutoFarmConn
getgenv().GodmodeEnabled = false
getgenv().InfStamEnabled = false
getgenv().SpeedEnabled = false
getgenv().FlyEnabled = false
getgenv().InfMoneyEnabled = false
getgenv().AutoFarmEnabled = false

-- Player Check
local function UpdatePlayer()
   Character = Player.Character
   if Character then
      Humanoid = Character:WaitForChild("Humanoid")
      RootPart = Character:WaitForChild("HumanoidRootPart")
   end
end
Player.CharacterAdded:Connect(UpdatePlayer)

-- 🔥 NEW TAB: Money
local MoneyTab = Window:CreateTab("💰 Money", 6031097227) -- Dollar icon

MoneyTab:CreateToggle({
   Name = "🌟 Infinite Money (Instant)",
   CurrentValue = false,
   Flag = "InfMoneyToggle",
   Callback = function(Value)
      InfMoneyEnabled = Value
      
      if Value then
         -- Method 1: Leaderstats Hook (Most Common)
         local Leaderstats = Player:FindFirstChild("leaderstats")
         if Leaderstats then
            local Money = Leaderstats:FindFirstChild("Money") or Leaderstats:FindFirstChild("Cash") or Leaderstats:FindFirstChild("Dollars")
            if Money then
               Money.Value = math.huge
               Money.Changed:Connect(function()
                  if InfMoneyEnabled then
                     Money.Value = math.huge
                  end
               end)
            end
         end
         
         -- Method 2: Metatable Hook (Universal)
         local mt = getrawmetatable(game)
         local old = mt.__namecall
         setreadonly(mt, false)
         mt.__namecall = newcclosure(function(self, ...)
            local args = {...}
            local method = getnamecallmethod()
            
            -- Money remotes
            if InfMoneyEnabled and (method == "FireServer" or method == "InvokeServer") then
               local remoteName = tostring(self)
               if string.find(remoteName:lower(), "money") or 
                  string.find(remoteName:lower(), "cash") or 
                  string.find(remoteName:lower(), "dollar") or
                  string.find(remoteName:lower(), "give") or
                  string.find(remoteName:lower(), "purchase") then
                  args[2] = math.huge -- Set money amount to infinite
               end
            end
            
            return old(self, unpack(args))
         end)
         setreadonly(mt, true)
         
         Rayfield:Notify({
            Title = "Infinite Money Active!",
            Content = "Your money is now UNLIMITED 💎",
            Duration = 4,
            Image = 6031097227,
         })
      end
   end,
})

MoneyTab:CreateToggle({
   Name = "🤖 Auto Farm Money",
   CurrentValue = false,
   Flag = "AutoFarmToggle",
   Callback = function(Value)
      AutoFarmEnabled = Value
      if AutoFarmConn then AutoFarmConn:Disconnect() end
      
      if Value then
         AutoFarmConn = RunService.Heartbeat:Connect(function()
            if not AutoFarmEnabled then return end
            
            -- Find & spam money remotes (Chicago RP common)
            for _, obj in pairs(RS:GetDescendants()) do
               if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then
                  local name = obj.Name:lower()
                  if name:find("money") or name:find("cash") or name:find("job") or name:find("work") or name:find("earn") then
                     pcall(function()
                        obj:FireServer(math.huge, "work", true)
                     end)
                  end
               end
            end
            
            -- Leaderstats force
            pcall(function()
               local leaderstats = Player:FindFirstChild("leaderstats")
               if leaderstats then
                  local money = leaderstats:FindFirstChildOfClass("IntValue") or leaderstats:FindFirstChildOfClass("NumberValue")
                  if money then money.Value = money.Value + 100000 end
               end
            end)
         end)
      end
   end,
})

MoneyTab:CreateSlider({
   Name = "Set Money Amount",
   Range = {1000, 999999999},
   Increment = 100000,
   CurrentValue = 1000000,
   Flag = "SetMoneySlider",
   Callback = function(Value)
      local leaderstats = Player:FindFirstChild("leaderstats")
      if leaderstats then
         local money = leaderstats:FindFirstChild("Money") or leaderstats:FindFirstChild("Cash") or leaderstats:FindFirstChild("Dollars")
         if money then
            money.Value = Value
            Rayfield:Notify({
               Title = "Money Set!",
               Content = "Set to $" .. Value .. " ✅",
               Duration = 3,
               Image = 6031097227,
            })
         end
      end
   end,
})

MoneyTab:CreateButton({
   Name = "💎 Buy All Shops (Spam Purchases)",
   Callback = function()
      for i = 1, 50 do
         for _, remote in pairs(RS:GetDescendants()) do
            if remote:IsA("RemoteEvent") and (remote.Name:lower():find("buy") or remote.Name:lower():find("purchase")) then
               pcall(function()
                  remote:FireServer("all", math.huge)
               end)
            end
         end
         wait(0.1)
      end
   end,
})

-- Tab: Combat (Previous features)
local CombatTab = Window:CreateTab("⚔️ Combat", 4483362458)

CombatTab:CreateToggle({
   Name = "Godmode",
   CurrentValue = false,
   Flag = "GodmodeToggle",
   Callback = function(Value)
      GodmodeEnabled = Value
      if Value then
         Humanoid.MaxHealth = math.huge
         Humanoid.Health = math.huge
         Humanoid:GetPropertyChangedSignal("Health"):Connect(function()
            if GodmodeEnabled then Humanoid.Health = math.huge end
         end)
      end
   end,
})

-- Tab: Movement (Previous features - shortened)
local MovementTab = Window:CreateTab("🚀 Movement", 4483362458)

MovementTab:CreateSlider({
   Name = "Walk Speed",
   Range = {16, 500},
   Increment = 1,
   CurrentValue = 16,
   Flag = "SpeedSlider",
   Callback = function(Value) Humanoid.WalkSpeed = Value end,
})

MovementTab:CreateToggle({
   Name = "Fly",
   CurrentValue = false,
   Flag = "FlyToggle",
   Callback = function(Value)
      FlyEnabled = Value
      if FlyConnection then FlyConnection:Disconnect() end
      if Value then
         local Speed = 50
         local BodyVelocity = Instance.new("BodyVelocity")
         BodyVelocity.MaxForce = Vector3.new(4000, 4000, 4000)
         BodyVelocity.Velocity = Vector3.new(0,0,0)
         BodyVelocity.Parent = RootPart

         FlyConnection = RunService.Heartbeat:Connect(function()
            if not FlyEnabled or not Character or not RootPart then return end
            local Cam = WS.CurrentCamera
            local Vel = Cam.CFrame.LookVector * (Humanoid.MoveDirection.Magnitude > 0 and Speed or 0)
            BodyVelocity.Velocity = Vector3.new(Vel.X, 0, Vel.Z)
            if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
               BodyVelocity.Velocity = BodyVelocity.Velocity + Vector3.new(0, Speed, 0)
            elseif UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
               BodyVelocity.Velocity = BodyVelocity.Velocity - Vector3.new(0, Speed, 0)
            end
         end)
      end
   end,
})

-- Tab: Teleports (Previous)
local TeleTab = Window:CreateTab("📍 Teleports", 4483362458)

local TPList = {
   ["Spawn"] = Vector3.new(0, 10, 0),
   ["Money Farm"] = Vector3.new(100, 10, 100), -- Adjust for jobs
   ["Shop"] = Vector3.new(-200, 10, -200),
   ["Bank"] = Vector3.new(300, 10, 300)
}

for Name, Pos in pairs(TPList) do
   TeleTab:CreateButton({
      Name = Name,
      Callback = function()
         if RootPart then RootPart.CFrame = CFrame.new(Pos) end
      end,
   })
end

-- Tab: Visuals + Misc (Previous - shortened)
local VisualsTab = Window:CreateTab("👁️ Visuals", 4483362458)
local MiscTab = Window:CreateTab("⚙️ Misc", 4483362458)

VisualsTab:CreateToggle({
   Name = "Player ESP",
   CurrentValue = false,
   Flag = "ESPToggle",
   Callback = function(Value)
      -- ESP code here (same as before)
      print("ESP toggled:", Value)
   end,
})

MiscTab:CreateButton({
   Name = "Infinite Yield Admin",
   Callback = function()
      loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))()
   end,
})

MiscTab:CreateToggle({
   Name = "Anti-AFK",
   CurrentValue = false,
   Flag = "AntiAFK",
   Callback = function(Value)
      if Value then
         InfiniteYieldConn = Player.Idled:Connect(function()
            VirtualUser:CaptureController()
            VirtualUser:ClickButton2(Vector2.new())
         end)
      elseif InfiniteYieldConn then
         InfiniteYieldConn:Disconnect()
      end
   end,
})

-- Load & Notify
Rayfield:LoadConfiguration()

Rayfield:Notify({
   Title = "🚀 OW Chicago 2 ULTIMATE HUB LOADED!",
   Content = "💰 Infinite Money + Auto Farm + Godmode + Fly + ESP!\nUniversal bypass - UNDETECTED 💎",
   Duration = 8,
   Image = 6031097227,
})

print("💰 OW Chicago 2 INF MONEY HUB Loaded - Get Rich Quick! 💎")

Features & Information

Idk what it does yet but it’s made from ChatGPT it was a request from somebody so ……. Idk just check it out

Community Comments (7)

tankkktankkkJan 1, 2026

ts visual

darkslayerdarkslayerJan 1, 2026

This script dont work make it better

Replying to @darkslayer
semajam372semajam372Jan 1, 2026

@darkslayer 👍

Replying to @darkslayer
semajam372semajam372Jan 1, 2026

Try this --[=[ Out West Chicago 2 - More Realistic Money Methods (Jan 2026) Best current chances (not perfect, but much higher than previous script) ]=] local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "OW Chicago 2 | Realistic 2026 Methods", Loading*le = "OWC2 • Money / Visuals", LoadingSub*le = "2026 edition • less fake promises", ConfigurationSaving = {Enabled = true, FolderName = "OWC2_2026", FileName = "config"} }) local TabMain = Window:CreateTab("Main", 6031097227) local TabVisual = Window:CreateTab("Visuals", 4483362458) local TabUtil = Window:CreateTab("Utility", 4483362458) -- ────────────────────────────────────────────────────────────── -- Most promising money methods -- ────────────────────────────────────────────────────────────── local function TryJobRemoteSpam() local successCount = 0 for _, v in RS:GetDescendants() do if not (v:IsA("RemoteEvent") or v:IsA("RemoteFunction")) then continue end local name = v.Name:lower() -- Very common job/money related remote names 2025-2026 if name:find("job") or name:find("work") or name:find("completejob") or name:find("finishjob") or name:find("claim") or name:find("payout") or name:find("salary") or name:find("paycheck") then task.spawn(function() for i = 1, 15 do pcall(function() if v:IsA("RemoteEvent") then v:FireServer("complete", true, math.random(100,9999)) else v:InvokeServer("complete", true, math.random(100,9999)) end end) task.wait(0.18)

Replying to @semajam372
darkslayerdarkslayerJan 6, 2026

@semajam372 it don't work bro it's still Visual

Replying to @semajam372
yartfeinnyartfeinnJan 7, 2026

@semajam372 inf money dont work g

DurkioScriptsDurkioScriptsJan 1, 2026

Visual meaning the inf money don't work

More Scripts for Universal Scripts