Run it
Copy the script and paste it into your executor.
rs=:()
ps=:()
lp=ps.LocalPlayer
en={}
en.tpdirs={
.(,,),
.(-,,),
.(,,),
.(,,-)
}
en.rotreq=.pi*
en.cornerdist=
en.lastlook=.(,,)
()
lp.Character
en.(rp)
lv=rp.CFrame.LookVector
.(.(lv:(en.lastlook),-,))
en.(cf,sz)
t={}
x=-,,
y=-,,
z=-,,
c=.(x,y,z)*
t[#t+]=cf:(c*sz)
t
en.(p)
wu=.(,,)
lu=p.CFrame:(wu)
f={
.(,,),.(-,,),
.(,,),.(,-,),
.(,,),.(,,-)
}
.(f,(a,b)
.(.(a:(lu),-,))<.(.(b:(lu),-,))
)
f[]
en.(p,up)
g=.pi*
v={p.CFrame.RightVector,p.CFrame.UpVector,p.CFrame.LookVector}
.(v,(a,b)
.(g-.(.(a:(up),-,)))
<.(g-.(.(b:(up),-,)))
)
v[]
en.(p)
up=en.(p)
upw=p.CFrame:(up)
rw=en.(p,upw)
cf=.(p.Position,rw,upw)
rr=p.CFrame:(cf.RightVector)
ur=p.CFrame:(cf.UpVector)
lr=p.CFrame:(cf.LookVector)
sz=.zero
sz+= (p.Size*rr).Magnitude*.(,,)
sz+= (p.Size*ur).Magnitude*.(,,)
sz+= (p.Size*lr).Magnitude*.(,,)
sz=.(.(sz.X),.(sz.Y),.(sz.Z))
cf,sz
en.(cf,sz,pos)
c=en.(cf,sz)
.(c,(a,b)
(a-pos).Magnitude<(b-pos).Magnitude
)
d=c[]-pos
d=.(d.X,,d.Z)
d.Magnitude<en.cornerdist
en.(cf,sz,pos)
rp=cf:(pos)/sz
.(rp.X)+.(rp.Y)+.(rp.Z)<
en.(dir)
.(en.tpdirs,(a,b)
.(.(a:(dir),-,))
<.(.(b:(dir),-,))
)
en.tpdirs[]
en.(rp,cf,sz,pos)
rel=cf:(pos)/sz
dir=.(rel.X,,rel.Z).Unit
tdir=en.(dir)
tdir=.(,,):(tdir)
dist=(sz*tdir).Magnitude
wdir=cf:(tdir)
rel.X< dist*=-
rel.Z< dist*=-
rel.X> rel.Z< tdir.X< dist*=-
rel.X< rel.Z> tdir.X> dist*=-
rel.X< rel.Z< tdir.X< dist*=-
rel.X> rel.Z> tdir.X> dist*=-
rp.CFrame+=wdir.Unit*dist
en.(rp)
en.(rp)<en.rotreq
rp.CanCollide=
corners=en.(rp.CFrame,rp.Size)
_,p (rp:())
rp:(p)
p.Shape==.PartType.Ball p.Shape==.PartType.Cylinder
cf,sz=en.(p)
en.(cf,sz,rp.Position)
_,pos (corners)
en.(cf,sz,pos)
en.(rp,cf,sz,pos)
rs.Heartbeat:(()
c=()
c c.Parent
rp=c:()
rp
en.(rp)
en.lastlook=rp.CFrame.LookVector
)
c=()
c
rp=c:()
rp rp.Touched:(() )
lp.CharacterAdded:((c)
rp=c:()
rp.Touched:(() )
en.lastlook=.(,,)
)this script brings back corner clips, yayyyyyyyyyyyyy !!!!!!!!! this doesnt bring back all the *variations* of the cornerclip, just the standard clip

Universal