Dolly Factory Gui! *V1.4*
Key Required

Dolly Factory Gui! *V1.4*

Dolly's Factory [Alpha]nabnabnabnab 4.5K views 1.7K executesUpdated Apr 22, 2026
5.0/ 5(6 votes)
60100% Positive
Lua Script•11 lines (14619 chars)
do local Players=game:GetService("Players");local player=Players.LocalPlayer;local state={ESP=true,Enemies=true,Items=true,InstantPrompt=true,InfiniteStamina=true,PerfectMachine=true,AutoFarm=false};local gui=Instance.new("ScreenGui");gui.Name="DevPanel";gui.ResetOnSpawn=false;gui.Parent=player:WaitForChild("PlayerGui");local frame=Instance.new("Frame");frame.Size=UDim2.new(0,260,0,340);frame.Position=UDim2.new(0,20,0,20);frame.BackgroundColor3=Color3.fromRGB(18,20,35);frame.BorderSizePixel=0;frame.Active=true;frame.Draggable=true;frame.Parent=gui;Instance.new("UICorner",frame).CornerRadius=UDim.new(0,12);local stroke=Instance.new("UIStroke");stroke.Thickness=1;stroke.Color=Color3.fromRGB(90,110,180);stroke.Transparency=0.2;stroke.Parent=frame;local function tab(name,x) local b=Instance.new("TextButton");b.Size=UDim2.new(0,80,0,28);b.Position=UDim2.new(0,x,0,10);b.BackgroundColor3=Color3.fromRGB(30,35,70);b.TextColor3=Color3.fromRGB(220,230,255);b.Font=Enum.Font.GothamBold;b.TextScaled=true;b.Text=name;b.Parent=frame;Instance.new("UICorner",b).CornerRadius=UDim.new(0,8);return b;end local espTab=tab("ESP",10);local tpTab=tab("TP",95);local helpTab=tab("HELP",180);local function page() local f=Instance.new("Frame");f.Size=UDim2.new(1, -20,1, -60);f.Position=UDim2.new(0,10,0,50);f.BackgroundTransparency=1;f.Visible=false;f.Parent=frame;return f;end local espPage=page();local tpPage=page();local helpPage=page();local function btn(parent,text,y) local b=Instance.new("TextButton");b.Size=UDim2.new(1,0,0,38);b.Position=UDim2.new(0,0,0,y);b.BackgroundColor3=Color3.fromRGB(30,35,70);b.TextColor3=Color3.fromRGB(220,230,255);b.Font=Enum.Font.GothamBold;b.TextScaled=true;b.Text=text;b.Parent=parent;Instance.new("UICorner",b).CornerRadius=UDim.new(0,10);local s=Instance.new("UIStroke");s.Thickness=1;s.Color=Color3.fromRGB(90,110,180);s.Transparency=0.4;s.Parent=b;return b;end local enemies=workspace:FindFirstChild("Enemies");local interacts=workspace:FindFirstChild("Interacts");local cache={};local function highlight(obj,color) if  not state.ESP then return;end if  not obj:IsA("BasePart") then return;end if (cache[obj] and cache[obj].Parent) then cache[obj].FillColor=color;return;end local h=Instance.new("Highlight");h.Adornee=obj;h.FillColor=color;h.OutlineColor=Color3.fromRGB(255,255,255);h.FillTransparency=0.3;h.Parent=obj;cache[obj]=h;end local function remove(obj) local h=cache[obj];if h then h:Destroy();cache[obj]=nil;end end local function process(obj) if  not state.ESP then return;end if  not enemies then return;end if (obj:IsA("BasePart") and obj:IsDescendantOf(enemies)) then if state.Enemies then highlight(obj,Color3.fromRGB(255,0,0));else remove(obj);end end end for _,v in pairs(workspace:GetDescendants()) do process(v);end workspace.DescendantAdded:Connect(process);local toolsFolder=workspace:FindFirstChild("Tools");local labelCache={};local function createLabel(obj) if labelCache[obj] then return;end if  not obj:IsA("BasePart") then return;end local bill=Instance.new("BillboardGui");bill.Size=UDim2.new(0,100,0,30);bill.StudsOffset=Vector3.new(0,2.5,0);bill.AlwaysOnTop=true;local text=Instance.new("TextLabel");text.Size=UDim2.new(1,0,1,0);text.BackgroundTransparency=1;text.Text=obj.Name;text.TextColor3=Color3.fromRGB(255,255,255);text.TextStrokeTransparency=0;text.Font=Enum.Font.GothamBold;text.TextScaled=true;text.Parent=bill;bill.Parent=obj;labelCache[obj]=bill;end local function removeLabel(obj) if labelCache[obj] then labelCache[obj]:Destroy();labelCache[obj]=nil;end end local function processTools(obj) if  not state.ESP then return;end if  not toolsFolder then return;end if ((obj:IsA("Model") or obj:IsA("Tool")) and obj:IsDescendantOf(toolsFolder)) then local part=obj:FindFirstChild("Handle") or obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart") ;if part then highlight(part,Color3.fromRGB(0,170,255));if  not labelCache[obj] then local bill=Instance.new("BillboardGui");bill.Size=UDim2.new(0,100,0,30);bill.StudsOffset=Vector3.new(0,3,0);bill.AlwaysOnTop=true;local text=Instance.new("TextLabel");text.Size=UDim2.new(1,0,1,0);text.BackgroundTransparency=1;local displayName=obj.Name;if ((displayName=="Model") or (displayName=="Part")) then displayName="Item";end text.Text=displayName;text.TextColor3=Color3.fromRGB(255,255,255);text.TextStrokeTransparency=0;text.Font=Enum.Font.GothamBold;text.TextScaled=true;text.Parent=bill;bill.Parent=part;labelCache[obj]=bill;end end end end if toolsFolder then for _,v in pairs(toolsFolder:GetDescendants()) do processTools(v);end end workspace.DescendantAdded:Connect(function(obj) processTools(obj);end);local itemCollection=workspace:FindFirstChild("Interacts");itemCollection=itemCollection and itemCollection:FindFirstChild("ItemCollection") ;local itemCache={};local function highlightItem(obj) if  not state.ESP then return;end if  not state.Items then return;end if  not obj:IsA("BasePart") then return;end if (itemCache[obj] and itemCache[obj].Parent) then return;end local h=Instance.new("Highlight");h.Adornee=obj;h.FillColor=Color3.fromRGB(0,255,0);h.OutlineColor=Color3.fromRGB(255,255,255);h.FillTransparency=0.3;h.Parent=obj;itemCache[obj]=h;end local function removeItem(obj) if itemCache[obj] then itemCache[obj]:Destroy();itemCache[obj]=nil;end end local function processItems(obj) if  not itemCollection then return;end if (obj:IsA("SpecialMesh") and obj.Parent:IsA("BasePart")) then obj=obj.Parent;end if (obj:IsA("BasePart") and obj:IsDescendantOf(itemCollection)) then if (state.ESP and state.Items) then highlightItem(obj);else removeItem(obj);end end end if itemCollection then for _,v in pairs(itemCollection:GetDescendants()) do processItems(v);end end workspace.DescendantAdded:Connect(processItems);local TRAIN_POS=Vector3.new( -631.83,8.34,532.8);local function hrp() local c=player.Character;return c and c:FindFirstChild("HumanoidRootPart") ;end local function hasPrompt(part) for _,v in pairs(part:GetDescendants()) do if v:IsA("ProximityPrompt") then return true;end end return false;end local function getClosestMachine() local h=hrp();if ( not h or  not interacts) then return;end local closest,dist=nil,math.huge;for _,obj in pairs(interacts:GetDescendants()) do if (obj:IsA("BasePart") and hasPrompt(obj)) then local d=(h.Position-obj.Position).Magnitude;if (d<dist) then dist=d;closest=obj;end end end return closest;end local map=workspace:WaitForChild("Map");local interact=map:WaitForChild("Interact");local activeCoils={};workspace.DescendantAdded:Connect(function(obj) if obj:IsA("ProximityPrompt") then if (obj.Parent and obj.Parent.Name:lower():find("coil")) then table.insert(activeCoils,obj);end end end);workspace.DescendantRemoving:Connect(function(obj) if obj:IsA("ProximityPrompt") then for i,v in ipairs(activeCoils) do if (v==obj) then table.remove(activeCoils,i);break;end end end end);local completedMachines={};local function getNextMachine() local h=hrp();if ( not h or  not interacts) then return;end local closest,dist=nil,math.huge;local foundAny=false;for _,obj in pairs(interacts:GetDescendants()) do if (obj:IsA("BasePart") and hasPrompt(obj)) then foundAny=true;if  not completedMachines[obj] then local d=(h.Position-obj.Position).Magnitude;if (d<dist) then dist=d;closest=obj;end end end end if (foundAny and  not closest) then completedMachines={};end return closest;end local function isEnemyNear(range) local h=hrp();if ( not h or  not enemies) then return false;end for _,obj in pairs(enemies:GetDescendants()) do if obj:IsA("BasePart") then local d=(h.Position-obj.Position).Magnitude;if (d<=range) then return true;end end end return false;end local function makeInstant(prompt) if  not state.InstantPrompt then return;end if  not prompt:IsA("ProximityPrompt") then return;end prompt.HoldDuration=0;prompt.RequiresLineOfSight=false;end for _,v in pairs(workspace:GetDescendants()) do makeInstant(v);end workspace.DescendantAdded:Connect(function(obj) if obj:IsA("ProximityPrompt") then makeInstant(obj);end end);local decalId="rbxassetid://109881231491183";local function hasDecal(part) for _,child in ipairs(part:GetChildren()) do if (child:IsA("Decal") and (child.Texture==decalId)) then return true;end end return false;end local function addDecals(part) for _,face in ipairs(Enum.NormalId:GetEnumItems()) do local decal=Instance.new("Decal");decal.Texture=decalId;decal.Face=face;decal.Parent=part;end end local espBtn=btn(espPage,"ESP: ON",10);local enemyBtn=btn(espPage,"Enemies: ON",55);local instantBtn=btn(espPage,"INSTANT PROMPT: ON",100);local tpBtn=btn(tpPage,"TP MACHINE",10);local trainBtn=btn(tpPage,"TP TRAIN",55);local decalBtn=btn(tpPage,"SPAWN DECALS",100);local autofarmBtn=btn(tpPage,"AUTO FARM: OFF",145);local staminaBtn=btn(espPage,"STAMINA: ON",145);local machineBtn=btn(espPage,"MACHINE: ON",190);local helpTitle=Instance.new("TextLabel");helpTitle.Size=UDim2.new(1,0,0,30);helpTitle.Position=UDim2.new(0,0,0,10);helpTitle.BackgroundTransparency=1;helpTitle.Text="CREDITS / HELP";helpTitle.TextColor3=Color3.fromRGB(220,230,255);helpTitle.Font=Enum.Font.GothamBold;helpTitle.TextScaled=true;helpTitle.Parent=helpPage;local helpText=Instance.new("TextLabel");helpText.Size=UDim2.new(1,0,0,220);helpText.Position=UDim2.new(0,0,0,45);helpText.BackgroundTransparency=1;helpText.TextWrapped=true;helpText.TextYAlignment=Enum.TextYAlignment.Top;helpText.Text=[[
Help/Credits

