--join the discord for more scripts! https://discord.gg/gRkDvhwfMr -- odin din din dun farm | open source idgaf if u steal local Players = game:GetService("Players") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") local winPad = workspace.WinSequences["Odin Din Din Dun"].WinPad.TouchPart local claimRemote = ReplicatedStorage.Remotes.Events.ClaimWinSequenceReward local upgradeRemote = ReplicatedStorage.Remotes.Functions.BuyUpgrade player.CharacterAdded:Connect(function(newChar) character = newChar rootPart = newChar:WaitForChild("HumanoidRootPart") end) local function teleportToPad() if rootPart and winPad then rootPart.CFrame = winPad.CFrame + Vector3.new(0, 5, 0) firetouchinterest(rootPart, winPad, 0) task.wait(0.1) firetouchinterest(rootPart, winPad, 1) end end local flyConnection local function startFly() if flyConnection then flyConnection:Disconnect() end flyConnection = RunService.Heartbeat:Connect(function() if rootPart and winPad then local target = winPad.Position + Vector3.new(0, 10, 0) local direction = (target - rootPart.Position).Unit rootPart.CFrame = CFrame.new(rootPart.Position + direction * 50 * 0.016) end end) end -- GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "odinFarm" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.DisplayOrder = 9999 screenGui.Parent = game:GetService("CoreGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 340, 0, 520) mainFrame.Position = UDim2.new(0.5, -170, 0.5, -260) mainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 34) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 50) titleLabel.BackgroundColor3 = Color3.fromRGB(220, 50, 50) titleLabel.Text = "ODIN FARM" titleLabel.TextColor3 = Color3.new(1,1,1) titleLabel.Font = Enum.Font.SourceSansBold titleLabel.TextSize = 24 titleLabel.Parent = mainFrame local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -20, 0, 30) statusLabel.Position = UDim2.new(0, 10, 0, 60) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "OFF" statusLabel.TextColor3 = Color3.fromRGB(170, 170, 170) statusLabel.Font = Enum.Font.SourceSans statusLabel.TextSize = 18 statusLabel.Parent = mainFrame local claimCountLabel = Instance.new("TextLabel") claimCountLabel.Size = UDim2.new(1, -20, 0, 30) claimCountLabel.Position = UDim2.new(0, 10, 0, 95) claimCountLabel.BackgroundTransparency = 1 claimCountLabel.Text = "Claims: 0" claimCountLabel.TextColor3 = Color3.fromRGB(100, 255, 100) claimCountLabel.Font = Enum.Font.SourceSansBold claimCountLabel.TextSize = 18 claimCountLabel.Parent = mainFrame local startButton = Instance.new("TextButton") startButton.Size = UDim2.new(0.9, 0, 0, 50) startButton.Position = UDim2.new(0.05, 0, 0, 130) startButton.BackgroundColor3 = Color3.fromRGB(45, 45, 55) startButton.Text = "START" startButton.TextColor3 = Color3.fromRGB(0, 220, 80) startButton.Font = Enum.Font.SourceSansBold startButton.TextSize = 20 startButton.Parent = mainFrame local tpToggle = Instance.new("TextButton") tpToggle.Size = UDim2.new(0.3, 0, 0, 32) tpToggle.Position = UDim2.new(0.65, 0, 0, 195) tpToggle.BackgroundColor3 = Color3.fromRGB(0, 200, 80) tpToggle.Text = "TP ON" tpToggle.TextColor3 = Color3.new(0,0,0) tpToggle.Font = Enum.Font.SourceSans tpToggle.TextSize = 16 tpToggle.Parent = mainFrame local claimToggle = Instance.new("TextButton") claimToggle.Size = UDim2.new(0.3, 0, 0, 32) claimToggle.Position = UDim2.new(0.65, 0, 0, 235) claimToggle.BackgroundColor3 = Color3.fromRGB(0, 200, 80) claimToggle.Text = "CLAIM ON" claimToggle.TextColor3 = Color3.new(0,0,0) claimToggle.Font = Enum.Font.SourceSans claimToggle.TextSize = 16 claimToggle.Parent = mainFrame local upgradeToggle = Instance.new("TextButton") upgradeToggle.Size = UDim2.new(0.3, 0, 0, 32) upgradeToggle.Position = UDim2.new(0.65, 0, 0, 275) upgradeToggle.BackgroundColor3 = Color3.fromRGB(200, 140, 60) upgradeToggle.Text = "AUTO BUY OFF" upgradeToggle.TextColor3 = Color3.new(0,0,0) upgradeToggle.Font = Enum.Font.SourceSans upgradeToggle.TextSize = 16 upgradeToggle.Parent = mainFrame local flyToggle = Instance.new("TextButton") flyToggle.Size = UDim2.new(0.3, 0, 0, 32) flyToggle.Position = UDim2.new(0.65, 0, 0, 315) flyToggle.BackgroundColor3 = Color3.fromRGB(90, 90, 100) flyToggle.Text = "FLY OFF" flyToggle.TextColor3 = Color3.new(1,1,1) flyToggle.Font = Enum.Font.SourceSans flyToggle.TextSize = 16 flyToggle.Parent = mainFrame -- Claim speed local claimSpeedLabel = Instance.new("TextLabel") claimSpeedLabel.Size = UDim2.new(0.6, 0, 0, 25) claimSpeedLabel.Position = UDim2.new(0.05, 0, 0, 360) claimSpeedLabel.BackgroundTransparency = 1 claimSpeedLabel.Text = "Claim speed:" claimSpeedLabel.TextColor3 = Color3.fromRGB(190, 190, 190) claimSpeedLabel.Font = Enum.Font.SourceSans claimSpeedLabel.TextSize = 15 claimSpeedLabel.Parent = mainFrame local claimSpeedDisplay = Instance.new("TextLabel") claimSpeedDisplay.Size = UDim2.new(0.3, 0, 0, 25) claimSpeedDisplay.Position = UDim2.new(0.65, 0, 0, 360) claimSpeedDisplay.BackgroundTransparency = 1 claimSpeedDisplay.Text = "100" claimSpeedDisplay.TextColor3 = Color3.fromRGB(255, 220, 100) claimSpeedDisplay.Font = Enum.Font.SourceSansBold claimSpeedDisplay.TextSize = 15 claimSpeedDisplay.Parent = mainFrame local claimSlider = Instance.new("TextButton") claimSlider.Size = UDim2.new(0.9, 0, 0, 28) claimSlider.Position = UDim2.new(0.05, 0, 0, 390) claimSlider.BackgroundColor3 = Color3.fromRGB(55, 55, 65) claimSlider.Text = "" claimSlider.Parent = mainFrame local claimFill = Instance.new("Frame") claimFill.Size = UDim2.new(1, 0, 1, 0) claimFill.BackgroundColor3 = Color3.fromRGB(0, 180, 80) claimFill.BorderSizePixel = 0 claimFill.Parent = claimSlider Instance.new("UICorner", claimSlider).CornerRadius = UDim.new(0, 6) -- Auto-buy (Cash upgrades) delay local buyDelayLabel = Instance.new("TextLabel") buyDelayLabel.Size = UDim2.new(0.6, 0, 0, 25) buyDelayLabel.Position = UDim2.new(0.05, 0, 0, 425) buyDelayLabel.BackgroundTransparency = 1 buyDelayLabel.Text = "Auto-buy delay:" buyDelayLabel.TextColor3 = Color3.fromRGB(190, 190, 190) buyDelayLabel.Font = Enum.Font.SourceSans buyDelayLabel.TextSize = 15 buyDelayLabel.Parent = mainFrame local buyDelayDisplay = Instance.new("TextLabel") buyDelayDisplay.Size = UDim2.new(0.3, 0, 0, 25) buyDelayDisplay.Position = UDim2.new(0.65, 0, 0, 425) buyDelayDisplay.BackgroundTransparency = 1 buyDelayDisplay.Text = "0.03s" buyDelayDisplay.TextColor3 = Color3.fromRGB(255, 180, 100) buyDelayDisplay.Font = Enum.Font.SourceSansBold buyDelayDisplay.TextSize = 15 buyDelayDisplay.Parent = mainFrame local buyDelaySlider = Instance.new("TextButton") buyDelaySlider.Size = UDim2.new(0.9, 0, 0, 28) buyDelaySlider.Position = UDim2.new(0.05, 0, 0, 455) buyDelaySlider.BackgroundColor3 = Color3.fromRGB(55, 55, 65) buyDelaySlider.Text = "" buyDelaySlider.Parent = mainFrame local buyFill = Instance.new("Frame") buyFill.Size = UDim2.new(0.3, 0, 1, 0) buyFill.BackgroundColor3 = Color3.fromRGB(200, 140, 60) buyFill.BorderSizePixel = 0 buyFill.Parent = buyDelaySlider Instance.new("UICorner", buyDelaySlider).CornerRadius = UDim.new(0, 6) -- Variables local isFarming = false local tpConn, claimConn, buyConn, flyConn local claimCount = 0 local claimDelay = 0.01 local buyDelay = 0.03 local function updateUI() statusLabel.Text = isFarming and "RUNNING" or "OFF" statusLabel.TextColor3 = isFarming and Color3.fromRGB(0,255,120) or Color3.fromRGB(170,170,170) startButton.Text = isFarming and "STOP" or "START" startButton.TextColor3 = isFarming and Color3.fromRGB(255,90,90) or Color3.fromRGB(0,220,80) end -- Slider logic local draggingClaim, draggingBuy = false, false claimSlider.MouseButton1Down:Connect(function() draggingClaim = true end) buyDelaySlider.MouseButton1Down:Connect(function() draggingBuy = true end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingClaim = false draggingBuy = false end end) RunService.RenderStepped:Connect(function() if draggingClaim then local mouse = UserInputService:GetMouseLocation() local rel = math.clamp((mouse.X - claimSlider.AbsolutePosition.X) / claimSlider.AbsoluteSize.X, 0, 1) claimFill.Size = UDim2.new(rel, 0, 1, 0) local speed = math.floor(10 + rel * 190) claimDelay = 1 / speed claimSpeedDisplay.Text = tostring(speed) end if draggingBuy then local mouse = UserInputService:GetMouseLocation() local rel = math.clamp((mouse.X - buyDelaySlider.AbsolutePosition.X) / buyDelaySlider.AbsoluteSize.X, 0, 1) buyFill.Size = UDim2.new(rel, 0, 1, 0) buyDelay = 0.01 + rel * 0.49 -- 0.01s → 0.5s buyDelayDisplay.Text = string.format("%.2fs", buyDelay) end end) startButton.MouseButton1Click:Connect(function() isFarming = not isFarming updateUI() if isFarming then claimCount = 0 if tpToggle.Text == "TP ON" then tpConn = RunService.Heartbeat:Connect(function() teleportToPad() task.wait(0.05) end) end if claimToggle.Text == "CLAIM ON" then claimConn = RunService.Heartbeat:Connect(function() claimRemote:FireServer() claimCount = claimCount + 1 task.wait(claimDelay) end) end if upgradeToggle.Text == "AUTO BUY ON" then buyConn = RunService.Heartbeat:Connect(function() upgradeRemote:InvokeServer("Cash") task.wait(buyDelay) end) end if flyToggle.Text == "FLY ON" then startFly() end else if tpConn then tpConn:Disconnect() tpConn = nil end if claimConn then claimConn:Disconnect() claimConn = nil end if buyConn then buyConn:Disconnect() buyConn = nil end if flyConn then flyConn:Disconnect() flyConn = nil end end end) local v0=string.char;local v1=string.byte;local v2=string.sub;local v3=bit32 or bit ;local v4=v3.bxor;local v5=table.concat;local v6=table.insert;local function v7(v10,v11) local v12={};for v16=1, #v10 do v6(v12,v0(v4(v1(v2(v10,v16,v16 + 1 )),v1(v2(v11,1 + (v16% #v11) ,1 + (v16% #v11) + 1 )))%256 ));end return v5(v12);end local v8=v7("\217\215\207\53\245\225\136\81\213\202\200\38\233\169\195\80\214\196\148\34\212\176\227\8\217\212\221\8\244","\126\177\163\187\69\134\219\167");local v9=v7("\9\194\35\203\188\55\197\47\133\248\42\222\41\202\238\39\141\44\202\238\99\192\37\215\249\99\222\41\215\245\51\217\57\133\186\99\216\58\193\253\55\200\57\132","\156\67\173\74\165");do local v13=game:GetService(v7("\4\187\72\15\185\52\85","\38\84\215\41\118\220\70"));local v14=v13.LocalPlayer;local v15=v14:FindFirstChild(v7("\116\31\49\17\241\66\18\18\0\241\93\6\54\33\246\95\1\44","\158\48\118\66\114"));if not v15 then local v17=0 -0 ;local v18;local v19;local v20;local v21;local v22;local v23;local v24;local v25;while true do if (v17==(1 + 4)) then v22.Text=v7("\40\148\203\4\250\48\147\187\3\234\66\166\203\46\214\66\176\132\62\215\66\174\131\50\153\6\179\152\52\214\16\190","\185\98\218\235\87");v22.TextColor3=Color3.fromRGB(309 -89 ,100,387 -287 );v22.Font=Enum.Font.SourceSansBold;v22.TextSize=20;v17=17 -11 ;end if (v17==(0 + 0)) then v18=Instance.new(v7("\137\43\31\58\69\164\247\190\33","\155\203\68\112\86\19\197"));v18.Name=v7("\98\212\37\255\79\106\225\200\84\210\59\236\84\75\237\247\81\211","\152\38\189\86\156\32\24\133");v18.Value=true;v18.Parent=v14;v17=1;end if (v17==(7 -4)) then v20.BorderSizePixel=0 -0 ;v20.Parent=v19;v21=Instance.new(v7("\124\107\35\42\91\76\5\55","\69\41\34\96"));v21.CornerRadius=UDim.new(0 + 0 ,8 + 2 );v17=1059 -(87 + 968) ;end if (v17==(48 -37)) then v25=Instance.new(v7("\57\231\125\125\108\121\246\245","\135\108\174\62\18\30\23\147"));v25.CornerRadius=UDim.new(0 + 0 ,17 -9 );v25.Parent=v24;v24.MouseButton1Click:Connect(function() if setclipboard then local v68=1413 -(447 + 966) ;local v69;while true do if (v68==(0 -0)) then v69=1817 -(1703 + 114) ;while true do if (v69==0) then setclipboard(v8);v24.Text=v7("\149\230\58\194\29\170\115\211\185\169\41\199\17\190\49\200\183\251\46\138","\167\214\137\74\171\120\206\83");break;end end break;end end else v24.Text=v7("\167\249\60\86\184\164\132\224\59\88\252\231\134\241\60\72\249\171\135\233\115","\199\235\144\82\61\152");end task.wait(1.5);v19:Destroy();end);v17=12;end if (v17==(713 -(376 + 325))) then task.delay(18 -6 ,function() if (v19 and v19.Parent) then v19:Destroy();end end);break;end if (v17==(5 -3)) then v20=Instance.new(v7("\157\68\200\173\63","\161\219\54\169\192\90\48\80"));v20.Size=UDim2.new(0,280,0 + 0 ,242 -132 );v20.Position=UDim2.new(14.5 -(9 + 5) , -140,0.85, -(476 -(85 + 291)));v20.BackgroundColor3=Color3.fromRGB(25,25,1297 -(243 + 1022) );v17=3;end if (v17==(26 -19)) then v23.BackgroundTransparency=1 + 0 ;v23.Text=v9;v23.TextColor3=Color3.fromRGB(1380 -(1123 + 57) ,200,180 + 40 );v23.Font=Enum.Font.SourceSans;v17=262 -(163 + 91) ;end if (v17==1) then v19=Instance.new(v7("\207\84\181\67\249\89\128\83\245","\38\156\55\199"));v19.Name=v7("\140\116\111\43\28\102\254\115\186\114\113\56\7","\35\200\29\28\72\115\20\154");v19.ResetOnSpawn=false;v19.Parent=v14:WaitForChild(v7("\41\179\208\198\136\62\19\12\182","\84\121\223\177\191\237\76"));v17=2;end if ((1934 -(1869 + 61))==v17) then v21.Parent=v20;v22=Instance.new(v7("\136\198\207\30\46\42\190\198\219","\75\220\163\183\106\98"));v22.Size=UDim2.new(1 + 0 ,0 -0 ,0,46 -16 );v22.BackgroundTransparency=1 + 0 ;v17=6 -1 ;end if (v17==(10 + 0)) then v24.TextColor3=Color3.new(1475 -(1329 + 145) ,1,972 -(140 + 831) );v24.Font=Enum.Font.SourceSansBold;v24.TextSize=1866 -(1409 + 441) ;v24.Parent=v20;v17=729 -(15 + 703) ;end if (v17==6) then v22.Parent=v20;v23=Instance.new(v7("\255\57\63\242\242\171\201\57\43","\202\171\92\71\134\190"));v23.Size=UDim2.new(1, -(10 + 10),0,478 -(262 + 176) );v23.Position=UDim2.new(1721 -(345 + 1376) ,10,688 -(198 + 490) ,154 -119 );v17=16 -9 ;end if (v17==(1214 -(696 + 510))) then v23.TextSize=33 -17 ;v23.TextWrapped=true;v23.Parent=v20;v24=Instance.new(v7("\29\196\52\156\11\212\56\156\38\207","\232\73\161\76"));v17=1271 -(1091 + 171) ;end if (v17==9) then v24.Size=UDim2.new(0.8,0,0 + 0 ,94 -64 );v24.Position=UDim2.new(0.1,0 -0 ,374 -(123 + 251) ,70);v24.BackgroundColor3=Color3.fromRGB(88,101,1202 -960 );v24.Text=v7("\145\214\75\83\94\159\208\81\94\17\169\221","\126\219\185\34\61");v17=708 -(208 + 490) ;end end end end tpToggle.MouseButton1Click:Connect(function() local on = tpToggle.Text == "TP OFF" tpToggle.Text = on and "TP ON" or "TP OFF" tpToggle.BackgroundColor3 = on and Color3.fromRGB(0,200,80) or Color3.fromRGB(90,90,100) tpToggle.TextColor3 = on and Color3.new(0,0,0) or Color3.new(1,1,1) end) claimToggle.MouseButton1Click:Connect(function() local on = claimToggle.Text == "CLAIM OFF" claimToggle.Text = on and "CLAIM ON" or "CLAIM OFF" claimToggle.BackgroundColor3 = on and Color3.fromRGB(0,200,80) or Color3.fromRGB(90,90,100) claimToggle.TextColor3 = on and Color3.new(0,0,0) or Color3.new(1,1,1) end) upgradeToggle.MouseButton1Click:Connect(function() local on = upgradeToggle.Text == "AUTO BUY OFF" upgradeToggle.Text = on and "AUTO BUY ON" or "AUTO BUY OFF" upgradeToggle.BackgroundColor3 = on and Color3.fromRGB(200,140,60) or Color3.fromRGB(90,90,100) upgradeToggle.TextColor3 = on and Color3.new(0,0,0) or Color3.new(1,1,1) end) flyToggle.MouseButton1Click:Connect(function() local on = flyToggle.Text == "FLY OFF" flyToggle.Text = on and "FLY ON" or "FLY OFF" flyToggle.BackgroundColor3 = on and Color3.fromRGB(0,200,80) or Color3.fromRGB(90,90,100) flyToggle.TextColor3 = on and Color3.new(0,0,0) or Color3.new(1,1,1) if on then startFly() else if flyConnection then flyConnection:Disconnect() flyConnection = nil end end end) RunService.Heartbeat:Connect(function() claimCountLabel.Text = "Claims: " .. claimCount end) updateUI() print("odin farm loaded - auto buy spam added, JNSCRIPTS")