Run it
Copy the script and paste it into your executor.
UI_SCALE =
Players = :()
ReplicatedStorage = :()
UserInputService = :()
RunService = :()
CoreGui = :()
TOGGLE_KEY = .KeyCode.K
UNLOAD_KEY = .KeyCode.M
INVOKE_COOLDOWN =
STEP_DELAY =
IDLE_RECHECK =
CONFIRM_TIME =
CONFIRM_MATCHES =
CONFIRM_SAMPLE_DELAY =
DEBUG_DEFAULT =
MAX_LOG_LINES =
SINGLETON_KEY =
env = ( ())
env[SINGLETON_KEY] (env[SINGLETON_KEY]) ==
(env[SINGLETON_KEY])
state = {
enabled = ,
loopToken = ,
conns = {},
gui = ,
manualPos = ,
debug = DEBUG_DEFAULT,
}
(sig, fn)
c = sig:(fn)
.(state.conns, c)
c
()
state.enabled =
state.loopToken +=
_, c (state.conns)
(() c:() )
state.conns = {}
state.gui
(() state.gui:() )
env[SINGLETON_KEY] =
()
env[SINGLETON_KEY] = cleanup
player = Players.LocalPlayer
main = player:():()
unitEnchantFrame = main:():()
unitInventory = main:()
inventoryFrame = unitInventory:():()
unitScroll = inventoryFrame:()
itemsScroll = inventoryFrame:()
darkAuraLabel =
itemsScroll:()
:()
enchantRemote = ReplicatedStorage:()
(s)
(s ):():(, ):(, )
(text)
out = {}
text = (text )
text = text:(, )
text = text:(, )
line text:()
v = line:(, ):(, )
v ~= .(out, v)
out
(txt)
txt = (txt ):(, )
n = txt:() txt:()
(n)
()
(darkAuraLabel.Text)
(txt)
txt
t = (txt):(, ):(, )
t ==
t ==
t
(current, list)
cur = (current)
_, v (list {})
cur == (v) , v
,
(a, b)
out = {}
_, v (a {}) .(out, v)
_, v (b {}) .(out, v)
out
(unitContainer)
_, d (unitContainer:())
d.Name == d:()
d
(unitName)
unitContainer = unitScroll:(unitName)
unitContainer
,
lbl = (unitContainer)
lbl
,
(lbl.Text),
(unitName, acceptedTargets)
matches =
t0 = .()
.() - t0 < CONFIRM_TIME
cur, status = (unitName)
status ==
,
cur
ok = (cur, acceptedTargets)
ok
matches +=
matches >= CONFIRM_MATCHES
, cur
.(CONFIRM_SAMPLE_DELAY)
,
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
gui.Parent = player:() CoreGui
state.gui = gui
panel = .()
panel.Size = .(, )
panel.BackgroundColor3 = .(,,)
panel.BorderSizePixel =
panel.Active =
panel.Parent = gui
.(, panel).CornerRadius = .(, )
scaler = .()
scaler.Name =
scaler.Scale = UI_SCALE
scaler.Parent = panel
border = .(, panel)
border.Thickness =
border.Color = .(, , )
title = .()
title.BackgroundTransparency =
title.Size = .(, -, , )
title.Position = .(, )
title.Font = .Font.GothamMedium
title.TextSize =
title.TextColor3 = .(,,)
title.Text =
title.TextXAlignment = .TextXAlignment.Center
title.Parent = panel
(y, h, placeholder)
tb = .()
tb.Size = .(, -, , h)
tb.Position = .(, y)
tb.BackgroundColor3 = .(,,)
tb.TextColor3 = .(,,)
tb.PlaceholderColor3 = .(,,)
tb.PlaceholderText = placeholder
tb.ClearTextOnFocus =
tb.Font = .Font.Gotham
tb.TextSize =
tb.TextWrapped =
tb.Text =
tb.Parent = panel
.(, tb).CornerRadius = .(, )
tb
unitsBox = (, , )
unitsBox.Text =
leftBox = .()
leftBox.Size = .(, -, , )
leftBox.Position = .(, )
leftBox.BackgroundColor3 = .(,,)
leftBox.TextColor3 = .(,,)
leftBox.PlaceholderText =
leftBox.ClearTextOnFocus =
leftBox.Font = .Font.Gotham
leftBox.TextSize =
leftBox.Text =
leftBox.Parent = panel
.(, leftBox).CornerRadius = .(, )
backupBox = .()
backupBox.Size = .(, -, , )
backupBox.Position = .( + (panel.Size.X.Offset/), )
backupBox.BackgroundColor3 = .(,,)
backupBox.TextColor3 = .(,,)
backupBox.PlaceholderText =
backupBox.ClearTextOnFocus =
backupBox.Font = .Font.Gotham
backupBox.TextSize =
backupBox.Text =
backupBox.Parent = panel
.(, backupBox).CornerRadius = .(, )
mainEnchantsBox = (, , )
mainEnchantsBox.Text =
toggleBtn = .()
toggleBtn.Size = .(, -, , )
toggleBtn.Position = .(, )
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.TextColor3 = .(,,)
toggleBtn.Font = .Font.GothamBlack
toggleBtn.TextSize =
toggleBtn.Text =
toggleBtn.Parent = panel
.(, toggleBtn).CornerRadius = .(, )
logBox = .()
logBox.Size = .(, -, , )
logBox.Position = .(, )
logBox.BackgroundColor3 = .(,,)
logBox.TextColor3 = .(,,)
logBox.Font = .Font.Code
logBox.TextSize =
logBox.TextXAlignment = .TextXAlignment.Left
logBox.TextYAlignment = .TextYAlignment.Top
logBox.ClearTextOnFocus =
logBox.TextEditable =
logBox.MultiLine =
logBox.Text =
logBox.Parent = panel
.(, logBox).CornerRadius = .(, )
logPad = .(, logBox)
logPad.PaddingLeft = .(, )
logPad.PaddingTop = .(, )
logPad.PaddingRight = .(, )
logPad.PaddingBottom = .(, )
logLines = {}
(msg)
line = ():(.(), (msg))
.(logLines, line)
#logLines > MAX_LOG_LINES
.(logLines, )
logBox.Text = .(logLines, )
logBox.CursorPosition = #logBox.Text +
(, msg)
(on)
state.enabled = on
on
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.Text =
dragging =
dragStart, startPos
(panel.InputBegan, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
state.manualPos =
dragStart = input.Position
startPos = panel.Position
)
(UserInputService.InputChanged, (input)
dragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
delta = input.Position - dragStart
panel.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
)
(UserInputService.InputEnded, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
(RunService.RenderStepped, ()
panel.Visible = unitEnchantFrame.Visible
panel.Visible
state.manualPos
p, s = unitEnchantFrame.AbsolutePosition, unitEnchantFrame.AbsoluteSize
panel.Position = .(p.X - , p.Y + s.Y + )
)
()
n = (leftBox.Text)
n
n < n =
n
()
units = (unitsBox.Text)
mainTargets = (mainEnchantsBox.Text)
backups = (backupBox.Text)
units, mainTargets, backups
(aura, stopAmt, mainTargets, backups)
aura < stopAmt
(mainTargets, backups),
mainTargets,
(units, acceptedTargets)
_, u (units)
cur, status = (u)
status ==
ok =
cur ok = (cur, acceptedTargets)
ok
()
state.loopToken +=
myToken = state.loopToken
.(()
()
state.enabled state.loopToken == myToken
unitEnchantFrame.Visible
()
.(IDLE_RECHECK)
units, mainTargets, backups = ()
#units ==
()
.(IDLE_RECHECK)
#mainTargets == #backups ==
()
.(IDLE_RECHECK)
aura = ()
stopAmt = ()
aura <=
(():(aura))
.(IDLE_RECHECK)
acceptedTargets, mode = (aura, stopAmt, mainTargets, backups)
(():(mode, aura, stopAmt, #units))
(units, acceptedTargets)
()
.(IDLE_RECHECK)
_, unitName (units)
(state.enabled state.loopToken == myToken)
cur, status = (unitName)
status ==
(():(unitName))
.(STEP_DELAY)
cur
ok = (cur, acceptedTargets)
ok
(():(unitName, cur))
.(STEP_DELAY)
(():(unitName, cur))
(():(unitName))
ok, res = (()
enchantRemote:(unitName)
)
ok
(():(unitName, (res)))
.()
.(INVOKE_COOLDOWN)
after, _ = (unitName)
after
hit = (after, acceptedTargets)
hit
(():(unitName, after))
confirmed, final = (unitName, acceptedTargets)
confirmed
(():(unitName, final))
(():(unitName))
(():(unitName, after))
(():(unitName))
.(STEP_DELAY)
()
)
(toggleBtn.MouseButton1Click, ()
( state.enabled)
state.enabled
()
()
)
(UserInputService.InputBegan, (input, gp)
gp
input.KeyCode == TOGGLE_KEY
( state.enabled)
state.enabled
()
()
input.KeyCode == UNLOAD_KEY
()
)
()
()
Auto enchant units. (Must have unit in inventory & not placed down, also keep inventory open.) Generated by ChatGPT 5.2