
Key Required
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)No comments yet for this script.