Run it
Copy the script and paste it into your executor.
Client = (.Players.LocalPlayer.PlayerScripts.Client)
player = .Players.LocalPlayer
config = {
plantDelay = ,
plantAmount = ,
surroundBase = ,
spiralBase = ,
circleRadius = ,
skyBase = ,
heartBase = ,
pyramidBase = ,
}
SKY_HEIGHT =
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = player.PlayerGui
frame = .()
frame.Size = .(, , , )
frame.Position = .(, -, , -)
frame.BackgroundColor3 = .(, , )
frame.BorderSizePixel =
frame.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = frame
title = .()
title.Size = .(, , , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.TextSize =
title.Font = .Font.GothamBold
title.Parent = frame
ownerLabel = .()
ownerLabel.Size = .(, , , )
ownerLabel.Position = .(, , , )
ownerLabel.BackgroundTransparency =
ownerLabel.Text =
ownerLabel.TextColor3 = .(, , )
ownerLabel.TextSize =
ownerLabel.Font = .Font.Gotham
ownerLabel.TextXAlignment = .TextXAlignment.Center
ownerLabel.Parent = frame
dragging, dragInput, dragStart, startPos = , , ,
(input)
delta = input.Position - dragStart
frame.Position = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
frame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = frame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
frame.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
dragInput = input
)
:().InputChanged:((input)
input == dragInput dragging
(input)
)
scroll = .()
scroll.Size = .(, , , -)
scroll.Position = .(, , , )
scroll.BackgroundTransparency =
scroll.CanvasSize = .(,,,)
scroll.ScrollBarThickness =
scroll.Parent = frame
(name, posY, colorOff)
btn = .()
btn.Size = .(,-,,)
btn.Position = .(,,,posY)
btn.BackgroundColor3 = colorOff
btn.Text = name ..
btn.TextColor3 = .(,,)
btn.TextSize =
btn.Font = .Font.GothamBold
btn.Parent = scroll
corner = .()
corner.CornerRadius = .(,)
corner.Parent = btn
btn
(text,posY)
lbl = .()
lbl.Size = .(,-,,)
lbl.Position = .(,,,posY)
lbl.BackgroundTransparency =
lbl.Text = text
lbl.TextColor3 = .(,,)
lbl.TextSize =
lbl.Font = .Font.Gotham
lbl.TextXAlignment = .TextXAlignment.Left
lbl.Parent = scroll
lbl
(text,posY,placeholder)
tb = .()
tb.Size = .(,-,,)
tb.Position = .(,,,posY)
tb.BackgroundColor3 = .(,,)
tb.Text = text
tb.TextColor3 = .(,,)
tb.TextSize =
tb.Font = .Font.Gotham
tb.PlaceholderText = placeholder
tb.Parent = scroll
corner = .()
corner.CornerRadius = .(,)
corner.Parent = tb
tb
delayLabel = (,)
delayInput = (,,)
amountLabel = (,)
amountInput = (,,)
radiusLabel = (,)
radiusInput = (,,)
surroundToggle = (,, .(,,))
spiralToggle = (,, .(,,))
skyToggle = (,, .(,,))
heartToggle = (,, .(,,))
pyramidToggle = (,, .(,,))
delayInput.FocusLost:(()
v = (delayInput.Text)
v v>= v<=
config.plantDelay=v
delayLabel.Text=..v..
delayInput.Text=(config.plantDelay)
)
amountInput.FocusLost:(()
v = (amountInput.Text)
v v>= v<=
config.plantAmount = .(v)
amountLabel.Text = ..v
amountInput.Text=(config.plantAmount)
)
radiusInput.FocusLost:(()
v = (radiusInput.Text)
v v>= v<=
config.circleRadius=v
radiusLabel.Text=..v
radiusInput.Text=(config.circleRadius)
)
surroundToggle.MouseButton1Click:(()
config.surroundBase = config.surroundBase
config.surroundBase
surroundToggle.Text =
surroundToggle.BackgroundColor3 = .(,,)
surroundToggle.Text =
surroundToggle.BackgroundColor3 = .(,,)
)
spiralToggle.MouseButton1Click:(()
config.spiralBase = config.spiralBase
config.spiralBase
spiralToggle.Text =
spiralToggle.BackgroundColor3 = .(,,)
spiralToggle.Text =
spiralToggle.BackgroundColor3 = .(,,)
)
skyToggle.MouseButton1Click:(()
config.skyBase = config.skyBase
config.skyBase
skyToggle.Text =
skyToggle.BackgroundColor3 = .(,,)
skyToggle.Text =
skyToggle.BackgroundColor3 = .(,,)
)
heartToggle.MouseButton1Click:(()
config.heartBase = config.heartBase
config.heartBase
heartToggle.Text =
heartToggle.BackgroundColor3 = .(,,)
heartToggle.Text =
heartToggle.BackgroundColor3 = .(,,)
)
pyramidToggle.MouseButton1Click:(()
config.pyramidBase = config.pyramidBase
config.pyramidBase
pyramidToggle.Text =
pyramidToggle.BackgroundColor3 = .(,,)
pyramidToggle.Text =
pyramidToggle.BackgroundColor3 = .(,,)
)
previewParts={}
()
_,p (previewParts)
p p.Parent p:()
previewParts={}
()
char = player.Character
char char.PrimaryPart
pos = char.PrimaryPart.Position
nearest, shortest = , .huge
_,item (.Items:())
item.Name== item.PrimaryPart
dist = (item.PrimaryPart.Position-pos).Magnitude
dist<shortest
nearest=item
shortest=dist
nearest
()
.Map.Campground.MainFire.PrimaryPart
.Map.Campground.MainFire.PrimaryPart.Position
(basePos)
config.skyBase
.(basePos.X, SKY_HEIGHT, basePos.Z)
ray = RaycastParams.()
ray.FilterDescendantsInstances = {.Map.Ground, .Map:()}
ray.FilterType = .RaycastFilterType.Include
ray.IgnoreWater=
result = :(basePos, .(,-,), ray)
result result.Position
capturedArgs, capturedRemote=,
originalInvokeServer = Client.Events.RequestPlantItem.InvokeServer
Client.Events.RequestPlantItem.InvokeServer = (self,...)
args={...}
capturedArgs=args
capturedRemote=self
(self,...)
(center, scale, saplingCount)
positions = {}
i = , saplingCount -
t = (i / saplingCount) * .pi *
x = * .(t)^
y = * .(t) - *.(*t) - *.(*t) - .(*t)
posX = center.X + x * scale
posZ = center.Z + y * scale
posY = config.skyBase SKY_HEIGHT center.Y +
.(positions, .(posX, posY, posZ))
positions
(center, radius, count)
positions = {}
i = , count -
angle = (i / count) * .pi *
x = center.X + .(angle) * radius
z = center.Z + .(angle) * radius
y = config.skyBase SKY_HEIGHT center.Y +
.(positions, .(x, y, z))
positions
(center, radius, count)
positions = {}
turns =
i = , count
t = i / count * .pi * * turns
r = (i / count) * radius
x = center.X + .(t) * r
z = center.Z + .(t) * r
y = config.skyBase SKY_HEIGHT center.Y +
.(positions, .(x, y, z))
positions
(center, radius, gridSize)
positions = {}
step = (radius * ) / (gridSize - )
i = , gridSize -
j = , gridSize -
x = center.X - radius + i * step
z = center.Z - radius + j * step
y = SKY_HEIGHT
.(positions, .(x, y, z))
positions
(center, baseRadius, layers)
positions = {}
y = , layers-
radius = baseRadius * ( - y / layers)
count = .(, .(radius * ))
i = , count-
angle = (i / count) * .pi *
x = center.X + .(angle) * radius
z = center.Z + .(angle) * radius
posY = config.skyBase SKY_HEIGHT center.Y + + y
.(positions, .(x, posY, z))
positions
()
()
campfirePos = ()
campfirePos
positions={}
config.pyramidBase
positions = (campfirePos, config.circleRadius, .(config.plantAmount/))
config.heartBase
positions = (campfirePos, config.circleRadius/, config.plantAmount)
config.skyBase
positions = (campfirePos, config.circleRadius, )
config.spiralBase
positions = (campfirePos, config.circleRadius, config.plantAmount)
config.surroundBase
positions = (campfirePos, config.circleRadius, config.plantAmount)
item = ()
item item.PrimaryPart
pos = (item.PrimaryPart.Position)
pos .(positions,pos)
_,pos (positions)
part = .()
part.Size = .(,,)
part.Position = pos
part.Anchored =
part.CanCollide =
part.Transparency =
part.Material = .Material.Neon
part.Color = .(,,)
part.Parent =
.(previewParts, part)
()
()
item = ()
item item.PrimaryPart
campfirePos = ()
campfirePos
positions={}
config.pyramidBase
positions = (campfirePos, config.circleRadius, .(config.plantAmount/))
config.heartBase
positions = (campfirePos, config.circleRadius/, config.plantAmount)
config.skyBase
positions = (campfirePos, config.circleRadius, )
config.spiralBase
positions = (campfirePos, config.circleRadius, config.plantAmount)
config.surroundBase
positions = (campfirePos, config.circleRadius, config.plantAmount)
pos = (item.PrimaryPart.Position)
pos .(positions,pos)
#positions==
item.Parent = .ReplicatedStorage.TempStorage
result = Client.Events.RequestPlantItem:(item, positions[])
result result.Success
.(()
capturedArgs capturedRemote
i=,#positions
.(config.plantDelay)
capturedArgs[] = positions[i]
capturedRemote:((capturedArgs))
)
previewButton = .()
previewButton.Size = .(,,,)
previewButton.Position = .(,,,-)
previewButton.BackgroundColor3 = .(,,)
previewButton.Text =
previewButton.TextColor3 = .(,,)
previewButton.TextSize =
previewButton.Font = .Font.GothamBold
previewButton.Parent = frame
previewCorner = .()
previewCorner.CornerRadius = .(,)
previewCorner.Parent = previewButton
plantButton = .()
plantButton.Size = .(,,,)
plantButton.Position = .(,,,-)
plantButton.BackgroundColor3 = .(,,)
plantButton.Text =
plantButton.TextColor3 = .(,,)
plantButton.TextSize =
plantButton.Font = .Font.GothamBold
plantButton.Parent = frame
plantCorner = .()
plantCorner.CornerRadius = .(,)
plantCorner.Parent = plantButton
previewButton.MouseButton1Click:(showPreview)
plantButton.MouseButton1Click:(plantSapling)
minimizeBtn = .()
minimizeBtn.Size = .(, , , )
minimizeBtn.Position = .(, -, , )
minimizeBtn.BackgroundColor3 = .(, , )
minimizeBtn.Text =
minimizeBtn.TextColor3 = .(,,)
minimizeBtn.TextSize =
minimizeBtn.Font = .Font.GothamBold
minimizeBtn.Parent = frame
minCorner = .()
minCorner.CornerRadius = .(,)
minCorner.Parent = minimizeBtn
minimized =
minimizeBtn.MouseButton1Click:(()
minimized = minimized
scroll.Visible = minimized
previewButton.Visible = minimized
plantButton.Visible = minimized
frame.Size = minimized .(,,,) .(,,,)
)

99 Nights in the Forest 馃敠