mog farm
Key Required

mog farm

[W3] +1 Mog EvolutionKasafiimKasafiim 1.7K views 8.3K executesUpdated Sep 14, 2026
Unrated
00
Lua Script•203 lines (5597 chars)
local Players=game:GetService("Players")
local RS=game:GetService("ReplicatedStorage")
local LP=Players.LocalPlayer

local Config=require(RS:WaitForChild("Mog"):WaitForChild("MogConfig"))
local WinConfig=require(RS:WaitForChild("Mog"):WaitForChild("WinPadConfig"))
local Worlds=require(RS:WaitForChild("Modules"):WaitForChild("Worlds"))
local ClickPower=RS:WaitForChild("PowerRemotes"):WaitForChild("ClickPower")

local mogFarm=false
local appealFarm=false

local function root()
	local c=LP.Character
	return c and c:FindFirstChild("HumanoidRootPart")
end

local function world()
	local ok,w=pcall(function() return Worlds.Of(LP) end)
	return ok and w or 1
end

local function worldRoot()
	local ok,w=pcall(function() return Worlds.Root(Worlds.Get(world()) or Worlds.Home()) end)
	return ok and w or nil
end

local function getMogger(zone)
	local w=worldRoot()
	if not w then return end
	local mf=w:FindFirstChild("Moggers")
	if not mf then return end
	local z=mf:FindFirstChild(zone)
	if not z then return end
	local m=z:FindFirstChild("Mogger")
	if not m then return end
	if m:IsA("Model") then return m:GetPivot() end
	if m:IsA("BasePart") then return m.CFrame end
	local p=m:FindFirstChildWhichIsA("BasePart",true)
	return p and p.CFrame
end

local function beaten()
	local ok,z=pcall(function() return Config:ZonesOf(world()) end)
	if not ok or type(z)~="table" then return {} end
	local r={}
	for _,v in ipairs(z) do
		if v.Zone and LP:GetAttribute("Beat_"..v.Zone) then
			local cf=getMogger(v.Zone)
			if cf then table.insert(r,{Zone=v.Zone,CFrame=cf}) end
		end
	end
	return r
end

local function progress()
	return math.min(#beaten()+1,#WinConfig.Rewards)
end

local function getWinPad()
	local w=worldRoot()
	if not w then return end
	local pads=w:FindFirstChild("WinPads")
	if not pads then return end
	local normal=pads:FindFirstChild("Normal")
	if not normal then return end
	local target=WinConfig.RewardFor(progress())
	for _,v in ipairs(normal:GetDescendants()) do
		if v:IsA("TextLabel") and v.Text:find("Wins") then
			local model=v:FindFirstAncestorWhichIsA("Model")
			if model and tonumber(model.Name) and WinConfig.RewardFor(tonumber(model.Name))==target then
				local win=model:FindFirstChild("Win",true)
				if win and win:IsA("BasePart") then return win.CFrame end
			end
		end
	end
end

local function mogFarmLoop()
	while mogFarm do
		local r=root()
		if r then
			for _,v in ipairs(beaten()) do
				if not mogFarm then break end
				r.CFrame=v.CFrame
				task.wait()
			end
			if mogFarm then
				local cf=getWinPad()
				if cf then
					r.CFrame=cf
					task.wait()
				end
			end
		end
		task.wait()
	end
end

local function appealFarmLoop()
	while appealFarm do
		ClickPower:FireServer()
		task.wait(0.05)
	end
end

local gui=Instance.new("ScreenGui")
gui.Name="MogFarmUI"
gui.ResetOnSpawn=false
gui.Parent=LP:WaitForChild("PlayerGui")

local frame=Instance.new("Frame")
frame.Size=UDim2.fromOffset(230,145)
frame.Position=UDim2.new(0,15,0.5,-72)
frame.BackgroundColor3=Color3.fromRGB(20,20,25)
frame.Active=true
frame.Parent=gui

local corner=Instance.new("UICorner")
corner.CornerRadius=UDim.new(0,12)
corner.Parent=frame

local stroke=Instance.new("UIStroke")
stroke.Color=Color3.fromRGB(60,60,70)
stroke.Parent=frame

local title=Instance.new("TextLabel")
title.Size=UDim2.new(1,0,0,30)
title.BackgroundTransparency=1
title.Text="mog farm"
title.TextColor3=Color3.new(1,1,1)
title.TextSize=17
title.Font=Enum.Font.GothamBold
title.Parent=frame

local credit=Instance.new("TextLabel")
credit.Size=UDim2.fromOffset(100,15)
credit.Position=UDim2.new(1,-105,1,-18)
credit.BackgroundTransparency=1
credit.Text="by criminalsafety"
credit.TextColor3=Color3.fromRGB(120,120,130)
credit.TextSize=9
credit.Font=Enum.Font.Gotham
credit.TextXAlignment=Enum.TextXAlignment.Right
credit.Parent=frame

local function button(y,text,callback)
	local b=Instance.new("TextButton")
	b.Size=UDim2.new(1,-20,0,38)
	b.Position=UDim2.new(0,10,0,y)
	b.BackgroundColor3=Color3.fromRGB(45,45,52)
	b.Text=text.."  OFF"
	b.TextColor3=Color3.new(1,1,1)
	b.TextSize=14
	b.Font=Enum.Font.GothamBold
	b.Parent=frame
	local c=Instance.new("UICorner")
	c.CornerRadius=UDim.new(0,8)
	c.Parent=b
	b.Activated:Connect(function()
		callback(b)
	end)
	return b
end

button(35,"Mog Farm",function(b)
	mogFarm=not mogFarm
	b.Text="Mog Farm  "..(mogFarm and "ON" or "OFF")
	b.BackgroundColor3=mogFarm and Color3.fromRGB(35,130,65) or Color3.fromRGB(45,45,52)
	if mogFarm then task.spawn(mogFarmLoop) end
end)

button(80,"Appeal Farm",function(b)
	appealFarm=not appealFarm
	b.Text="Appeal Farm  "..(appealFarm and "ON" or "OFF")
	b.BackgroundColor3=appealFarm and Color3.fromRGB(35,130,65) or Color3.fromRGB(45,45,52)
	if appealFarm then task.spawn(appealFarmLoop) end
end)

local dragging=false
local dragStart
local startPos

frame.InputBegan:Connect(function(input)
	if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
		dragging=true
		dragStart=input.Position
		startPos=frame.Position
	end
end)

frame.InputEnded:Connect(function(input)
	if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
		dragging=false
	end
end)

game:GetService("UserInputService").InputChanged:Connect(function(input)
	if dragging and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then
		local delta=input.Position-dragStart
		frame.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+delta.X,startPos.Y.Scale,startPos.Y.Offset+delta.Y)
	end
end)

Features & Information

farm wins and hammer Work in mobile, maybe pc

Community Comments (0)

No comments yet for this script.

More Scripts for [W3] +1 Mog Evolution