Advertisement
1337Scripts

Script: Build A Boat For Treasure

Jan 17th, 2025
4,512
2
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.82 KB | None | 2 0
  1. if game.PlaceId ~= 537413528 then
  2. return
  3. end
  4.  
  5. task.spawn(function()
  6. loadstring(game:HttpGet('https://raw.githubusercontent.com/TheRealAsu/BABFT/refs/heads/main/MessageIssue.lua'))()
  7. end)
  8.  
  9. if not isfolder("BABFT") then
  10. makefolder("BABFT")
  11. end
  12.  
  13. if not isfolder("BABFT/Image") then
  14. makefolder("BABFT/Image")
  15. end
  16.  
  17. if not isfolder("BABFT/Build") then
  18. makefolder("BABFT/Build")
  19. end
  20.  
  21. local FcMaster = true
  22. local folderName = "ImagePreview"
  23. local previewFolder = Workspace:FindFirstChild(folderName) or Instance.new("Folder", Workspace)
  24. previewFolder.Name = folderName
  25.  
  26. for _, v in ipairs(previewFolder:GetChildren()) do
  27. v:Destroy()
  28. end
  29.  
  30. task.delay(10, function()
  31. if game:GetService("CoreGui"):FindFirstChild("MSGISSUE") then
  32. game:GetService("CoreGui").MSGISSUE:Destroy()
  33. end
  34. end)
  35.  
  36. local Rayfield
  37. local success
  38.  
  39. success, Rayfield = pcall(function()
  40. return loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
  41. end)
  42.  
  43. if not success then
  44. success, Rayfield = pcall(function()
  45. return loadstring(game:HttpGet('https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/ab965bf9a6f9890e6447c9b377678f5bffd8a379/source.lua'))()
  46. end)
  47. end
  48.  
  49. if not success then
  50. success, Rayfield = pcall(function()
  51. return loadstring(game:HttpGet('https://github.com/SiriusSoftwareLtd/Rayfield/blob/28c7c270669c16a2ae1526eaaac1dbf927aa881e/source.lua'))()
  52. end)
  53. end
  54.  
  55. local HttpService = cloneref(game:GetService("HttpService"))
  56. local TeleportService = cloneref(game:GetService("TeleportService"))
  57. local Players = game:GetService("Players")
  58. local Workspace = game:GetService("Workspace")
  59. local VirtualUser = game:GetService("VirtualUser")
  60. local httprequest = (syn and syn.request) or (http and http.request) or http_request or (fluxus and fluxus.request) or request
  61. local JobId = game.JobId
  62. local PlaceId = game.PlaceId
  63. local queueteleport = (syn and syn.queue_on_teleport) or queue_on_teleport or (fluxus and fluxus.queue_on_teleport)
  64. local RunService = game:GetService("RunService")
  65.  
  66. local Window = Rayfield:CreateWindow({
  67. Name = "Build A Boat For Treasure",
  68. Icon = 85108798400826,
  69. LoadingTitle = "Build A Boat For Treasure",
  70. LoadingSubtitle = "Made With ❤️ by @thereal_asu",
  71. Theme = "DarkBlue",
  72.  
  73. DisableRayfieldPrompts = true,
  74. DisableBuildWarnings = true,
  75.  
  76. ConfigurationSaving = {
  77. Enabled = false,
  78. FolderName = nil,
  79. FileName = "Big Hub"
  80. },
  81.  
  82. Discord = {
  83. Enabled = true,
  84. Invite = "MdtGaG7vdx",
  85. RememberJoins = true
  86. },
  87.  
  88. KeySystem = false,
  89. KeySettings = {
  90. Title = "discord.gg/uGhnBu89SM",
  91. Subtitle = "Key System",
  92. Note = "Key available in discord, link copied to clipboard",
  93. FileName = "ASUBABFTKey",
  94. SaveKey = true,
  95. GrabKeyFromSite = false,
  96. Key = {"terraria"} -- yes there is a keysystem but my script is not obfuscated lol
  97. }
  98. })
  99.  
  100. local Global = Window:CreateTab("Global", 125428076789049)
  101. local ImageLoader = Window:CreateTab("Image Loader", 91865122737183)
  102. local AutoBuild = Window:CreateTab("Auto Build", 128207976113050)
  103. local BlockNeeded = Window:CreateTab("Block Needed", 138460602231983)
  104. local Miscellaneous = Window:CreateTab("Miscellaneous", 90305619538335)
  105. local Information = Window:CreateTab("Information", 84130531909418)
  106. local Credit = Window:CreateTab("Credit", 103654977021797)
  107.  
  108. local Section = Credit:CreateSection("Discord")
  109. Section = Information:CreateSection("Discord")
  110.  
  111. local Button = Credit:CreateButton({
  112. Name = "Join the Community!",
  113. Callback = function()
  114. setclipboard("https://discord.gg/zrAB2m5gvz")
  115. Rayfield:Notify({
  116. Title = "Copied!",
  117. Content = "the discord link has been successfully copied to the clipboard",
  118. Duration = 6.5,
  119. Image = 124144713366592,
  120. })
  121. end,
  122. })
  123.  
  124. local yjdtjf = Global:CreateButton({
  125. Name = "Unload Script",
  126. Callback = function()
  127. for _, v in ipairs(previewFolder:GetChildren()) do
  128. v:Destroy()
  129. end
  130. FcMaster = false
  131. Rayfield:Destroy()
  132. local GameStuff = {
  133. "Blocks",
  134. "Challenge",
  135. "TempStuff",
  136. "Teams",
  137. "MainTerrain",
  138. "OtherStages",
  139. "BlackZone",
  140. "CamoZone",
  141. "MagentaZone",
  142. "New YellerZone",
  143. "Really blueZone",
  144. "Really redZone",
  145. "Sand",
  146. "Water",
  147. "WhiteZone",
  148. "WaterMask"
  149. }
  150. for _, v in ipairs(GameStuff) do
  151. local object = game:GetService("ReplicatedStorage"):FindFirstChild(v)
  152. if object then
  153. if v == "OtherStages" then
  154. game:GetService("ReplicatedStorage").OtherStages.Parent = workspace.BoatStages
  155. else
  156. object.Parent = workspace
  157. end
  158. end
  159. end
  160. end,
  161. })
  162.  
  163. local qzdqzd = Global:CreateDivider()
  164.  
  165. Section = Credit:CreateSection("Owner")
  166.  
  167. local Labeld = Credit:CreateLabel("Owner: @thereal_asu", 93981953300699, Color3.fromRGB(255, 255, 255), true)
  168.  
  169. local Paragraph = Credit:CreateParagraph({Title = "About this script", Content = "This script is one of my projects that I'm taking time to make, I'm leaving it open source to allow people to check if this script is trusted, but also to let people learn the different techniques used in this script to do specific things. Please don't be a bad “skid” and credit me if you use this script to create your own script. It's ok to copy and paste my work for your script or improve my script to your own style, to suggest different versions of it, but please respect me, respect my work and have fun."})
  170.  
  171. local aButton = Information:CreateButton({
  172. Name = "Join the Community!",
  173. Callback = function()
  174. setclipboard("https://discord.gg/zrAB2m5gvz")
  175. Rayfield:Notify({
  176. Title = "Copied!",
  177. Content = "the discord link has been successfully copied to the clipboard",
  178. Duration = 6.5,
  179. Image = 124144713366592,
  180. })
  181. end,
  182. })
  183.  
  184. Section = Information:CreateSection("Auto Farm")
  185. local Paragraph = Information:CreateParagraph({Title = "Information", Content = "let me know if you've ever seen an auto farm more powerful than this one in terms of gold per hour, you can use a webhook to follow the auto farm stats when you're not in front of your screen.\n\n - With no boost: 20K/hour\n - With x1.25: 25K/hour\n - With x2: 40K/hour\n - With Both: 50k/hour"})
  186. Section = Information:CreateSection("Image Loader")
  187. local Paragraph = Information:CreateParagraph({Title = "Requirement", Content = "Paste the image URL in the textbox and let the server convert the image, the server can't access certain images (it's not a coding problem) OR you can convert the image yourself: (more images are supported) Images are created from files that contain special data (RGB), to have these files or to create your own files from an image that you have chosen you must join the discord, you need an external script (open source) that converts the image into a file suitable for this script to be used, a tutorial is in the Discord Server.\n\n - Build Speed: You can choose the speed at which the image is built. If you have a slow internet connection, set the speed to low. Do not set it to max for large images\n\n- Preview: Displays a preview of the image, making it easier to use modifiers or to see how the image will look. It is also required to build the image.\n\n- Change Speed: Stop the current process by opening your inventory and checking if no more blocks are being placed. Change the speed and press 'Load Image' again. It should automatically resume from where it stopped.\n\n- Optimize Mode: Allows even the weakest PCs or those without a good connection to load images."})
  188. local Button = Information:CreateButton({
  189. Name = "copy the list of working sites",
  190. Callback = function()
  191. setclipboard("https://www.pythonanywhere.com/whitelist/")
  192. Rayfield:Notify({
  193. Title = "Copied!",
  194. Content = "past the link in your browser to see which sites work",
  195. Duration = 6.5,
  196. Image = 124144713366592,
  197. })
  198. end,
  199. })
  200. Section = Information:CreateSection("Auto Build")
  201. local Paragraph = Information:CreateParagraph({Title = "Information - [AUTO BUILD IS IN WORK IN PROGRESS]", Content = "this feature does not require any external requirement, if you save a build with a name that already existed, it will overwrite it. You can download and shares files in the Discord Server.\n\n - Safe Mode: prevents crashes during loading if you have a poor internet connection, this toggle slows down build speed.\n\n - Preview: displays a preview of the build."})
  202.  
  203. local player = game.Players.LocalPlayer
  204. local Nplayer = game.Players.LocalPlayer.Name
  205.  
  206. local characterConnection
  207. local connection
  208.  
  209. local function enableAntiAFK()
  210. if not connection then
  211. Rayfield:Notify({
  212. Title = "Anti-Afk | ON",
  213. Content = "you won't get kicked after 20 minutes of inactivity",
  214. Duration = 6.5,
  215. Image = 124144713366592,
  216. })
  217. connection = player.Idled:Connect(function()
  218. if getgenv().afk6464 then
  219. VirtualUser:CaptureController()
  220. VirtualUser:ClickButton2(Vector2.new())
  221. end
  222. end)
  223. end
  224. end
  225.  
  226. local function disableAntiAFK()
  227. if connection then
  228. connection:Disconnect()
  229. connection = nil
  230. Rayfield:Notify({
  231. Title = "Anti-Afk | OFF",
  232. Content = "you will be kicked after 20 minutes of inactivity",
  233. Duration = 6.5,
  234. Image = 124144713366592,
  235. })
  236. end
  237. end
  238.  
  239. local function loop()
  240. while true do
  241. if getgenv().afk6464 then
  242. enableAntiAFK()
  243. else
  244. disableAntiAFK()
  245. end
  246. wait(1)
  247. end
  248. end
  249.  
  250. spawn(loop)
  251.  
  252. Section = Global:CreateSection("Utilities")
  253. local AFKToggle = Global:CreateToggle({
  254. Name = "Anti-Afk",
  255. CurrentValue = false,
  256. Flag = "",
  257. Callback = function(Value)
  258. getgenv().afk6464 = Value
  259. end,
  260. })
  261.  
  262. if getgenv().afk6464 == true then
  263. AFKToggle:Set(true)
  264. end
  265.  
  266. local Button = Global:CreateButton({
  267. Name = "Load Infinite Yield",
  268. Callback = function()
  269. loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))()
  270. end,
  271. })
  272.  
  273. local Button = Global:CreateButton({
  274. Name = "Tp tool",
  275. Callback = function()
  276. mouse = game.Players.LocalPlayer:GetMouse()
  277. tool = Instance.new("Tool")
  278. tool.RequiresHandle = false
  279. tool.Name = "Tp tool"
  280. tool.ToolTip = "Equip + click = tp"
  281. tool.Activated:connect(function()
  282. local pos = mouse.Hit+Vector3.new(0,2.5,0)
  283. pos = CFrame.new(pos.X,pos.Y,pos.Z)
  284. game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = pos
  285. end)
  286. tool.Parent = game.Players.LocalPlayer.Backpack
  287. end,
  288. })
  289.  
  290. local Button = Global:CreateButton({ -- From IY
  291. Name = "Rejoin",
  292. Callback = function()
  293. Rayfield:Notify({
  294. Title = "Rejoin",
  295. Content = "hold on a sec",
  296. Duration = 6.5,
  297. Image = 124144713366592,
  298. })
  299. wait(0.2)
  300. if #Players:GetPlayers() <= 1 then
  301. Players.LocalPlayer:Kick("\nRejoining...")
  302. wait()
  303. TeleportService:Teleport(PlaceId, Players.LocalPlayer)
  304. else
  305. TeleportService:TeleportToPlaceInstance(PlaceId, JobId, Players.LocalPlayer)
  306. end
  307. wait(5)
  308. Rayfield:Notify({
  309. Title = "Rejoin may have failed",
  310. Content = "try with infinite yield",
  311. Duration = 6.5,
  312. Image = 124144713366592,
  313. })
  314. end,
  315. })
  316.  
  317. local Button = Global:CreateButton({ -- From IY by IY devs and NoobSploit
  318. Name = "Server Hop",
  319. Callback = function()
  320. if httprequest then
  321. Rayfield:Notify({
  322. Title = "Server Hop",
  323. Content = "hold on a sec",
  324. Duration = 6.5,
  325. Image = 124144713366592,
  326. })
  327. wait(0.2)
  328. local servers = {}
  329. local req = httprequest({Url = string.format("https://games.roblox.com/v1/games/%d/servers/Public?sortOrder=Desc&limit=100&excludeFullGames=true", PlaceId)})
  330. local body = HttpService:JSONDecode(req.Body)
  331.  
  332. if body and body.data then
  333. for i, v in next, body.data do
  334. if type(v) == "table" and tonumber(v.playing) and tonumber(v.maxPlayers) and v.playing < v.maxPlayers and v.id ~= JobId then
  335. table.insert(servers, 1, v.id)
  336. end
  337. end
  338. end
  339.  
  340. if #servers > 0 then
  341. TeleportService:TeleportToPlaceInstance(PlaceId, servers[math.random(1, #servers)], Players.LocalPlayer)
  342. else
  343. Rayfield:Notify({
  344. Title = "Error",
  345. Content = "Couldn't find a server.",
  346. Duration = 6.5,
  347. Image = 124144713366592,
  348. })
  349. end
  350. wait(5)
  351. Rayfield:Notify({
  352. Title = "Server Hop may have failed",
  353. Content = "try with infinite yield",
  354. Duration = 6.5,
  355. Image = 124144713366592,
  356. })
  357. end
  358. end,
  359. })
  360.  
  361. local Silent = false
  362.  
  363. Section = Global:CreateSection("Auto Farm - The most powerful one")
  364. local AutoFarm1 = Global:CreateToggle({
  365. Name = "Auto Farm",
  366. CurrentValue = false,
  367. Flag = "",
  368. Callback = function(Value)
  369. getgenv().AF = Value
  370. local isFarming = false
  371.  
  372. local function startAutoFarm()
  373. if Value == false then return end
  374.  
  375. local character = player.Character or player.CharacterAdded:Wait()
  376. local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- What are you looking for, basket ? :) no skid ;)
  377.  
  378. local newPart = Instance.new("Part")
  379. newPart.Size = Vector3.new(5, 1, 5)
  380. newPart.Transparency = 1
  381. newPart.CanCollide = true
  382. newPart.Anchored = true
  383. newPart.Parent = workspace
  384.  
  385. local decal = Instance.new("Decal")
  386. decal.Texture = "rbxassetid://139953968294114"
  387. decal.Face = Enum.NormalId.Top
  388. decal.Parent = newPart
  389.  
  390. local function TPAF(iteration)
  391. if not Silent then
  392. if Value == false then return end
  393. if iteration == 5 then
  394. firetouchinterest(game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart"), workspace.BoatStages.NormalStages.TheEnd.GoldenChest.Trigger, 0)
  395. task.delay(0.8, function()
  396. workspace.ClaimRiverResultsGold:FireServer()
  397. end)
  398.  
  399. humanoidRootPart.CFrame = CFrame.new(-51, 65, 984 + (iteration - 1) * 770)
  400. else
  401. if iteration == 1 then
  402. humanoidRootPart.CFrame = CFrame.new(160.16104125976562, 29.595888137817383, 973.813720703125)
  403. else
  404. humanoidRootPart.CFrame = CFrame.new(-51, 65, 984 + (iteration - 1) * 770)
  405. end
  406. end
  407. newPart.Position = humanoidRootPart.Position - Vector3.new(0, 2, 0)
  408.  
  409. wait(2.3) -- if lower, it can't work every time
  410. if iteration == 1 then
  411. wait(2.3)
  412. end
  413. if iteration == 4 then
  414. else
  415. workspace.ClaimRiverResultsGold:FireServer()
  416. end
  417. else
  418. if Value == false then return end
  419. if iteration == 1 then
  420. humanoidRootPart.CFrame = CFrame.new(160.16104125976562, 29.595888137817383, 973.813720703125)
  421. elseif iteration == 5 then
  422. firetouchinterest(game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart"), workspace.BoatStages.NormalStages.TheEnd.GoldenChest.Trigger, 0)
  423. task.delay(0.8, function()
  424. workspace.ClaimRiverResultsGold:FireServer()
  425. end)
  426.  
  427. humanoidRootPart.CFrame = CFrame.new(70.02417755126953, 138.9026336669922, 1371.6341552734375 + (iteration - 2) * 770)
  428. else
  429. humanoidRootPart.CFrame = CFrame.new(70.02417755126953, 138.9026336669922, 1371.6341552734375 + (iteration - 2) * 770)
  430. end
  431. newPart.Position = humanoidRootPart.Position - Vector3.new(0, 2, 0)
  432.  
  433. wait(2.3) -- if lower, it can't work every time
  434. if iteration == 1 then
  435. wait(2.3)
  436.  
  437. end
  438. if iteration == 4 then
  439. else
  440. workspace.ClaimRiverResultsGold:FireServer()
  441. end
  442. end
  443. end
  444.  
  445. for i = 1, 10 do
  446. if not Value then
  447. break
  448. end
  449. TPAF(i)
  450. end
  451.  
  452. newPart:Destroy()
  453. end
  454.  
  455. local function onCharacterRespawned()
  456. if getgenv().AF == true then
  457. if FcMaster == false then return end
  458. local character = player.Character or player.CharacterAdded:Wait()
  459. character:WaitForChild("HumanoidRootPart")
  460. -- wait(2)
  461. startAutoFarm()
  462. end
  463. end
  464.  
  465. if Value then
  466. Rayfield:Notify({
  467. Title = "Auto Farm - Enabled",
  468. Content = "Isolation mode and Anti-afk is recommended",
  469. Duration = 6.5,
  470. Image = 124144713366592,
  471. })
  472. game.Players.LocalPlayer.Character:BreakJoints()
  473. wait(1)
  474. game.Players.LocalPlayer.CharacterAdded:Connect(onCharacterRespawned)
  475. else
  476. Rayfield:Notify({
  477. Title = "Auto Farm - Disabled",
  478. Content = "Please, wait for the iteration to finish...",
  479. Duration = 6.5,
  480. Image = 124144713366592,
  481. })
  482. game.Players.LocalPlayer.CharacterAdded:Connect(function() end)
  483. end
  484. end,
  485. })
  486.  
  487. local Toggle = Global:CreateToggle({
  488. Name = "Make it Silent",
  489. CurrentValue = false,
  490. Flag = "Toggle1",
  491. Callback = function(Value)
  492. Silent = Value
  493. end,
  494. })
  495.  
  496. local FStats = Global:CreateParagraph({Title = "Stats", Content = "Elapsed time: -".."\n".."GoldBlock Gained: -".."\n".."Gold Gained: -".."\n".."\n".."Gold per hour: -"})
  497.  
  498. local clockTime = 0
  499. local running = false
  500. local totalGoldGained = 0
  501. local Ftime = 0
  502. local totalGoldBlock = 0
  503. local GoldPerHour = 0
  504. local lastGoldValue = game:GetService("Players").LocalPlayer.Data.Gold.Value
  505. local IGBLOCK = game:GetService("Players").LocalPlayer.Data.GoldBlock.Value
  506.  
  507. local function formatTime(seconds)
  508. local hours = math.floor(seconds / 3600)
  509. local minutes = math.floor((seconds % 3600) / 60)
  510. local sec = seconds % 60
  511. return hours .. " hours " .. minutes .. " minutes " .. sec .. " seconds"
  512. end
  513.  
  514. local function startClock()
  515. if running then return end
  516. running = true
  517.  
  518. while running do
  519. if getgenv().AF then
  520. clockTime = clockTime + 1
  521. else
  522. running = false
  523. end
  524. task.wait(1)
  525. end
  526. end
  527.  
  528. game:GetService("RunService").Stepped:Connect(function()
  529. if getgenv().AF and not running then
  530. wait(5)
  531. startClock()
  532. end
  533. end)
  534.  
  535. function initclock()
  536. while true do
  537. local FinalGold = game:GetService("Players").LocalPlayer.Data.Gold.Value
  538. Ftime = formatTime(clockTime)
  539. local GoldGained = FinalGold - lastGoldValue
  540. totalGoldGained = totalGoldGained + GoldGained
  541. local FGBLOCK = game:GetService("Players").LocalPlayer.Data.GoldBlock.Value
  542. totalGoldBlock = FGBLOCK - IGBLOCK
  543.  
  544. GoldPerHour = (totalGoldGained / clockTime) * 3600
  545.  
  546. FStats:Set({
  547. Title = "Stats",
  548. Content = "Elapsed time: " .. Ftime .. "\n" ..
  549. "GoldBlock Gained: " .. totalGoldBlock .. "\n" ..
  550. "Gold Gained: " .. totalGoldGained .. "\n" ..
  551. "Gold per hour: " .. math.floor(GoldPerHour),
  552. })
  553.  
  554. lastGoldValue = FinalGold
  555.  
  556. wait(1)
  557. end
  558. end
  559.  
  560. GoldPerHour = 0
  561.  
  562. function SendMessageEMBED(url, embed)
  563. local http = game:GetService("HttpService")
  564. local headers = {
  565. ["Content-Type"] = "application/json"
  566. }
  567. local data = {
  568. ["embeds"] = {
  569. {
  570. ["title"] = embed.title,
  571. ["description"] = embed.description,
  572. ["color"] = embed.color,
  573. ["fields"] = embed.fields,
  574. ["footer"] = {
  575. ["text"] = embed.footer.text
  576. },
  577. ["thumbnail"] = {
  578. ["url"] = embed.thumbnail_url
  579. }
  580. }
  581. }
  582. }
  583. local body = http:JSONEncode(data)
  584. local response = request({
  585. Url = url,
  586. Method = "POST",
  587. Headers = headers,
  588. Body = body
  589. })
  590. end
  591.  
  592. local WebHook = "a"
  593. local interval = 1800
  594.  
  595. function SendAUTOFARMInfo(Ftime, totalGoldBlock, totalGoldGained, GoldPerHour)
  596. local embed = {
  597. ["title"] = "BABFT | Auto Farm",
  598. ["description"] = "Stats",
  599. ["color"] = 16777215,
  600. ["fields"] = {
  601. {
  602. ["name"] = "Time Elapsed",
  603. ["value"] = Ftime or 0
  604. },
  605. {
  606. ["name"] = "GoldBlock Gained:",
  607. ["value"] = tostring(totalGoldBlock) or 0
  608. },
  609. {
  610. ["name"] = "Gold Gained:",
  611. ["value"] = tostring(totalGoldGained) or 0
  612. },
  613. {
  614. ["name"] = "Gold per hour:",
  615. ["value"] = tostring(math.floor(GoldPerHour)) or 0
  616. },
  617. {
  618. ["name"] = "Total Gold:",
  619. ["value"] = game:GetService("Players").LocalPlayer.Data.Gold.Value or 0
  620. },
  621. },
  622. ["footer"] = {
  623. ["text"] = "Script by @thereal_asu"
  624. },
  625. ["thumbnail_url"] = "https://tr.rbxcdn.com/180DAY-5cc07c05652006d448479ae66212782d/768/432/Image/Webp/noFilter"
  626. }
  627.  
  628. if WebHook then
  629. print("send")
  630. SendMessageEMBED(WebHook, embed)
  631. end
  632. end
  633.  
  634. --[[
  635. local embed2 = { -- Hello, this webhook is just for me to know how many people execute this script, everything is anonymous
  636. ["title"] = "Build A Boat For Treasure",
  637. ["description"] = "Script Executed!",
  638. ["color"] = math.random(1, 16777215),
  639. ["footer"] = {
  640. ["text"] = "Script by @thereal_asu"
  641. },
  642. ["thumbnail_url"] = "https://tr.rbxcdn.com/180DAY-5cc07c05652006d448479ae66212782d/768/432/Image/Webp/noFilter"
  643. }
  644. SendMessageEMBED("the webhook got found and removed, i won't put a new one lol, thanks for the 15K executions in 3 days. - 7th january 2025", embed2)
  645. ]]
  646.  
  647. local InputWebHook = Global:CreateInput({
  648. Name = "Discord Webhook URL:",
  649. CurrentValue = "",
  650. PlaceholderText = "URL",
  651. RemoveTextAfterFocusLost = false,
  652. Flag = "Input1",
  653. Callback = function(Text)
  654. WebHook = Text
  655. end,
  656. })
  657.  
  658. local InputInterval = Global:CreateInput({
  659. Name = "Time between messages:",
  660. CurrentValue = "1800",
  661. PlaceholderText = "Seconds",
  662. RemoveTextAfterFocusLost = false,
  663. Flag = "Input2",
  664. Callback = function(Text)
  665. interval = tonumber(Text)
  666. end,
  667. })
  668.  
  669. local Toggle = Global:CreateToggle({
  670. Name = "Use WebHook",
  671. CurrentValue = false,
  672. Flag = "Toggle1",
  673. Callback = function(Value)
  674. getgenv().WBhook = Value
  675. end,
  676. })
  677.  
  678. coroutine.wrap(function()
  679. while true do
  680. if getgenv().WBhook and getgenv().AF and not getgenv().intervalLock then
  681. getgenv().intervalLock = true
  682. SendAUTOFARMInfo(Ftime, totalGoldBlock, totalGoldGained, GoldPerHour)
  683. task.wait(interval)
  684. getgenv().intervalLock = false
  685. end
  686. task.wait(1)
  687. end
  688. end)()
  689.  
  690. local BlockId = loadstring(game:HttpGet('https://raw.githubusercontent.com/TheRealAsu/BABFT/refs/heads/main/BlockId.lua'))()
  691.  
  692. local ImageFiles = {}
  693.  
  694. local function updateImageFiles()
  695.  
  696. local files = listfiles("BABFT/Image")
  697.  
  698. ImageFiles = {}
  699.  
  700. for _, file in ipairs(files) do
  701. if isfile(file) then
  702. table.insert(ImageFiles, file)
  703. end
  704. end
  705.  
  706. end
  707.  
  708. local Label = ImageLoader:CreateLabel("Check the Information tab to use this feature", 134637165939940, Color3.fromRGB(204, 156, 0), true)
  709.  
  710. --[[
  711. local Dropdownimg = ImageLoader:CreateDropdown({ --When shlex adds a script to refresh the dropdown
  712. Name = "Files",
  713. Options = ImageFiles,
  714. CurrentOption = {""},
  715. MultipleOptions = false,
  716. Flag = "",
  717. Callback = function(Options)
  718. end,
  719. })
  720. --]]
  721.  
  722. local function LPTEAM()
  723. local teamName = player.Team.Name
  724.  
  725. local zoneMapping = {
  726. black = "BlackZone",
  727. blue = "Really blueZone",
  728. green = "CamoZone",
  729. red = "Really redZone",
  730. white = "WhiteZone",
  731. yellow = "New YellerZone",
  732. magenta = "MagentaZone"
  733. }
  734.  
  735. local selectedZoneName = zoneMapping[teamName]
  736.  
  737. if selectedZoneName then
  738. local zone = workspace:FindFirstChild(selectedZoneName)
  739. if zone then
  740. return zone.position + Vector3.new(-100, 150, 0)
  741. end
  742. end
  743. end
  744.  
  745. local function LPTEAM3()
  746. local teamName = player.Team.Name
  747.  
  748. local zoneMapping = {
  749. black = "BlackZone",
  750. blue = "Really blueZone",
  751. green = "CamoZone",
  752. red = "Really redZone",
  753. white = "WhiteZone",
  754. yellow = "New YellerZone",
  755. magenta = "MagentaZone"
  756. }
  757.  
  758. local selectedZoneName = zoneMapping[teamName]
  759.  
  760. if selectedZoneName then
  761. local zone = workspace:FindFirstChild(selectedZoneName)
  762. if zone then
  763. return zone.position
  764. end
  765. end
  766. end
  767.  
  768. function BuildingTool()
  769. game:GetService("Players").LocalPlayer.Backpack.BuildingTool.RF:InvokeServer("WoodBlock",58,workspace.BlackZone,CFrame.new(0, 6, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),true,CFrame.new(),false)
  770. end
  771.  
  772. local imagePreviewFolder = workspace:FindFirstChild("ImagePreview") or Instance.new("Folder")
  773. imagePreviewFolder.Name = "ImagePreview"
  774. imagePreviewFolder.Parent = workspace
  775.  
  776. local UserBlockList = {}
  777. local dataFolder = game:GetService("Players").LocalPlayer.Data
  778. local BlockType = "PlasticBlock"
  779. local LPBlockvalue = UserBlockList[BlockType]
  780. local blockSize = 2
  781. local startPosition = nil
  782. local PreviewPart = nil
  783. local kflxjdhgw = nil
  784. local currentConnection = nil
  785. local FileImage = nil
  786. local HalfblockSize = blockSize / 2
  787. local cooloffset = Vector3.new(0, 0, 0)
  788. local Unit = 45
  789. local Bdepth = 2
  790. local angleY = 0
  791. local ImgCenterimage = nil
  792. local Brainrot = CFrame.identity
  793. local rotationCFrame = CFrame.Angles(0, 0, 0)
  794. local batchSize = 700
  795. local TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLong = 0
  796. local USEURL = nil
  797. local TempData = {}
  798. local BlockLoaded = true
  799. local TASK1, TASK2, TASK3, TASK4, TASK5 = false, false, false, false, false
  800. getgenv().ImgLoaderStat = true
  801.  
  802. local function LPTEAM2()
  803. local teamName = player.Team.Name
  804.  
  805. local zoneMapping = {
  806. black = "BlackZone",
  807. blue = "Really blueZone",
  808. green = "CamoZone",
  809. red = "Really redZone",
  810. white = "WhiteZone",
  811. yellow = "New YellerZone",
  812. magenta = "MagentaZone"
  813. }
  814.  
  815. local selectedZoneName = zoneMapping[teamName]
  816.  
  817. if selectedZoneName then
  818. local zone = workspace:FindFirstChild(selectedZoneName)
  819. if zone then
  820. return zone.Name
  821. end
  822. end
  823. end
  824.  
  825. local function UUserBlockList()
  826. UserBlockList = {}
  827. for _, feuh in ipairs(dataFolder:GetChildren()) do
  828. if feuh.Value ~= nil then
  829. UserBlockList[feuh.Name] = feuh.Value
  830. end
  831. end
  832. end
  833.  
  834. local function readFile(filePath)
  835. if not isfile(filePath) then
  836. return nil
  837. end
  838. return readfile(filePath)
  839. end
  840.  
  841. local function parseColors(fileContent)
  842. local data = {}
  843.  
  844. for value in string.gmatch(fileContent, "[^,]+") do
  845. value = value:match("^%s*(.-)%s*$")
  846. table.insert(data, tonumber(value) or value)
  847. end
  848. return data
  849. end
  850.  
  851. local function calculateFrameSize(data)
  852. local width = 0
  853. local height = 0
  854. local currentWidth = 0
  855.  
  856. for i = 1, #data, 3 do
  857. local r, g, b = data[i], data[i + 1], data[i + 2]
  858.  
  859. if r == "B" and g == "B" and b == "B" then
  860. height += 1
  861. width = math.max(width, currentWidth)
  862. currentWidth = 0
  863. elseif r == "R" and g == "R" and b == "R" then
  864. currentWidth += 1
  865. elseif type(r) == "number" and type(g) == "number" and type(b) == "number" then
  866. currentWidth += 1
  867. end
  868. end
  869. height += 1
  870. width = math.max(width, currentWidth)
  871. return Vector3.new(width * blockSize, height * blockSize, Bdepth)
  872. end
  873.  
  874. local function previewFrame(frameSize, position, blockSize)
  875. startPosition = LPTEAM()
  876. if PreviewPart then
  877. PreviewPart:Destroy()
  878. PreviewPart = nil
  879. end
  880.  
  881. PreviewPart = Instance.new("Part")
  882. PreviewPart.Size = frameSize
  883. PreviewPart.Position = position + Vector3.new(HalfblockSize - blockSize + frameSize.X / 2, HalfblockSize + blockSize - frameSize.Y / 2, 0) + cooloffset
  884. PreviewPart.Transparency = 1
  885. PreviewPart.Color = Color3.new(1, 1, 1)
  886. PreviewPart.Anchored = true
  887. PreviewPart.CanCollide = false
  888. PreviewPart.Name = "PreviewSize"
  889. PreviewPart.Parent = previewFolder
  890. PreviewPart.Rotation = Vector3.new(0, angleY - 90, 0)
  891.  
  892. local textureId = "rbxassetid://133978572926918"
  893.  
  894. local function applyTextureToSurface(surface, sizeX, sizeY)
  895. local texture = Instance.new("Texture")
  896. texture.Texture = textureId
  897. texture.Face = surface
  898. texture.Parent = PreviewPart
  899. texture.StudsPerTileU = blockSize
  900. texture.StudsPerTileV = blockSize
  901. texture.Transparency = 0.2
  902. end
  903.  
  904. applyTextureToSurface(Enum.NormalId.Front, frameSize.X, frameSize.Y)
  905. applyTextureToSurface(Enum.NormalId.Back, frameSize.X, frameSize.Y)
  906. applyTextureToSurface(Enum.NormalId.Left, frameSize.Z, frameSize.Y)
  907. applyTextureToSurface(Enum.NormalId.Right, frameSize.Z, frameSize.Y)
  908. applyTextureToSurface(Enum.NormalId.Top, frameSize.X, frameSize.Z)
  909. applyTextureToSurface(Enum.NormalId.Bottom, frameSize.X, frameSize.Z)
  910. end
  911.  
  912. local function Centerimage(frameSize, position, blockSize)
  913. startPosition = LPTEAM()
  914. if kflxjdhgw then
  915. kflxjdhgw:Destroy()
  916. kflxjdhgw = nil
  917. end
  918.  
  919. kflxjdhgw = Instance.new("Part")
  920. kflxjdhgw.Size = frameSize
  921. kflxjdhgw.Position = position + Vector3.new(HalfblockSize - blockSize + frameSize.X / 2, HalfblockSize + blockSize - frameSize.Y / 2, 0)
  922. kflxjdhgw.Transparency = 1
  923. kflxjdhgw.Color = Color3.new(1, 1, 1)
  924. kflxjdhgw.Anchored = true
  925. kflxjdhgw.CanCollide = false
  926. kflxjdhgw.Name = "Centerimage"
  927. kflxjdhgw.Parent = previewFolder
  928. return kflxjdhgw.Position
  929. end
  930.  
  931. local function buildImageFAST()
  932. local folder = workspace:FindFirstChild("ImagePreview")
  933. if not folder then
  934. return
  935. end
  936.  
  937. for _, part in ipairs(folder:GetChildren()) do
  938. if part:IsA("BasePart") and part.Name == "Part" then
  939. part.Transparency = 0.8
  940. end
  941. end
  942.  
  943. local parts = {}
  944. for _, part in ipairs(folder:GetChildren()) do
  945. if part:IsA("BasePart") and part.Name == "Part" then
  946. table.insert(parts, part)
  947. end
  948. end
  949.  
  950. if #parts == 0 then
  951. return
  952. end
  953.  
  954. local paintData = {}
  955.  
  956. UUserBlockList()
  957. local uszLPBlockvalue = UserBlockList[BlockType]
  958. local Zonesss = LPTEAM2()
  959.  
  960. local LNplayer = nil
  961. if game:GetService("Players").LocalPlayer.Settings.ShareBlocks.Value == false then
  962. LNplayer = Nplayer
  963. else
  964. local playerteam = player.Team.Name
  965. local blocktoget = game:GetService("Teams"):FindFirstChild(playerteam).TeamLeader.Value
  966. LNplayer = blocktoget
  967. end
  968.  
  969. for i = 1, #parts do
  970. if getgenv().ImgLoaderStat == false then
  971. break
  972. end
  973. task.spawn(function()
  974. local part = parts[i]
  975. if not part then
  976. return
  977. end
  978. if getgenv().ImgLoaderStat == false then
  979. return
  980. end
  981. local WORLDPOS = part.Position
  982. local partRot = part.CFrame - part.Position
  983. local newCFrame = CFrame.new(math.random(-69, 69), math.random(-2200000, -120000), math.random(-69, 69))
  984.  
  985. if getgenv().ImgLoaderStat == false then
  986. return
  987. end
  988.  
  989. local BuildPath = player.Backpack:FindFirstChild("BuildingTool") or player.Character:FindFirstChild("BuildingTool")
  990. BuildPath.RF:InvokeServer(
  991. BlockType,
  992. uszLPBlockvalue,
  993. workspace:FindFirstChild(Zonesss),
  994. newCFrame,
  995. true
  996. )
  997. end)
  998. end
  999.  
  1000. TASK1 = true
  1001. local blocks = workspace.Blocks:FindFirstChild(LNplayer):GetChildren()
  1002.  
  1003. while #blocks < #parts do
  1004. task.wait(0.5)
  1005. blocks = workspace.Blocks:FindFirstChild(LNplayer):GetChildren()
  1006. end
  1007.  
  1008. for i = 1, #parts do
  1009. if getgenv().ImgLoaderStat == false then
  1010. break
  1011. end
  1012. task.spawn(function()
  1013. local part = parts[i]
  1014. if not part then
  1015. return
  1016. end
  1017. if getgenv().ImgLoaderStat == false then
  1018. return
  1019. end
  1020. local WORLDPOS = part.Position
  1021. local partRot = part.CFrame - part.Position
  1022. local newwCFrame = CFrame.new(WORLDPOS) * partRot * CFrame.Angles(0, math.rad(90), 0)
  1023. local targetBlock = blocks[TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLong + i]
  1024.  
  1025. if getgenv().ImgLoaderStat == false then
  1026. return
  1027. end
  1028.  
  1029. local ScalePath = player.Backpack:FindFirstChild("ScalingTool") or player.Character:FindFirstChild("ScalingTool")
  1030. ScalePath.RF:InvokeServer(
  1031. targetBlock,
  1032. Vector3.new(Bdepth, blockSize, blockSize),
  1033. newwCFrame
  1034. )
  1035. end)
  1036. end
  1037.  
  1038. TASK2 = true
  1039. ImgParts = workspace.ImagePreview:GetChildren()
  1040. for i = 1, #parts + 1 do
  1041. local color = ImgParts[i].Color
  1042. table.insert(paintData, {
  1043. blocks[TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLong + i - 1],
  1044. Color3.new(color.R, color.G, color.B)
  1045. })
  1046. end
  1047.  
  1048. local PaintPath = player.Backpack:FindFirstChild("PaintingTool") or player.Character:FindFirstChild("PaintingTool")
  1049. PaintPath.RF:InvokeServer(paintData)
  1050.  
  1051. for _, part in ipairs(folder:GetChildren()) do
  1052. part:destroy()
  1053. end
  1054.  
  1055. TASK3 = true
  1056. if getgenv().ImgLoaderStat == false then
  1057. task.delay(1, function()
  1058. Rayfield:Notify({
  1059. Title = "Image aborted",
  1060. Content = "All unplaced blocks will be deleted",
  1061. Duration = 6.5,
  1062. Image = 124144713366592,
  1063. })
  1064. end)
  1065. else
  1066. task.delay(1, function()
  1067. Rayfield:Notify({
  1068. Title = "Image successfully loaded",
  1069. Content = "You can now use your inventory again",
  1070. Duration = 6.5,
  1071. Image = 124144713366592,
  1072. })
  1073. end)
  1074. end
  1075. task.wait(0.15)
  1076. TASK4 = true
  1077. local remote = player.Character:FindFirstChild("DeleteTool") or player.Backpack:FindFirstChild("DeleteTool")
  1078. for i = 1, #blocks do
  1079. task.spawn(function()
  1080. local block = blocks[i]
  1081. if not block then
  1082. return
  1083. end
  1084.  
  1085. local blockY = block.PrimaryPart and block.PrimaryPart.Position.Y or nil
  1086. if blockY and blockY >= -2200000 and blockY <= -120000 then
  1087. remote.RF:InvokeServer(blocks[i])
  1088. end
  1089. end)
  1090. end
  1091. TASK5 = true
  1092. end
  1093.  
  1094. function onImgBlockSecChanged()
  1095. getgenv().COCO = false
  1096. wait(0.1)
  1097. getgenv().COCO = true
  1098. buildImage()
  1099. end
  1100.  
  1101. local function buildImagePREVIEW(data, blockSize)
  1102. local frameSize = calculateFrameSize(data)
  1103. startPosition = LPTEAM() + cooloffset
  1104. ImgCenterimage = Centerimage(frameSize, startPosition, blockSize)
  1105. local centerImage = workspace.ImagePreview.Centerimage
  1106. if not centerImage then
  1107. return
  1108. end
  1109.  
  1110. rotationCFrame = CFrame.Angles(0, math.rad(angleY - 90), 0)
  1111.  
  1112. Brainrot = centerImage.CFrame * rotationCFrame
  1113. local currentX = startPosition.X
  1114. local currentY = startPosition.Y
  1115. local currentZ = startPosition.Z
  1116. local initialX = startPosition.X
  1117. local dataIndex = 1
  1118.  
  1119. local centerImage = workspace.ImagePreview.Centerimage
  1120. if not centerImage then
  1121. return
  1122. end
  1123.  
  1124. local centerCFrame = centerImage.CFrame
  1125.  
  1126. if currentConnection then
  1127. currentConnection:Disconnect()
  1128. end
  1129.  
  1130. currentConnection = RunService.Heartbeat:Connect(function()
  1131. local finished = false
  1132. for _ = 1, batchSize do
  1133. if dataIndex > #data then
  1134. finished = true
  1135. break
  1136. end
  1137.  
  1138. local r, g, b = data[dataIndex], data[dataIndex + 1], data[dataIndex + 2]
  1139. if r == "B" and g == "B" and b == "B" then
  1140. currentX = initialX
  1141. currentY = currentY - blockSize
  1142. elseif r == "R" and g == "R" and b == "R" then
  1143. currentX = currentX + blockSize
  1144. elseif type(r) == "number" and type(g) == "number" and type(b) == "number" then
  1145.  
  1146. local block = Instance.new("Part")
  1147. block.Size = Vector3.new(blockSize, blockSize, Bdepth)
  1148. block.Color = Color3.fromRGB(r, g, b)
  1149. block.Anchored = true
  1150. block.Material = Enum.Material.SmoothPlastic
  1151. block.CastShadow = false
  1152. block.Parent = previewFolder
  1153.  
  1154. local blockPosition = Vector3.new(currentX, currentY, currentZ) + cooloffset
  1155. local relativeCFrame = centerCFrame:ToObjectSpace(CFrame.new(blockPosition))
  1156. block.CFrame = Brainrot * relativeCFrame
  1157. currentX = currentX + blockSize
  1158. end
  1159.  
  1160. dataIndex += 3
  1161. end
  1162.  
  1163. if finished then
  1164. currentConnection:Disconnect()
  1165. currentConnection = nil
  1166. end
  1167. end)
  1168. end
  1169.  
  1170. Section = ImageLoader:CreateSection("Import Image")
  1171.  
  1172. local ImageLoaderFile = ImageLoader:CreateLabel("Details will be displayed here", 72272740678757, Color3.fromRGB(121, 188, 226), false)
  1173.  
  1174. local URL_RESO_VALUE = 4
  1175. local TBLOCK = 0
  1176. local BLKLD = 0
  1177. local FI = 0
  1178.  
  1179. local Input = ImageLoader:CreateInput({
  1180. Name = "File or Url",
  1181. CurrentValue = "",
  1182. PlaceholderText = "File/Url",
  1183. RemoveTextAfterFocusLost = true,
  1184. Flag = "Input1",
  1185. Callback = function(Text)
  1186. TBLOCK = 0
  1187. BLKLD = 0
  1188. TempData = {}
  1189. USEURL= nil
  1190. cooloffset = Vector3.new(0, 0, 0)
  1191. Brainrot = CFrame.identity
  1192. angleY = 0
  1193. rotationCFrame = CFrame.Angles(0, 0, 0)
  1194. local fileName = Text .. ".txt"
  1195. local filePath = "BABFT/Image/" .. fileName
  1196.  
  1197. ImageLoaderFile:Set("Fetching...", 72272740678757, Color3.fromRGB(121, 188, 226), false)
  1198.  
  1199. if string.sub(Text, 1, 6) == "https:" then
  1200. ImageLoaderFile:Set("Method: URL | Status: Fetching...", 110690411966110, Color3.fromRGB(121, 188, 226), false)
  1201.  
  1202. local url = "https://therealasu.pythonanywhere.com/process_image" -- It is useless to DDOS it, all you're going to do is DDOS pythonanywhere which are protected against that, and the server doesn't cost me anything, it's free
  1203. local headers = {
  1204. ["Content-Type"] = "application/json"
  1205. }
  1206.  
  1207. local function getImageData(imageUrl, resolution)
  1208. local body = HttpService:JSONEncode({
  1209. image_url = imageUrl,
  1210. resolution = resolution
  1211. })
  1212.  
  1213. local success, result = pcall(function()
  1214. return request({
  1215. Url = url,
  1216. Method = "POST",
  1217. Headers = headers,
  1218. Body = body
  1219. })
  1220. end)
  1221.  
  1222. if success then
  1223. if result.StatusCode == 200 then
  1224. local responseData = result.Body
  1225. return responseData
  1226. else
  1227. ImageLoaderFile:Set("Method: URL | Status: Error", 110690411966110, Color3.fromRGB(255, 66, 41), false)
  1228. return nil
  1229. end
  1230. else
  1231. ImageLoaderFile:Set("Method: URL | Status: Error", 110690411966110, Color3.fromRGB(255, 66, 41), false)
  1232. Rayfield:Notify({
  1233. Title = "Error ",
  1234. Content = "Could not Fetch data",
  1235. Duration = 6.5,
  1236. Image = 124144713366592,
  1237. })
  1238. return nil
  1239. end
  1240. end
  1241.  
  1242. local response = getImageData(Text, URL_RESO_VALUE)
  1243.  
  1244. if response then
  1245. local success, result = pcall(function()
  1246. return HttpService:JSONDecode(response)
  1247. end)
  1248. if success and result then
  1249. if result.error then
  1250. ImageLoaderFile:Set("Method: URL | Status: Error", 110690411966110, Color3.fromRGB(255, 66, 41), false)
  1251. Rayfield:Notify({
  1252. Title = "Error",
  1253. Content = "The API may be overloaded OR Url not supported , there's an alternative and a easy fix tutorial in the Discord server",
  1254. Duration = 6.5,
  1255. Image = 124144713366592,
  1256. })
  1257. else
  1258. USEURL = true
  1259. TempData = response
  1260. ImageLoaderFile:Set("Method: URL | Status: Fetched | You can enable preview", 110690411966110, Color3.fromRGB(133, 230, 138), false)
  1261. Rayfield:Notify({
  1262. Title = "Success!",
  1263. Content = "Your URL has been converted and is ready to use",
  1264. Duration = 6.5,
  1265. Image = 124144713366592,
  1266. })
  1267. end
  1268. else
  1269. TempData = response
  1270. USEURL = true
  1271. ImageLoaderFile:Set("Method: URL | Status: Fetched | You can enable preview", 110690411966110, Color3.fromRGB(133, 230, 138), false) -- how the fk
  1272. Rayfield:Notify({
  1273. Title = "Success!",
  1274. Content = "Your URL has been converted and is ready to use",
  1275. Duration = 6.5,
  1276. Image = 124144713366592,
  1277. })
  1278. --[[
  1279. ImageLoaderFile:Set("Method: URL | Status: Error", 110690411966110, Color3.fromRGB(255, 66, 41), false)
  1280. Rayfield:Notify({
  1281. Title = "Error",
  1282. Content = "Failed to decode the server response. The url may not be supported or valid",
  1283. Duration = 6.5,
  1284. Image = 124144713366592,
  1285. })
  1286. ]]
  1287. end
  1288. else
  1289. ImageLoaderFile:Set("Method: URL | Status: Error", 110690411966110, Color3.fromRGB(255, 66, 41), false)
  1290. Rayfield:Notify({
  1291. Title = "Error",
  1292. Content = "The API may be overloaded OR Url not supported , there's an alternative and a easy fix tutorial in the Discord server",
  1293. Duration = 6.5,
  1294. Image = 124144713366592,
  1295. })
  1296. end
  1297. else
  1298. USEURL = false
  1299. if isfile(filePath) then
  1300. FileImage = fileName
  1301. ImageLoaderFile:Set("Method: File | Status: Success | You can enable preview", 81435876451920, Color3.fromRGB(133, 230, 138), false)
  1302. Rayfield:Notify({
  1303. Title = "Success!",
  1304. Content = "file: " .. fileName .. " found!",
  1305. Duration = 6.5,
  1306. Image = 124144713366592,
  1307. })
  1308. else
  1309. FileImage = nil
  1310. ImageLoaderFile:Set("Method: File | Status: Error", 81435876451920, Color3.fromRGB(255, 66, 41), false)
  1311. Rayfield:Notify({
  1312. Title = "Error | File not found",
  1313. Content = "Make sure the file " .. fileName .. " exists or the URL is valid, do not put '.txt' in the TextBox",
  1314. Duration = 6.5,
  1315. Image = 124144713366592,
  1316. })
  1317. end
  1318. end
  1319. end,
  1320. })
  1321.  
  1322. local Input = ImageLoader:CreateInput({
  1323. Name = "Resolution [only for URL] [Higher = less blocks]",
  1324. CurrentValue = "4",
  1325. PlaceholderText = "Number",
  1326. RemoveTextAfterFocusLost = false,
  1327. Flag = "Input1",
  1328. Callback = function(Nb)
  1329. URL_RESO_VALUE = tostring(Nb)
  1330. end,
  1331. })
  1332.  
  1333. local Divider = ImageLoader:CreateDivider()
  1334.  
  1335. Section = ImageLoader:CreateSection("Preview")
  1336.  
  1337. local TogglePreview = ImageLoader:CreateToggle({
  1338. Name = "Preview",
  1339. CurrentValue = false,
  1340. Callback = function(Value)
  1341. if Value then
  1342. BLKLD = 0
  1343. TBLOCK = 0
  1344. local filePath = "BABFT/Image/" .. (FileImage or "default.txt")
  1345. local fileContent = {}
  1346. if USEURL == false then
  1347. fileContent = readFile(filePath)
  1348. else
  1349. fileContent = TempData
  1350. end
  1351. if not fileContent then return end
  1352. local data
  1353. data = parseColors(fileContent)
  1354. buildImagePREVIEW(data, blockSize)
  1355. else
  1356. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1357. if skibidi.Name ~= "PreviewSize" then
  1358. skibidi:Destroy()
  1359. end
  1360. end
  1361. end
  1362. end,
  1363. })
  1364.  
  1365. local ToggleGrid = ImageLoader:CreateToggle({
  1366. Name = "Grid",
  1367. CurrentValue = false,
  1368. Callback = function(Value)
  1369. if Value then
  1370. local filePath = "BABFT/Image/" .. (FileImage or "default.txt")
  1371. local fileContent = {}
  1372. if USEURL == false then
  1373. fileContent = readFile(filePath)
  1374. else
  1375. fileContent = TempData
  1376. end
  1377. if not fileContent then return end
  1378. local data = parseColors(fileContent)
  1379. local frameSize = calculateFrameSize(data)
  1380. startPosition = LPTEAM()
  1381. previewFrame(frameSize, startPosition, blockSize)
  1382. else
  1383. if PreviewPart then
  1384. PreviewPart:Destroy()
  1385. PreviewPart = nil
  1386. else
  1387. Rayfield:Notify({
  1388. Title = "Error",
  1389. Content = "No file or invalid file",
  1390. Duration = 6.5,
  1391. Image = 124144713366592,
  1392. })
  1393. end
  1394. end
  1395. end,
  1396. })
  1397.  
  1398. local Slider = ImageLoader:CreateSlider({
  1399. Name = "Preview loading speed",
  1400. Range = {100, 4000},
  1401. Increment = 25,
  1402. Suffix = "block/sec",
  1403. CurrentValue = 750,
  1404. Flag = "",
  1405. Callback = function(Value)
  1406. batchSize = Value
  1407. end,
  1408. })
  1409.  
  1410. local Divider = ImageLoader:CreateDivider()
  1411.  
  1412. Section = ImageLoader:CreateSection("modifiers")
  1413.  
  1414. local Dropdown = ImageLoader:CreateDropdown({
  1415. Name = "Block Type",
  1416. Options = {
  1417. "BrickBlock",
  1418. "CoalBlock",
  1419. "ConcreteBlock",
  1420. "FabricBlock",
  1421. "GlassBlock",
  1422. "GoldBlock",
  1423. "GrassBlock",
  1424. "IceBlock",
  1425. "MarbleBlock",
  1426. "MetalBlock",
  1427. "NeonBlock",
  1428. "ObsidianBlock",
  1429. "PlasticBlock",
  1430. "RustedBlock",
  1431. "SmoothWoodBlock",
  1432. "StoneBlock",
  1433. "TitaniumBlock",
  1434. "ToyBlock",
  1435. "WoodBlock"
  1436. },
  1437. CurrentOption = {"PlasticBlock"},
  1438. MultipleOptions = false,
  1439. Flag = "",
  1440. Callback = function(Options)
  1441. BlockType = Options[1]
  1442. end,
  1443. })
  1444.  
  1445. local Input = ImageLoader:CreateInput({
  1446. Name = "Move multiplier",
  1447. CurrentValue = "45",
  1448. PlaceholderText = "number",
  1449. RemoveTextAfterFocusLost = false,
  1450. Flag = "Input1",
  1451. Callback = function(Text)
  1452. Unit = tostring(Text)
  1453. end,
  1454. })
  1455.  
  1456. local originalCFrames = {}
  1457.  
  1458. local Input = ImageLoader:CreateInput({
  1459. Name = "Rotate",
  1460. CurrentValue = "0",
  1461. PlaceholderText = "0 - 360",
  1462. RemoveTextAfterFocusLost = false,
  1463. Flag = "",
  1464. Callback = function(Text)
  1465. angleY = tonumber(Text)
  1466. if not angleY then
  1467. return
  1468. end
  1469.  
  1470. local centerImage = workspace.ImagePreview.Centerimage
  1471. if not centerImage then
  1472. return
  1473. end
  1474.  
  1475. local rotationCFrame = CFrame.Angles(0, math.rad(angleY), 0)
  1476.  
  1477. Brainrot = centerImage.CFrame * rotationCFrame
  1478.  
  1479. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1480. if skibidi:IsA("BasePart") and skibidi ~= centerImage then
  1481.  
  1482. local centerCFrame = centerImage.CFrame
  1483.  
  1484. if not originalCFrames[skibidi] then
  1485. originalCFrames[skibidi] = skibidi.CFrame
  1486. end
  1487.  
  1488. local originalCFrame = originalCFrames[skibidi]
  1489. local relativeCFrame = centerCFrame:ToObjectSpace(originalCFrame)
  1490.  
  1491. local ghaaa = centerCFrame * rotationCFrame * relativeCFrame
  1492. skibidi.CFrame = ghaaa
  1493. end
  1494. end
  1495. end,
  1496. })
  1497.  
  1498. local Input = ImageLoader:CreateInput({
  1499. Name = "Block Depth",
  1500. CurrentValue = "2",
  1501. PlaceholderText = "Value",
  1502. RemoveTextAfterFocusLost = false,
  1503. Flag = "",
  1504. Callback = function(Text)
  1505. Bdepth = tonumber(Text)
  1506. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1507. skibidi.Size = Vector3.new(skibidi.Size.X, skibidi.Size.Y, Bdepth)
  1508. end
  1509. end,
  1510. })
  1511.  
  1512. local Slider = ImageLoader:CreateSlider({
  1513. Name = "Size",
  1514. Range = {0.1, 10},
  1515. Increment = 0.1,
  1516. Suffix = "x",
  1517. CurrentValue = 2,
  1518. Flag = "",
  1519. Callback = function(Value)
  1520. blockSize = Value
  1521. end,
  1522. })
  1523.  
  1524. local Button = ImageLoader:CreateButton({
  1525. Name = "Move +X",
  1526. Callback = function()
  1527. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1528. skibidi.Position = skibidi.Position + Vector3.new(Unit, 0, 0)
  1529. end
  1530. cooloffset = cooloffset + Vector3.new(Unit, 0, 0)
  1531. end,
  1532. })
  1533.  
  1534. local Button = ImageLoader:CreateButton({
  1535. Name = "Move -X",
  1536. Callback = function()
  1537. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1538. skibidi.Position = skibidi.Position + Vector3.new(-Unit, 0, 0)
  1539. end
  1540. cooloffset = cooloffset + Vector3.new(-Unit, 0, 0)
  1541. end,
  1542. })
  1543.  
  1544. local Button = ImageLoader:CreateButton({
  1545. Name = "Move +Y",
  1546. Callback = function()
  1547. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1548. skibidi.Position = skibidi.Position + Vector3.new(0, Unit, 0)
  1549. end
  1550. cooloffset = cooloffset + Vector3.new(0, Unit, 0)
  1551. end,
  1552. })
  1553.  
  1554. local Button = ImageLoader:CreateButton({
  1555. Name = "Move -Y",
  1556. Callback = function()
  1557. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1558. skibidi.Position = skibidi.Position + Vector3.new(0, -Unit, 0)
  1559. end
  1560. cooloffset = cooloffset + Vector3.new(0, -Unit, 0)
  1561. end,
  1562. })
  1563.  
  1564. local Button = ImageLoader:CreateButton({
  1565. Name = "Move +Z",
  1566. Callback = function()
  1567. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1568. skibidi.Position = skibidi.Position + Vector3.new(0, 0, Unit)
  1569. end
  1570. cooloffset = cooloffset + Vector3.new(0, 0, Unit)
  1571. end,
  1572. })
  1573.  
  1574. local Button = ImageLoader:CreateButton({
  1575. Name = "Move -Z",
  1576. Callback = function()
  1577. for _, skibidi in ipairs(previewFolder:GetChildren()) do
  1578. skibidi.Position = skibidi.Position + Vector3.new(0, 0, -Unit)
  1579. end
  1580. cooloffset = cooloffset + Vector3.new(0, 0, -Unit)
  1581. end,
  1582. })
  1583.  
  1584. local Divider = ImageLoader:CreateDivider()
  1585.  
  1586. local TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLongButThisOneChangeLol = 0
  1587. local TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLongButThisOneDoesntChangeLol = 0
  1588.  
  1589. local ImgStatsP = ImageLoader:CreateParagraph({Title = "Information", Content = "Require PaintTool and ScalingTool"})
  1590.  
  1591. local Button = ImageLoader:CreateButton({
  1592. Name = "Build Image | Preview must be enabled",
  1593. Callback = function()
  1594. Rayfield:Notify({
  1595. Title = "Image Loader",
  1596. Content = "DO NOT place blocks until finished",
  1597. Duration = 10,
  1598. Image = 124144713366592,
  1599. })
  1600.  
  1601. TBLOCK = 0
  1602. TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLong = 0
  1603.  
  1604. local blocksFolder = workspace:FindFirstChild("Blocks")
  1605. if blocksFolder then
  1606. local blockssFolder = blocksFolder:FindFirstChild(Nplayer)
  1607. if blockssFolder then
  1608. TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLong = #blockssFolder:GetChildren()
  1609. TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLongButThisOneDoesntChangeLol = #blockssFolder:GetChildren()
  1610. local parts = {}
  1611. local folder = workspace:FindFirstChild("ImagePreview")
  1612. for _, part in ipairs(folder:GetChildren()) do
  1613. if part:IsA("BasePart") and part.Name == "Part" then
  1614. table.insert(parts, part)
  1615. end
  1616. end
  1617. TBLOCK = #parts
  1618. else
  1619. Rayfield:Notify({
  1620. Title = "Error",
  1621. Content = "Folder not found, try rejoin",
  1622. Duration = 6.5,
  1623. Image = 124144713366592,
  1624. })
  1625. end
  1626. else
  1627. Rayfield:Notify({
  1628. Title = "Error",
  1629. Content = "Folder not found, try rejoin",
  1630. Duration = 6.5,
  1631. Image = 124144713366592,
  1632. })
  1633. end
  1634. BlockLoaded = false
  1635. getgenv().ImgLoaderStat = true
  1636. task.spawn(buildImageFAST)
  1637. end,
  1638. })
  1639.  
  1640. local Button = ImageLoader:CreateButton({
  1641. Name = "Abort",
  1642. Callback = function()
  1643. getgenv().ImgLoaderStat = false
  1644. Rayfield:Notify({
  1645. Title = "Abortion request",
  1646. Content = "the next task will not be applied, note that this button is only useful during the task where blocks are loaded",
  1647. Duration = 6.5,
  1648. Image = 124144713366592,
  1649. })
  1650. end,
  1651. })
  1652.  
  1653. local Label = ImageLoader:CreateLabel("Building speed will also depend on your ping. You can crash if your wifi speed is too slow.", 134637165939940, Color3.fromRGB(204, 156, 0), true)
  1654.  
  1655. local Label = ImageLoader:CreateLabel("the image may not load if many blocks have already been placed, I have to fix this", 134637165939940, Color3.fromRGB(204, 156, 0), true)
  1656.  
  1657. function ImgStats()
  1658. local startTime = tick()
  1659. while true do
  1660. local blocksFolder = workspace:FindFirstChild("Blocks")
  1661. local blockssFolder = blocksFolder:FindFirstChild(Nplayer)
  1662. local totalBlocks = #blockssFolder:GetChildren()
  1663. local BLKLD = totalBlocks - TotalBlockInBlocksFolderBeforeBuildImageInitYesThisVarIsVeryLongButThisOneDoesntChangeLol
  1664. local elapsedTime = tick() - startTime
  1665. local blocksPerSecond = BLKLD / elapsedTime
  1666. local blocksRemaining = TBLOCK - BLKLD
  1667. local timeRemaining = blocksRemaining / blocksPerSecond
  1668. local FI = math.max(timeRemaining, 0)
  1669. if not BlockLoaded then
  1670. ImgStatsP:Set({
  1671. Title = "Information",
  1672. Content = "Blocks Loaded: "..BLKLD.."/"..TBLOCK..
  1673. "\nFinish in: " .. math.floor(FI) .. "s"
  1674. })
  1675. if BLKLD >= TBLOCK then
  1676. BlockLoaded = true
  1677. end
  1678. end
  1679. task.wait(1.2)
  1680. end
  1681. end
  1682.  
  1683. function ImgStats2()
  1684. while true do
  1685. if BlockLoaded then
  1686. if TASK1 then
  1687. ImgStatsP:Set({
  1688. Title = "Information",
  1689. Content = "Blocks Loaded!\nPlacing Blocks..."
  1690. })
  1691. TASK1 = false
  1692. elseif TASK2 then
  1693. ImgStatsP:Set({
  1694. Title = "Information",
  1695. Content = "Blocks Loaded!\nPlacing Blocks..."
  1696. })
  1697. TASK2 = false
  1698. elseif TASK3 then
  1699. ImgStatsP:Set({
  1700. Title = "Information",
  1701. Content = "Blocks Loaded!\nBlocks Placed!\nColoring Blocks..."
  1702. })
  1703. TASK3 = false
  1704. elseif TASK4 then
  1705. ImgStatsP:Set({
  1706. Title = "Information",
  1707. Content = "Blocks Loaded!\nBlocks Placed!\nBlocks Colored!\ndeleting unplaced blocks..."
  1708. })
  1709. TASK4 = false
  1710. elseif TASK5 then
  1711. ImgStatsP:Set({
  1712. Title = "Information",
  1713. Content = "Blocks Loaded!\nBlocks Placed!\nBlocks Colored!\nUnplaced blocks deleted!\nProcess end"
  1714. })
  1715. TASK5 = false
  1716. end
  1717. end
  1718. wait(0.2)
  1719. end
  1720. end
  1721.  
  1722.  
  1723. local initimgfilesbool = false
  1724. function initimgfiles()
  1725. while initimgfilesbool == true do
  1726. updateImageFiles()
  1727. wait(1)
  1728. end
  1729. end
  1730.  
  1731. --AUTO BUILD
  1732. local Label = AutoBuild:CreateLabel("Check the Information tab to use this feature", 134637165939940, Color3.fromRGB(204, 156, 0), true)
  1733. local Label = AutoBuild:CreateLabel("THIS FEATURE IS IN WIP - it's not working right now", 134637165939940, Color3.fromRGB(204, 31, 0), true)
  1734.  
  1735. local Divider = AutoBuild:CreateDivider()
  1736.  
  1737. --[[
  1738. Section = AutoBuild:CreateSection("Steal Build")
  1739.  
  1740. local Dropdown = AutoBuild:CreateDropdown({
  1741. Name = "Target Player",
  1742. Options = {"Option 1","Option 2"},
  1743. CurrentOption = {"Option 1"},
  1744. MultipleOptions = false,
  1745. Flag = "Dropdown1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
  1746. Callback = function(Options)
  1747. -- The function that takes place when the selected option is changed
  1748. -- The variable (Options) is a table of strings for the current selected options
  1749. end,
  1750. })
  1751.  
  1752. local Input = AutoBuild:CreateInput({
  1753. Name = "Build Name",
  1754. CurrentValue = "",
  1755. PlaceholderText = "Name",
  1756. RemoveTextAfterFocusLost = false,
  1757. Flag = "Input1",
  1758. Callback = function(Text)
  1759. -- The function that takes place when the input is changed
  1760. -- The variable (Text) is a string for the value in the text box
  1761. end,
  1762. })
  1763.  
  1764. local Button = AutoBuild:CreateButton({
  1765. Name = "Save",
  1766. Callback = function()
  1767. -- The function that takes place when the button is pressed
  1768. end,
  1769. })
  1770.  
  1771. local Divider = AutoBuild:CreateDivider()
  1772. Section = AutoBuild:CreateSection("Auto Build")
  1773.  
  1774. local Dropdown = AutoBuild:CreateDropdown({
  1775. Name = "Build File",
  1776. Options = {"Option 1","Option 2"},
  1777. CurrentOption = {"Option 1"},
  1778. MultipleOptions = false,
  1779. Flag = "Dropdown1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
  1780. Callback = function(Options)
  1781. -- The function that takes place when the selected option is changed
  1782. -- The variable (Options) is a table of strings for the current selected options
  1783. end,
  1784. })
  1785.  
  1786. local Toggle = AutoBuild:CreateToggle({
  1787. Name = "Preview",
  1788. CurrentValue = false,
  1789. Flag = "Toggle1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
  1790. Callback = function(Value)
  1791. -- The function that takes place when the toggle is pressed
  1792. -- The variable (Value) is a boolean on whether the toggle is true or false
  1793. end,
  1794. })
  1795.  
  1796. local Toggle = AutoBuild:CreateToggle({
  1797. Name = "Safe Mode",
  1798. CurrentValue = false,
  1799. Flag = "Toggle1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
  1800. Callback = function(Value)
  1801. -- The function that takes place when the toggle is pressed
  1802. -- The variable (Value) is a boolean on whether the toggle is true or false
  1803. end,
  1804. })
  1805.  
  1806. local Button = AutoBuild:CreateButton({
  1807. Name = "Load",
  1808. Callback = function()
  1809. -- The function that takes place when the button is pressed
  1810. end,
  1811. })
  1812. ]]
  1813.  
  1814. local Paragraph = BlockNeeded:CreateParagraph({Title = "Important", Content = "Preview mode must be enabled to calculate the number of blocks required"})
  1815. local Divider = BlockNeeded:CreateDivider()
  1816. Section = BlockNeeded:CreateSection("Image Loader")
  1817. local LblBlockNeeded = BlockNeeded:CreateLabel("No block found", 72272740678757, Color3.fromRGB(255, 255, 255), true)
  1818. local Divider = BlockNeeded:CreateDivider()
  1819. Section = BlockNeeded:CreateSection("Auto Build")
  1820. local Label = BlockNeeded:CreateLabel("THIS FEATURE IS IN WIP", 134637165939940, Color3.fromRGB(204, 31, 0), true)
  1821. local Divider = BlockNeeded:CreateDivider()
  1822. local NbBlockneeded = 0
  1823. local NbBlockmissing = 0
  1824. local Button = BlockNeeded:CreateButton({
  1825. Name = "Refresh List",
  1826. Callback = function()
  1827. NbBlockneeded = 0
  1828. local blocktypeID = BlockId[BlockType]
  1829.  
  1830. for _, skibidi in ipairs(workspace.ImagePreview:GetChildren()) do
  1831. if skibidi.Name == "Part" then
  1832.  
  1833. local blockVolume = skibidi.Size.X * skibidi.Size.Y * skibidi.Size.Z
  1834.  
  1835. local blockSize = (blockVolume < 8) and 8 or blockVolume
  1836.  
  1837. NbBlockneeded = NbBlockneeded + blockSize
  1838. end
  1839. end
  1840. UUserBlockList()
  1841. LPBlockvalue = UserBlockList[BlockType]
  1842. NbBlockneeded = math.ceil(NbBlockneeded / 8)
  1843. NbBlockmissing = NbBlockneeded - LPBlockvalue
  1844. if NbBlockmissing < 0 then
  1845. NbBlockmissing = 0
  1846. end
  1847. LblBlockNeeded:Set("Need " .. tostring(NbBlockneeded) .. " " .. BlockType .. " and " .. tostring(NbBlockmissing) .. " blocks are missing", blocktypeID, Color3.fromRGB(255, 255, 255), true)
  1848. end,
  1849. })
  1850.  
  1851. Section = Miscellaneous:CreateSection("Teleportation")
  1852.  
  1853. local Button = Miscellaneous:CreateButton({
  1854. Name = "White",
  1855. Callback = function()
  1856. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(-49.8510132, -9.7000021, -520.37085, -1, 0, 0, 0, 1, 0, 0, 0, -1))
  1857. end,
  1858. })
  1859.  
  1860. local Button = Miscellaneous:CreateButton({
  1861. Name = "Black",
  1862. Callback = function()
  1863. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(-503.82843, -9.7000021, -69.433342, 0, 0, -1, 0, 1, 0, 1, 0, 0))
  1864. end,
  1865. })
  1866.  
  1867. local Button = Miscellaneous:CreateButton({
  1868. Name = "Red",
  1869. Callback = function()
  1870. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(396.697418, -9.7000021, -64.7801361, 0, 0, 1, 0, 1, -0, -1, 0, 0))
  1871. end,
  1872. })
  1873.  
  1874. local Button = Miscellaneous:CreateButton({
  1875. Name = "Blue",
  1876. Callback = function()
  1877. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(396.697418, -9.7000021, 300.219849, 0, 0, 1, 0, 1, -0, -1, 0, 0))
  1878. end,
  1879. })
  1880.  
  1881. local Button = Miscellaneous:CreateButton({
  1882. Name = "Magenta",
  1883. Callback = function()
  1884. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(396.697418, -9.7000021, 647.219849, 0, 0, 1, 0, 1, -0, -1, 0, 0))
  1885. end,
  1886. })
  1887.  
  1888. local Button = Miscellaneous:CreateButton({
  1889. Name = "Yellow",
  1890. Callback = function()
  1891. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(-503.82843, -9.7000021, 640.56665, 0, 0, -1, 0, 1, 0, 1, 0, 0))
  1892. end,
  1893. })
  1894.  
  1895. local Button = Miscellaneous:CreateButton({
  1896. Name = "Green",
  1897. Callback = function()
  1898. game.Players.LocalPlayer.Character:SetPrimaryPartCFrame(CFrame.new(-503.82843, -9.7000021, 293.56665, 0, 0, -1, 0, 1, 0, 1, 0, 0))
  1899. end,
  1900. })
  1901.  
  1902. Section = Miscellaneous:CreateSection("Troll")
  1903. local Button = Miscellaneous:CreateButton({
  1904. Name = "Disable Maximum click detector distance",
  1905. Callback = function()
  1906. for _, object in ipairs(game:GetDescendants()) do
  1907. if object:IsA("ClickDetector") then
  1908. object.MaxActivationDistance = 9995649849899589
  1909. end
  1910. end
  1911. Rayfield:Notify({
  1912. Title = "Maximum click detector distance Disabled!",
  1913. Content = "You can click on a lever, button, etc.. from anywhere",
  1914. Duration = 6.5,
  1915. Image = 124144713366592,
  1916. })
  1917. end,
  1918. })
  1919.  
  1920. local Button = Miscellaneous:CreateButton({
  1921. Name = "Force Share Mode",
  1922. Callback = function()
  1923. local args = {
  1924. [1] = "ShareBlocks",
  1925. [2] = true
  1926. }
  1927. workspace.SettingFunction:InvokeServer(unpack(args))
  1928. Rayfield:Notify({
  1929. Title = "Share Mode",
  1930. Content = "you can use leader's blocks now",
  1931. Duration = 6.5,
  1932. Image = 124144713366592,
  1933. })
  1934. end,
  1935. })
  1936.  
  1937. local Button = Miscellaneous:CreateButton({
  1938. Name = "disable Share Mode",
  1939. Callback = function()
  1940. local args = {
  1941. [1] = "ShareBlocks",
  1942. [2] = false
  1943. }
  1944. workspace.SettingFunction:InvokeServer(unpack(args))
  1945. Rayfield:Notify({
  1946. Title = "Share Mode",
  1947. Content = "Share Mode is disabled",
  1948. Duration = 6.5,
  1949. Image = 124144713366592,
  1950. })
  1951. end,
  1952. })
  1953.  
  1954. local Button = Miscellaneous:CreateButton({
  1955. Name = "Color all blocks",
  1956. Callback = function()
  1957. local playerteam = player.Team.Name
  1958. local blocktoget = game:GetService("Teams"):FindFirstChild(playerteam).TeamLeader.Value
  1959. local playerFolder = game.Workspace.Blocks:FindFirstChild(blocktoget)
  1960. local paintData = {}
  1961. local totalBlocks = #playerFolder:GetChildren()
  1962.  
  1963. for _, block in ipairs(playerFolder:GetChildren()) do
  1964. local color = Color3.new(
  1965. math.random(0, 1000) / 1000,
  1966. math.random(0, 1000) / 1000,
  1967. math.random(0, 1000) / 1000
  1968. )
  1969.  
  1970. table.insert(paintData, {
  1971. block,
  1972. color
  1973. })
  1974.  
  1975. if #paintData >= 10000 then
  1976. game:GetService("Players").LocalPlayer.Backpack.PaintingTool.RF:InvokeServer(paintData)
  1977. paintData = {}
  1978. end
  1979. end
  1980.  
  1981. if #paintData > 0 then
  1982. game:GetService("Players").LocalPlayer.Backpack.PaintingTool.RF:InvokeServer(paintData)
  1983. end
  1984. end,
  1985. })
  1986.  
  1987. local Toggle = Miscellaneous:CreateToggle({
  1988. Name = "Loop Color all blocks",
  1989. CurrentValue = false,
  1990. Flag = "Toggle1",
  1991. Callback = function(Value)
  1992. while Value do
  1993. if Value then
  1994. local playerteam = player.Team.Name
  1995. local blocktoget = game:GetService("Teams"):FindFirstChild(playerteam).TeamLeader.Value
  1996. local playerFolder = game.Workspace.Blocks:FindFirstChild(blocktoget)
  1997. local paintData = {}
  1998. local totalBlocks = #playerFolder:GetChildren()
  1999.  
  2000. for _, block in ipairs(playerFolder:GetChildren()) do
  2001. local color = Color3.new(
  2002. math.random(0, 1000) / 1000,
  2003. math.random(0, 1000) / 1000,
  2004. math.random(0, 1000) / 1000
  2005. )
  2006.  
  2007. table.insert(paintData, {
  2008. block,
  2009. color
  2010. })
  2011.  
  2012. if #paintData >= 10000 then
  2013. game:GetService("Players").LocalPlayer.Backpack.PaintingTool.RF:InvokeServer(paintData)
  2014. paintData = {}
  2015. end
  2016. end
  2017.  
  2018. if #paintData > 0 then
  2019. game:GetService("Players").LocalPlayer.Backpack.PaintingTool.RF:InvokeServer(paintData)
  2020. end
  2021. task.wait()
  2022. end
  2023. end
  2024. end,
  2025. })
  2026.  
  2027. local FStats = Miscellaneous:CreateParagraph({Title = "Info", Content = "The button above will colors all the player's blocks with random colors (if sharing mode enable, it will color the team leader's blocks, it also works when you are the leader), if it doesn't stop, use the paint tool, it will stop the script"})
  2028.  
  2029. local function removeLock()
  2030. local Teams = {"BlackZone", "CamoZone", "MagentaZone", "New YellerZone", "Really blueZone", "Really redZone", "WhiteZone"}
  2031.  
  2032. for _, teamName in ipairs(Teams) do
  2033. local teamPart = workspace:FindFirstChild(teamName)
  2034. if teamPart then
  2035. local lockFolder = teamPart:FindFirstChild("Lock")
  2036. if lockFolder then
  2037. lockFolder:Destroy()
  2038. end
  2039. end
  2040. end
  2041. end
  2042.  
  2043. local previousPosition = nil
  2044. local counterIsoMODE = false
  2045.  
  2046. local function trackPlayerPosition()
  2047. while FcMaster == true do
  2048. if counterIsoMODE then
  2049. removeLock()
  2050. local character = player.Character
  2051. if character then
  2052. local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
  2053. if humanoidRootPart then
  2054. previousPosition = humanoidRootPart.CFrame
  2055. end
  2056. end
  2057. end
  2058. task.wait(.1)
  2059. end
  2060. end
  2061.  
  2062. local function onCharacterAdded(character)
  2063. if counterIsoMODE then
  2064. local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
  2065.  
  2066. if previousPosition then
  2067. humanoidRootPart.CFrame = previousPosition
  2068. end
  2069. end
  2070. end
  2071.  
  2072. player.CharacterAdded:Connect(onCharacterAdded)
  2073. task.spawn(trackPlayerPosition)
  2074.  
  2075. local Toggle = Miscellaneous:CreateToggle({
  2076. Name = "Counter Isolation Mode",
  2077. CurrentValue = false,
  2078. Flag = "Toggle1",
  2079. Callback = function(Value)
  2080. counterIsoMODE = Value
  2081. if counterIsoMODE then
  2082. Rayfield:Notify({
  2083. Title = "Counter Isolation Mode",
  2084. Content = "you will reappear where you died",
  2085. Duration = 6.5,
  2086. Image = 124144713366592,
  2087. })
  2088. else
  2089. Rayfield:Notify({
  2090. Title = "Counter Isolation Mode",
  2091. Content = "you will no longer reappear where you died",
  2092. Duration = 6.5,
  2093. Image = 124144713366592,
  2094. })
  2095. end
  2096. end,
  2097. })
  2098.  
  2099. local Button = Miscellaneous:CreateButton({
  2100. Name = "Disable Blocks zone restriction for quest",
  2101. Callback = function()
  2102. workspace:FindFirstChild(LPTEAM2()).QuestNum.Value = 0
  2103. Rayfield:Notify({
  2104. Title = "Blocks restriction",
  2105. Content = "the restriction zone is disabled",
  2106. Duration = 6.5,
  2107. Image = 124144713366592,
  2108. })
  2109. end,
  2110. })
  2111.  
  2112. Section = Miscellaneous:CreateSection("FPS Booster")
  2113.  
  2114. local Button = Miscellaneous:CreateButton({
  2115. Name = "Remove All Texture",
  2116. Callback = function()
  2117. for _, obj in ipairs(game:GetDescendants()) do
  2118. if obj:IsA("Texture") or obj:IsA("Decal") then
  2119. obj:Destroy()
  2120. end
  2121. if obj:IsA("BasePart") then
  2122. obj.Material = Enum.Material.SmoothPlastic
  2123. end
  2124. end
  2125. end,
  2126. })
  2127.  
  2128. local Toggle = Miscellaneous:CreateToggle({
  2129. Name = "Hide useless parts",
  2130. CurrentValue = false,
  2131. Flag = "Toggle1",
  2132. Callback = function(Value)
  2133. if Value then
  2134. workspace.MainTerrain.Parent = game:GetService("ReplicatedStorage")
  2135. else
  2136. game:GetService("ReplicatedStorage").MainTerrain.Parent = workspace
  2137. end
  2138. end,
  2139. })
  2140.  
  2141. local Toggle = Miscellaneous:CreateToggle({
  2142. Name = "Hide players blocks",
  2143. CurrentValue = false,
  2144. Flag = "Toggle1",
  2145. Callback = function(Value)
  2146. if Value then
  2147. workspace.Blocks.Parent = game:GetService("ReplicatedStorage")
  2148. else
  2149. game:GetService("ReplicatedStorage").Blocks.Parent = workspace
  2150. end
  2151. end,
  2152. })
  2153.  
  2154. local Toggle = Miscellaneous:CreateToggle({
  2155. Name = "Hide All [Optimized for Auto Farm]",
  2156. CurrentValue = false,
  2157. Flag = "Toggle1",
  2158. Callback = function(Value)
  2159. local Stuff = {
  2160. "Blocks",
  2161. "Challenge",
  2162. "TempStuff",
  2163. "Teams",
  2164. "MainTerrain",
  2165. "OtherStages",
  2166. "BlackZone",
  2167. "CamoZone",
  2168. "MagentaZone",
  2169. "New YellerZone",
  2170. "Really blueZone",
  2171. "Really redZone",
  2172. "Sand",
  2173. "Water",
  2174. "WhiteZone",
  2175. "WaterMask"
  2176. }
  2177.  
  2178. if Value then
  2179. for _, v in ipairs(Stuff) do
  2180. local object = workspace:FindFirstChild(v) or workspace.BoatStages:FindFirstChild("OtherStages")
  2181. if object then
  2182. object.Parent = game:GetService("ReplicatedStorage")
  2183. end
  2184. end
  2185. else
  2186. for _, v in ipairs(Stuff) do
  2187. local object = game:GetService("ReplicatedStorage"):FindFirstChild(v)
  2188. if object then
  2189. if v == "OtherStages" then
  2190. game:GetService("ReplicatedStorage").OtherStages.Parent = workspace.BoatStages
  2191. else
  2192. object.Parent = workspace
  2193. end
  2194. end
  2195. end
  2196. end
  2197. end,
  2198. })
  2199.  
  2200. local spoofSpeed = 40
  2201.  
  2202. Section = Miscellaneous:CreateSection("Spoofer")
  2203. local Slider = Miscellaneous:CreateSlider({
  2204. Name = "Wheel Speed",
  2205. Range = {10, 1000},
  2206. Increment = 10,
  2207. Suffix = " - MaxSpeed",
  2208. CurrentValue = 40,
  2209. Flag = "Slider1",
  2210. Callback = function(Value)
  2211. spoofSpeed = Value
  2212. end,
  2213. })
  2214.  
  2215. local Button = Miscellaneous:CreateButton({
  2216. Name = "Spoof speed",
  2217. Callback = function()
  2218. local itcihmsoeoesoes = workspace.Blocks:FindFirstChild(Nplayer)
  2219. if itcihmsoeoesoes then
  2220. for _, model in ipairs(itcihmsoeoesoes:GetChildren()) do
  2221. if model:IsA("Model") then
  2222. local maxSpeed = model:FindFirstChild("MaxSpeed")
  2223. if maxSpeed and maxSpeed:IsA("NumberValue") then
  2224. maxSpeed.Value = spoofSpeed
  2225. end
  2226. end
  2227. end
  2228. end
  2229. end,
  2230. })
  2231.  
  2232. Section = Miscellaneous:CreateSection("Teleport to Place")
  2233. local Button = Miscellaneous:CreateButton({
  2234. Name = "Inner Cloud",
  2235. Callback = function()
  2236. TeleportService:Teleport(1930863474, game.Players.LocalPlayer)
  2237. end,
  2238. })
  2239.  
  2240. Button = Miscellaneous:CreateButton({
  2241. Name = "Christmas",
  2242. Callback = function()
  2243. TeleportService:Teleport(1930866268, game.Players.LocalPlayer)
  2244. end,
  2245. })
  2246.  
  2247. local function Init()
  2248. local initclock = coroutine.create(initclock)
  2249. local ImgStats = coroutine.create(ImgStats)
  2250. local initimgfiles = coroutine.create(initimgfiles)
  2251. local ImgStats2 = coroutine.create(ImgStats2)
  2252.  
  2253. coroutine.resume(initclock)
  2254. coroutine.resume(ImgStats)
  2255. coroutine.resume(initimgfiles)
  2256. coroutine.resume(ImgStats2)
  2257. end
  2258.  
  2259. zdzddz = Miscellaneous:CreateButton({
  2260. Name = "Halloween [maybe need an anti-kick]",
  2261. Callback = function()
  2262. TeleportService:Teleport(1930665568, game.Players.LocalPlayer) -- WARNING: YOU WILL GET KICKED WHEN YOU JOIN IT, need to try with a client-sided anti kick
  2263. end,
  2264. })
  2265.  
  2266. -- queueteleport(loadstring(game:HttpGet('https://raw.githubusercontent.com/TheRealAsu/BABFT/refs/heads/main/Source.lua'))())
  2267.  
  2268. --[[
  2269.  
  2270. ▀█████████▄ ▄██ ▄ ▄████████ ▄████████ ███ █▄
  2271. ███ ███ ███ ██▄ ███ ███ ███ ███ ███ ███
  2272. ███ ███ ███▄▄▄███ ███ ███ ███ █▀ ███ ███
  2273. ▄███▄▄▄██▀ ▀▀▀▀▀▀███ ███ ███ ███ ███ ███
  2274. ▀▀███▀▀▀██▄ ▄██ ███ ▀███████████ ▀███████████ ███ ███
  2275. ███ ██▄ ███ ███ ███ ███ ███ ███ ███
  2276. ███ ███ ███ ███ ███ ███ ▄█ ███ ███ ███
  2277. ▄█████████▀ ▀█████▀ ███ █▀ ▄████████▀ ████████▀
  2278.  
  2279. @thereal_asu | Build A Boat For Treasure
  2280.  
  2281. discord server: https://discord.gg/zrAB2m5gvz
  2282. ]]
  2283. Init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement