Run it
Copy the script and paste it into your executor.
();
_clear=()
c={char;bag;gui;};
i=,#c
c=c[i]:();
i=,#c
(c[i].Name==name)
c[i].Parent=;
;
;
;
n=name..user.Name;
c=:();
i=,#c
(c[i].Name==n)
c[i].Parent=;
;
;
;
_valid_key=(object,key)
object[key],key;
;
_new=(class)
(props)
((list_base_props)==)
i,v ,list_base_props
(props[i]==)
props[i]=v;
;
;
;
object=class;
((class)==)
object=.(class:(,):()..class:());
;
parent=props[];
props[]=;
i,v ,props
load,res,key=(_valid_key,object,i:(,):()..i:());
( load)
load,res,key=(_valid_key,object,i);
;
(key)
t=(res);
s=(res);
(t== s==..key)
((v)==)
i=,#v
res:(v[i]);
;
res:(v);
;
object[key]=v;
;
;
;
(parent)
object.Parent=parent;
;
object;
;
;
_RGB=(r,g,b)
.(r/,g/,b/);
;
_copy=(o)
def=o.archivable;
o.archivable=;
c=o:();
o.archivable=def;
c;
;
_hum=(char)
hum=char:;
( hum hum.className~=)
c=char:();
i=,#c
(c[i].className==)
c[i];
;
;
hum;
;
;
_hum_tag=(hum)
c=hum: .(,hum);
c.Name=;
c.Value=user;
(hum.Health== hum:)
.(,hum).Name=;
bullets.clip=bullets.clip+;
;
;
_hum_dam=(hum,dam,percent)
hum.Health=hum.Health-(percent hum.MaxHealth*(dam*) dam);
(hum.Health<=hum.MaxHealth*)
(hum);
;
;
_ray=(v0,v1,i)
mag=(v0-v1).magnitude;
ray=Ray.(v0,(v1-v0).unit*(mag> mag));
((i)== .FindPartOnRayWithIgnoreList .FindPartOnRay)(,ray,i);
;
_must=(v0,v1,i)
hit,pos=(v0,v1,i);
hit mouse.target hit,pos;
;
_cframe=(x,y,z,r0,r1,r2)
.(
.(r0 ),
.(r1 ),
.(r2 )
)*.(x,y,z);
;
_update=()
(bool_active screen.Parent)
screen.Parent=gui;
( bool_active screen.Parent)
screen.Parent=;
;
;
_light=(v0,v1)
mag=(v0-v1).magnitude;
len=.(,);
len=len>mag/ mag/ len;
light=_new{
cFrame=.(v0,v1);
size=.(,,);
color=(,,);
anchored=;
inv;
};
_new{
scale=.(,,len);
offset=.(,,-len/);
light;
};
bb=_new{
size=.(,,,);
adornee=light;
light;
};
_new{
image=url:();
backgroundTransparency=;
size=.(,,,);
bb;
};
(light,);
;
_rem=(object,del)
(del)
(del,()
(object.Parent)
object.Parent=;
;
);
(()
(object.Parent)
object.Parent=;
;
);
;
;
_blood=(pos,count)
i=,count
p=_new{
rotVelocity=.(.(),.(),.())*;
position=pos+.(.(),.(),.());
velocity=.(.(),.(),.())*;
size=.(.(),.(),.())/;
color=(,,);
transparency=;
canCollide=;
bottomSurface=;
topSurface=;
formFactor=;
locked=;
inv;
};
(,()
p.Parent=;
);
;
;
_make_hue=()
h_hue=_new{
size=.(,,);
color=(,,);
formFactor=;
name=;
handle;
};
hh_weld=_new{
c1=(,,);
part0=handle;
part1=h_hue;
handle;
};
;
_shot=(v0,v1)
( time_left)
time_left=;
;
(time_left>())
;
time_left=()+.(,)/;
;
(bullets.current<)
tick_sound=head: _new{
soundId=;
name=;
volume=;
pitch=;
head;
};
tick_sound:();
(bullets.clip>)
time_left=()+;
h_hue:();
h_hue.CanCollide=;
h_hue.Velocity=(h_hue.CFrame*.(,,)).lookVector*;
(h_hue,);
(,()
();
got=(bullets.clip>bullets.maximum
bullets.maximum
bullets.clip)-bullets.current;
bullets.clip=bullets.clip-got;
bullets.current=bullets.current+got;
);
;
;
bullets.current=bullets.current-;
h_weld.C1=(,,,
-.(,)/,,);
d_weld.C1=(,-,);
lightstuff.Visible=;
(,()
lightstuff.Visible=;
);
(_new{
velocity=.(drag.Position,(drag.CFrame*.(-,-,)).p).lookVector*;
cFrame=drag.CFrame*.(-,,);
size=.(,,);
color=(,,);
material=;
canCollide=;
formFactor=;
inv;
},);
(,()
d_weld.C1=(,-,);
(bool_active)
h_weld.C1=h_weld_cf_active;
;
)
;
hit,pos=(v0,v1,char);
shot_sound:();
(v0,v1);
( hit) ;;
(hit.Parent.className==)
hit:();
hit.CanCollide=;
hit.Velocity=.(v0,pos).lookVector*.(,);
hit.RotVelocity=.(.(,),.(,),.(,));
hum=(hit.Parent);
( hum)
(hit.Anchored== hit.Size.magnitude<)
hit:();
hit.CanCollide=;
;
(hum,.(,));
(pos,.(,));
hit.RotVelocity=.(.(,),.(,),.(,))/;
(hit.Name==)
hum.Health=;
(pos,.(,));
(,()
(:){
pitch=.(,)*;
soundId=url:();
name=;
;
}:();
);
(hum);
(_new{
cFrame=.(v0,pos)*.(,,-(v0-pos).magnitude*);
size=.(,,(v0-pos).magnitude);
color=torso.Color;
transparency=;
canCollide=;
bottomSurface=;
anchored=;
formFactor=;
topSurface=;
inv;
},);
hit.Parent=;
b=,
a=,
i=,
(_new{
velocity=.(v0,pos).lookVector*;
cFrame=hit.CFrame*.(i,-b,a);
size=.(,,);
color=(,,);
bottomSurface=;
canCollide=;
transparency=;
formFactor=;
topSurface=;
hum;
},);
;
;
;
;
;
;
;
_cf_select=(mouse)
mouse.Icon=url:();
bool_active=;
arm=char:;
weld=torso:;
(arm weld)
h_weld.Part0=arm;
h_weld.C1=h_weld_cf_active;
weld.Part1=;
weld.Part0=;
weld=(torso:){
name=;
part0=torso;
part1=arm;
torso;
};
arml=(arml )+;
alv=arml;
gyro=torso: .(,torso);
gyro.maxTorque=.(,,);
gyro.P=;
gyro.D=;
gyro.Name=;
pos=mouse.hit.p;
val,valp,p0,p1,p2,hitpos,cj,c0,c1;
val=-.pi*;
valp=val*-;
p0=torso.CFrame;
p0=p0+((p0*.(valp,,)).lookVector*)+(p0*.(,val,)).lookVector;
p1=p0+((p0.p-pos).unit*-);
p2=.((p0.p+p1.p)/,p0.p)*.(val,val,);
hitpos=torso.Position;
cj=.(hitpos);
c0=torso.CFrame:()*cj;
c1=p2:()*cj;
weld.C0=c0;
weld.C1=c1;
gyro.cframe=.(torso.Position,.(pos.X,torso.Position.Y,pos.Z));
();
arml~=alv;
gyro.Parent=;
;
;
_cf_deselect=()
bool_active=;
arml=(arml )+;
loop_shot=(loop_shot )+;
h_weld.Part0=torso;
h_weld.C1=h_weld_cf_inactive;
weld=torso:;
(weld)
weld.Part1=;
weld.Part0=;
;
arm=char:;
weld=torso:;
(arm weld)
weld.Part0=torso;
weld.Part1=arm;
;
;
_cf_mouse=(event,fun)
mouse[event:(,):()..event:()]:((...)
(bool_active)
(...);
;
);
;
main=();
c=:();
check=(v)
(v.className~= v.className~= :(v.className))
main[v.className:(,):()..v.className:()]=v;
;
;
i=,#c
(check,c[i]);
;
;
bullets={
maximum=;
current=;
clip=*;
};
list_base_props={
backgroundColor3=(,,);
textColor3=(,,);
borderSizePixel=;
color=(,,);
archivable=;
canCollide=;
bottomSurface=;
topSurface=;
formFactor=;
locked=;
};
user=players.localPlayer;
mouse=user:();
char=user.Character;
gui=user.PlayerGui;
bag=user.Backpack;
torso=char.Torso;
head=char.Head;
hum=(char);
url=;
name=;
h_weld_cf_inactive=(,,,
,,-);
h_weld_cf_active=(,,,
-,,);
(hum,);
();
(,()
loop_shot=(loop_shot )+;
vers=loop_shot;
step=runService.Stepped;
((tube.CFrame*.(,,tube.Size.Z*)).p,mouse.hit.p);
step:();
vers~=loop_shot;
);
(,()
loop_shot=(loop_shot )+;
);
(,()
cross_f.Position=.(,mouse.X-,,mouse.Y-);
);
(,(k)
(k==)
(bullets.clip> time_left<=())
got=(bullets.clip>bullets.maximum
bullets.maximum
bullets.clip)-bullets.current;
bullets.clip=bullets.clip-got;
bullets.current=bullets.current+got;
(got~=)
time_left=()+;
;
;
;
);
screen=_new{
name=name;
};
cross_f=_new{
size=.(,,,);
backgroundTransparency=;
screen;
};
i=,
_new{
position=.(,*i,,);
size=.(,,,);
cross_f;
};
;
i=,
_new{
position=.(,,,*i);
size=.(,,,);
cross_f;
};
;
shot_sound=(head:){
soundId=url:();
pitch=;
head;
};
(shot_sound.Name~=)
shot_sound.Name=;
shot_sound:();
;
bin=_new{
deselected=_cf_deselect;
selected=_cf_select;
name=name;
bag;
};
inv=_new{
name=name;
char;
};
handle=_new{
size=.(,,);
color=(,,);
name=;
formFactor=;
inv;
touched=(hit)
(hit.Parent.className==)
hum=(hit.Parent);
(hum~=)
(hum,handle.Velocity.magnitude);
;
;
;
};
h_weld=_new{
c1=h_weld_cf_inactive;
part1=handle;
part0=torso;
handle;
};
();
h_part=_new{
size=.(,,);
color=(,,);
name=;
formFactor=;
handle;
};
hp_weld=_new{
c1=(,-/,-,
,,);
part0=handle;
part1=h_part;
handle;
};
drag=_new{
size=.(,,);
color=(,,);
name=;
formFactor=;
handle;
};
d_weld=_new{
c1=(,-,);
part0=h_part;
part1=drag;
handle;
};
tube=_new{
size=.(,,);
color=(,,);
name=;
formFactor=;
handle;
};
t_weld=_new{
c1=(,-,-);
part0=h_part;
part1=tube;
handle;
};
bullets_label=_new{
textStrokeColor3=(,,);
textColor3=(,,);
textStrokeTransparency=;
backgroundTransparency=;
fontSize=;
screen;
};
lightstuff=_new{
backgroundColor3=(,,);
position=.(,,,-);
backgroundTransparency=;
size=.(,,,);
borderSizePixel=;
visible=;
screen;
};
.(()
red,white,green;
(screen.Parent)
( green bullets.current==bullets.maximum)
green=;
bullets_label.TextColor3=(,,);
( red bullets.current==)
red=;
bullets_label.TextColor3=(,,);
((red green) bullets.current~= bullets.current~=bullets.maximum)
bullets_label.TextColor3=(,,);
green=;
red=;
;
bullets_label.Text=():(bullets.current,bullets.clip);
bullets_label.Size=.(,bullets_label.TextBounds.X,,bullets_label.TextBounds.Y);
bullets_label.Position=.(,-bullets_label.TextBounds.X-,,-bullets_label.TextBounds.Y-);
;
();
;
)();
.dev_pistol_version=(.dev_pistol_version )+;
vers=.dev_pistol_version;
();(); .dev_pistol_version~=vers hum.Health==;
(hum.Health==)
();
;
.Disabled=;
Lol

Universal