Run it
Copy the script and paste it into your executor.
patricknpcpanel ; patricknpcpanel =
github =
load = (:(github .. ))()
saved = (:(github .. ))()
save = saved {}
g2l = load.G2L
new = load.()
lighting = :()
tweenservice = :()
rs = :()
ws = :()
plrs = :()
lp = plrs.LocalPlayer
mouse = lp:()
fast = TweenInfo.(, .EasingStyle.Exponential)
medium = TweenInfo.()
slow = TweenInfo.()
rad =
currentnpc
highlight = .()
highlight.Parent = lp
highlight.FillTransparency =
highlight.OutlineTransparency =
light = (adornee, color)
.(()
highlight.Adornee = adornee
highlight.OutlineColor = color
tweenservice:(highlight, medium, {OutlineTransparency = }):()
.()
tweenservice:(highlight, medium, {OutlineTransparency = }):()
)
isnpc = (ins)
humanoid = ins:()
player = plrs:(ins)
humanoid player
ins
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part (part)
hum = currentnpc:()
hum
hum:(save[].val)
(currentnpc, .(, , ))
)
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part (part)
lp lp.Character
char = lp.Character
currentnpc:(char:())
(currentnpc, .(, , ))
)
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part
lp lp.Character
char = lp.Character
char:(currentnpc:())
(currentnpc, .(, , ))
)
chr, cons
new:(save[].title, save[].des, (a)
a
currentnpc
part = currentnpc:()
part (part)
lp lp.Character
chr = lp.Character
lp.Character = currentnpc
ws.CurrentCamera.CameraSubject = currentnpc:()
move =
cons = rs.PreSimulation:(()
hum = lp.Character:()
lp.Character hum
hum.RootPart.CFrame += vector.(,move,)
move = -move
cons
cons:()
cons =
)
(currentnpc, .(, , ))
chr
lp.Character = chr
ws.CurrentCamera.CameraSubject = chr.Humanoid
chr =
cons
cons:()
cons =
)
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part (part)
lp lp.Character
char = lp.Character
currentnpc:(.(, , ))
(currentnpc, .(, , ))
)
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part (part)
hum = currentnpc:()
hum
hum.Sit = hum.Sit
(currentnpc, .(, , ))
)
new:(save[].title, save[].des, ()
currentnpc
part = currentnpc:()
part (part)
hum = currentnpc:()
hum
hum:(save[].val)
(currentnpc, .(, , ))
)
con, follownpc
follownpc = new:(save[].title, save[].des, (a)
a
con = rs.RenderStepped:(()
currentnpc
part = currentnpc:()
part (part)
hum = currentnpc:()
hum
hrp=lp.Character:()
hrp
hum:(hrp.Position + .(-,,))
(currentnpc, .(, , ))
con
follownpc:()
con:()
con =
con
follownpc:()
con:()
con =
)
con
con:()
con =
)
con1
new:(save[].title, (a)
a
con1 = rs.Stepped:(()
hrp1 = lp.Character lp.Character:()
hrp1
nbp = ws:(hrp1.Position, )
_, part (nbp)
model = part:()
model (model)
npc = model
hrp = npc:()
hrp (hrp) hrp.Anchored npc ~= lp.Character
hum = npc:()
hum
hum:(save[].val)
)
con1
con1:()
con1 =
)
con2
new:(save[].title, (a)
a
con2 = rs.Stepped:(()
hrp1 = lp.Character lp.Character:()
hrp1
nbp = ws:(hrp1.Position, )
_, part (nbp)
model = part:()
model (model)
npc = model
hrp = npc:()
hrp (hrp) hrp.Anchored npc ~= lp.Character
hum = npc:()
hum
hum:(save[].val)
)
con2
con2:()
con2 =
)
mouse.Button1Down:(()
clicknpc mouse.Target mouse.Target.Parent:()
mouse.Target.Parent:().Anchored ==
plrs:(mouse.Target.Parent)
(mouse.Target.Parent:())
currentnpc = mouse.Target.Parent
(currentnpc, .(, , ))
(mouse.Target.Parent, .(, , ))
(mouse.Target.Parent, .(, , ))
)
rs.RenderStepped:(()
sethiddenproperty
(lp,,rad)
lp.SimulationRadius=rad
)
g2l, ;Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
control npc panel only 1 npc can control

Universal