Run it
Copy the script and paste it into your executor.
().CardCollectionFarm
(() ().CardCollectionFarm.() )
.()
Players = :()
ReplicatedStorage = :()
Workspace = :()
UserInputService = :()
TweenService = :()
LocalPlayer = Players.LocalPlayer
(folder, name)
parent = ReplicatedStorage:(folder)
parent parent:(name)
Remotes = {
ClickSlot = (, ),
}
PackTypes = {
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
}
Config = {
AutoCollect = ,
CollectDelay = ,
CollectInterval = ,
AutoBuyPacks = ,
BuyDelay = ,
SelectedPackTypes = {},
AutoOpenPacks = ,
OpenDelay = ,
}
CachedSlots = {}
LastSlotCache =
State = {
Running = ,
Collecting = ,
BuyingPacks = ,
OpeningPacks = ,
}
Connections = {}
Threads = {}
ScreenGui =
Stats = {
MoneyCollected = ,
PacksBought = ,
PacksOpened = ,
SessionStart = (),
}
(name)
Threads[name]
(() .(Threads[name]) )
Threads[name] =
()
name, conn (Connections)
(() conn:() )
Connections[name] =
()
name (Threads)
(name)
()
State.Running =
Config.AutoCollect =
Config.AutoBuyPacks =
Config.AutoOpenPacks =
.()
()
()
ScreenGui
(() ScreenGui:() )
ScreenGui =
().CardCollectionFarm =
()
char = LocalPlayer.Character
char
root = char:()
root
myPos = root.Position
plots = Workspace:()
plots
closest =
closestDist = .huge
_, plot (plots:())
plot:()
primary = plot.PrimaryPart plot:()
primary
dist = (myPos - primary.Position).Magnitude
dist < closestDist dist <
closestDist = dist
closest = plot
closest
(text)
text
text = text:(, ):(, ):(, )
num, suffix = text:()
num
num = (num)
num
suffix = suffix:()
suffix ==
num = num *
suffix ==
num = num *
suffix ==
num = num *
.(num)
(pack)
packGui = pack:()
packGui
costText = packGui:()
costText costText:()
(costText.Text)
_, desc (pack:())
desc:() desc.Name ==
(desc.Text)
()
leaderstats = LocalPlayer:()
leaderstats
cash = leaderstats:() leaderstats:() leaderstats:()
cash
cash.Value
_, stat (leaderstats:())
stat:() stat:()
stat.Value
playerGui = LocalPlayer:()
playerGui
_, gui (playerGui:())
gui:()
text = gui.Text
text:()
(text)
(pack)
price = (pack)
price
money = ()
money >= price
()
found = {[] = }
plot = ()
plot
conveyor = plot:()
conveyor
_, desc (conveyor:())
desc:() desc.Name:():()
found[desc.Name] =
placedPacks = plot:()
placedPacks
_, pack (placedPacks:())
pack:()
found[pack.Name] =
_, packType (PackTypes)
found[packType] =
result = {}
name, _ (found)
name ~=
.(result, name)
.(result, (a, b)
a ==
b ==
a < b
)
result
()
plot = ()
plot
binder = plot:()
binder
count =
i = ,
binder:( .. i)
count = i
count
(pageNum)
slots = {}
plot = ()
plot slots
binder = plot:()
binder slots
page = binder:( .. pageNum)
page slots
pageModel = page:()
pageModel slots
slotsFolder = pageModel:()
slotsFolder slots
_, slot (slotsFolder:())
slot:() slot.Parent
slotName = slot.Name:()
slotName ~= slotName ~=
.(slots, slot)
slots
(forceRefresh)
now = ()
forceRefresh #CachedSlots > (now - LastSlotCache) <
CachedSlots
allSlots = {}
pageCount = ()
pageNum = , pageCount
pageSlots = (pageNum)
_, slot (pageSlots)
.(allSlots, slot)
CachedSlots = allSlots
LastSlotCache = now
allSlots
(isManual)
Remotes.ClickSlot
allSlots = ()
#allSlots ==
collected =
i, slot (allSlots)
State.Running
isManual Config.AutoCollect
slot slot.Parent
(()
Remotes.ClickSlot:(slot)
collected = collected +
)
Config.CollectDelay >
.(Config.CollectDelay)
i % ==
.()
collected
(isManual)
collected = (isManual)
Stats.MoneyCollected = Stats.MoneyCollected + collected
collected
()
packs = {}
added = {}
plot = ()
plot packs
(pack)
pack pack:() added[pack]
added[pack] =
.(packs, pack)
placedPacks = plot:()
placedPacks
_, pack (placedPacks:())
(pack)
_, pack (placedPacks:())
pack:()
(pack)
searchFolders = {, , , , }
_, folderName (searchFolders)
folder = plot:(folderName)
folder
_, pack (folder:())
(pack)
_, child (plot:())
child:()
name = child.Name:()
name:() name:() name:() name:() name:() name:() name:()
(child)
_, desc (plot:())
desc:()
name = desc.Name:()
name:()
desc.Parent desc.Parent.Name ~= desc.Parent.Name ~=
(desc)
packs
(pack)
openTimeGui =
_, desc (pack:())
desc:() desc.Name ==
openTimeGui = desc
openTimeGui
timeText = openTimeGui:()
timeText timeText:()
text = timeText.Text:()
text == text ==
text:() text:() text:()
_, desc (pack:())
desc:() desc.Name ==
text = desc.Text:()
text == text ==
text:() text:() text:()
(pack)
pack pack.Parent
handle = pack:()
handle
_, desc (pack:())
desc:()
handle = desc
handle
prompt =
_, desc (pack:())
desc:()
prompt = desc
char = LocalPlayer.Character
hrp = char char:()
hrp
oldCFrame = hrp.CFrame
(()
hrp.CFrame = handle.CFrame * .(, , )
)
.()
success =
prompt
(() (prompt) )
success =
success
(()
(hrp, handle, )
.()
(hrp, handle, )
)
success =
.()
(()
hrp.CFrame = oldCFrame
)
success
Stats.PacksOpened = Stats.PacksOpened +
success
()
packs = ()
opened =
_, pack (packs)
State.Running
(pack)
(pack)
opened = opened +
.(Config.OpenDelay)
opened
(pack)
Config.SelectedPackTypes[] (Config.SelectedPackTypes) ==
packName = pack.Name:()
selectedType, enabled (Config.SelectedPackTypes)
enabled selectedType ~=
typeKey = selectedType:():(, ):(, ):(, ):(, )
packName:(typeKey)
packName == selectedType:()
_, desc (pack:())
desc:() desc:()
text = desc.Text:()
text:(typeKey)
()
plot = ()
plot
conveyor = plot:()
conveyor
activePacks = conveyor:()
activePacks
packs = activePacks:()
#packs ==
pack =
_, p (packs)
p:() (p) (p)
pack = p
pack
handle = pack:()
handle
prompt = handle:()
prompt
char = LocalPlayer.Character
hrp = char char:()
hrp
oldCFrame = hrp.CFrame
(()
hrp.CFrame = handle.CFrame * .(, , )
)
.()
(() (prompt) )
.()
(()
hrp.CFrame = oldCFrame
)
Stats.PacksBought = Stats.PacksBought +
(num)
num >=
.(, num / )
num >=
.(, num / )
(.(num))
()
elapsed = () - Stats.SessionStart
mins = .(elapsed / )
secs = .(elapsed % )
.(, mins, secs)
()
State.Collecting
State.Collecting =
Threads[] = .(()
Config.AutoCollect State.Running
()
.(Config.CollectInterval)
State.Collecting =
)
()
Config.AutoCollect =
()
State.Collecting =
()
State.BuyingPacks
State.BuyingPacks =
Threads[] = .(()
Config.AutoBuyPacks State.Running
()
.(Config.BuyDelay)
State.BuyingPacks =
)
()
Config.AutoBuyPacks =
()
State.BuyingPacks =
()
State.OpeningPacks
State.OpeningPacks =
Threads[] = .(()
Config.AutoOpenPacks State.Running
()
.()
State.OpeningPacks =
)
()
Config.AutoOpenPacks =
()
State.OpeningPacks =
()
isMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset =
(()
.(ScreenGui)
gethui
ScreenGui.Parent = ()
)
ScreenGui.Parent = LocalPlayer:()
Icons = {
Power = ,
}
Accent = .(, , )
GlassBg = .(, , )
GlassCard = .(, , )
TextPrimary = .(, , )
TextSecondary = .(, , )
MainContainer = .()
MainContainer.Name =
MainContainer.AnchorPoint = .(, )
MainContainer.Position = .(, , , )
MainContainer.Size = isMobile .(, , , ) .(, , , )
MainContainer.BackgroundColor3 = GlassBg
MainContainer.BackgroundTransparency =
MainContainer.BorderSizePixel =
MainContainer.ClipsDescendants =
MainContainer.Parent = ScreenGui
MainCorner = .()
MainCorner.CornerRadius = .(, )
MainCorner.Parent = MainContainer
TopBar = .()
TopBar.Size = .(, , , )
TopBar.BackgroundColor3 = .(, , )
TopBar.BackgroundTransparency =
TopBar.BorderSizePixel =
TopBar.Parent = MainContainer
TopCorner = .()
TopCorner.CornerRadius = .(, )
TopCorner.Parent = TopBar
FarmingTab = .()
FarmingTab.Size = .(, , , )
FarmingTab.Position = .(, , , -)
FarmingTab.BackgroundColor3 = Accent
FarmingTab.BackgroundTransparency =
FarmingTab.BorderSizePixel =
FarmingTab.Text =
FarmingTab.TextSize =
FarmingTab.Font = .Font.GothamBold
FarmingTab.TextColor3 = TextPrimary
FarmingTab.Parent = TopBar
FarmCorner = .()
FarmCorner.CornerRadius = .(, )
FarmCorner.Parent = FarmingTab
ActionsTab = .()
ActionsTab.Size = .(, , , )
ActionsTab.Position = .(, , , -)
ActionsTab.BackgroundTransparency =
ActionsTab.BorderSizePixel =
ActionsTab.Text =
ActionsTab.TextSize =
ActionsTab.Font = .Font.GothamMedium
ActionsTab.TextColor3 = TextSecondary
ActionsTab.Parent = TopBar
ActionsCorner = .()
ActionsCorner.CornerRadius = .(, )
ActionsCorner.Parent = ActionsTab
PowerBtn = .()
PowerBtn.Size = .(, , , )
PowerBtn.Position = .(, -, , -)
PowerBtn.BackgroundColor3 = .(, , )
PowerBtn.BackgroundTransparency =
PowerBtn.BorderSizePixel =
PowerBtn.Image = Icons.Power
PowerBtn.ImageColor3 = TextPrimary
PowerBtn.Parent = TopBar
PowerCorner = .()
PowerCorner.CornerRadius = .(, )
PowerCorner.Parent = PowerBtn
PowerBtn.MouseButton1Click:(Unload)
AvatarFrame = .()
AvatarFrame.Size = .(, , , )
AvatarFrame.Position = .(, -, , -)
AvatarFrame.BackgroundColor3 = GlassCard
AvatarFrame.BorderSizePixel =
AvatarFrame.Parent = TopBar
AvatarCorner = .()
AvatarCorner.CornerRadius = .(, )
AvatarCorner.Parent = AvatarFrame
AvatarImg = .()
AvatarImg.Size = .(, , , )
AvatarImg.BackgroundTransparency =
AvatarImg.Parent = AvatarFrame
.(()
ok, img = (()
Players:(LocalPlayer.UserId, .ThumbnailType.HeadShot, .ThumbnailSize.Size100x100)
)
ok AvatarImg.Image = img
)
AvatarImgCorner = .()
AvatarImgCorner.CornerRadius = .(, )
AvatarImgCorner.Parent = AvatarImg
FarmingPanel = .()
FarmingPanel.Name =
FarmingPanel.Size = .(, -, , -)
FarmingPanel.Position = .(, , , )
FarmingPanel.BackgroundTransparency =
FarmingPanel.Parent = MainContainer
ActionsPanel = .()
ActionsPanel.Name =
ActionsPanel.Size = .(, -, , -)
ActionsPanel.Position = .(, , , )
ActionsPanel.BackgroundTransparency =
ActionsPanel.Visible =
ActionsPanel.Parent = MainContainer
FarmingTab.MouseButton1Click:(()
FarmingPanel.Visible =
ActionsPanel.Visible =
FarmingTab.BackgroundTransparency =
FarmingTab.TextColor3 = TextPrimary
ActionsTab.BackgroundTransparency =
ActionsTab.TextColor3 = TextSecondary
)
ActionsTab.MouseButton1Click:(()
FarmingPanel.Visible =
ActionsPanel.Visible =
FarmingTab.BackgroundTransparency =
FarmingTab.TextColor3 = TextSecondary
ActionsTab.BackgroundTransparency =
ActionsTab.BackgroundColor3 = Accent
ActionsTab.TextColor3 = TextPrimary
)
(parent, pos, size, label, default, callback)
Frame = .()
Frame.Size = size
Frame.Position = pos
Frame.BackgroundColor3 = GlassCard
Frame.BackgroundTransparency =
Frame.BorderSizePixel =
Frame.Parent = parent
Corner = .()
Corner.CornerRadius = .(, )
Corner.Parent = Frame
Label = .()
Label.Size = .(, -, , )
Label.Position = .(, , , )
Label.BackgroundTransparency =
Label.Text = label
Label.TextSize =
Label.Font = .Font.GothamMedium
Label.TextColor3 = TextPrimary
Label.TextXAlignment = .TextXAlignment.Left
Label.Parent = Frame
ToggleBg = .()
ToggleBg.Size = .(, , , )
ToggleBg.Position = .(, -, , -)
ToggleBg.BackgroundColor3 = default Accent .(, , )
ToggleBg.BorderSizePixel =
ToggleBg.Parent = Frame
BgCorner = .()
BgCorner.CornerRadius = .(, )
BgCorner.Parent = ToggleBg
Circle = .()
Circle.Size = .(, , , )
Circle.Position = default .(, -, , -) .(, , , -)
Circle.BackgroundColor3 = TextPrimary
Circle.BorderSizePixel =
Circle.Parent = ToggleBg
CircleCorner = .()
CircleCorner.CornerRadius = .(, )
CircleCorner.Parent = Circle
enabled = default
Btn = .()
Btn.Size = .(, , , )
Btn.BackgroundTransparency =
Btn.Text =
Btn.Parent = Frame
Btn.MouseButton1Click:(()
enabled = enabled
TweenService:(ToggleBg, TweenInfo.(), {
BackgroundColor3 = enabled Accent .(, , )
}):()
TweenService:(Circle, TweenInfo.(, .EasingStyle.Back), {
Position = enabled .(, -, , -) .(, , , -)
}):()
(enabled)
)
Frame
(parent, pos, size, label, min, max, default, callback)
min = .(min, max)
default = .(default, min, max)
Frame = .()
Frame.Size = size
Frame.Position = pos
Frame.BackgroundColor3 = GlassCard
Frame.BackgroundTransparency =
Frame.BorderSizePixel =
Frame.Parent = parent
Corner = .()
Corner.CornerRadius = .(, )
Corner.Parent = Frame
Label = .()
Label.Size = .(, , , )
Label.Position = .(, , , )
Label.BackgroundTransparency =
Label.Text = label
Label.TextSize =
Label.Font = .Font.GothamMedium
Label.TextColor3 = TextPrimary
Label.TextXAlignment = .TextXAlignment.Left
Label.Parent = Frame
Value = .()
Value.Size = .(, , , )
Value.Position = .(, -, , )
Value.BackgroundTransparency =
Value.Text = (default)
Value.TextSize =
Value.Font = .Font.GothamBold
Value.TextColor3 = Accent
Value.TextXAlignment = .TextXAlignment.Right
Value.Parent = Frame
SliderBg = .()
SliderBg.Size = .(, -, , )
SliderBg.Position = .(, , , )
SliderBg.BackgroundColor3 = .(, , )
SliderBg.BorderSizePixel =
SliderBg.Parent = Frame
BgCorner = .()
BgCorner.CornerRadius = .(, )
BgCorner.Parent = SliderBg
Fill = .()
Fill.Size = .((default - min) / (max - min), , , )
Fill.BackgroundColor3 = Accent
Fill.BorderSizePixel =
Fill.Parent = SliderBg
FillCorner = .()
FillCorner.CornerRadius = .(, )
FillCorner.Parent = Fill
currentValue = default
dragging =
SliderBtn = .()
SliderBtn.Size = .(, , , )
SliderBtn.Position = .(, , , )
SliderBtn.BackgroundTransparency =
SliderBtn.Text =
SliderBtn.Parent = Frame
(inputPos)
pct = .((inputPos - SliderBg.AbsolutePosition.X) / SliderBg.AbsoluteSize.X, , )
currentValue = .((min + (max - min) * pct) * ) /
Fill.Size = .(pct, , , )
Value.Text = (currentValue)
(currentValue)
SliderBtn.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
(input.Position.X)
)
SliderBtn.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
Connections[ .. label] = UserInputService.InputChanged:((input)
dragging State.Running (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input.Position.X)
)
Frame
activeDropdown =
activeDropdownBtn =
(frame, x, y)
frame frame.Parent
absPos = frame.AbsolutePosition
absSize = frame.AbsoluteSize
x >= absPos.X x <= absPos.X + absSize.X y >= absPos.Y y <= absPos.Y + absSize.Y
()
activeDropdown
activeDropdown.Visible =
activeDropdown =
activeDropdownBtn =
Connections[] = UserInputService.InputBegan:((input)
activeDropdown
input.UserInputType ~= .UserInputType.MouseButton1 input.UserInputType ~= .UserInputType.Touch
x, y = input.Position.X, input.Position.Y
(activeDropdown, x, y)
activeDropdownBtn (activeDropdownBtn, x, y)
()
)
(parent, pos, size, label, options, configTable, configKey)
Frame = .()
Frame.Size = size
Frame.Position = pos
Frame.BackgroundColor3 = GlassCard
Frame.BackgroundTransparency =
Frame.BorderSizePixel =
Frame.Parent = parent
Corner = .()
Corner.CornerRadius = .(, )
Corner.Parent = Frame
Label = .()
Label.Size = .(, , , )
Label.Position = .(, , , )
Label.BackgroundTransparency =
Label.Text = label
Label.TextSize =
Label.Font = .Font.GothamMedium
Label.TextColor3 = TextPrimary
Label.TextXAlignment = .TextXAlignment.Left
Label.Parent = Frame
()
selected = {}
opt, enabled (configTable[configKey])
enabled
.(selected, opt)
#selected ==
#selected == selected[]
configTable[configKey][]
#selected ..
DropBtn = .()
DropBtn.Size = .(, -, , )
DropBtn.Position = .(, , , -)
DropBtn.BackgroundColor3 = .(, , )
DropBtn.BorderSizePixel =
DropBtn.Text = ()
DropBtn.TextSize =
DropBtn.Font = .Font.GothamMedium
DropBtn.TextColor3 = TextPrimary
DropBtn.TextTruncate = .TextTruncate.AtEnd
DropBtn.Parent = Frame
DropBtnCorner = .()
DropBtnCorner.CornerRadius = .(, )
DropBtnCorner.Parent = DropBtn
DropFrame = .()
DropFrame.Size = .(, , , .(#options * , ))
DropFrame.BackgroundColor3 = .(, , )
DropFrame.BorderSizePixel =
DropFrame.Visible =
DropFrame.ZIndex =
DropFrame.ClipsDescendants =
DropFrame.Parent = ScreenGui
DropCorner = .()
DropCorner.CornerRadius = .(, )
DropCorner.Parent = DropFrame
DropScroll = .()
DropScroll.Size = .(, -, , -)
DropScroll.Position = .(, , , )
DropScroll.BackgroundTransparency =
DropScroll.ScrollBarThickness =
DropScroll.ScrollBarImageColor3 = Accent
DropScroll.BorderSizePixel =
DropScroll.CanvasSize = .(, , , #options * )
DropScroll.ZIndex =
DropScroll.Parent = DropFrame
DropLayout = .()
DropLayout.SortOrder = .SortOrder.LayoutOrder
DropLayout.Padding = .(, )
DropLayout.Parent = DropScroll
optionButtons = {}
()
opt, btn (optionButtons)
isSelected = configTable[configKey][opt] ==
btn.check.Text = isSelected
btn.check.TextColor3 = isSelected Accent TextSecondary
btn.label.TextColor3 = isSelected TextPrimary TextSecondary
DropBtn.Text = ()
i, opt (options)
OptBtn = .()
OptBtn.Size = .(, -, , )
OptBtn.BackgroundColor3 = .(, , )
OptBtn.BackgroundTransparency =
OptBtn.BorderSizePixel =
OptBtn.Text =
OptBtn.LayoutOrder = i
OptBtn.ZIndex =
OptBtn.Parent = DropScroll
OptCorner = .()
OptCorner.CornerRadius = .(, )
OptCorner.Parent = OptBtn
CheckLabel = .()
CheckLabel.Size = .(, , , )
CheckLabel.Position = .(, , , )
CheckLabel.BackgroundTransparency =
CheckLabel.Text = configTable[configKey][opt]
CheckLabel.TextSize =
CheckLabel.Font = .Font.GothamBold
CheckLabel.TextColor3 = configTable[configKey][opt] Accent TextSecondary
CheckLabel.ZIndex =
CheckLabel.Parent = OptBtn
OptLabel = .()
OptLabel.Size = .(, -, , )
OptLabel.Position = .(, , , )
OptLabel.BackgroundTransparency =
OptLabel.Text = opt
OptLabel.TextSize =
OptLabel.Font = .Font.GothamMedium
OptLabel.TextColor3 = configTable[configKey][opt] TextPrimary TextSecondary
OptLabel.TextXAlignment = .TextXAlignment.Left
OptLabel.ZIndex =
OptLabel.Parent = OptBtn
optionButtons[opt] = {btn = OptBtn, check = CheckLabel, label = OptLabel}
OptBtn.MouseEnter:(()
OptBtn.BackgroundTransparency =
)
OptBtn.MouseLeave:(()
OptBtn.BackgroundTransparency =
)
OptBtn.MouseButton1Click:(()
opt ==
k (configTable[configKey])
configTable[configKey][k] =
configTable[configKey][] =
configTable[configKey][] =
configTable[configKey][opt]
configTable[configKey][opt] =
configTable[configKey][opt] =
hasAny =
k, v (configTable[configKey])
v hasAny =
hasAny
configTable[configKey][] =
()
)
DropBtn.MouseButton1Click:(()
activeDropdown activeDropdown ~= DropFrame
activeDropdown.Visible =
DropFrame.Visible
DropFrame.Visible =
activeDropdown =
activeDropdownBtn =
absPos = DropBtn.AbsolutePosition
absSize = DropBtn.AbsoluteSize
DropFrame.Position = .(, absPos.X, , absPos.Y + absSize.Y + )
DropFrame.Visible =
activeDropdown = DropFrame
activeDropdownBtn = DropBtn
)
Frame
(FarmingPanel, .(, , , ), .(, -, , ), , , (v)
Config.AutoCollect = v
v () ()
)
(FarmingPanel, .(, , , ), .(, -, , ), , , (v)
Config.AutoBuyPacks = v
v () ()
)
(FarmingPanel, .(, , , ), .(, -, , ), , , , , (v)
Config.CollectInterval = v
)
(FarmingPanel, .(, , , ), .(, -, , ), , , , , (v)
Config.BuyDelay = v
)
(FarmingPanel, .(, , , ), .(, -, , ), , , (v)
Config.AutoOpenPacks = v
v () ()
)
(FarmingPanel, .(, , , ), .(, -, , ), , (), Config, )
StatsRow = .()
StatsRow.Size = .(, , , )
StatsRow.Position = .(, , , )
StatsRow.BackgroundColor3 = GlassCard
StatsRow.BackgroundTransparency =
StatsRow.BorderSizePixel =
StatsRow.Parent = FarmingPanel
StatsCorner = .()
StatsCorner.CornerRadius = .(, )
StatsCorner.Parent = StatsRow
CollectedLabel = .()
CollectedLabel.Size = .(, , , )
CollectedLabel.Position = .(, , , )
CollectedLabel.BackgroundTransparency =
CollectedLabel.Text =
CollectedLabel.TextSize =
CollectedLabel.Font = .Font.GothamMedium
CollectedLabel.TextColor3 = TextPrimary
CollectedLabel.TextXAlignment = .TextXAlignment.Left
CollectedLabel.Parent = StatsRow
BoughtLabel = .()
BoughtLabel.Size = .(, , , )
BoughtLabel.Position = .(, , , )
BoughtLabel.BackgroundTransparency =
BoughtLabel.Text =
BoughtLabel.TextSize =
BoughtLabel.Font = .Font.GothamMedium
BoughtLabel.TextColor3 = TextPrimary
BoughtLabel.TextXAlignment = .TextXAlignment.Center
BoughtLabel.Parent = StatsRow
OpenedLabel = .()
OpenedLabel.Size = .(, , , )
OpenedLabel.Position = .(, , , )
OpenedLabel.BackgroundTransparency =
OpenedLabel.Text =
OpenedLabel.TextSize =
OpenedLabel.Font = .Font.GothamMedium
OpenedLabel.TextColor3 = TextPrimary
OpenedLabel.TextXAlignment = .TextXAlignment.Right
OpenedLabel.Parent = StatsRow
Threads[] = .(()
State.Running CollectedLabel CollectedLabel.Parent
(()
CollectedLabel.Text = .. (Stats.MoneyCollected)
BoughtLabel.Text = .. (Stats.PacksBought)
OpenedLabel.Text = .. (Stats.PacksOpened)
)
.()
)
(parent, pos, size, text, callback)
Btn = .()
Btn.Size = size
Btn.Position = pos
Btn.BackgroundColor3 = GlassCard
Btn.BackgroundTransparency =
Btn.BorderSizePixel =
Btn.Text = text
Btn.TextSize =
Btn.Font = .Font.GothamMedium
Btn.TextColor3 = TextPrimary
Btn.Parent = parent
Corner = .()
Corner.CornerRadius = .(, )
Corner.Parent = Btn
Btn.MouseEnter:(()
TweenService:(Btn, TweenInfo.(), {BackgroundTransparency = }):()
)
Btn.MouseLeave:(()
TweenService:(Btn, TweenInfo.(), {BackgroundTransparency = }):()
)
Btn.MouseButton1Click:(callback)
Btn
(ActionsPanel, .(, , , ), .(, -, , ), , ()
.(() () )
)
(ActionsPanel, .(, , , ), .(, -, , ), , ()
.(BuyPack)
)
(ActionsPanel, .(, , , ), .(, -, , ), , ()
.(OpenReadyPacks)
)
(ActionsPanel, .(, , , ), .(, -, , ), , ()
CachedSlots = {}
LastSlotCache =
()
)
InfoRow = .()
InfoRow.Size = .(, , , )
InfoRow.Position = .(, , , )
InfoRow.BackgroundColor3 = GlassCard
InfoRow.BackgroundTransparency =
InfoRow.BorderSizePixel =
InfoRow.Parent = ActionsPanel
InfoCorner = .()
InfoCorner.CornerRadius = .(, )
InfoCorner.Parent = InfoRow
SlotsLabel = .()
SlotsLabel.Size = .(, , , )
SlotsLabel.Position = .(, , , )
SlotsLabel.BackgroundTransparency =
SlotsLabel.Text =
SlotsLabel.TextSize =
SlotsLabel.Font = .Font.GothamMedium
SlotsLabel.TextColor3 = TextPrimary
SlotsLabel.TextXAlignment = .TextXAlignment.Left
SlotsLabel.Parent = InfoRow
PlotLabel = .()
PlotLabel.Size = .(, -, , )
PlotLabel.Position = .(, , , )
PlotLabel.BackgroundTransparency =
PlotLabel.Text =
PlotLabel.TextSize =
PlotLabel.Font = .Font.GothamMedium
PlotLabel.TextColor3 = TextPrimary
PlotLabel.TextXAlignment = .TextXAlignment.Right
PlotLabel.Parent = InfoRow
Threads[] = .(()
State.Running SlotsLabel SlotsLabel.Parent
(()
plot = ()
slots = ()
SlotsLabel.Text = .. #slots
PlotLabel.Text = .. (plot plot.Name )
)
.()
)
dragging =
dragStart, startPos
(input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = MainContainer.Position
(input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
TopBar.InputBegan:(StartDrag)
TopBar.InputEnded:(StopDrag)
MainContainer.InputBegan:(StartDrag)
MainContainer.InputEnded:(StopDrag)
Connections[] = UserInputService.InputChanged:((input)
dragging State.Running (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
delta = input.Position - dragStart
MainContainer.Position = .(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
)
isMobile
MobileToggle = .()
MobileToggle.Name =
MobileToggle.Size = .(, , , )
MobileToggle.Position = .(, -, , )
MobileToggle.BackgroundColor3 = GlassBg
MobileToggle.BackgroundTransparency =
MobileToggle.BorderSizePixel =
MobileToggle.Text =
MobileToggle.TextSize =
MobileToggle.Font = .Font.GothamBold
MobileToggle.TextColor3 = TextPrimary
MobileToggle.Parent = ScreenGui
MobileCorner = .()
MobileCorner.CornerRadius = .(, )
MobileCorner.Parent = MobileToggle
MobileStroke = .()
MobileStroke.Color = Accent
MobileStroke.Thickness =
MobileStroke.Parent = MobileToggle
visible =
mobileDragging =
mobileDragStart, mobileStartPos
MobileToggle.MouseButton1Click:(()
mobileDragging
visible = visible
MainContainer.Visible = visible
)
MobileToggle.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
mobileDragging =
mobileDragStart = input.Position
mobileStartPos = MobileToggle.Position
)
MobileToggle.InputChanged:((input)
input.UserInputType == .UserInputType.Touch
delta = input.Position - mobileDragStart
delta.Magnitude >
mobileDragging =
screenSize = ScreenGui.AbsoluteSize
btnSize = MobileToggle.AbsoluteSize
newX = .(mobileStartPos.X.Offset + delta.X, , screenSize.X - btnSize.X - )
newY = .(mobileStartPos.Y.Offset + delta.Y, , screenSize.Y - btnSize.Y - )
MobileToggle.Position = .(, newX, , newY)
)
MobileToggle.InputEnded:((input)
input.UserInputType == .UserInputType.Touch
.()
mobileDragging =
)
()
()
().CardCollectionFarm = {
Config = Config,
State = State,
Stats = Stats,
Unload = Unload,
CollectMoney = CollectMoney,
BuyPack = BuyPack,
OpenReadyPacks = OpenReadyPacks,
GetPlayerPlot = GetPlayerPlot,
GetAllSlots = GetAllSlots,
RefreshSlots = ()
CachedSlots = {}
LastSlotCache =
()
,
}
Tested on Ios Delta, Pot a ssium and xeno on windows. Open source You gotta stand a little closer to your wall to allow it to hit all slots. Open source do as you please with this. Features: Auto Collect (collects money from all cards on wall did not add pagination for this demo) Auto Buy (Filter by pack type (All types) Intelligently tracks your balance to only buy what you can afford Auto Open packs Mobile touch targets & sizing + gui open/close button