ESP - highlights enemies
INSTANT PROMPT - removes hold delay
TP MACHINE - nearest interactable
TP TRAIN - fixed teleport
Autofarm - may sometimes break
made by nabnab on scriptblox!

]];helpText.TextColor3=Color3.fromRGB(160,180,220);helpText.Font=Enum.Font.Gotham;helpText.TextSize=14;helpText.Parent=helpPage;local function show(p) espPage.Visible=false;tpPage.Visible=false;helpPage.Visible=false;p.Visible=true;end espTab.MouseButton1Click:Connect(function() show(espPage);end);tpTab.MouseButton1Click:Connect(function() show(tpPage);end);helpTab.MouseButton1Click:Connect(function() show(helpPage);end);show(espPage);autofarmBtn.MouseButton1Click:Connect(function() state.AutoFarm= not state.AutoFarm;autofarmBtn.Text="AUTO FARM: "   .. ((state.AutoFarm and "ON") or "OFF") ;if  not state.AutoFarm then completedMachines={};end end);espBtn.MouseButton1Click:Connect(function() state.ESP= not state.ESP;espBtn.Text="ESP: "   .. ((state.ESP and "ON") or "OFF") ;if  not state.ESP then for _,h in pairs(cache) do if h then h:Destroy();end end cache={};for _,l in pairs(labelCache) do if l then l:Destroy();end end labelCache={};elseif toolsFolder then for _,v in pairs(toolsFolder:GetDescendants()) do processTools(v);end end end);enemyBtn.MouseButton1Click:Connect(function() state.Enemies= not state.Enemies;enemyBtn.Text="Enemies: "   .. ((state.Enemies and "ON") or "OFF") ;end);instantBtn.MouseButton1Click:Connect(function() state.InstantPrompt= not state.InstantPrompt;instantBtn.Text="INSTANT PROMPT: "   .. ((state.InstantPrompt and "ON") or "OFF") ;end);tpBtn.MouseButton1Click:Connect(function() local h=hrp();local t=getClosestMachine();if (h and t) then h.CFrame=t.CFrame + Vector3.new(0,3,0) ;end end);trainBtn.MouseButton1Click:Connect(function() local h=hrp();if h then h.CFrame=CFrame.new(TRAIN_POS + Vector3.new(0,3,0) );end end);decalBtn.MouseButton1Click:Connect(function() for _,obj in ipairs(workspace:GetDescendants()) do if (obj:IsA("BasePart") and  not hasDecal(obj)) then addDecals(obj);end end end);local replicated=game:GetService("ReplicatedStorage");local BuffHandler=require(replicated.Shared.Modules.BuffHandler);local old_IsActive=BuffHandler.IsActive;BuffHandler.IsActive=function(self,buffname) if ((buffname=="InfiniteStamina") and state.InfiniteStamina) then return true;end return old_IsActive(self,buffname);end;staminaBtn.MouseButton1Click:Connect(function() state.InfiniteStamina= not state.InfiniteStamina;staminaBtn.Text="STAMINA: "   .. ((state.InfiniteStamina and "ON") or "OFF") ;end);machineBtn.MouseButton1Click:Connect(function() state.PerfectMachine= not state.PerfectMachine;machineBtn.Text="MACHINE: "   .. ((state.PerfectMachine and "ON") or "OFF") ;end);local MachineMinigame=require(player.PlayerScripts.Client.Interface.UIController.GameUI.MachineMinigame);local old_GetScore=MachineMinigame.GetMinigameScore;MachineMinigame.GetMinigameScore=function(self,...) if state.PerfectMachine then return "Perfect";end return old_GetScore(self,...);end;local pickupFolder=workspace:WaitForChild("Pickup");local function highlightAll(junkFolder) for _,obj in ipairs(junkFolder:GetDescendants()) do if (obj:IsA("BasePart") or obj:IsA("Model")) then if  not obj:FindFirstChildOfClass("Highlight") then local highlight=Instance.new("Highlight");highlight.FillColor=Color3.fromRGB(0,0,105);highlight.OutlineColor=Color3.fromRGB(0,0,255);highlight.FillTransparency=0.5;highlight.OutlineTransparency=0;highlight.Adornee=obj;highlight.Parent=obj;end end end end local function monitorJunk(junkFolder) highlightAll(junkFolder);junkFolder.DescendantAdded:Connect(function() task.defer(function() highlightAll(junkFolder);end);end);end task.spawn(function() while true do local junkFolder=pickupFolder:FindFirstChild("Junk");if junkFolder then monitorJunk(junkFolder);junkFolder.AncestryChanged:Wait();end task.wait(0.5);end end);local TRAIN_DROP=Vector3.new( -730.215759, -0.546702385,524.382629);task.spawn(function() while true do task.wait(0.2);if  not state.AutoFarm then continue;end local h=hrp();if  not h then continue;end if ( #activeCoils>0) then for i= #activeCoils,1, -1 do local prompt=activeCoils[i];if ( not prompt or  not prompt.Parent or  not prompt.Enabled) then table.remove(activeCoils,i);continue;end local part=prompt.Parent;if part:IsA("BasePart") then h.CFrame=part.CFrame + Vector3.new(0,2,0) ;task.wait(0.05);fireproximityprompt(prompt);task.wait(0.15);end end continue;end local machine=getNextMachine();if  not machine then h.CFrame=CFrame.new(TRAIN_DROP + Vector3.new(0,0,0) );task.wait(0.25);h.CFrame=CFrame.new(TRAIN_POS + Vector3.new(0,3,0) );task.wait(1);continue;end h.CFrame=machine.CFrame + Vector3.new(0,3,0) ;local working=true;while working and state.AutoFarm  do task.wait(0.1);if isEnemyNear(15) then h.CFrame=CFrame.new(TRAIN_DROP + Vector3.new(0,3,0) );task.wait(0.25);h.CFrame=CFrame.new(TRAIN_POS + Vector3.new(0,3,0) );task.wait(4);h.CFrame=machine.CFrame + Vector3.new(0,3,0) ;end local foundPrompt=false;for _,v in pairs(machine:GetDescendants()) do if v:IsA("ProximityPrompt") then foundPrompt=true;fireproximityprompt(v);end end if  not foundPrompt then completedMachines[machine]=true;working=false;end end task.wait(0.5);end end); end

Features & Information

basic dollys factory script; version 1.3: Autofarm added! very basic addition fixed the issue with rejects not being highlighted properally highlights most things (except machines i forgot) teleports to machines/train infinite stamina added perfect machine added yiff button changed to spawn decals (sorry)
#dolly#DF#Dollys Factory#Buddy#dandy

Community Comments (14)

cheeseapplecheeseappleApr 29, 2026

Thank you, good samaritan!

Replying to @cheeseapple
nabnabnabnabApr 29, 2026

@cheeseapple tyy!

jaxzerojaxzeroApr 30, 2026

awsome can't wait for more!

jaxzerojaxzeroApr 30, 2026

can u add auto stuff next ^^ like skill and pick up fluff then doing gen

Replying to @jaxzero
nabnabnabnabApr 30, 2026

working on this & a system to bypass the speed system :p

Replying to @nabnab
r4yyr4yyMay 4, 2026

@nabnab can u make item aura too and auto calibration/skillcheck

Replying to @r4yy
r4yyr4yyMay 4, 2026

When will it be updated hopefully in 1-2 days

Replying to @r4yy
nabnabnabnabMay 4, 2026

@r4yy item aura i can work on, skillcheck is already added ^

Replying to @nabnab
r4yyr4yyMay 5, 2026

@nabnab I mean it clicks the skillcheck once it gets to the green or when the perfect only is on it clicks once it appears and can u also add fullbright I will appreciate it so much

Ali_hhjjjAli_hhjjjMay 5, 2026

Hi friend I'm the owner of DF gui script my friend tells me you need help with the auto farm is broken? Or do you want me just give me my auto skillcheck code?

Ali_hhjjjAli_hhjjjMay 5, 2026

I liked your script by the way ❤️ Discord username Ali_hhjjj

Joa2005Joa2005May 5, 2026

What’s the script for delta

ikoriikoriMay 8, 2026

yo nabnab auto farm is not working , is there any steps ?

Replying to @ikori
nabnabnabnabMay 10, 2026

@ikori im going to work on a fix now, my injector i use has been down for a few days ^^