Run it
Copy the script and paste it into your executor.
.PV_CLEANUP (.PV_CLEANUP)
rep = :()
World = :()
rs = :()
input = :()
plrs = :()
TS = :()
= :()
knit = (rep.Packages.Knit)
.() knit.Player
Pitch = knit.()
saveFile =
col = { zone = .(, , ), ball = .(, , ) }
()
ok, parsed = (()
readfile isfile (saveFile)
:((saveFile))
)
ok parsed
parsed.zone col.zone = .(parsed.zone[], parsed.zone[], parsed.zone[])
parsed.ball col.ball = .(parsed.ball[], parsed.ball[], parsed.ball[])
()
(()
writefile
(saveFile, :({
zone = { .(col.zone.R*), .(col.zone.G*), .(col.zone.B*) },
ball = { .(col.ball.R*), .(col.ball.G*), .(col.ball.B*) },
}))
)
()
stale = World:()
stale stale:()
bin = .()
bin.Name =
bin.Parent = World
sz = World.Repository.Strikezone.Strikezone
opt = { zoneOn = , dotOn = , callOn = }
keys = { zone = .KeyCode.Z, dot = .KeyCode.X, call = .KeyCode.C, menu = .KeyCode.RightShift }
hooks = {}
(c) hooks[#hooks+] = c c
()
part = .()
part.Anchored =
part.CanCollide =
part.Material = .Material.SmoothPlastic
part.Color = col.zone
part.Transparency =
part.Parent = bin
part
a, b, c2, d = (), (), (), ()
border = { a, b, c2, d }
thin =
(rs.RenderStepped:(()
opt.zoneOn
_, p (border) p.Transparency =
frame = sz.CFrame
hx = sz.Size.X /
hy = sz.Size.Y /
a.Size = .(sz.Size.X, thin, thin)
a.CFrame = frame * .(, hy, )
b.Size = .(sz.Size.X, thin, thin)
b.CFrame = frame * .(, -hy, )
c2.Size = .(thin, sz.Size.Y, thin)
c2.CFrame = frame * .(-hx, , )
d.Size = .(thin, sz.Size.Y, thin)
d.CFrame = frame * .(hx, , )
_, p (border)
p.Transparency =
p.Color = col.zone
))
marker = .()
marker.Anchored =
marker.CanCollide =
marker.Material = .Material.SmoothPlastic
marker.Color = col.ball
marker.Shape = .PartType.Ball
marker.Size = .(, , )
marker.Transparency =
marker.Parent = bin
(p0, p1, p2, t)
inv = - t
inv*inv*p0 + *inv*t*p1 + t*t*p2
pending =
realThrow
realThrow = (Pitch.ThrowPitch, (s, who, info, kind)
marker.Transparency =
info info[] info[] info[]
r, ctrl, fin = info[], info[], info[]
depth = sz.Position.Z
bestT, gap = , .huge
i = ,
t = i /
diff = .((r, ctrl, fin, t).Z - depth)
diff < gap gap = diff bestT = t
hit = (r, ctrl, fin, bestT)
opt.dotOn
marker.CFrame = .(hit)
marker.Color = col.ball
marker.Transparency =
opt.callOn
rel = sz.CFrame:(hit)
inZone = .(rel.X) <= sz.Size.X/ .(rel.Y) <= sz.Size.Y/
pending = inZone
(s, who, info, kind)
)
screen = .()
screen.Name =
screen.ResetOnSpawn =
screen.IgnoreGuiInset =
screen.ZIndexBehavior = .ZIndexBehavior.Sibling
(() screen.Parent = :() )
screen.Parent screen.Parent = plrs.LocalPlayer:()
callLabel = .()
callLabel.Size = .(, )
callLabel.Position = .(, -, , )
callLabel.BackgroundTransparency =
callLabel.Font = .Font.GothamBold
callLabel.TextSize =
callLabel.TextStrokeTransparency =
callLabel.TextStrokeColor3 = .(,,)
callLabel.Text =
callLabel.TextTransparency =
callLabel.Parent = screen
fadeStart =
(rs.RenderStepped:(()
pending
callLabel.Text = pending
callLabel.TextColor3 = pending == .(,,) .(,,)
callLabel.TextTransparency =
fadeStart = .()
pending =
fadeStart
e = .() - fadeStart
callLabel.TextTransparency = .(e / , , )
e >= fadeStart =
))
W =
panel = .()
panel.Size = .(W, )
panel.Position = .(, , , -)
panel.BackgroundColor3 = .(, , )
panel.BorderSizePixel =
panel.Parent = screen
rnd = .() rnd.CornerRadius = .(, ) rnd.Parent = panel
lineStroke = .()
lineStroke.Color = .(, , )
lineStroke.Thickness =
lineStroke.Transparency =
lineStroke.Parent = panel
sheen = .()
sheen.Rotation =
sheen.Color = ColorSequence.({
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
})
sheen.Parent = panel
clipper = .()
clipper.Size = .(, )
clipper.BackgroundTransparency =
clipper.ClipsDescendants =
clipper.Parent = panel
bar = .()
bar.Size = .(, , , )
bar.BackgroundColor3 = .(, , )
bar.BorderSizePixel =
bar.Parent = clipper
bc = .() bc.CornerRadius = .(, ) bc.Parent = bar
= .()
.Size = .(, )
.Position = .(, )
.BackgroundColor3 = .(, , )
.BorderSizePixel =
.Parent = bar
tkc = .() tkc.CornerRadius = .(, ) tkc.Parent =
heading = .()
heading.Size = .(, -, , )
heading.Position = .(, )
heading.BackgroundTransparency =
heading.Font = .Font.GothamMedium
heading.Text =
heading.TextColor3 = .(, , )
heading.TextSize =
heading.TextXAlignment = .TextXAlignment.Left
heading.Parent = bar
credit = .()
credit.Size = .(, -, , )
credit.Position = .(, )
credit.BackgroundTransparency =
credit.Parent = bar
clist = .()
clist.FillDirection = .FillDirection.Horizontal
clist.VerticalAlignment = .VerticalAlignment.Center
clist.SortOrder = .SortOrder.LayoutOrder
clist.Parent = credit
glyphs = {}
line =
idx = , #line
ch = line:(idx, idx)
w = ch ==
cell = .()
cell.Size = .(w, )
cell.BackgroundTransparency =
cell.LayoutOrder = idx
cell.Parent = credit
g = .()
g.Size = .(, )
g.BackgroundTransparency =
g.Font = .Font.GothamBold
g.Text = ch
g.TextSize =
g.TextColor3 = .(, , )
g.Parent = cell
glyphs[idx] = g
(rs.RenderStepped:(()
t = .()
idx, g (glyphs)
phase = t * - idx *
g.Position = .(, .(phase) * )
shade = (.(phase) + ) *
g.TextColor3 = .( + shade * , + shade * , + shade * )
))
killBtn = .()
killBtn.Size = .(, )
killBtn.Position = .(, -, , )
killBtn.BackgroundColor3 = .(, , )
killBtn.Text =
killBtn.Font = .Font.GothamBold
killBtn.TextColor3 = .(, , )
killBtn.TextSize =
killBtn.AutoButtonColor =
killBtn.Parent = bar
kbc = .() kbc.CornerRadius = .(, ) kbc.Parent = killBtn
fold = .()
fold.Size = .(, )
fold.Position = .(, -, , )
fold.BackgroundColor3 = .(, , )
fold.Text =
fold.Font = .Font.GothamBold
fold.TextColor3 = .(, , )
fold.TextSize =
fold.AutoButtonColor =
fold.Parent = bar
fcr = .() fcr.CornerRadius = .(, ) fcr.Parent = fold
content = .()
content.Name =
content.Size = .(, , , )
content.AutomaticSize = .AutomaticSize.Y
content.Position = .(, )
content.BackgroundTransparency =
content.Parent = clipper
inset = .()
inset.PaddingTop = .(, )
inset.PaddingBottom = .(, )
inset.PaddingLeft = .(, )
inset.PaddingRight = .(, )
inset.Parent = content
stack = .()
stack.Padding = .(, )
stack.SortOrder = .SortOrder.LayoutOrder
stack.Parent = content
rebinding =
openPicker =
shadeOf = {}
(p)
p.Visible =
shadeOf[p] shadeOf[p].Visible =
openPicker == p openPicker =
(apply)
shade = .()
shade.Size = .(, )
shade.Position = .(, )
shade.BackgroundTransparency =
shade.Text =
shade.AutoButtonColor =
shade.Visible =
shade.ZIndex =
shade.Parent = screen
pop = .()
pop.Size = .(, )
pop.BackgroundColor3 = .(, , )
pop.BorderSizePixel =
pop.Visible =
pop.ZIndex =
pop.Parent = screen
pcr = .() pcr.CornerRadius = .(, ) pcr.Parent = pop
pst = .() pst.Color = .(, , ) pst.Parent = pop
cols, rows = ,
cw, chh = ,
gp =
ry = , rows -
cx = , cols -
hue = cx / cols
val = - (ry / (rows - )) *
c = .(hue, , val)
btn = .()
btn.Size = .(cw, chh)
btn.Position = .(gp + cx*cw, gp + ry*chh)
btn.BackgroundColor3 = c
btn.Text =
btn.AutoButtonColor =
btn.BorderSizePixel =
btn.ZIndex =
btn.Parent = pop
(btn.MouseButton1Click:(() (c) () ))
gx = , cols -
v = gx / (cols - )
c = .(v*, v*, v*)
btn = .()
btn.Size = .(cw, chh)
btn.Position = .(gp + gx*cw, gp + rows*chh + )
btn.BackgroundColor3 = c
btn.Text =
btn.AutoButtonColor =
btn.BorderSizePixel =
btn.ZIndex =
btn.Parent = pop
(btn.MouseButton1Click:(() (c) () ))
(shade.MouseButton1Click:(() (pop) ))
pop, shade
(text, flag, bindId, k, colorKey)
r = .()
r.Size = .(, , , )
r.BackgroundColor3 = .(, , )
r.BorderSizePixel =
r.Parent = content
rc = .() rc.CornerRadius = .(, ) rc.Parent = r
rstroke = .() rstroke.Color = .(, , ) rstroke.Transparency = rstroke.Parent = r
cap = .()
cap.Size = .(, )
cap.Position = .(, )
cap.BackgroundTransparency =
cap.Font = .Font.Gotham
cap.Text = text
cap.TextColor3 = .(, , )
cap.TextSize =
cap.TextXAlignment = .TextXAlignment.Left
cap.Parent = r
colorKey
swatch = .()
swatch.Size = .(, )
swatch.Position = .(, )
swatch.BackgroundColor3 = col[colorKey]
swatch.Text =
swatch.AutoButtonColor =
swatch.Parent = r
swc = .() swc.CornerRadius = .(, ) swc.Parent = swatch
sws = .() sws.Color = .(, , ) sws.Parent = swatch
picker, pickerShade = ((c)
col[colorKey] = c
swatch.BackgroundColor3 = c
)
shadeOf[picker] = pickerShade
(swatch.MouseButton1Click:(()
openPicker openPicker ~= picker (openPicker)
picker.Visible = picker.Visible
pickerShade.Visible = picker.Visible
openPicker = picker.Visible picker
picker.Visible
picker.Position = .(panel.Position.X.Scale, panel.Position.X.Offset + W + , panel.Position.Y.Scale, panel.Position.Y.Offset + )
))
chip = .()
chip.Size = .(, )
chip.Position = .(, -, , -)
chip.BackgroundColor3 = .(, , )
chip.Font = .Font.GothamMedium
chip.Text = k.Name
chip.TextColor3 = .(, , )
chip.TextSize =
chip.AutoButtonColor =
chip.Parent = r
chc = .() chc.CornerRadius = .(, ) chc.Parent = chip
chs = .() chs.Color = .(, , ) chs.Parent = chip
toggle = .()
toggle.Size = .(, )
toggle.Position = .(, -, , -)
toggle.BackgroundColor3 = opt[flag] .(, , ) .(, , )
toggle.Text =
toggle.AutoButtonColor =
toggle.Parent = r
tc = .() tc.CornerRadius = .(, ) tc.Parent = toggle
pip = .()
pip.Size = .(, )
pip.Position = opt[flag] .(, -, , -) .(, , , -)
pip.BackgroundColor3 = .(, , )
pip.BorderSizePixel =
pip.Parent = toggle
pipc = .() pipc.CornerRadius = .(, ) pipc.Parent = pip
()
on = opt[flag]
TS:(toggle, TweenInfo.(, .EasingStyle.Quad), {
BackgroundColor3 = on .(, , ) .(, , )
}):()
TS:(pip, TweenInfo.(, .EasingStyle.Quad), {
Position = on .(, -, , -) .(, , , -)
}):()
(toggle.MouseButton1Click:(()
opt[flag] = opt[flag]
flag == opt.dotOn marker.Transparency =
flag == opt.callOn callLabel.TextTransparency = fadeStart = pending =
()
))
(chip.MouseButton1Click:(()
rebinding = { btn = chip, id = bindId }
chip.Text =
chip.TextColor3 = .(, , )
))
(r.MouseEnter:(()
TS:(rstroke, TweenInfo.(), {Transparency = }):()
))
(r.MouseLeave:(()
TS:(rstroke, TweenInfo.(), {Transparency = }):()
))
{ sync = sync, btn = chip }
zoneRow = (, , , keys.zone, )
dotRow = (, , , keys.dot, )
callRow = (, , , keys.call, )
folded =
(v)
folded = v
fold.Text = v
h = v ( + content.AbsoluteSize.Y)
TS:(panel, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {
Size = .(W, h)
}):()
.(()
panel.Size = .(W, + content.AbsoluteSize.Y)
)
(content:():(()
folded
panel.Size = .(W, + content.AbsoluteSize.Y)
))
(fold.MouseButton1Click:(() ( folded) ))
(fold.MouseEnter:(()
TS:(fold, TweenInfo.(), {BackgroundColor3 = .(, , )}):()
))
(fold.MouseLeave:(()
TS:(fold, TweenInfo.(), {BackgroundColor3 = .(, , )}):()
))
(killBtn.MouseEnter:(()
TS:(killBtn, TweenInfo.(), {BackgroundColor3 = .(, , )}):()
))
(killBtn.MouseLeave:(()
TS:(killBtn, TweenInfo.(), {BackgroundColor3 = .(, , )}):()
))
held, anchor, grab
(bar.InputBegan:((i)
i.UserInputType == .UserInputType.MouseButton1
held = anchor = panel.Position grab = i.Position
))
(input.InputChanged:((i)
held i.UserInputType == .UserInputType.MouseMovement
off = i.Position - grab
panel.Position = .(anchor.X.Scale, anchor.X.Offset + off.X, anchor.Y.Scale, anchor.Y.Offset + off.Y)
))
(input.InputEnded:((i)
i.UserInputType == .UserInputType.MouseButton1 held =
))
stowed =
(input.InputBegan:((i, typed)
i.UserInputType ~= .UserInputType.Keyboard
rebinding
keys[rebinding.id] = i.KeyCode
rebinding.btn.Text = i.KeyCode.Name
rebinding.btn.TextColor3 = .(, , )
rebinding =
typed
i.KeyCode == keys.zone
opt.zoneOn = opt.zoneOn
zoneRow.()
i.KeyCode == keys.dot
opt.dotOn = opt.dotOn
opt.dotOn marker.Transparency =
dotRow.()
i.KeyCode == keys.call
opt.callOn = opt.callOn
opt.callOn callLabel.TextTransparency = fadeStart = pending =
callRow.()
i.KeyCode == keys.menu
stowed = stowed
openPicker (openPicker)
TS:(panel, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {
Position = stowed .(, -W - , , -) .(, , , -)
}):()
))
()
(() realThrow (Pitch.ThrowPitch, realThrow) )
_, c (hooks) (() c:() )
(() bin:() )
(() screen:() )
.PV_CLEANUP =
.PV_CLEANUP = teardown
(killBtn.MouseButton1Click:(()
openPicker (openPicker)
TS:(panel, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.In), {
Position = .(, -W - , , -), BackgroundTransparency =
}):()
.(, teardown)
))
panel.BackgroundTransparency =
panel.Position = .(, , , -)
TS:(panel, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {
BackgroundTransparency = , Position = .(, , , -)
}):()Universal