Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://v3rmillion.net/showthread.php?tid=688367
- if not getrawmetatable then
- local h = Instance.new("Hint",workspace)
- h.Text = "Incompatible exploit."
- wait(2)
- h:Destroy()
- return
- end
- local green,red=Color3.fromRGB(0,240,0),Color3.fromRGB(240,0,0)
- local safeMove = 80 --distance allowed by anti exploit
- local settings = {doMuseum=true,doJewl=true,doBank=true,doTrain=true,doAirdrop=true,trainAllowCancel=true,jewlAllowCrims=false,preferLongTP=false,bankRadius2=19,preferUnsafeEsc=false}
- if readfile then
- pcall(function()
- local new = game:GetService("HttpService"):JSONDecode(readfile("JBAR.txt"))
- --corruption?
- local doOverwrite=false
- for k,v in pairs(new) do
- if settings[k]==nil then
- doOverwrite=true
- new[k]=nil
- end
- end
- for k,v in pairs(settings) do
- if new[k]==nil then
- doOverwrite=true
- new[k]=v
- end
- end
- --use input
- if doOverwrite then
- warn("Settings overwritten")
- writefile("JBAR.txt",game:GetService("HttpService"):JSONEncode(new))
- end
- settings = new
- end)
- end
- --interface
- Create = function(class,parent,props)
- local new = Instance.new(class)
- for k,v in next,props do
- new[k]=v
- end
- new.Parent = parent
- return new
- end
- gui=Create("ScreenGui",game.CoreGui,{Name="AutoRob", ResetOnSpawn=false, ZIndexBehavior="Sibling"})
- main=Create("Frame",gui,{Name="main", Active=true, Draggable=true, Size=UDim2.new(0,333,0,217), Position=UDim2.new(0.1,0,0.3,0), BackgroundColor3=Color3.new(0,0.118,0.239), ClipsDescendants=true})
- Frame=Create("Frame",main,{BackgroundTransparency=1, Size=UDim2.new(1,-50,1,-50), Position=UDim2.new(0,25,0,42)})
- AbortBtn=Create("TextButton",Frame,{Name="AbortBtn", Size=UDim2.new(0.5,0,0.185,0), Text="ABORT", Font="SourceSans", Style="RobloxRoundButton",
- Position=UDim2.new(0.25,0,0.5,0), TextSize=25, AutoButtonColor=false})
- Status=Create("TextLabel",Frame,{Name="Status", Size=UDim2.new(1,0,0.16,0), Text="Status: Loading luraph...", TextSize=15, TextXAlignment="Left",
- Font="Code", BackgroundTransparency=0.25, Position=UDim2.new(0,0,0.75,0), BackgroundColor3=Color3.new(1,1,1)})
- Frame_2=Create("Frame",Frame,{BackgroundTransparency=1, Size=UDim2.new(1,0,0.43,0), Position=UDim2.new(0,0,0,0), BackgroundColor3=Color3.new(1,1,1)})
- BankBtn=Create("TextButton",Frame_2,{Name="BankBtn", TextWrapped=true, Size=UDim2.new(0.5,-6,0.5,-6), TextColor3=Color3.new(0.118,0.118,0.118), Text="Bank",
- Font="SourceSansLight", TextSize=24, BackgroundColor3=settings.doBank and green or red, Position=UDim2.new(0.5,6,0.5,6)})
- Shade=Create("Frame",BankBtn,{Name="Shade", BackgroundTransparency=0.93999999761581, Size=UDim2.new(1,0,0.5,0), Position=UDim2.new(0,0,0.5,0), BackgroundColor3=Color3.new()})
- MuseumBtn=Create("TextButton",Frame_2,{Name="MuseumBtn", TextWrapped=true, Size=UDim2.new(0.5,-6,0.5,-6), TextColor3=Color3.new(0.118,0.118,0.118), Text="Museum",
- Font="SourceSansLight", TextSize=24, BackgroundColor3=settings.doMuseum and green or red})
- Shade_2=Create("Frame",MuseumBtn,{Name="Shade", BackgroundTransparency=0.93999999761581, Size=UDim2.new(1,0,0.5,0), Position=UDim2.new(0,0,0.5,0), BackgroundColor3=Color3.new()})
- JewlBtn=Create("TextButton",Frame_2,{Name="JewlBtn", TextWrapped=true, Size=UDim2.new(0.5,-6,0.5,-6), TextColor3=Color3.new(0.118,0.118,0.118), Text="Jewelry",
- Font="SourceSansLight", Position=UDim2.new(0.5,6,0,0), TextSize=24, BackgroundColor3=settings.doJewl and green or red})
- Shade_3=Create("Frame",JewlBtn,{Name="Shade", BackgroundTransparency=0.93999999761581, Size=UDim2.new(1,0,0.5,0), Position=UDim2.new(0,0,0.5,0), BackgroundColor3=Color3.new()})
- TrainBtn=Create("TextButton",Frame_2,{Name="TrainBtn", TextWrapped=true, Size=UDim2.new(0.5,-6,0.5,-6), TextColor3=Color3.new(0.118,0.118,0.118), Text="Trains",
- Font="SourceSansLight", Position=UDim2.new(0,0,0.5,6), TextSize=24, BackgroundColor3=settings.doTrain and green or red})
- Shade_4=Create("Frame",TrainBtn,{Name="Shade", BackgroundTransparency=0.93999999761581, Size=UDim2.new(1,0,0.5,0), Position=UDim2.new(0,0,0.5,0), BackgroundColor3=Color3.new()})
- CloseBtn=Create("TextButton",main,{Name="CloseBtn", TextWrapped=true, TextStrokeTransparency=0.69999998807907, Size=UDim2.new(0,25,0,25), TextColor3=Color3.new(1,1,1),
- Text="X", BackgroundTransparency=1, Font="GothamBold", Position=UDim2.new(1,-22,0,0), TextScaled=true})
- CogBtn=Create("ImageButton",main,{Name="CogBtn", Image="rbxassetid://135740223", Size=UDim2.new(0,25,0,25), Position=UDim2.new(0,0,0,2), BackgroundTransparency=1})
- setsframe=Create("Frame",main,{Name="setsframe", BackgroundTransparency=0.019999999552965, Size=UDim2.new(1,-10,0.85,-10), Position=UDim2.new(-1,5,0.15,5), BorderSizePixel=0,
- BackgroundColor3=Color3.new(1,1,1)})
- Frame_3=Create("Frame",setsframe,{BackgroundTransparency=1, Size=UDim2.new(1,0,0.2,0)})
- Frame_4=Create("Frame",Frame_3,{BackgroundTransparency=1, Size=UDim2.new(1,-10,1,-10), Position=UDim2.new(0,5,0,5)})
- Label=Create("TextLabel",Frame_4,{TextWrapped=true, Size=UDim2.new(0.8,0,1,0), Text="Bank Cops Safety Radius", Font="SourceSans", BackgroundTransparency=1, TextScaled=true})
- BankRadiusBox=Create("TextBox",Frame_4,{Name="BankRadiusBox", TextWrapped=true, Size=UDim2.new(0,40,0,20), Text=tostring(settings.bankRadius2), Font="Code", Position=UDim2.new(0.827,0,0.1,0),
- TextScaled=true, BackgroundColor3=Color3.new(1,1,1)})
- Frame_5=Create("Frame",setsframe,{BackgroundTransparency=0.93, Size=UDim2.new(1,0,0.2,0), Position=UDim2.new(0,0,0.2,0), BackgroundColor3=Color3.new()})
- Frame_6=Create("Frame",Frame_5,{BackgroundTransparency=1, Size=UDim2.new(1,-10,1,-10), Position=UDim2.new(0,5,0,5)})
- Label_2=Create("TextLabel",Frame_6,{TextWrapped=true, Size=UDim2.new(0.8,0,1,0), Text="Let Crims Enter Jewelry", Font="SourceSans", BackgroundTransparency=1, TextScaled=true})
- JewlSetBtn=Create("TextButton",Frame_6,{Name="JewlSetBtn", Size=UDim2.new(0,25,0,20), Text=settings.jewlAllowCrims and "X" or "", Font="SourceSansSemibold", Position=UDim2.new(0.85,0,0.1,0), TextSize=25,
- BackgroundColor3=Color3.new(1,1,1)})
- Frame_7=Create("Frame",setsframe,{BackgroundTransparency=1, Size=UDim2.new(1,0,0.2,0), Position=UDim2.new(0,0,0.4,0)})
- Frame_8=Create("Frame",Frame_7,{BackgroundTransparency=1, Size=UDim2.new(1,-10,1,-10), Position=UDim2.new(0,5,0,5)})
- Label_3=Create("TextLabel",Frame_8,{TextWrapped=true, Size=UDim2.new(0.8,0,1,0), Text="Prefer Longer TP Method", Font="SourceSans", BackgroundTransparency=1, TextScaled=true})
- TpSetBtn=Create("TextButton",Frame_8,{Name="TpSetBtn", Size=UDim2.new(0,25,0,20), Text=settings.preferLongTP and "X" or "", Font="SourceSansSemibold", Position=UDim2.new(0.85,0,0.1,0), TextSize=25,
- BackgroundColor3=Color3.new(1,1,1)})
- Frame_9=Create("Frame",setsframe,{BackgroundTransparency=0.93, Size=UDim2.new(1,0,0.2,0), Position=UDim2.new(0,0,0.6,0), BackgroundColor3=Color3.new()})
- Frame_10=Create("Frame",Frame_9,{BackgroundTransparency=1, Size=UDim2.new(1,-10,1,-10), Position=UDim2.new(0,5,0,5)})
- Label_4=Create("TextLabel",Frame_10,{TextWrapped=true, Size=UDim2.new(0.8,0,1,0), Text="Escape To Former Position", Font="SourceSans", BackgroundTransparency=1, TextScaled=true})
- EscSetBtn=Create("TextButton",Frame_10,{Name="EscSetBtn", Size=UDim2.new(0,25,0,20), Text=settings.preferUnsafeEsc and "X" or "", Font="SourceSansSemibold", Position=UDim2.new(0.85,0,0.1,0), TextSize=25,
- BackgroundColor3=Color3.new(1,1,1)})
- Frame_11=Create("Frame",setsframe,{BackgroundTransparency=1, Size=UDim2.new(1,0,0.2,0), Position=UDim2.new(0,0,0.8,0)})
- SaveSetsBtn=Create("TextButton",Frame_11,{Name="SaveSetsBtn", Size=UDim2.new(0.6,0,0.9,0), Text=writefile and "Save Defaults" or "Save Unsupported", Font="SourceSans", Style=writefile and "RobloxRoundDefaultButton" or "RobloxRoundButton", Position=UDim2.new(0.2,0,0.05,0),
- TextSize=25})
- title=Create("TextLabel",main,{Name="title", TextWrapped=true, Size=UDim2.new(0.5,0,0,20), Text="Jailbreak Auto-Rob", TextSize=18,
- Font="SourceSansLight", BackgroundTransparency=1, Position=UDim2.new(0.25,0,0,3), TextColor3=Color3.new(1,1,1), BackgroundColor3=Color3.new(1,1,1)})
- Slider=Create("Frame",main,{Name="Slider", Size=UDim2.new(0,50,0,20), Position=UDim2.new(0,30,0,4), BackgroundColor3=Color3.new(1,1,1)})
- toggleOff=Create("TextButton",Slider,{Name="toggleOff", BorderSizePixel=0, Size=UDim2.new(0.5,0,1,0), TextColor3=Color3.new(), Text="",
- Font="SourceSans", TextSize=14, BackgroundColor3=Color3.new(.25,.25,.25), AutoButtonColor=false})
- toggleOn=Create("TextButton",Slider,{Name="toggleOn", BorderSizePixel=0, Size=UDim2.new(0.5,0,1,0), TextColor3=Color3.new(), Text="",
- Font="SourceSans", Position=UDim2.new(0.5,0,0,0), TextSize=14, BackgroundColor3=Color3.new(.39,.39,.39), AutoButtonColor=false})
- slide=Create("Frame",Slider,{Name="slide", Size=UDim2.new(0,6,1,4), Position=UDim2.new(0.5,-3,0,-2), BorderSizePixel=0, BackgroundColor3=Color3.new(0.8,0.8,0.8)})
- player = game:GetService("Players").LocalPlayer
- abort = false
- local root,uptorso,humanoid
- local v30=Vector3.new()
- local RNG=Random.new()
- --gui code
- CloseBtn.MouseButton1Click:Connect(function() gui:Destroy() abort=true end)
- CloseBtn.MouseEnter:Connect(function() CloseBtn.TextColor3=red end)
- CloseBtn.MouseLeave:Connect(function() CloseBtn.TextColor3=Color3.new(1,1,1) end)
- local stepconn
- MuseumBtn.MouseButton1Click:Connect(function()
- if museumEvent then
- settings.doMuseum = not settings.doMuseum
- MuseumBtn.BackgroundColor3=settings.doMuseum and green or red
- else
- local h = Instance.new("Hint",workspace)
- h.Text = "Incompatible exploit."
- wait(2)
- h:Destroy()
- end
- end)
- JewlBtn.MouseButton1Click:Connect(function()
- settings.doJewl = not settings.doJewl
- JewlBtn.BackgroundColor3=settings.doJewl and green or red
- end)
- BankBtn.MouseButton1Click:Connect(function()
- settings.doBank = not settings.doBank
- BankBtn.BackgroundColor3=settings.doBank and green or red
- end)
- TrainBtn.MouseButton1Click:Connect(function()
- settings.doTrain = not settings.doTrain
- TrainBtn.BackgroundColor3=settings.doTrain and green or red
- end)
- local function toggleCanAbort(bool)
- AbortBtn.AutoButtonColor=bool
- AbortBtn.Style=bool and "RobloxRoundDefaultButton" or "RobloxRoundButton"
- abort=false
- end
- AbortBtn.MouseButton1Click:Connect(function()
- if AbortBtn.AutoButtonColor==true then
- if stepconn then stepconn:Disconnect() end
- local hit,p = workspace:FindPartOnRay(Ray.new(player.Character.Head.Position+Vector3.new(0,10,0),Vector3.new(0,20,0)))
- if hit then
- player.Character:MoveTo(p)
- else
- local angle = RNG:NextNumber(0,math.pi*2)
- root.CFrame=root.CFrame+Vector3.new(safeMove*math.cos(angle),math.max(0,200-root.CFrame.y),safeMove*math.sin(angle))
- end
- toggleCanAbort(false)
- abort=true
- AbortBtn.Text = "Aborted."
- wait(2.8)
- AbortBtn.Text = "ABORT"
- end
- end)
- local function stprint(txt)
- Status.Text = "Status: "..txt
- end
- local function strToNum(str)
- return tonumber((tostring(str):gsub("%D", "")))
- end
- local tweenCogOut = game:GetService("TweenService"):Create(CogBtn,TweenInfo.new(0.25),{Rotation=135})
- local tweenCogIn = game:GetService("TweenService"):Create(CogBtn,TweenInfo.new(0.25),{Rotation=0})
- local cogOut = false
- CogBtn.MouseButton1Click:Connect(function()
- cogOut = not cogOut
- if cogOut then
- setsframe:TweenPosition(UDim2.new(0,5,0.15,5),nil,"Quart",0.3,true)
- Frame:TweenPosition(UDim2.new(1,25,0,42),nil,"Quart",0.3,true)
- tweenCogOut:Play()
- else
- setsframe:TweenPosition(UDim2.new(-1,5,0.15,5),nil,"Quart",0.3,true)
- Frame:TweenPosition(UDim2.new(0,25,0,42),nil,"Quart",0.3,true)
- tweenCogIn:Play()
- end
- end)
- local bankBoxOld=BankRadiusBox.Text
- BankRadiusBox:GetPropertyChangedSignal("Text"):Connect(function()
- BankRadiusBox.Text=BankRadiusBox.Text:sub(1,4)
- local num = tonumber(BankRadiusBox.Text)
- if num then
- if num>99 then
- BankRadiusBox.Text = '99'
- end
- elseif BankRadiusBox.Text~='' then
- BankRadiusBox.Text = bankBoxOld
- end
- bankBoxOld = BankRadiusBox.Text
- end)
- BankRadiusBox.FocusLost:Connect(function()
- if tonumber(BankRadiusBox.Text) then
- settings.bankRadius2=tonumber(BankRadiusBox.Text)
- end
- BankRadiusBox.Text=tostring(settings.bankRadius2)
- end)
- JewlSetBtn.MouseButton1Click:Connect(function()
- settings.jewlAllowCrims = not settings.jewlAllowCrims
- JewlSetBtn.Text = settings.jewlAllowCrims and "X" or ""
- end)
- TpSetBtn.MouseButton1Click:Connect(function()
- settings.preferLongTP = not settings.preferLongTP
- TpSetBtn.Text = settings.preferLongTP and "X" or ""
- end)
- EscSetBtn.MouseButton1Click:Connect(function()
- settings.preferUnsafeEsc = not settings.preferUnsafeEsc
- EscSetBtn.Text = settings.preferUnsafeEsc and "X" or ""
- end)
- SaveSetsBtn.MouseButton1Click:Connect(function()
- if writefile and SaveSetsBtn.Style.Name=="RobloxRoundDefaultButton" then
- SaveSetsBtn.Style="RobloxRoundButton"
- writefile("JBAR.txt",game:GetService("HttpService"):JSONEncode(settings))
- SaveSetsBtn.Text="Saved."
- wait(1)
- SaveSetsBtn.Text="Save Defaults"
- SaveSetsBtn.Style="RobloxRoundDefaultButton"
- end
- end)
- local function isMouseDown()
- return (game:GetService("UserInputService"):GetMouseButtonsPressed()[1] or {}).UserInputType==Enum.UserInputType.MouseButton1
- end
- toggleOff.InputBegan:Connect(function(input)
- if isMouseDown() then
- settings.doMuseum=false
- settings.doJewl=false
- settings.doTrain=false
- settings.doBank=false
- MuseumBtn.BackgroundColor3=red
- JewlBtn.BackgroundColor3=red
- TrainBtn.BackgroundColor3=red
- BankBtn.BackgroundColor3=red
- slide:TweenPosition(UDim2.new(0,0,0,-2),nil,"Sine",0.15,true)
- wait(1)
- if slide.Position.X.Scale<.01 then
- slide:TweenPosition(UDim2.new(0.5,-3,0,-2),nil,"Sine",0.15,true)
- end
- end
- end)
- toggleOn.InputBegan:Connect(function(input)
- if isMouseDown() then
- if museumEvent then
- settings.doMuseum=true
- MuseumBtn.BackgroundColor3=green
- end
- settings.doJewl=true
- settings.doTrain=true
- settings.doBank=true
- JewlBtn.BackgroundColor3=green
- TrainBtn.BackgroundColor3=green
- BankBtn.BackgroundColor3=green
- slide:TweenPosition(UDim2.new(1,-6,0,-2),nil,"Sine",0.15,true)
- wait(1)
- if slide.Position.X.Scale>.99 then
- slide:TweenPosition(UDim2.new(0.5,-3,0,-2),nil,"Sine",0.15,true)
- end
- end
- end)
- local robbing=''
- local function warnFlash(s)
- robbing=s
- stprint(s.." ready.")
- local col0 = main.BackgroundColor3
- for i=1,4-math.min(3,time()/7200) do
- for a=0,1,1/(30*.25) do
- main.BackgroundColor3 = col0:lerp(red,a)
- wait()
- end
- for a=0,1,1/(30*.25) do
- main.BackgroundColor3 = red:lerp(col0,a)
- wait()
- end
- end
- main.BackgroundColor3 = col0
- end
- --main code
- local windowFocused = false
- game:GetService("UserInputService").WindowFocused:Connect(function() windowFocused=true end)
- game:GetService("UserInputService").WindowFocusReleased:Connect(function() windowFocused=false end)
- spawn(function()
- game:GetService("UserInputService").InputBegan:Wait()
- windowFocused=true
- end)
- screnv={}
- if getupvalues or debug.getupvalues then
- spawn(function()
- local a=string.byte;local d=string.char;local F=string.sub;local C=table.concat;local f=math.ldexp;local B=getfenv or function()return _ENV end;local N=setmetatable;local H=unpack;local l=pcall;local t=tonumber;local function i(a)local e,n,D="","",{}local o=256;local c={}for l=0,o-1 do c[l]=d(l)end;local l=1;local function H()local e=t(F(a,l,l),36)l=l+1;local n=t(F(a,l,l+e-1),36)l=l+e;return n end;e=d(H())D[1]=e;while l<#a do local l=H()if c[l]then n=c[l]else n=e..F(e,1,1)end;c[o]=e..F(n,1,1)D[#D+1],e,o=n,n,o+1 end;return table.concat(D)end;local c=i('25F25W25F27625C25R27625F24K24M25325224Z25124I24V25224M24W25C25H27A24N24M24H25224K25C25G27A27C25324X24M27U27927627Y28024K24Q24W27Z25625C25I27A25325624Z24M27A28J21F27025D27N28E24I24H24V24M25C25N27A24124I24K24N24S24V24V25C25L27A24624T24X28Y29029228J29D25C25M27A24L25224T24G25324Q24S24T28C27A24T24M25725328O27624028H24G27M27O27623P29924U28T27W27624W24G28024T25128U27X27D24L24M2AD29F27A23K27I24V24H24I24G24O25C25K27A24Z29J24G24R23Q2512AJ29V28325F24H24S25724G24I24X2B12B325C25U27A28924M24I24U23Q24T28729S2BD24T2B427A24U25224W24M2522BL2B22BR25C25Q27A24I24Q24X24N24X24S24Z2BQ25329G27628N29D29D28L2CH2CK28J23N28J26G27A25025F21N21O2172BH25J2CT21A25J2762592D025F2182D325B2572CT21P25725F25N2D228V2D527625B2532D92532DC24T25F25V25F1027A24P25J2DP102D325525V26J25F192DP25F25B24R2D924R2DC24X25R2DP21228324L25F26B2CS29H2632DP1226327624H25J2E021N2D324H2672EL26727625125N2DP21F28V25F2552EX25F1X2F62592EN2F72FB25B23V2D923V2DC2592DC25F1527A25B23R2D923R2FI2D31X2D32D22762DG2E42732D92732DM2DO2DQ27A2D22EH2FY25B26V2D926V2E92EB25F2ED27624P2EG2EI2GI25Z2EL25Z2EY2F025F2F22D12GP2F72GV25B26B2D92EH25N24X2F32112F32FW25F21B2D623F27W21P23F21O25G25B23B2HC23B2HF25B22B2HC22B2HL24R2HC24R2HL2HI25F21P2HK2HG1V2HC1V2HL172HC172HL22Z2HC22Z2HF25F25E2D32CL27728D27629S29U2AL27629I29K29M29O2CK2CJ27A25T27A2542CS21O21R2CQ2CX21O142D324X27A21A29R2E321A2E325B26F2D926F2DC24H27A1C27A24D2FB1X2FB24H2GR2132H62EV25F2192F625B25Z2D92GP25N25525J2EN21L2D32512G421H2FN25R2D92792K12H42H62D32H92DH2172HC2172HL2132HC2132HL1B2HC1B2HF25E25F2AV2IF28L2IL25F2IN29L29N29P2IH25F2IJ29V2A225F25328Q28S2CH1324B23N25C25C29623U28N2LB23L24Q24T24N24W2CK25N2LJ2L723X2BK28T2LB2432AY2E82JK27A2582IX21J27A2552J62MB2D32CZ2762CR2CY2FN26721M21O21E26725E25N2DN2762JJ2II25V2EN1W2E32DT2762MG2L22J92MZ2GR21A2H625Z28V2192GX25N2MM21P25N2MQ24O25N2CT162F324L2F32N72EO2N42IM25N2EN2NP2E421N2D921N2DC2452D31C2D32412JF2F72O62452JQ2H626J2EN2192E02E42172D92CV25N2452831C2832O52761X2O82OA2D125V2432D42JB1R2D91R2DC2442NJ21O2NL2762OP2O727623X26R2761D2PC2E41F2D91F2DC23L2O22D327126Z2OQ2PP25F23L2OT25F2592732NA2G22E423J2D923J2DC23K2P42P625F2712NO2F326X2PR21A2PR2Q92NU2F325B2332D92332DC26L2PM27626H23Z2OQ2QS25F26L2PU2592432OD2OW2E422N2D922N2QN23Z2E021C2QU2552432PC1A2R125B22F2D922F2QN2QP25F2QR2PP2R92762QW2DP2JR2D12QZ2JU2RF21Z2D921Z2DC26K2IX2IZ27626G2GZ2CU2EH25F26C2IX2J727626N26N2CT21E26N2DC26523Z2RO2QU26524J23F25F1W24J27626527A21M2FN2E621O21P2E825N2SL2SN2SV2SQ2SS2SU25F2SP2FH21C2TA25924J2OW2192TA25B24B2D924B2SK2SM25F2RP2TB2T82ST2SV2KF2SE2KU21O21I2KU25G23L2K82FN2FP2T12FR2OK2U52DH23N2D92CN25N2GJ2DP2K92DH2G02T12G225N25B1R21P2U02UQ25G2H72KI2E421F2HC21F2KN2KP2HL1Z2HC1Z2HL2I02HW2I22HG1J2HC1J2HL1F2HC1F2HL132HC132HL23J2HC23J2HL2HB2HW2HE2HG2HV2HX2HL2332HC2332I72I92HL26R2HC26R2HL25J2HC25J2KR27O21P1B21P25G2D025D27A29Q2MH2C52DL27A1J2232DR2U427A2IE2M82NK2IV2J121R2FV25N28V21Q2KG2762UW2762KW2772CE25F2AN2922AQ2AS28J2L72FJ2MT2G627A21G27A2512D3132FV25R2X32832UV2D325E25E2952KZ28M2WL25F2LZ2A629427A23W28H24T26B23R24S24S24X2L125324S28924X2LR27U2L72432BB29V25O28W2YE24L2YD2YF23K24V2YJ24M24N2C227A23U24W23M29K27L2YI24X23W24L2Z327623L2802AR24R26B24524I25224V29V2XB2XD2AP2AR24O28J2712BH2M929R2MD2MV2N12E32ZU2MJ27624Z22Z2SH22Z2JG2JI27A2EU2PC1W2F62JH28V1Z2FN22R2D922R2DC25B310M2T1310O2DD25J2NA2D62R32T12R525N24D2JT21C2F926B2OD2S92RG2RI2DC24C25V2NK2E32492672R82F624D2QX26B2PC21931182RY2T12S0311125F2PP2XN276245311H2TR311J2GF21328324D2SX2FN2DJ2T12DL2K12F62F82DH24Z2D924Z2FI2X22JU2QI24V2D924V2DC31122DP31142D126B2CN311O2DH24N2D924N312P311U25F311W25F311Y311I27624D3122312431262DH2472D92472DC251312C2F62MC2762SY2DH23Z2D92QS311125J2FH21G2D32O12762XR31382XT25F21Q2832K7313M2FN2UL21P2UN311K313U2F3313X25F313Z25F31392XU310623Z21O2U0314L2UU2KH2D624B2HC24B2I32I52HL22F2HC22F2HL2HN2HW2HP2HG2272HC2272HL2232HC2232HL2372HC2372VY2W02W22HW2IA2HG22V2HC22V2HU2HJ314V2HW2I625G2KW2BG2IF2Y12CL2LJ2F325F2BM2LE2Z12Y32Y528T2IE24W2522JH2CH25Z2LJ2LB23O29924H26B2Y72MH2YF24O24W24Z2AR2A727A2472992LR27M2C32762Z52Z724G2Z92YF2ZC2Y32YP24X2WO29D2672LJ2XB2YL24M24L2BA2BW2Y32502WN2L12ZR2XF2ZU2CH2692CN27A2702M72IX21O2WY2CY2D32502P42NV24W2J12N22572Q12MN2Q325N24O2WZ2D32EF2XK2IM2FB182FB24G318E27624R22V2SH22V2DC249310C27624926F2CN1W2O6318U31462DH310R21P310T24526F2EN21C2O8313C2E422J2D922J2O026F2EH319B311X319D2HM2D922B319I319K2O826J2E021G2OF23W2J12172D323S2632CY2FB24525V2RS2E325926J2PP2OE2DH2D82T12DB25N2442S7162S924526J2TD2OF31AN2OW21K2OF23X26F2TO21A2O82GF21A283245319N24J2D92SU2K131A725F1A2JB24F2D924F319R2TR319T319V319X26R2CT21R2PF2OL2RS2XV26J2E831AD2E42FF2T12FH31AI26Z2NK2PR240318N3135312J2X4311X26F2DB1B2O623X2MF313W314131B12D12FK21L2G6317T218317T25B26J2D92E0310U2X62D324R243314M21I31CX25G25726Z31CY31D3314P31CU2DH21B2HC21B2HL2KK2HW2KM2HG2KO2HW2KQ2HG2V42HW2V62HZ2I1315D315F2HL1N2HC1N2HL2VC2HW2VE315V2KX315Y2L02LY2M025C316A316C2CK316F29W25F316I28Q316L2Y025F250316O316Q316S27V27A23Y2BV2BX24U2ZE25F31712Z828931752ZD2YO2YQ317N2AO317P317K2WN28J26E317W2CT2MA276313L25F2SD2F431CE2MH2SC2FN312Y2MN31302MR318V2L82MW2SS2E32MS25F313N2E431BD2T131BF2UG25V28V21C2MZ319N313E2T1313G31G031G22MZ2GN31332GV24G2IX2CV27624C2KB21O31CH25F24P31B921331A925Z2EH2NB2UK2G12DC24O2JY2P52GV24P25Z2PC21C31H125Z2PP21K2GV24H25V2CN2JA2GI31B02832GJ31932E42JD2T12JF31G0313U2E32EP313Y2D324P3141314327624O31CQ2P52OF2DT28V1E2D62HP2U031542XW2DH2UY2HW2V02HG31D92HW31DB2HG31DD21P31DF25B31DH21P31DJ2KW2L72IR270316731E52LB2YZ25024M2YG2IU310624Q2AS26B27F26B24H317F317H24I317J2ZQ31F22ZT28J26231F821O31FA2F4310031FF2N1318131FI2DH31C02MN2PP31FN318H31FP2MX31FS319N31BL2T12PC31G92TR31G431HJ31CP31CR2DC31GO31GA2GM2DP21G31H12QX25Z2OD2GX31A32T12EN31G02EH21G31HQ2XQ31HT31HV28325B2VQ2U02VQ31D62H82D631IB21P31ID25B31IF21P31IH25B31IJ31DF25E22531JI2152MB2QA2A931JQ25F2J5310J2FN132NE132MQ31852NK2J428321C28324S2Q62F32DN31LN2DH2372NE2372MQ24S2J1162D324T31FQ31G32II319N22V2NE22V2MQ2J531K722R2NE22R31M831M031MG31M3319E2NE22J31M831MA31MC31ME31FS2DU25F1Y2D324O311D2P52E324K2J12102FV2GV1X31GE2P42102H62E31X31GR2OQ2GV2592831X2XV2JM2JO31N31F2DX2F621A310H31NZ2F624C31GZ21A2GV2492NR25F24431O52GV24F2OZ2MN2P125N23X25V2TO2MY2D1267311N2JW23V2NE23V2MQ23T31NF2GV23P2PF1X2PF23T2QX26V31AC2GD2E426Z2NE26Z31OU26R2CN21C31P131K02NE26R31PB2TD31PF31K726J2NE26J31PB276182PF25926V2TI31P62GY2NE26B2MQ23S31GK21028323X26B2E8172S931HR314F2D625Z2NE25Z2MQ25925N311N2QI25V2NE25V31OU31OW2A331OZ31P131P32TO21931PX31FU2T12IC25N23S31K1162PF23P28321628323L2PF21A31R52NT31FD2QI21F2D921F2DC26T31QQ25F26P2FR2F731RP26T2QX23V31AC2FH2E41Z2D9310K25N26T23R2E821C31RR319N31OF21P31OH31S2312H31S527626T319N1J2D91J31RK31RP1831RP25923V2TI31RW25B1B2D91B313H31S32TR31RP23T2UB2E4132D913310B31K7318921P318B314531FU2FN23F2D92SR2UO31TE2T131TG24F26731CY31TM25G31FT21D2MB319N2QK2T12QM25N24S2UD2P5317T2DT2232TR31MC2PU24S2UL2142PZ24S31N821031A92FT2D324S31BW21431RW31TB31FV25B2272D92272DC24S31GZ21031NP2F31X2F324S313P21O2142QU24S31KL2102FB31QI2OQ31UY2432CT2142R124S2672CT2102F931UW31UY31G6214313G25F24S2S72102S931V82F731UY2TM31V12TO2PV314Q2UK2WD2732WG25B2472WD24731W5315221P315431UN31572HL24N2WD24N31W521J2WD21J31W521F2WD21F31W521B2WD21B31W52172WD21731W52132WD21331W52472HC2472HL2432HC31D025B23Z2HC314O25B23N2HC23N2HL2732HC2732HL26Z2HC31D52GA2HC26V2W42W62HL31WP31IC31W523R2HC23R2HL31XH2HW31XJ2HG31Y521P31Y725B24N2HC24N2HL22J2HC22J2IB');local o=bit and bit.bxor or function(l,e)local n,o=1,0 while l>0 and e>0 do local c,F=l%2,e%2 if c~=F then o=o+n end l,e,n=(l-c)/2,(e-F)/2,n*2 end if l<e then l=e end while l>0 do local e=l%2 if e>0 then o=o+n end l,n=(l-e)/2,n*2 end return o end local function n(e,l,n)if n then local l=(e/2^(l-1))%2^((n-1)-(l-1)+1);return l-l%1;else local l=2^(l-1);return(e%(l+l)>=l)and 1 or 0;end;end;local l=1;local function e()local n,e,c,F=a(c,l,l+3);n=o(n,195)e=o(e,195)c=o(c,195)F=o(F,195)l=l+4;return(F*16777216)+(c*65536)+(e*256)+n;end;local function D()return e()*4294967296+e();end;local function D()local e=o(a(c,l,l),195);l=l+1;return e;end;local function h()local o=e();local l=e();local c=1;local o=(n(l,1,20)*(2^32))+o;local e=n(l,21,31);local l=((-1)^n(l,32));if(e==0)then if(o==0)then return l*0;else e=1;c=0;end;elseif(e==2047)then return(o==0)and(l*(1/0))or(l*(0/0));end;return f(l,e-1023)*(c+(o/(2^52)));end;local t=e;local function f(e)local n;if(not e)then e=t();if(e==0)then return;end;end;n=F(c,l,l+e-2);l=l+e-1;local e={}for l=1,#n do e[l]=d(o(a(F(n,l,l)),195))end return C(e);end;local l=e;local function i()local H={};local a={};local d={};local l={};local c={};c[1]=H;c[2]=d;c[3]=a;c[7]=l;c[6]=D();for n=1,e()do local e=D();local l;if(e==1)then l=(D()~=0);elseif(e==0)then l=h();elseif(e==3)then l=F(f(),1,-1);end;d[n-1]=l;end;for l=1,e()do a[l-1]=i();end;for D=1,e()do local c=o(e(),126);local e=o(e(),237);local o=n(c,1,2);local F=n(e,1,10);local l={};l[1]=F;l[5]=e;l[2]=n(c,3,10);if(o==0)then l[3]=n(c,11,19);l[4]=n(c,20,28);elseif(o==1)then l[3]=n(e,11,28);elseif(o==2)then l[3]=n(e,11,28)-131071;end;H[D]=l;end;c[5]=D();return c;end;local function a(...)local l={...};return l,#l end;local function C(l,f,d)local D=l[1];local F=l[2];local h=l[3];local i=l[6];return function(...)local n=1;local o=-1;local B={};local c={...};local l=#c-1;local t={};local e={};for l=0,l do if(l>=i)then B[l-i]=c[l+1];else e[l]=c[l+1];end;end;local l;local c;while true do l=D[n];c=l[1];if c<=22 then if c<=10 then if c<=4 then if c<=1 then if c>0 then do return end;else local F=l[2];if F>o then o=F end;e[F]=f[l[3]];n=n+1;l=D[n];c=l[1];local F=l[2];if F>o then o=F end;e[F]=e[l[3]];n=n+1;l=D[n];c=l[1];local D;local F=l[2];local d={};local n=0;local c=F+l[3]-1;for l=F+1,c do n=n+1;d[n]=e[l];end;D,c=a(e[F](H(d,1,c-F)));c=F+l[4]-2;n=0;for l=F,c do n=n+1;e[l]=D[n];end;o=c;end;elseif c<=2 then if(F[l[3]]<e[l[4]])then n=n+1;end;elseif c>3 then local F=l[2];if F>o then o=F end;e[F]=e[l[3]];n=n+1;l=D[n];c=l[1];local F=l[2];if F>o then o=F end;e[F]=e[l[3]];n=n+1;l=D[n];c=l[1];local d;local c=l[2];local D={};local n=0;local F=c+l[3]-1;for l=c+1,F do n=n+1;D[n]=e[l];end;d,F=a(e[c](H(D,1,F-c)));F=c+l[4]-2;n=0;for l=c,F do n=n+1;e[l]=d[n];end;o=F;else if(e[l[3]]==F[l[4]])then n=n+1;end;end;elseif c<=7 then if c<=5 then local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local n=l[2];if n>o then o=n end;e[n]=F[l[3]];elseif c>6 then local a=h[l[3]];local i;if a[5]~=0 then local l={};i=N({},{__index=function(n,e)local l=l[e];return l[1][l[2]];end,__newindex=function(o,n,e)local l=l[n]l[1][l[2]]=e;end;});for o=1,a[5]do n=n+1;local n=D[n];if n[1]==15 then l[o-1]={e,n[3]};else l[o-1]={f,n[3]};end;t[#t+1]=l;end;end;local H=l[2];if H>o then o=H end;e[H]=C(a,i,d);n=n+1;l=D[n];c=l[1];for l=l[2],l[3]do e[l]=nil;end;n=n+1;l=D[n];c=l[1];local n=l[2];if n>o then o=n end;e[n]=d[F[l[3]]];else d[F[l[3]]]=e[l[2]];end;elseif c<=8 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]]+e[l[4]];elseif c>9 then local c=h[l[3]];local F;if c[5]~=0 then local l={};F=N({},{__index=function(n,e)local l=l[e];return l[1][l[2]];end,__newindex=function(o,n,e)local l=l[n]l[1][l[2]]=e;end;});for o=1,c[5]do n=n+1;local n=D[n];if n[1]==15 then l[o-1]={e,n[3]};else l[o-1]={f,n[3]};end;t[#t+1]=l;end;end;local l=l[2];if l>o then o=l end;e[l]=C(c,F,d);else local d;local c=l[2];local D={};local n=0;local F=c+l[3]-1;for l=c+1,F do n=n+1;D[n]=e[l];end;d,F=a(e[c](H(D,1,F-c)));F=c+l[4]-2;n=0;for l=c,F do n=n+1;e[l]=d[n];end;o=F;end;elseif c<=16 then if c<=13 then if c<=11 then local n=l[2];local c=n+l[3]-2;local o={};local l=0;for n=n,c do l=l+1;o[l]=e[n];end;do return H(o,1,l)end;elseif c>12 then if not e[l[2]]then n=n+1;end;else local c=l[2];local F,n=a(e[c]());n=c+l[4]-2;local l=0;for n=c,n do l=l+1;e[n]=F[l];end;o=n;end;elseif c<=14 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]][e[l[4]]];elseif c>15 then local D;local n=l[2];local F={};local c=0;local l=n+l[3]-1;for l=n+1,l do c=c+1;F[c]=e[l];end;D,l=a(e[n](H(F,1,l-n)));o=n-1;else local n=l[2];if n>o then o=n end;e[n]=e[l[3]];end;elseif c<=19 then if c<=17 then local n=l[2];if n>o then o=n end;e[n]=F[l[3]];elseif c>18 then n=n+l[3];else local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local n=l[2];if n>o then o=n end;e[n]=F[l[3]];end;elseif c<=20 then if e[l[2]]then n=n+1;end;elseif c>21 then local d=l[2];local t=e[l[3]];e[d+1]=t;e[d]=t[F[l[4]]];if d+1>o then o=d+1 end;n=n+1;l=D[n];c=l[1];local d=l[2];if d>o then o=d end;e[d]=e[l[3]][F[l[4]]];n=n+1;l=D[n];c=l[1];local D;local c=l[2];local d={};local n=0;local F=c+l[3]-1;for l=c+1,F do n=n+1;d[n]=e[l];end;D,F=a(e[c](H(d,1,F-c)));F=c+l[4]-2;n=0;for l=c,F do n=n+1;e[l]=D[n];end;o=F;else local n=l[2];if n>o then o=n end;e[n]=e[l[3]]-e[l[4]];end;elseif c<=34 then if c<=28 then if c<=25 then if c<=23 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]]+F[l[4]];elseif c>24 then local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=f[l[3]];n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=#e[l[3]];n=n+1;l=D[n];c=l[1];local n=l[2];if n>o then o=n end;e[n]=F[l[3]];else local o=l[2];local F=e[o+2];local c=e[o]+F;e[o]=c;if F>0 then if c<=e[o+1]then n=n+l[3];e[o+3]=c;end;elseif c>=e[o+1]then n=n+l[3];e[o+3]=c;end;end;elseif c<=26 then local n=l[2];local c=e[l[3]];e[n+1]=c;e[n]=c[F[l[4]]];if n+1>o then o=n+1 end;elseif c>27 then local o=l[2];e[o]=e[o]-e[o+2];n=n+l[3];else local o=l[2];local c=l[4];local l=o+2;local F={e[o](e[o+1],e[l])};for n=1,c do e[l+n]=F[n];end;local o=e[o+3];if o then e[l]=o else n=n+1;end;end;elseif c<=31 then if c<=29 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]]*F[l[4]];elseif c>30 then local F=l[2];local o={};for l=1,#t do local l=t[l];for n=0,#l do local n=l[n];local c=n[1];local l=n[2];if c==e and l>=F then o[l]=c[l];n[1]=o;end;end;end;else local n=l[2];if n>o then o=n end;e[n]=e[l[3]][F[l[4]]];end;elseif c<=32 then local l=l[2];e[l]();o=l-1;elseif c>33 then local n=l[2];if n>o then o=n end;e[n]=f[l[3]];else local H=l[2];local t,d=a(e[H]());d=H+l[4]-2;local a=0;for l=H,d do a=a+1;e[l]=t[a];end;o=d;n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=e[l[3]];n=n+1;l=D[n];c=l[1];for l=l[2],l[3]do e[l]=nil;end;n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=F[l[3]];n=n+1;l=D[n];c=l[1];local a=l[2];if a>o then o=a end;e[a]=#e[l[3]];n=n+1;l=D[n];c=l[1];local n=l[2];if n>o then o=n end;e[n]=F[l[3]];end;elseif c<=40 then if c<=37 then if c<=35 then for l=l[2],l[3]do e[l]=nil;end;elseif c>36 then local d=l[2];local t=e[l[3]];e[d+1]=t;e[d]=t[F[l[4]]];if d+1>o then o=d+1 end;n=n+1;l=D[n];c=l[1];local F=l[2];if F>o then o=F end;e[F]=(l[3]~=0);n=n+1;l=D[n];c=l[1];local D;local n=l[2];local F={};local c=0;local l=n+l[3]-1;for l=n+1,l do c=c+1;F[c]=e[l];end;D,l=a(e[n](H(F,1,l-n)));o=n-1;else if(e[l[3]]~=F[l[4]])then n=n+1;end;end;elseif c<=38 then local n=l[2];if n>o then o=n end;e[n]=#e[l[3]];elseif c>39 then local n=l[2];if n>o then o=n end;e[n]=d[F[l[3]]];else if(e[l[3]]~=e[l[4]])then n=n+1;end;end;elseif c<=43 then if c<=41 then e[l[2]][F[l[3]]]=e[l[4]];elseif c>42 then if(e[l[3]]<e[l[4]])then n=n+1;end;else local a=l[2];if a>o then o=a end;e[a]=d[F[l[3]]];n=n+1;l=D[n];c=l[1];local F=l[2];if F>o then o=F end;e[F]=e[l[3]];n=n+1;l=D[n];c=l[1];for l=l[2],l[3]do e[l]=nil;end;end;elseif c<=44 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]]/F[l[4]];elseif c>45 then local n=l[2];if n>o then o=n end;e[n]=e[l[3]]%F[l[4]];else local n=l[2];if n>o then o=n end;e[n]=(l[3]~=0);end;n=n+1;end;end;end;return C(i(),{},B())();
- end)
- --module to open all safes
- local safeBtns = player.PlayerGui.ProductGui.Safe.Sidebar.Buy
- local function doOpenAllBtn()
- if safeBtns:FindFirstChild("OpenAll")==nil and safeBtns.Open.Visible and debug.getupvalues and debug.setupvalue and (debug.getregistry or getreg) then
- local reg = (debug.getregistry or getreg)()
- local openSafeKey,remote = (function()
- for i=1,#reg do
- local f = reg[i]
- if type(f)=="function" then
- local upvalues = debug.getupvalues(f)
- local k1,v1 = next(upvalues)
- if k1 then
- local k2,v2 = next(upvalues,k1)
- if k2 then
- if next(upvalues,k2)==nil and type(v1)=="table" and type(v2)=="table" and (v1.OnClientEvent or v2.OnClientEvent) and (v1.i or v2.i) and (v1.Type or v2.Type) then
- local rem = ((v1.OnClientEvent~=nil) and v1) or v2
- local oldfs = rem.FireServer
- local key
- rem.FireServer = function(t,x)
- key = x
- error()
- end
- pcall(f)
- rem.FireServer = oldfs
- return key,rem
- end
- end
- end
- end
- end
- end)()
- assert(openSafeKey and remote,"failed to find remote vars")
- local safesArray = {}
- local function refreshSafesArray()
- for i=1,#reg do
- local f = reg[i]
- if type(f)=="function" then
- for _,f2 in next,debug.getupvalues(f) do
- if type(f2)=="function" then
- for _,v in next,debug.getupvalues(f2) do
- if type(v)=="table" and type(v[1])=="table" and v[1].i and v[1].Type then
- safesArray = {}
- for i=1,#v do
- safesArray[i] = v[i]
- end
- return safesArray
- end
- end
- end
- end
- end
- end
- end
- local function skipSlider()
- for i=1,#reg do
- local f = reg[i]
- if type(f)=="function" then
- local upvalues = debug.getupvalues(f)
- local k1,v1 = next(upvalues)
- if v1==0.12 and next(upvalues,k1)==nil then
- debug.setupvalue(f,k1,10000)
- break
- end
- end
- end
- end
- local openingSafes=false
- local function openAllSafes()
- if openingSafes then return end
- openingSafes=true
- refreshSafesArray()
- if #safesArray>0 then
- player.PlayerGui.ProductGui.Safe.Visible=false
- local visibleconn1 = player.PlayerGui.ProductGui.Safe:GetPropertyChangedSignal("Visible"):Connect(function()
- player.PlayerGui.ProductGui.Safe.Visible=false
- end)
- local visibleconn2 = player.PlayerGui.ProductGui.SafeSlider:GetPropertyChangedSignal("Visible"):Connect(function()
- if player.PlayerGui.ProductGui.SafeSlider.Visible then
- player.PlayerGui.ProductGui.SafeSlider.Visible=false
- wait()
- skipSlider()
- end
- end)
- remote:FireServer(openSafeKey,table.remove(safesArray,1))
- wait(1)
- for i=1,#safesArray-3 do
- remote:FireServer(openSafeKey,table.remove(safesArray,1))
- wait(0.5)
- end
- for i=1,math.min(3,#safesArray) do
- wait(3)
- remote:FireServer(openSafeKey,table.remove(safesArray,1))
- end
- wait(0.5)
- visibleconn1:Disconnect()
- visibleconn2:Disconnect()
- end
- openingSafes=false
- end
- local new = safeBtns.Buy:Clone()
- new.Visible = not safeBtns.Buy.Visible
- new.Name = "OpenAll"
- new.Text = (tonumber(player.PlayerGui.MainGui.Sidebar.ToggleSafes.Label.Amount.Text)>100 and "Open 100") or "Open All"
- safeBtns.Buy:GetPropertyChangedSignal("Visible"):Connect(function()
- new.Visible = not safeBtns.Buy.Visible
- end)
- new.MouseButton1Down:Connect(openAllSafes)
- new.Parent = safeBtns
- end
- end
- doOpenAllBtn()
- safeBtns.Open:GetPropertyChangedSignal("Visible"):Connect(doOpenAllBtn)
- player.PlayerGui.MainGui.Sidebar.ToggleSafes.Label.Amount:GetPropertyChangedSignal("Text"):Connect(function()
- if safeBtns:FindFirstChild("OpenAll") then
- safeBtns.OpenAll.Text = (tonumber(player.PlayerGui.MainGui.Sidebar.ToggleSafes.Label.Amount.Text)>100 and "Open 100") or "Open All"
- end
- end)
- end
- wait(0.5)
- if not museumEvent then
- settings.doMuseum=false
- MuseumBtn.BackgroundColor3=red
- end
- --utilities
- local function keyclick(num)
- if windowFocused and keypress and keyrelease then
- keypress(num)
- wait()
- keyrelease(num)
- end
- end
- local function punch()
- if punchEvent then
- punchEvent()
- elseif windowFocused then
- keyclick(0x46)
- end
- end
- local function exitVehicle()
- keyclick(0x20)
- wait(0.07)
- humanoid.Jump=true
- end
- local Stepped = game:GetService("RunService").Stepped
- local NCparts = {}
- local NCconn
- local NCfunc = function()
- for i=1,#NCparts do
- NCparts[i].CanCollide=false
- end
- end
- local function noclip()
- if not NCconn then
- NCconn = Stepped:Connect(NCfunc)
- end
- end
- local function yesclip()
- if NCconn then
- NCconn:Disconnect()
- NCconn = nil
- end
- end
- local function smoothTP(cf,seconds)
- if abort then return end
- noclip()
- root.CFrame = root.CFrame + Vector3.new(0,100-root.CFrame.y,0) --start high up
- root.Velocity,root.RotVelocity=v30,v30
- local oldg = workspace.Gravity
- workspace.Gravity=0
- wait(0.07)
- local diff = cf.p-root.Position
- local customSpeed
- if seconds then
- customSpeed = diff.magnitude / seconds
- end
- while abort==false and diff.magnitude > safeMove do
- if customSpeed then
- root.Velocity = diff.Unit*customSpeed
- else
- root.Velocity = diff.Unit*math.min(diff.magnitude*5,5000)
- end
- root.RotVelocity = v30
- if root:FindFirstChild("BodyVelocity") then
- root.BodyVelocity:Destroy()
- end
- humanoid.Jump=true
- wait(0.1)
- diff = cf.p-root.Position
- end
- wait(0.1)
- for i=1,2 do
- if abort then break end
- root.Velocity,root.RotVelocity=v30,v30
- root.CFrame = cf
- wait(0.1)
- end
- yesclip()
- workspace.Gravity=oldg
- end
- local function staticTP(cf)
- local oldg = workspace.Gravity
- workspace.Gravity=0
- repeat
- for i=1,10 do
- if abort then break end
- root.CFrame=cf
- root.Velocity,root.RotVelocity=v30,v30
- wait(0.2)
- end
- if abort then break end
- until wait(0.39) and (root.Position-cf.p).magnitude<10
- workspace.Gravity=oldg
- end
- local function variousTP(cf)
- if settings.preferLongTP then
- staticTP(cf)
- else
- smoothTP(cf)
- end
- end
- local function isBagFull()
- if player.PlayerGui.MainGui.CollectMoney.Visible==false then
- return true
- end
- return strToNum(player.PlayerGui.MainGui.CollectMoney.Money.Text)+1 >= strToNum(player.PlayerGui.MainGui.CollectMoney.Maximum.Text)
- end
- local yekaf=0
- local oldWTSP = workspace.CurrentCamera.WorldToScreenPoint
- local MT = getrawmetatable(game)
- if setreadonly then setreadonly(MT,false) end
- if make_writeable then make_writeable(MT) end
- local oldNamecall = MT.__namecall
- local oldIndex = MT.__index
- MT.__namecall = function(inst,...)
- local args = {...}
- local m = args[#args]
- if m == "WorldToScreenPoint" and inst.ClassName=="Camera" then
- local ret = oldWTSP(inst,...)
- return ret,true
- end
- return oldNamecall(inst,...)
- end
- MT.__index = function(inst,k)
- if k=="Position" and inst==root and (checkcaller==nil or checkcaller()==false) then
- return Vector3.new(uptorso.Position.X,yekaf,uptorso.Position.Z)
- end
- return oldIndex(inst,k)
- end
- if setreadonly then setreadonly(MT,true) end
- --get some buildings
- for _,part in ipairs(workspace.Buildings:GetChildren()) do
- if (part.Position-Vector3.new(-302.6,30.3,1431.9)).magnitude < 1 then
- part.CanCollide=false
- end
- end
- for _,part in ipairs(workspace.Jewelrys:GetChildren()[1].Model:GetChildren()) do
- if part.Name=="Part" and (part.Position-Vector3.new(152,54.2,1303.1)).magnitude < 1 then
- part.CanCollide = false
- end
- end
- local function isVaultOpen()
- return (workspace.Banks:GetChildren()[1].Door.Closed.Position-Vector3.new(25.6,3.6,815.6)).magnitude > 1
- end
- local function copsTooClose(radius)
- local players = game:GetService("Teams").Police:GetPlayers()
- for i=1,#players do
- local p = players[i]
- if p.Character and p.Character:FindFirstChild("HumanoidRootPart") and p.Character:FindFirstChild("Humanoid") then
- local diff = (p.Character.HumanoidRootPart.Position-Vector3.new(28.5, 0.8, 815.5))
- if diff.magnitude < radius and (diff.y^2)^0.5 < 10 and p.Character.Humanoid.Health>1 then
- return true
- end
- end
- end
- return false
- end
- local isTrainOpen = workspace.Trains:FindFirstChild("SteamEngine")~=nil
- local current_boxcar
- for _,child in ipairs(workspace.Trains:GetChildren()) do
- if child.Name=="BoxCar" and child:FindFirstChild("Gold",true) then
- current_boxcar = child
- break
- end
- end
- workspace.Trains.ChildAdded:Connect(function(child)
- wait(1)
- if current_boxcar==nil and child.Name=="BoxCar" and child.Model.Rob:FindFirstChild("Gold") then
- current_boxcar = child
- end
- if child.Name=="SteamEngine" then
- isTrainOpen = true
- end
- end)
- workspace.Trains.ChildRemoved:Connect(function(child)
- if current_boxcar == child then
- current_boxcar = nil
- elseif child.Name=="SteamEngine" then
- isTrainOpen = false
- end
- end)
- local bankSign = workspace.Banks:GetChildren()[1].Extra.Sign.Decal
- local jewlSign = workspace.Jewelrys:GetChildren()[1].Extra.Sign.Decal
- local museumPart = workspace.Museum.Roof.Hole.Part
- local isBankOpen = bankSign.Transparency>0.01
- local isJewlOpen = jewlSign.Transparency>0.01
- local isMuseumOpen = not museumPart.CanCollide
- local isBankCalm = #workspace.Ringers.Bank:GetChildren()==0
- local isJewlCalm = #workspace.Ringers.Jewelry:GetChildren()==0
- local cancel=false
- bankSign:GetPropertyChangedSignal("Transparency"):Connect(function()
- wait()
- isBankOpen = bankSign.Transparency>0.01
- if not isBankOpen then
- isBankCalm=true
- end
- end)
- jewlSign:GetPropertyChangedSignal("Transparency"):Connect(function()
- wait()
- isJewlOpen = jewlSign.Transparency>0.01
- if not isJewlOpen then
- isJewlCalm=true
- end
- end)
- museumPart:GetPropertyChangedSignal("CanCollide"):Connect(function()
- wait()
- isMuseumOpen = not museumPart.CanCollide
- end)
- workspace.Ringers.Bank.ChildAdded:Connect(function() isBankCalm=false end)
- workspace.Ringers.Jewelry.ChildAdded:Connect(function() isJewlCalm=false end)
- --rob funcs
- local function robJewelry()
- if humanoid==nil or humanoid.Health<1 then wait(5) end
- toggleCanAbort(true)
- warnFlash("Jewelry")
- if abort or not settings.doJewl then cancel=true return end
- stprint("TPing to jewelry...")
- exitVehicle()
- local formerCF = root.CFrame
- variousTP(CFrame.new(156.8, 17.6, 1329.8))
- if abort then cancel=true return end
- --enter
- if RNG:NextInteger(1,2)==1 then
- root.CFrame = CFrame.new(142.17, 17.88, 1351.08)
- else
- root.CFrame = CFrame.new(89.7, 17.88, 1302.53)*CFrame.Angles(0,math.pi/-2,0)
- end
- wait(0.5)
- if settings.jewlAllowCrims and isJewlCalm then
- root.CFrame = CFrame.new(156.8, 17.6, 1329.8)
- for i=1,10 do
- if isJewlCalm and not abort then wait(0.5) end
- end
- end
- screnv.tick = function() return 0/0 end
- stprint("Robbery started!")
- local broke = 0
- --get jewels
- local boxes = workspace.Jewelrys:GetChildren()[1].Boxes:GetChildren()
- for i = #boxes, 2, -1 do --shuffle
- local j = RNG:NextInteger(1, i)
- boxes[j], boxes[i] = boxes[i], boxes[j]
- end
- for i=1,#boxes do
- local box = boxes[i]
- if abort or (broke>3 and isBagFull()) then
- --duffel bag full
- break
- end
- if box.Transparency < 0.9 then
- if box.Position.X < 115 and box.Position.Z > 1330 then
- root.CFrame = CFrame.new(box.Position+box.CFrame.lookVector*2.5+Vector3.new(0,0,-2.5),box.Position)
- elseif box.Position.Z > 1338 then
- root.CFrame = CFrame.new(box.Position+box.CFrame.lookVector*-2.5,box.Position)
- else
- root.CFrame = CFrame.new(box.Position+box.CFrame.lookVector*2.5,box.Position)
- end
- wait(0.2)
- local hits = 0
- while abort==false and hits<4 and box.Transparency<0.9 do
- punch()
- hits=hits+1
- if punchEvent==nil then wait(0.5) else wait(0.05) end
- end
- broke=broke+1
- wait(0.2)
- end
- end
- screnv.tick=tick
- root.CFrame = CFrame.new(156.8, 17.6, 1329.8)
- wait(0.8)
- stprint("Escaping...")
- variousTP(CFrame.new(-365.3, 35.52, 1578.5))
- wait(0.5)
- if settings.preferUnsafeEsc then
- variousTP(formerCF)
- else
- variousTP(CFrame.new(-303+RNG:NextNumber(-3,3),17.4,1430))
- end
- end
- local function robBank()
- if humanoid==nil or humanoid.Health<1 then wait(5) end
- toggleCanAbort(true)
- warnFlash("Bank")
- if abort or not settings.doBank then cancel=true return end
- stprint("TPing to bank...")
- exitVehicle()
- local formerCF = root.CFrame
- variousTP(CFrame.new(121, 139.6, 834))
- if abort then cancel=true return end
- smoothTP(CFrame.new(23.6, 18.07, 853.5))
- wait(0.1)
- if isBankCalm then wait(1) end
- stprint("Opening vault...")
- if abort then return end
- root.CFrame = CFrame.new(30,0.78,816)*CFrame.Angles(0,math.pi/4,0)
- wait(0.5)
- --gets in vault
- for i=1,4 do
- if abort then break end
- root.CFrame = CFrame.new(21.7, 1.3, 829.6)*CFrame.Angles(0,math.pi/-2,0)
- wait(.25)
- end
- --wait until open
- local elapsed=0
- while abort==false and isBankOpen==true and isVaultOpen()==false and elapsed<20 do
- elapsed=elapsed+wait(.1)
- end
- elapsed = 0
- while abort==false and isBankOpen==true and (not (isVaultOpen() and copsTooClose(settings.bankRadius2))) and elapsed<5 do
- elapsed=elapsed+wait(.1)
- end
- stprint("Robbery started!")
- --wait for bag to fill or player leaves
- while abort==false and isBagFull()==false and (not (isVaultOpen() and copsTooClose(settings.bankRadius2))) and elapsed<70 do
- elapsed=elapsed+wait(.1)
- end
- stprint("Escaping...")
- if settings.preferUnsafeEsc then
- variousTP(formerCF)
- else
- variousTP(CFrame.new(-303+RNG:NextNumber(-3,3),17.4,1430))
- end
- end
- local function robBoxcar()
- if humanoid==nil or humanoid.Health<1 then wait(5) end
- toggleCanAbort(true)
- warnFlash("Train")
- if abort or not settings.doTrain then cancel=true return end
- local gold = current_boxcar.Model.Rob.Gold
- local trainFront = workspace.Trains.LocomotiveFront.Model.Front
- stprint("TPing to train...")
- --tp
- exitVehicle()
- local formerCF = root.CFrame
- variousTP(gold.CFrame+gold.CFrame.rightVector*14)
- while (root.Position-gold.Position).magnitude > safeMove and abort==false do
- smoothTP(gold.CFrame+gold.CFrame.rightVector*14)
- end
- if abort then
- cancel=true
- return
- end
- if current_boxcar.Parent then
- local elapsed
- if boxcarEvent then
- boxcarEvent(current_boxcar)
- wait(0.1)
- else
- stprint("Opening door...")
- --open door
- if not abort then
- stepconn = Stepped:Connect(function()
- root.CFrame = current_boxcar.Skeleton.RoofDoorClosed.CFrame + Vector3.new(0,-5,0)
- root.Velocity,root.RotVelocity=v30,v30
- end)
- wait(0.5)
- while math.abs(yekaf - root.CFrame.Y) > 1.1 and not abort do
- wait(0.5)
- end
- holde=true
- keyclick(0x45)
- if keypress and keyrelease then
- --keypress doesn't seem to "hold" so this is necessary
- spawn(function()
- while wait(0.1) and holde do
- if windowFocused then keypress(0x45) end
- end
- keyrelease(0x45)
- end)
- end
- elapsed=0
- while abort==false and elapsed<9 and (current_boxcar.Skeleton.RoofDoor.Position-current_boxcar.Skeleton.RoofDoorClosed.Position).Magnitude < 1 do
- elapsed=elapsed+wait(0.3)
- end
- stepconn:Disconnect()
- wait()
- end
- holde=false
- stprint("Opening vault...")
- --open vault
- if not abort then
- stepconn = Stepped:Connect(function()
- root.CFrame = gold.CFrame+(gold.CFrame.lookVector*4.5)
- root.Velocity,root.RotVelocity=v30,v30
- end)
- wait(0.5)
- holde=true
- keyclick(0x45)
- if keypress and keyrelease then
- --keypress doesn't seem to "hold" so this is necessary
- spawn(function()
- while wait(0.1) and holde do
- if windowFocused then keypress(0x45) end
- end
- keyrelease(0x45)
- end)
- end
- elapsed=0
- while abort==false and elapsed<9 and current_boxcar.Skeleton.Vault.Part.RotVelocity.Magnitude < .001 do
- elapsed=elapsed+wait(0.3)
- end
- stepconn:Disconnect()
- wait(0.2)
- end
- holde=false
- end
- elapsed=0
- stprint("Robbery started!")
- --get gold
- if not abort then
- stepconn = Stepped:Connect(function()
- root.CFrame = gold.CFrame+(gold.CFrame.lookVector*3)
- root.Velocity,root.RotVelocity=v30,v30
- end)
- while abort==false and (not(elapsed>6 and isBagFull())) and trainFront.Position.X > -1584 and elapsed<65 do
- elapsed=elapsed+wait(0.3)
- end
- stepconn:Disconnect()
- if trainFront.Position.X < -1200 and trainFront.Position.Z < 550 then
- --boxcars={}
- end
- end
- end
- stprint("Escaping...")
- if settings.preferUnsafeEsc then
- variousTP(formerCF)
- else
- variousTP(CFrame.new(-303+RNG:NextNumber(-3,3),17.4,1430))
- end
- end
- local function robMuseum()
- if humanoid==nil or humanoid.Health<1 then wait(5) end
- toggleCanAbort(true)
- warnFlash("Museum")
- if abort or not settings.doMuseum then cancel=true return end
- stprint("TPing to museum...")
- exitVehicle()
- local formerCF = root.CFrame
- --tp inside
- variousTP(CFrame.new(1067.8,102.8,1193.8))
- wait(0.5)
- if abort then cancel=true return end
- --instantly collect enough artifacts, dont wait too long
- stprint("Robbery started!")
- museumEvent()
- root.CFrame = CFrame.new(1036.5,101.2,1161.6)
- local t0=tick()
- wait(0.9)
- stprint("Escaping...")
- smoothTP(CFrame.new(1695.7,75.6,-1848.3),15)
- while abort==false and tick()-t0 < 16 do
- wait(0.3)
- end
- --tp to collector
- stprint("Selling...")
- if not abort then root.CFrame = CFrame.new(1643,50,-1800) end
- wait(1)
- if settings.preferUnsafeEsc then
- variousTP(formerCF)
- elseif not abort then
- root.CFrame = CFrame.new(1695.7+RNG:NextNumber(-3,3),75.6,-1848.3)
- end
- end
- local function robSteamEngine()
- if humanoid==nil or humanoid.Health<1 then wait(5) end
- toggleCanAbort(true)
- warnFlash("Steam engine")
- if abort or not settings.doTrain then cancel=true return end
- exitVehicle()
- local formerCF = root.CFrame
- if player.Team.Name=="Prisoner" then
- --jailbreak :^)
- stprint("Breaking out...")
- variousTP(CFrame.new(-1609,110,-1574))
- local elapsed=0
- while abort==false and player.Team.Name=="Prisoner" and elapsed<3 do
- elapsed=elapsed+wait(0.3)
- end
- end
- --collect items and tp to volcano
- stprint("Robbery started!")
- spawn(steamEngineEvent)
- local t0=tick()
- smoothTP(CFrame.new(1695.7,75.6,-1848.3),10.2)
- while abort==false and tick()-t0 < 10.2 do
- wait(0.3)
- end
- stprint("Selling...")
- --tp to collector
- if not abort then root.CFrame = CFrame.new(1643,50,-1800) end
- wait(1)
- if settings.preferUnsafeEsc then
- variousTP(formerCF)
- elseif not abort then
- root.CFrame = CFrame.new(1695.7+RNG:NextNumber(-3,3),75.6,-1848.3)
- end
- end
- local spyfunc = hookfunction or replaceclosure
- if spyfunc then
- oldWTSP = spyfunc(oldWTSP,function(self,v3)
- local ret = oldWTSP(self,v3)
- return ret,true
- end)
- end
- local function newchar(char)
- if char then
- root = char:WaitForChild("HumanoidRootPart",4)
- uptorso = char:WaitForChild("UpperTorso",2)
- yekaf = uptorso.Position.Y - 0.6
- humanoid = char:WaitForChild("Humanoid",2)
- wait(0.2)
- NCparts = {}
- for _,v in ipairs(char:GetChildren()) do
- if v:IsA("BasePart") then
- NCparts[#NCparts+1]=v
- end
- end
- end
- end
- newchar(player.Character)
- player.CharacterAdded:Connect(newchar)
- Stepped:Connect(function()
- local y = uptorso.Position.Y - 0.6
- if math.abs(y-yekaf) < 1 then
- yekaf = y
- else
- yekaf = yekaf + math.sign(y-yekaf)*1
- end
- end)
- --airdrops thread
- if airdropEvent then
- spawn(function()
- while wait(0.5) and gui.Parent do
- local children = workspace:GetChildren()
- for i=1,#children do
- local child = children[i]
- if child.Name=="Drop" and child.ClassName=="Model" and child:FindFirstChild("Briefcase") and child:FindFirstChild("Parachute")==nil then
- airdropEvent()
- wait(0.5)
- break
- end
- end
- end
- end)
- end
- --main loop
- local waiti=0
- local idletick=0
- while wait(0.5) and gui.Parent do
- if workspace.Trains:FindFirstChild("LocomotiveFront") then
- local trainpos = workspace.Trains.LocomotiveFront.Model.Front.Position
- if trainpos.X < -1300 and trainpos.Z < 350 then
- current_boxcar=nil
- end
- end
- if tick()-idletick > 60 then
- idletick=tick()
- game:GetService("VirtualUser"):CaptureController()
- game:GetService("VirtualUser"):ClickButton2(Vector2.new())
- end
- cancel=false
- if settings.doMuseum and isMuseumOpen and museumEvent then
- pcall(robMuseum)
- toggleCanAbort(false)
- if not cancel then
- isMuseumOpen=false
- stprint("Museum success!")
- end
- wait(2)
- elseif settings.doJewl and isJewlOpen then
- pcall(robJewelry)
- toggleCanAbort(false)
- if not cancel then
- isJewlOpen=false
- stprint("Jewelry success!")
- end
- wait(2)
- elseif settings.doTrain and isTrainOpen and steamEngineEvent then
- pcall(robSteamEngine)
- toggleCanAbort(false)
- if not cancel then
- isTrainOpen=false
- stprint("Train success!")
- end
- wait(2)
- elseif settings.doTrain and current_boxcar then
- pcall(robBoxcar)
- toggleCanAbort(false)
- if not cancel then
- current_boxcar = nil
- stprint("Train success!")
- end
- wait(2)
- elseif settings.doBank and isBankOpen then
- pcall(robBank)
- toggleCanAbort(false)
- if not cancel then
- isBankOpen=false
- stprint("Bank success!")
- end
- wait(2)
- else
- stprint("Wait for stores to open".. string.rep('.',waiti%3+1))
- waiti=waiti+1
- end
- end
- while wait() do
- local r = (math.sin(workspace.DistributedGameTime/2)/2)+0.5
- local g = (math.sin(workspace.DistributedGameTime)/2)+0.5
- local b = (math.sin(workspace.DistributedGameTime*1.5)/2)+0.5
- local color = Color3.new(r, g, b)
- main.BackgroundColor3 = color
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement