Guest User

Bloxburg AFK Farm Script

a guest
May 6th, 2018
29,219
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3.  
  4. local Players = game.Players
  5.  
  6. local Player = Players['LocalPlayer']
  7.  
  8.  
  9.  
  10. local Character = Player.Character or Player.CharacterAdded:wait()
  11.  
  12. local HRP = Character['HumanoidRootPart']
  13.  
  14. local Stat = workspace.Stats[Player.Name]
  15.  
  16.  
  17.  
  18. local DE = game.ReplicatedStorage.DataEvent
  19.  
  20. local UE = Player.PlayerGui.MainGUI.Scripts.Inventory.UpdateEvent
  21.  
  22.  
  23.  
  24. local PP = workspace.PizzaPlanet
  25.  
  26. local Stations = PP['BakerWorkstations']
  27.  
  28. local Crates = PP['IngredientCrates']
  29.  
  30. local Working, Stocking = true
  31.  
  32.  
  33.  
  34. Stat.Job:GetPropertyChangedSignal('Value'):Connect(function()
  35.  
  36.     if Stat.Job.Value == 'PizzaPlanetBaker' then Working = false
  37.  
  38.     else Working = true end
  39.  
  40. end)
  41.  
  42. if Stat.Job.Value == 'PizzaPlanetBaker' then Working = false end
  43.  
  44.  
  45.  
  46. local Orders = {
  47.  
  48.     Cheese = {true,true,true,false};
  49.  
  50.     Vegetable = {true,true,true,'Vegetable'};
  51.  
  52.     Ham = {true,true,true,'Ham'};
  53.  
  54.     Pepperoni = {true,true,true,'Pepperoni'}
  55.  
  56. }
  57.  
  58.  
  59.  
  60. local CrateTP = Vector3.new(1163.78955, 13.5, 258.54892)
  61.  
  62. local Positions = {
  63.  
  64.     Vector3.new(1173.34778, 13.5, 226.585571),
  65.  
  66.     Vector3.new(1172.8501, 13.5, 238.183029),
  67.  
  68.     Vector3.new(1173.20837, 13.5, 250.465881),
  69.  
  70.     Vector3.new(1173.47266, 13.5, 259.170837)
  71.  
  72. }
  73.  
  74.  
  75.  
  76. local Part1 = coroutine.wrap(function()
  77.  
  78.     while wait() do
  79.  
  80.         for __, station in next, (Stations:GetChildren()) do
  81.  
  82.             if Working then break end
  83.  
  84.             local CT = station:FindFirstChild('CounterTop')
  85.  
  86.             if CT then CT.Parent = nil end
  87.  
  88.             station.InUse.Value = Player
  89.  
  90.            
  91.  
  92.             local Pos = Positions[__]
  93.  
  94.             Character.Humanoid.WalkToPoint = Pos
  95.  
  96.             repeat wait() until (HRP.Position - Pos).magnitude < 2 or Working
  97.  
  98.             if Working then break end
  99.  
  100.  
  101.  
  102.             local NI = station['OrderDisplay']['DisplayMain']:FindFirstChild('NoIngredients',true)
  103.  
  104.             if NI and NI.Visible and not Working then
  105.  
  106.                 Stocking = true
  107.  
  108.                 local Pos = CrateTP
  109.  
  110.                 Character.Humanoid.WalkToPoint = Pos
  111.  
  112.                 repeat wait() until (HRP.Position - Pos).magnitude < 2.75 or Working
  113.  
  114.                 if Working then break end
  115.  
  116.                
  117.  
  118.                 local Crate = Crates.Crate;
  119.  
  120.                 for __, cr in next, (Crates:GetChildren()) do
  121.  
  122.                     if (cr.Position - HRP.Position).magnitude < (Crate.Position - HRP.Position).magnitude then
  123.  
  124.                         Crate = cr
  125.  
  126.                     end
  127.  
  128.                 end
  129.  
  130.                 Crate.Parent = game.Lighting.TempFolder
  131.  
  132.                 wait()
  133.  
  134.                 DE:FireServer({
  135.  
  136.                     Object = game.Lighting.TempFolder.Crate,
  137.  
  138.                     Type = 'TakeIngredientCrate'
  139.  
  140.                 })
  141.  
  142.                 Crate.Parent = Crates
  143.  
  144.                 UE:Fire(Stat.EquippedItem)
  145.  
  146.                 wait()
  147.  
  148.             end
  149.  
  150.            
  151.  
  152.             local Pos = Positions[__]
  153.  
  154.             Character.Humanoid.WalkToPoint = Pos
  155.  
  156.             repeat wait() until (HRP.Position - Pos).magnitude < 2 or Working
  157.  
  158.             if Working then break end
  159.  
  160.             if Stocking then
  161.  
  162.                  DE:FireServer({
  163.  
  164.                     Workstation = station,
  165.  
  166.                     Type = 'RestockIngredients'
  167.  
  168.                 })
  169.  
  170.             end
  171.  
  172.             Stocking = false
  173.  
  174.         end
  175.  
  176.         for i = #Positions, 1, -1 do
  177.  
  178.             local station = Stations:GetChildren()[i]
  179.  
  180.             if Working then break end
  181.  
  182.             local CT = station:FindFirstChild('CounterTop')
  183.  
  184.             if CT then CT.Parent = nil end
  185.  
  186.             station.InUse.Value = Player
  187.  
  188.            
  189.  
  190.             local Pos = Positions[i]
  191.  
  192.             Character.Humanoid.WalkToPoint = Pos
  193.  
  194.             repeat wait() until (HRP.Position - Pos).magnitude < 2 or Working
  195.  
  196.             if Working then break end
  197.  
  198.  
  199.  
  200.             local NI = station['OrderDisplay']['DisplayMain']:FindFirstChild('NoIngredients',true)
  201.  
  202.             if NI and NI.Visible and not Working then
  203.  
  204.                 Stocking = true
  205.  
  206.                 local Pos = CrateTP
  207.  
  208.                 Character.Humanoid.WalkToPoint = Pos
  209.  
  210.                 repeat wait() until (HRP.Position - Pos).magnitude < 2.75 or Working
  211.  
  212.                 if Working then break end
  213.  
  214.                
  215.  
  216.                 local Crate = Crates.Crate;
  217.  
  218.                 for __, cr in next, (Crates:GetChildren()) do
  219.  
  220.                     if (cr.Position - HRP.Position).magnitude < (Crate.Position - HRP.Position).magnitude then
  221.  
  222.                         Crate = cr
  223.  
  224.                     end
  225.  
  226.                 end
  227.  
  228.                 Crate.Parent = game.Lighting.TempFolder
  229.  
  230.                 wait()
  231.  
  232.                 DE:FireServer({
  233.  
  234.                     Object = game.Lighting.TempFolder.Crate,
  235.  
  236.                     Type = 'TakeIngredientCrate'
  237.  
  238.                 })
  239.  
  240.                 Crate.Parent = Crates
  241.  
  242.                 UE:Fire(Stat.EquippedItem)
  243.  
  244.                 wait()
  245.  
  246.             end
  247.  
  248.            
  249.  
  250.             local Pos = Positions[i]
  251.  
  252.             Character.Humanoid.WalkToPoint = Pos
  253.  
  254.             repeat wait() until (HRP.Position - Pos).magnitude < 2 or Working
  255.  
  256.             if Working then break end
  257.  
  258.             if Stocking then
  259.  
  260.                  DE:FireServer({
  261.  
  262.                     Workstation = station,
  263.  
  264.                     Type = 'RestockIngredients'
  265.  
  266.                 })
  267.  
  268.             end
  269.  
  270.             Stocking = false
  271.  
  272.         end
  273.  
  274.     end
  275.  
  276. end)
  277.  
  278.  
  279.  
  280. local Part2 = coroutine.wrap(function()
  281.  
  282.     while wait(1) do
  283.  
  284.         for __, station in next, (Stations:GetChildren()) do
  285.  
  286.             if Working or Stocking then break end
  287.  
  288.             local send = Orders[station.Order.Value]
  289.  
  290.             local count = station.Order.IngredientsLeft.Value
  291.  
  292.             DE:FireServer({
  293.  
  294.                 Workstation = station,
  295.  
  296.                 Type = 'UseWorkstation'
  297.  
  298.             })
  299.  
  300.            
  301.  
  302.             if Working or Stocking then break end
  303.  
  304.             if count > 2 then count = count - 1 end
  305.  
  306.             for i = 1, count do
  307.  
  308.                 DE:FireServer({
  309.  
  310.                     Workstation = station,
  311.  
  312.                     Type = 'UseWorkstation'
  313.  
  314.                 })
  315.  
  316.             end
  317.  
  318.  
  319.  
  320.             if Working or Stocking then break end
  321.  
  322.  
  323.  
  324.             DE:FireServer({
  325.  
  326.                 Order = send,
  327.  
  328.                 Workstation = station,
  329.  
  330.                 Type = 'FinishOrder'
  331.  
  332.             })
  333.  
  334.             UE:Fire(Stat.Job.ShiftEarnings)
  335.  
  336.         end
  337.  
  338.     end
  339.  
  340. end)
  341.  
  342.  
  343.  
  344. Part1()
  345.  
  346. Part2()
RAW Paste Data