All content on our site is free and will always be free.

Please consider supporting us with disabling your AdBlock software and to gain access to thousands of free content!

Not sure how to disable AdBLock? Follow this tutorial: How to disable AdBlock

Get the Good Cop Bad Cop

The Good Cop Bad Cop code is below. Copy & inject it into the game. Enjoy!

made by Shackluster
--//====================================================\\--
--||         GOOD COP BAD COP BY SHACKLUSTER
--\\====================================================//--

wait(0.2)

Player = game:GetService("Players").LocalPlayer
PlayerGui = Player.PlayerGui
Cam = workspace.CurrentCamera
Backpack = Player.Backpack
Character = Player.Character
Humanoid = Character.Humanoid
Mouse = Player:GetMouse()
RootPart = Character["HumanoidRootPart"]
Torso = Character["Torso"]
Head = Character["Head"]
RightArm = Character["Right Arm"]
LeftArm = Character["Left Arm"]
RightLeg = Character["Right Leg"]
LeftLeg = Character["Left Leg"]
RootJoint = RootPart["RootJoint"]
Neck = Torso["Neck"]
RightShoulder = Torso["Right Shoulder"]
LeftShoulder = Torso["Left Shoulder"]
RightHip = Torso["Right Hip"]
LeftHip = Torso["Left Hip"]
local sick = Instance.new("Sound",RootPart)

IT = Instance.new
CF = CFrame.new
VT = Vector3.new
RAD = math.rad
C3 = Color3.new
UD2 = UDim2.new
BRICKC = BrickColor.new
ANGLES = CFrame.Angles
EULER = CFrame.fromEulerAnglesXYZ
COS = math.cos
ACOS = math.acos
SIN = math.sin
ASIN = math.asin
ABS = math.abs
MRANDOM = math.random
FLOOR = math.floor

--//=================================\\
--||        USEFUL VALUES
--\\=================================//

Animation_Speed = 3
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
local Speed = 20
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
local DAMAGEMULTIPLIER = 1
local ANIM = "Idle"
local ATTACK = false
local EQUIPPED = false
local HOLD = false
local COMBO = 1
local Rooted = false
local SINE = 0
local KEYHOLD = false
local CHANGE = 2 / Animation_Speed
local WALKINGANIM = false
local VALUE1 = false
local VALUE2 = false
local ROBLOXIDLEANIMATION = IT("Animation")
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
--ROBLOXIDLEANIMATION.Parent = Humanoid
local WEAPONGUI = IT("ScreenGui", PlayerGui)
WEAPONGUI.Name = "Weapon GUI"
local Weapon = IT("Model")
Weapon.Name = "Adds"
local Effects = IT("Folder", Weapon)
Effects.Name = "Effects"
local ANIMATOR = Humanoid.Animator
local ANIMATE = Character.Animate
local UNANCHOR = true
local MODE = "GoodCop"

--//=================================\\
--\\=================================//


--//=================================\\
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
--\\=================================//

ArtificialHB = Instance.new("BindableEvent", script)
ArtificialHB.Name = "ArtificialHB"

script:WaitForChild("ArtificialHB")

frame = Frame_Speed
tf = 0
allowframeloss = false
tossremainder = false
lastframe = tick()
script.ArtificialHB:Fire()

game:GetService("RunService").Heartbeat:connect(function(s, p)
 tf = tf + s
 if tf >= frame then
  if allowframeloss then
   script.ArtificialHB:Fire()
   lastframe = tick()
  else
   for i = 1, math.floor(tf / frame) do
    script.ArtificialHB:Fire()
   end
  lastframe = tick()
  end
  if tossremainder then
   tf = 0
  else
   tf = tf - frame * math.floor(tf / frame)
  end
 end
end)

--//=================================\\
--\\=================================//

--//=================================\\
--||        SOME FUNCTIONS
--\\=================================//

function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
 return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
end

function PositiveAngle(NUMBER)
 if NUMBER >= 0 then
  NUMBER = 0
 end
 return NUMBER
end

function NegativeAngle(NUMBER)
 if NUMBER <= 0 then
  NUMBER = 0
 end
 return NUMBER
end

function Swait(NUMBER)
 if NUMBER == 0 or NUMBER == nil then
  ArtificialHB.Event:wait()
 else
  for i = 1, NUMBER do
   ArtificialHB.Event:wait()
  end
 end
end

function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
 local NEWMESH = IT(MESH)
 if MESH == "SpecialMesh" then
  NEWMESH.MeshType = MESHTYPE
  if MESHID ~= "nil" and MESHID ~= "" then
   NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  end
  if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
   NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  end
 end
 NEWMESH.Offset = OFFSET or VT(0, 0, 0)
 NEWMESH.Scale = SCALE
 NEWMESH.Parent = PARENT
 return NEWMESH
end

function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
 local NEWPART = IT("Part")
 NEWPART.formFactor = FORMFACTOR
 NEWPART.Reflectance = REFLECTANCE
 NEWPART.Transparency = TRANSPARENCY
 NEWPART.CanCollide = false
 NEWPART.Locked = true
 NEWPART.Anchored = true
 if ANCHOR == false then
  NEWPART.Anchored = false
 end
 NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
 NEWPART.Name = NAME
 NEWPART.Size = SIZE
 NEWPART.Position = Torso.Position
 NEWPART.Material = MATERIAL
 NEWPART:BreakJoints()
 NEWPART.Parent = PARENT
 return NEWPART
end

 local function weldBetween(a, b)
     local weldd = Instance.new("ManualWeld")
     weldd.Part0 = a
     weldd.Part1 = b
     weldd.C0 = CFrame.new()
     weldd.C1 = b.CFrame:inverse() * a.CFrame
     weldd.Parent = a
     return weldd
 end


function QuaternionFromCFrame(cf)
 local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
 local trace = m00 + m11 + m22
 if trace > 0 then 
  local s = math.sqrt(1 + trace)
  local recip = 0.5 / s
  return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
 else
  local i = 0
  if m11 > m00 then
   i = 1
  end
  if m22 > (i == 0 and m00 or m11) then
   i = 2
  end
  if i == 0 then
   local s = math.sqrt(m00 - m11 - m22 + 1)
   local recip = 0.5 / s
   return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  elseif i == 1 then
   local s = math.sqrt(m11 - m22 - m00 + 1)
   local recip = 0.5 / s
   return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  elseif i == 2 then
   local s = math.sqrt(m22 - m00 - m11 + 1)
   local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  end
 end
end
 
function QuaternionToCFrame(px, py, pz, x, y, z, w)
 local xs, ys, zs = x + x, y + y, z + z
 local wx, wy, wz = w * xs, w * ys, w * zs
 local xx = x * xs
 local xy = x * ys
 local xz = x * zs
 local yy = y * ys
 local yz = y * zs
 local zz = z * zs
 return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
end
 
function QuaternionSlerp(a, b, t)
 local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
 local startInterp, finishInterp;
 if cosTheta >= 0.0001 then
  if (1 - cosTheta) > 0.0001 then
   local theta = ACOS(cosTheta)
   local invSinTheta = 1 / SIN(theta)
   startInterp = SIN((1 - t) * theta) * invSinTheta
   finishInterp = SIN(t * theta) * invSinTheta
  else
   startInterp = 1 - t
   finishInterp = t
  end
 else
  if (1 + cosTheta) > 0.0001 then
   local theta = ACOS(-cosTheta)
   local invSinTheta = 1 / SIN(theta)
   startInterp = SIN((t - 1) * theta) * invSinTheta
   finishInterp = SIN(t * theta) * invSinTheta
  else
   startInterp = t - 1
   finishInterp = t
  end
 end
 return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
end

function Clerp(a, b, t)
 local qa = {QuaternionFromCFrame(a)}
 local qb = {QuaternionFromCFrame(b)}
 local ax, ay, az = a.x, a.y, a.z
 local bx, by, bz = b.x, b.y, b.z
 local _t = 1 - t
 return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
end

function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
 local frame = IT("Frame")
 frame.BackgroundTransparency = TRANSPARENCY
 frame.BorderSizePixel = BORDERSIZEPIXEL
 frame.Position = POSITION
 frame.Size = SIZE
 frame.BackgroundColor3 = COLOR
 frame.BorderColor3 = BORDERCOLOR
 frame.Name = NAME
 frame.Parent = PARENT
 return frame
end

function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
 local label = IT("TextLabel")
 label.BackgroundTransparency = 1
 label.Size = UD2(1, 0, 1, 0)
 label.Position = UD2(0, 0, 0, 0)
 label.TextColor3 = TEXTCOLOR
 label.TextStrokeTransparency = STROKETRANSPARENCY
 label.TextTransparency = TRANSPARENCY
 label.FontSize = TEXTFONTSIZE
 label.Font = TEXTFONT
 label.BorderSizePixel = BORDERSIZEPIXEL
 label.TextScaled = false
 label.Text = TEXT
 label.Name = NAME
 label.Parent = PARENT
 return label
end

function NoOutlines(PART)
 PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
end

function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
 local NEWWELD = IT(TYPE)
 NEWWELD.Part0 = PART0
 NEWWELD.Part1 = PART1
 NEWWELD.C0 = C0
 NEWWELD.C1 = C1
 NEWWELD.Parent = PARENT
 return NEWWELD
end

local S = IT("Sound")
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
 local NEWSOUND = nil
 coroutine.resume(coroutine.create(function()
  NEWSOUND = S:Clone()
  NEWSOUND.Parent = PARENT
  NEWSOUND.Volume = VOLUME
  NEWSOUND.Pitch = PITCH
  NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  NEWSOUND:play()
  if DOESLOOP == true then
   NEWSOUND.Looped = true
  else
   repeat wait(1) until NEWSOUND.Playing == false
   NEWSOUND:remove()
  end
 end))
 return NEWSOUND
end

function CFrameFromTopBack(at, top, back)
 local right = top:Cross(back)
 return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
end

--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
function WACKYEFFECT(Table)
 local TYPE = (Table.EffectType or "Sphere")
 local SIZE = (Table.Size or VT(1,1,1))
 local ENDSIZE = (Table.Size2 or VT(0,0,0))
 local TRANSPARENCY = (Table.Transparency or 0)
 local ENDTRANSPARENCY = (Table.Transparency2 or 1)
 local CFRAME = (Table.CFrame or Torso.CFrame)
 local MOVEDIRECTION = (Table.MoveToPos or nil)
 local ROTATION1 = (Table.RotationX or 0)
 local ROTATION2 = (Table.RotationY or 0)
 local ROTATION3 = (Table.RotationZ or 0)
 local MATERIAL = (Table.Material or "Neon")
 local COLOR = (Table.Color or C3(1,1,1))
 local TIME = (Table.Time or 45)
 local SOUNDID = (Table.SoundID or nil)
 local SOUNDPITCH = (Table.SoundPitch or nil)
 local SOUNDVOLUME = (Table.SoundVolume or nil)
 coroutine.resume(coroutine.create(function()
  local PLAYSSOUND = false
  local SOUND = nil
  local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
   PLAYSSOUND = true
   SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  end
  EFFECT.Color = COLOR
  local MSH = nil
  if TYPE == "Sphere" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  elseif TYPE == "Block" or TYPE == "Box" then
   MSH = IT("BlockMesh",EFFECT)
   MSH.Scale = SIZE
  elseif TYPE == "Wave" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  elseif TYPE == "Ring" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  elseif TYPE == "Slash" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  elseif TYPE == "Round Slash" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  elseif TYPE == "Swirl" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  elseif TYPE == "Skull" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  elseif TYPE == "Crystal" then
   MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  end
  if MSH ~= nil then
   local MOVESPEED = nil
   if MOVEDIRECTION ~= nil then
    MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
   end
   local GROWTH = SIZE - ENDSIZE
   local TRANS = TRANSPARENCY - ENDTRANSPARENCY
   if TYPE == "Block" then
    EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
   else
    EFFECT.CFrame = CFRAME
   end
   for LOOP = 1, TIME+1 do
    Swait()
    MSH.Scale = MSH.Scale - GROWTH/TIME
    if TYPE == "Wave" then
     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
    end
    EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
    if TYPE == "Block" then
     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
    else
     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
    end
    if MOVEDIRECTION ~= nil then
     local ORI = EFFECT.Orientation
     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
     EFFECT.Orientation = ORI
    end
   end
   if PLAYSSOUND == false then
    EFFECT:remove()
   else
    repeat Swait() until SOUND.Playing == false
    EFFECT:remove()
   end
  else
   if PLAYSSOUND == false then
    EFFECT:remove()
   else
    repeat Swait() until SOUND.Playing == false
    EFFECT:remove()
   end
  end
 end))
end

function MakeForm(PART,TYPE)
 if TYPE == "Cyl" then
  local MSH = IT("CylinderMesh",PART)
 elseif TYPE == "Ball" then
  local MSH = IT("SpecialMesh",PART)
  MSH.MeshType = "Sphere"
 elseif TYPE == "Wedge" then
  local MSH = IT("SpecialMesh",PART)
  MSH.MeshType = "Wedge"
 elseif TYPE == "Head" then
  local MSH = IT("SpecialMesh",PART)
  MSH.Scale = VT(1.25,1.25,1.25)
 end
end

Debris = game:GetService("Debris")

function CastProperRay(StartPos, EndPos, Distance, Ignore)
 local DIRECTION = CF(StartPos,EndPos).lookVector
 return Raycast(StartPos, DIRECTION, Distance, Ignore)
end

function CharacterFade(COLOR,TIMER)
 coroutine.resume(coroutine.create(function()
  local FADE = IT("Model",Effects)
  FADE.Name = "FadingEffect"
  for _, c in pairs(Character:GetChildren()) do
   if c.ClassName == "Part" and c ~= RootPart then
    local FADER = c:Clone()
    FADER.Color = COLOR
    FADER.CFrame = c.CFrame
    FADER.Parent = FADE
    FADER.Anchored = true
    FADER.Transparency = 0.25+c.Transparency
    FADER:BreakJoints()
    FADER.Material = "Neon"
    if FADER.Name == "Head" then
     FADER:ClearAllChildren()
     FADER.Size = VT(1,1,1)
    end
    FADER.CanCollide = false
   end
  end
  local TRANS = 0.75/TIMER
  for i = 1, TIMER do
   Swait()
   for _, c in pairs(FADE:GetChildren()) do
    if c.ClassName == "Part" then
     c.Transparency = c.Transparency + TRANS
    end
   end
  end
  FADE:remove()
 end))
end

function Chatter(Text,Timer)
 local chat = coroutine.wrap(function()
  if Character:FindFirstChild("SpeechBoard")~= nil then
   Character:FindFirstChild("SpeechBoard"):destroy()
  end
  local naeeym2 = IT("BillboardGui",Character)
  naeeym2.Size = UD2(0,100,0,40)
  naeeym2.StudsOffset = Vector3.new(0,2,0)
  naeeym2.Adornee = Character.Head
  naeeym2.Name = "SpeechBoard"
  naeeym2.AlwaysOnTop = true
  local tecks2 = IT("TextLabel",naeeym2)
  tecks2.BackgroundTransparency = 1
  tecks2.BorderSizePixel = 0
  tecks2.Text = ""
  tecks2.Font = "Legacy"
  tecks2.TextSize = 15
  tecks2.TextStrokeTransparency = 0
  tecks2.TextColor3 = Color3.new(1,1,1)
  tecks2.TextStrokeColor3 = Color3.new(0,0,0)
  tecks2.Size = UDim2.new(1,0,0.5,0)
  for i = 1,string.len(Text),1 do
   CreateSound(418252437, Head, 3, MRANDOM(8,12)/15, false)
   tecks2.Text = string.sub(Text,1,i)
   wait(Timer)
  end
  wait(1)
  naeeym2:Destroy()
 end)
 chat()
end

--//=================================\\
--||      WEAPON CREATION
--\\=================================//

local FACE = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Face mask", VT(1.001,1.001,1.001),false)
CreateWeldOrSnapOrMotor("Weld", FACE, Head, FACE, CF(0.02,0,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
MakeForm(FACE,"Head")
local EYE = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eye", VT(0.1,0.25,0.2),false)
CreateWeldOrSnapOrMotor("Weld", EYE, Head, EYE, CF(0.15,0.25,-0.53) * ANGLES(RAD(0), RAD(0), RAD(-25)), CF(0, 0, 0))
MakeForm(EYE,"Ball")
local top = Instance.new("Shirt")
top.ShirtTemplate = "rbxassetid://269003887"
top.Parent = Character
top.Name = "Cloth"
local bottom = Instance.new("Pants")
bottom.PantsTemplate = "rbxassetid://268832352"
bottom.Parent = Character
bottom.Name = "Cloth"
local BATON = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Baton", VT(1, 0.8, 3),false)
CreateMesh("SpecialMesh", BATON, "FileMesh", "11820238", "", VT(1,1,1), VT(0,0,0))
local BATONWELD = CreateWeldOrSnapOrMotor("Weld", BATON, Torso, BATON, CF(1,-0.8,0.75) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
local A = IT("Attachment",BATON)
local B = IT("Attachment",BATON)
B.Position = VT(0,0,-0.4)
A.Position = VT(0,0,1)
local Trail = IT("Trail",BATON)
Trail.Attachment0 = A
Trail.Attachment1 = B
Trail.Lifetime = 0.1
Trail.Color = ColorSequence.new(C3(0,0,0))
Trail.Transparency = NumberSequence.new(0, 1)
Trail.Enabled = false
Trail.Texture = "http://www.roblox.com/asset/?id=1831500579"
local GUN = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Gun", VT(1, 0.8, 3),false)
CreateMesh("SpecialMesh", GUN, "FileMesh", "623102664", "623102879", VT(0.01, 0.01, 0.01), VT(0,0,0))
local GUNWELD = CreateWeldOrSnapOrMotor("Weld", GUN, Torso, GUN, CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90)), CF(0, 0, 0))

for _, c in pairs(Weapon:GetChildren()) do
 if c.ClassName == "Part" then
  c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
 end
end

Weapon.Parent = Character

local SKILLTEXTCOLOR = C3(1,1,1)
local SKILLFONT = "Legacy"
local SKILLTEXTSIZE = 4

local ATTACKSGOODCOP = {"Mouse - Warning","Q - Baton Stun","E - Cuffs"}
local ATTACKSBADCOP = {"Mouse - Silence","Q - Baton Breaker","E - The Right to remain silent"}
local GOODUI = {}
local BADUI = {}

for i = 1, #ATTACKSGOODCOP do
 local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.73, 0, 0.7-(0.04*i), 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
 local SKILLTEXT = CreateLabel(SKILLFRAME, "["..ATTACKSGOODCOP[i].."]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Skill text")
 SKILLTEXT.TextXAlignment = "Right"
 table.insert(GOODUI,SKILLTEXT)
end

for i = 1, #ATTACKSBADCOP do
 local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.01, 0, 0.7-(0.04*i), 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
 local SKILLTEXT = CreateLabel(SKILLFRAME, "["..ATTACKSBADCOP[i].."]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Skill text")
 SKILLTEXT.TextXAlignment = "Left"
 table.insert(BADUI,SKILLTEXT)
end

local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.9, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
local SKILLTEXT = CreateLabel(SKILLFRAME, "[F - Switch]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Skill text")

--//=================================\\
--||   DAMAGING
--\\=================================//

function ApplyDamage(Humanoid,Damage)
 Damage = Damage * DAMAGEMULTIPLIER
 local DEAD = false
 if Humanoid.Health < 2000> 0 then
   Humanoid.Health = Humanoid.Health - Damage
  else
   DEAD = true
   Humanoid.Parent:BreakJoints()
  end
 else
  DEAD = true
  Humanoid.Parent:BreakJoints()
 end
 if DEAD == true then
  if MODE == "GoodCop" then
   local TEXTS = {"I'm simply laying down the law.","You should've taken account of the law.","Another criminal down."}
   Chatter(TEXTS[MRANDOM(1,#TEXTS)],0)
  elseif MODE == "BadCop" then
   local TEXTS = {"Criminals should leave this world!","You should've taken account of the law!","And stay down!"}
   Chatter(TEXTS[MRANDOM(1,#TEXTS)],0)
  end
 end
end

--//=================================\\
--||     TRANSFORMATIONS
--\\=================================//

function Switch()
 ATTACK = true
 Rooted = true
 if MODE == "GoodCop" then
  for i=0, 0.3, 0.1 / Animation_Speed do
   Swait()
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
  for i=0, 1, 0.1 / Animation_Speed do
   Swait()
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -0.5) * ANGLES(RAD(100), RAD(0), RAD(-70)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.35, -0.35) * ANGLES(RAD(70), RAD(0), RAD(80)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
  CreateSound(363808674, Torso, 6, 1, false)
  for i=0, 0.6, 0.1 / Animation_Speed do
   Swait()
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(25), RAD(0)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -0.5) * ANGLES(RAD(100), RAD(0), RAD(-50)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.35, -0.35) * ANGLES(RAD(70), RAD(0), RAD(60)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
  CreateSound(363808674, Torso, 6, 1, false)
  for i=0, 0.6, 0.1 / Animation_Speed do
   Swait()
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(-25), RAD(0)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -0.5) * ANGLES(RAD(100), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.35, -0.35) * ANGLES(RAD(70), RAD(0), RAD(90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
  MODE = "BadCop"
 elseif MODE == "BadCop" then
  CreateSound(147722227, Torso, 4, 1.3, false)
  for i=0, 0.3, 0.1 / Animation_Speed do
   Swait()
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
  MODE = "GoodCop"
 end
 ATTACK = false
 Rooted = false
end

--//=================================\\
--||    ATTACK GOOD COP
--\\=================================//

function Warning()
 local TARGET = Mouse.Target
 if TARGET ~= nil then
  if TARGET.Parent:FindFirstChildOfClass("Humanoid") then
   local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
   local LEG = TARGET.Parent:FindFirstChild("Right Leg") or TARGET.Parent:FindFirstChild("RightLowerLeg")
   if LEG and HUM.Health > 0 then
    Speed = 6
    ATTACK = true
    Rooted = false
    local GYRO = IT("BodyGyro",RootPart)
    GYRO.D = 2
    GYRO.P = 2000
    GYRO.MaxTorque = VT(0,4000000,0)
    coroutine.resume(coroutine.create(function()
     repeat
      Swait()
      GYRO.CFrame = CF(RootPart.Position,LEG.Position)
     until ATTACK == false
     GYRO:Remove()
    end))
    local HIT,POS = CastProperRay(RootPart.Position,LEG.Position,1000,Character)
    local PASS = true
    for i=0, 0.2, 0.1 / Animation_Speed do
     Swait()
     HIT,POS = CastProperRay(RootPart.Position,LEG.Position,1000,Character)
     if HIT == nil then
      PASS = false
      break
     else
      if HIT.Parent ~= TARGET.Parent then
       PASS = false
       break
      end
     end
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    CreateSound(147722227, GUN, 6, 1.3, false)
    GUNWELD.Part0 = LeftArm
    GUNWELD.C0 = CF(0,-1.5,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
    for i=0, 0.4, 0.1 / Animation_Speed do
     Swait()
     HIT,POS = CastProperRay(RootPart.Position,LEG.Position,1000,Character)
     if HIT == nil then
      PASS = false
      break
     else
      if HIT.Parent ~= TARGET.Parent then
       PASS = false
       break
      end
     end
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    if PASS == true then
     local GUNPOS = GUN.CFrame*CF(1.2, 0.5, 0).p
     local DISTANCE = (LEG.Position - GUNPOS).Magnitude
     CreateSound(160432334, LEG, 10, 1, false)
     local HEAD = HUM.Parent:FindFirstChild("Head")
     if HEAD then
      CreateSound(535690488, HEAD, 7, 1, false)
     end
     ApplyDamage(HUM,15)
     HUM.WalkSpeed = HUM.WalkSpeed - 3
     HUM.PlatformStand = true
     coroutine.resume(coroutine.create(function()
      wait(0.1)
      if HUM.WalkSpeed > 0 then
       HUM.PlatformStand = false
      end
     end))
     WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(0.3,0.3,0.3), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = 330704232, SoundPitch = 1, SoundVolume = 4})
     WACKYEFFECT({Time = 6, EffectType = "Box", Size = VT(0,0,DISTANCE), Size2 = VT(0.1,0.1,DISTANCE), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS,LEG.Position)*CF(0,0,-DISTANCE/2), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
     for i=0, 1, 0.1 / Animation_Speed do
      Swait()
      RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
      Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(45)), 1 / Animation_Speed)
      RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
      LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(120), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
      RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
      LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
     end
    end
    for i=0, 0.3, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    GUNWELD.Part0 = Torso
    GUNWELD.C0 = CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
    ATTACK = false
    Rooted = false
    Speed = 20
   end
  end
 end
end
function BatonStun()
 ATTACK = true
 Rooted = false
 Speed = 4
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 BATONWELD.Part0 = RightArm
 BATONWELD.C0 = CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)) * CF(0,0,1)
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-25)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(25)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.1) * ANGLES(RAD(0), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 Speed = 25
 CreateSound(147722227, BATON, 6, 1.2, false)
 Trail.Enabled = true
 BATON.CanCollide = true
 local SPEAKING = false
 local HITS = {}
 local TOUCH = BATON.Touched:Connect(function(hit)
  if hit.Parent:FindFirstChildOfClass("Humanoid") then
   local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
   local TORSO = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
   if TORSO and HUM.Health > 0 then
    local PASS = true
    for i = 1, #HITS do
     if HITS[i] == hit.Parent then
      PASS = false
     end
    end
    table.insert(HITS,hit.Parent)
    if PASS == true then
     HUM.PlatformStand = true
     ApplyDamage(HUM,20)
     local bv = Instance.new("BodyVelocity",TORSO) 
     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
     bv.velocity = CF(Torso.Position-VT(0,5,0),TORSO.Position).lookVector*70
     Debris:AddItem(bv,0.05)
     CreateSound(260430079, BATON, 6, 1, false)
     WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(3,3,3), Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position,BATON.Position)*CF(0,0,-0.5), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Glass = C3(1,1,1), SoundID = nil, SoundPitch = 1, SoundVolume = 4})
     coroutine.resume(coroutine.create(function()
      wait(1)
      if HUM.WalkSpeed > 0 then
       HUM.PlatformStand = false
      end
     end))
     if SPEAKING == false and MRANDOM(1,5) == 1 then
      SPEAKING = true
      Chatter("Let that be a warning.",0)
     end
    end
   end
  end
 end)
 for i=0, 0.35, 0.1 / Animation_Speed do
  Swait()
  BATONWELD.C0 = Clerp(BATONWELD.C0,CF(0,-1,0) * ANGLES(RAD(120), RAD(0), RAD(0)) * CF(0,0,1), 1 / Animation_Speed)
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5, -0.6) * ANGLES(RAD(140), RAD(0), RAD(-31)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-3)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 TOUCH:Disconnect()
 BATON.CanCollide = false
 Speed = 20
 Trail.Enabled = false
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  BATONWELD.C0 = Clerp(BATONWELD.C0,CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)) * CF(0,0,1), 2 / Animation_Speed)
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 BATONWELD.Part0 = Torso
 BATONWELD.C0 = CF(1,-0.8,0.75) * ANGLES(RAD(0), RAD(0), RAD(0))
 ATTACK = false
 Rooted = false
end
function Cuffs()
 local TARGET = Mouse.Target
 if TARGET ~= nil then
  if TARGET.Parent:FindFirstChildOfClass("Humanoid") then
   local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
   local ROOT = TARGET.Parent:FindFirstChild("HumanoidRootPart") or TARGET.Parent:FindFirstChild("Torso") or TARGET.Parent:FindFirstChild("UpperTorso")
   if ROOT and HUM.Health > 0 then
    local FOE = Mouse.Target.Parent
    ATTACK = true
    Rooted = true
    CharacterFade(C3(1,1,1),70)
    RootPart.CFrame = ROOT.CFrame*CF(0,0,2)
    ROOT.Anchored = true
    CreateSound(289556450, RootPart, 5, 1.4, false)
    Chatter("You have the right to remain silent.",0)
    for i=0, 2, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(15), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    local RIGHTCUFF = nil
    local LEFTCUFF = nil
    local ChainLink = nil
    CreateSound(1279090548, ROOT, 10, 1.4, false)
    for _, c in pairs(FOE:GetChildren()) do
     if c.Name == "Left Arm" or c.Name == "LeftLowerArm" then
      LEFTCUFF = CreatePart(3, FOE, "Metal", 0, 0, "Mid gray", "Cuff", VT(c.Size.X+0.1, 0.1, c.Size.Z+0.1),false)
      LEFTCUFF.CFrame = c.CFrame
      weldBetween(c,LEFTCUFF)
     end
    end
    for _, c in pairs(FOE:GetChildren()) do
     if c.Name == "Right Arm" or c.Name == "RightLowerArm" then
      RIGHTCUFF = CreatePart(3, FOE, "Metal", 0, 0, "Mid gray", "Cuff", VT(c.Size.X+0.1, 0.1, c.Size.Z+0.1),false)
      RIGHTCUFF.CFrame = c.CFrame
      weldBetween(c,RIGHTCUFF)
     end
    end
    if RIGHTCUFF and LEFTCUFF then
     local A = IT("Attachment",RIGHTCUFF)
     local B = IT("Attachment",LEFTCUFF)
     ChainLink = IT("Beam",FOE)
     ChainLink.Texture = "rbxassetid://73042633"
     ChainLink.Color = ColorSequence.new(C3(0.8,0.8,0.8))
     ChainLink.TextureSpeed = 0
     ChainLink.Width0 = 1
     ChainLink.Width1 = 1
     ChainLink.Segments = 25
     ChainLink.TextureLength = 3
     ChainLink.Attachment0 = B
     ChainLink.Attachment1 = A
     ChainLink.FaceCamera = true
     ChainLink.Transparency = NumberSequence.new(0)
    end
    coroutine.resume(coroutine.create(function()
     wait(4)
     if RIGHTCUFF and LEFTCUFF then
      RIGHTCUFF:remove()
      LEFTCUFF:remove()
      ChainLink:remove()
      local bv = Instance.new("BodyVelocity",ROOT) 
      bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
      bv.velocity = CF(ROOT.Position-VT(0,5,0),ROOT.Position).lookVector*70
      Debris:AddItem(bv,0.05)
      ApplyDamage(HUM,70)
      HUM.PlatformStand = false
      WACKYEFFECT({Time = 50, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(6,6,6), Transparency = 0, Transparency2 = 1, CFrame = CF(RIGHTCUFF.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Glass = C3(1,1,1), SoundID = 174580476, SoundPitch = 1, SoundVolume = 7})
      WACKYEFFECT({Time = 50, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(6,6,6), Transparency = 0, Transparency2 = 1, CFrame = CF(LEFTCUFF.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Glass = C3(1,1,1), SoundID = 174580476, SoundPitch = 1, SoundVolume = 7})
     end
    end))
    for i=0, 1.5, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(5), RAD(0)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(70), RAD(0), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(70), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(15), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    HUM.PlatformStand = true
    ROOT.CFrame = ROOT.CFrame * ANGLES(RAD(15), RAD(0), RAD(0))
    ROOT.Anchored = false
    Chatter("Anything you say can and WILL be used against you.",0)
    for i=0, 3, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-5), RAD(0), RAD(-35)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-1), RAD(0), RAD(3)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-1), RAD(0), RAD(-3)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-12), RAD(80), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    ATTACK = false
    Rooted = false
   end
  end
 end
end

--//=================================\\
--||     ATTACK BAD COP
--\\=================================//

function Silence()
 Speed = 6
 ATTACK = true
 Rooted = false
 local GYRO = IT("BodyGyro",RootPart)
 GYRO.D = 2
 GYRO.P = 20000
 GYRO.MaxTorque = VT(0,4000000,0)
 coroutine.resume(coroutine.create(function()
  repeat
   Swait()
   GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
  until ATTACK == false
  GYRO:Remove()
 end))
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 local AMMO = 6
 local FIRING = true
 local SHOOTING = false
 local TIMER = 70
 CreateSound(147722227, GUN, 6, 1.3, false)
 GUNWELD.Part0 = LeftArm
 GUNWELD.C0 = CF(0,-1.5,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
 local MOUSE = Mouse.Button1Down:connect(function(NEWKEY)
  if SHOOTING == false and AMMO > 0 then
   SHOOTING = true
   AMMO = AMMO - 1
   local GUNPOS = GUN.CFrame*CF(1.2, 0.5, 0).p
   local HIT,POS = CastProperRay(GUNPOS,Mouse.Hit.p,1000,Character)
   local DISTANCE = (POS - GUNPOS).Magnitude
   if HIT then
    if HIT.Parent:FindFirstChildOfClass("Humanoid") then
     if HIT.Parent:FindFirstChildOfClass("Humanoid").Health > 0 then
      CreateSound(160432334, HIT, 10, 1, false)
      ApplyDamage(HIT.Parent:FindFirstChildOfClass("Humanoid"),35)
     end
    end
   end
   TIMER = 55
   WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(0.3,0.3,0.3), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = 330704232, SoundPitch = 1, SoundVolume = 4})
   WACKYEFFECT({Time = 6, EffectType = "Box", Size = VT(0,0,DISTANCE), Size2 = VT(0.1,0.1,DISTANCE), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS,POS)*CF(0,0,-DISTANCE/2), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
   for i=0, 0.3, 0.1 / Animation_Speed do
    Swait()
    RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
    Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(100), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
    RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
   end
   if AMMO <= 0 then
    FIRING = false
   end
   SHOOTING = false
  end
 end)
 repeat
  Swait()
  if SHOOTING == false then
   TIMER = TIMER - 1
   if TIMER <= 0 then
    FIRING = false
   end
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  end
 until FIRING == false and SHOOTING == false
 MOUSE:Disconnect()
 for i=0, 0.3, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 GUNWELD.Part0 = Torso
 GUNWELD.C0 = CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
 Speed = 20
 ATTACK = false
 Rooted = false
end
function BatonBreaker()
 ATTACK = true
 Rooted = false
 Speed = 4
 Chatter("I'll break you!",0)
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 BATONWELD.Part0 = RightArm
 BATONWELD.C0 = CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)) * CF(0,0,1)
 for i=0, 0.5, 0.1 / Animation_Speed do
  Swait()
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-25)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(25)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.1) * ANGLES(RAD(-20), RAD(-40), RAD(25)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 Speed = 30
 CreateSound(147722227, BATON, 6, 1, false)
 Trail.Enabled = true
 BATON.CanCollide = true
 local SPEAKING = false
 local HITS = {}
 local TOUCH = BATON.Touched:Connect(function(hit)
  if hit.Parent:FindFirstChildOfClass("Humanoid") then
   local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
   local TORSO = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
   if TORSO and HUM.Health > 0 then
    local PASS = true
    for i = 1, #HITS do
     if HITS[i] == hit.Parent then
      PASS = false
     end
    end
    table.insert(HITS,hit.Parent)
    if PASS == true then
     CreateSound(260430079, BATON, 6, 0.8, false)
     WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(3,3,3), Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position,BATON.Position)*CF(0,0,-0.5), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Glass = C3(1,1,1), SoundID = nil, SoundPitch = 1, SoundVolume = 4})
     TORSO.Anchored = true
     local POS = TORSO.CFrame
     coroutine.resume(coroutine.create(function()
      for i = 1, 15 do
       Swait()
       TORSO.CFrame = POS*CF(MRANDOM(-2,2)/10,MRANDOM(-2,2)/10,MRANDOM(-2,2)/10)
      end
      local HEAD = HUM.Parent:FindFirstChild("Head")
      HUM.Parent:BreakJoints()
      if HEAD then
       CreateSound(363808674, HEAD, 10, 0.8, false)
       local bv = Instance.new("BodyVelocity",TORSO) 
       bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
       bv.velocity = CF(Torso.Position-VT(0,5,0),HEAD.Position).lookVector*70
       Debris:AddItem(bv,0.05)
       local TEXTS = {"Criminals should leave this world!","And stay down!"}
       Chatter(TEXTS[MRANDOM(1,#TEXTS)],0)
      end
      TORSO.Anchored = false
     end))
    end
   end
  end
 end)
 for i=0, 0.45, 0.1 / Animation_Speed do
  Swait()
  RootPart.CFrame = RootPart.CFrame * CF(0,0,-0.15)
  BATONWELD.C0 = Clerp(BATONWELD.C0,CF(0,-1,0) * ANGLES(RAD(120), RAD(0), RAD(0)) * CF(0,0,1), 1 / Animation_Speed)
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(15)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5, -0.6) * ANGLES(RAD(140), RAD(-25), RAD(-41)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-3)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(15), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 TOUCH:Disconnect()
 BATON.CanCollide = false
 Speed = 20
 Trail.Enabled = false
 for i=0, 0.2, 0.1 / Animation_Speed do
  Swait()
  BATONWELD.C0 = Clerp(BATONWELD.C0,CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)) * CF(0,0,1), 2 / Animation_Speed)
  RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 1 / Animation_Speed)
  RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
 end
 BATONWELD.Part0 = Torso
 BATONWELD.C0 = CF(1,-0.8,0.75) * ANGLES(RAD(0), RAD(0), RAD(0))
 ATTACK = false
 Rooted = false
end
function TheRightToRemainSilent()
 local TARGET = Mouse.Target
 if TARGET ~= nil then
  if TARGET.Parent:FindFirstChildOfClass("Humanoid") then
   local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
   local ROOT = TARGET.Parent:FindFirstChild("HumanoidRootPart") or TARGET.Parent:FindFirstChild("Torso") or TARGET.Parent:FindFirstChild("UpperTorso")
   if ROOT and HUM.Health > 0 then
    local FOE = Mouse.Target.Parent
    ATTACK = true
    Rooted = true
    CharacterFade(C3(1,1,1),70)
    RootPart.CFrame = ROOT.CFrame*CF(0,0,2)
    ROOT.Anchored = true
    CreateSound(289556450, RootPart, 5, 1.4, false)
    Chatter("You are to remain silent and DEAD!",0)
    for i=0, 0.4, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    HUM.PlatformStand = true
    ROOT.CFrame = ROOT.CFrame * CF(0,-2*ROOT.Size.Z,0) * ANGLES(RAD(-90), RAD(0), RAD(0))
    CreateSound(260430117, ROOT, 6, 1.3, false)
    coroutine.resume(coroutine.create(function()
     Swait()
     ROOT.Anchored = true
    end))
    RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.6)
    for i=0, 0.2, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    local OOFS = {1106908323,1080610827,1080614222,565424701,565424177,1080611063}
    CreateSound(OOFS[MRANDOM(1,#OOFS)], ROOT, 6, 1, false)
    for i=0, 0.2, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.65) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.5, -0.75) * ANGLES(RAD(80), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.45) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(45), RAD(-70), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    local AMMO = 6
    local FIRING = true
    local SHOOTING = false
    local TIMER = 70
    CreateSound(147722227, GUN, 6, 1.3, false)
    GUNWELD.Part0 = LeftArm
    GUNWELD.C0 = CF(0,-1.5,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
    for i=0, 0.2, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.65) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.5, -0.75) * ANGLES(RAD(80), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.4, 0.55, 0.4) * ANGLES(RAD(100), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.45) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(45), RAD(-70), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    for i = 1, 6 do
     local GUNPOS = GUN.CFrame*CF(1.2, 0.5, 0).p
     local DISTANCE = (FOE.Head.Position - GUNPOS).Magnitude
     WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(0.3,0.3,0.3), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = 330704232, SoundPitch = 1, SoundVolume = 4})
     WACKYEFFECT({Time = 6, EffectType = "Box", Size = VT(0,0,DISTANCE), Size2 = VT(0.1,0.1,DISTANCE), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS,FOE.Head.Position)*CF(0,0,-DISTANCE/2), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
     HUM.Health = HUM.Health/1.5
     for i=0, 0.2, 0.1 / Animation_Speed do
      Swait()
      RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.65) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
      Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 1 / Animation_Speed)
      RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.5, -0.75) * ANGLES(RAD(80), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
      LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.4, 0.55, 0.6) * ANGLES(RAD(130), RAD(0), RAD(20)) * LEFTSHOULDERC0, 1 / Animation_Speed)
      RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.45) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
      LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(45), RAD(-70), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
     end
     for i=0, 0.2, 0.1 / Animation_Speed do
      Swait()
      RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.65) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
      Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 1 / Animation_Speed)
      RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.5, -0.75) * ANGLES(RAD(80), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
      LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.4, 0.55, 0.6) * ANGLES(RAD(100), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
      RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.45) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
      LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(45), RAD(-70), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
     end
    end
    FOE:BreakJoints()
    ROOT.Anchored = false
    for i=0, 0.3, 0.1 / Animation_Speed do
     Swait()
     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
     RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
    end
    GUNWELD.Part0 = Torso
    GUNWELD.C0 = CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
    ATTACK = false
    Rooted = false
   end
  end
 end
end

--//=================================\\
--||   ASSIGN THINGS TO KEYS
--\\=================================//

function MouseDown(Mouse)
 if ATTACK == false then
  if MODE == "GoodCop" then
   Warning()
  elseif MODE == "BadCop" then
   Silence()
  end
 end
end

function MouseUp(Mouse)
HOLD = false
end

function KeyDown(Key)
 KEYHOLD = true
 if Key == "q" and ATTACK == false then
  if MODE == "GoodCop" then
   BatonStun()
  elseif MODE == "BadCop" then
   BatonBreaker()
  end
 end

 if Key == "e" and ATTACK == false then
  if MODE == "GoodCop" then
   Cuffs()
  elseif MODE == "BadCop" then
   TheRightToRemainSilent()
  end
 end

 if Key == "t" and ATTACK == false then
  if MODE == "GoodCop" then
   Chatter("You should obey the law.",0.01)
  elseif MODE == "BadCop" then
   Chatter("I don't think so, Criminal!",0.01)
  end
 end

 if Key == "f" and ATTACK == false then
  Switch()
 end

 if Key == "0" and ATTACK == false then
  if sick.Parent ~= RootPart then
   sick = IT("Sound",RootPart)
  end
 end
end

function KeyUp(Key)
 KEYHOLD = false
end

 Mouse.Button1Down:connect(function(NEWKEY)
  MouseDown(NEWKEY)
 end)
 Mouse.Button1Up:connect(function(NEWKEY)
  MouseUp(NEWKEY)
 end)
 Mouse.KeyDown:connect(function(NEWKEY)
  KeyDown(NEWKEY)
 end)
 Mouse.KeyUp:connect(function(NEWKEY)
  KeyUp(NEWKEY)
 end)

--//=================================\\
--\\=================================//

function unanchor()
 for _, c in pairs(Character:GetChildren()) do
  if c:IsA("BasePart") and c ~= RootPart then
   c.Anchored = false
  end
 end
 for _, c in pairs(Weapon:GetChildren()) do
  if c:IsA("BasePart") and c ~= RootPart then
   c.Anchored = false
  end
 end
 if UNANCHOR == true then
  RootPart.Anchored = false
 else
  RootPart.Anchored = true
 end
end

--//=================================\\
--|| WRAP THE WHOLE SCRIPT UP
--\\=================================//

Humanoid.Changed:connect(function(Jump)
 if Jump == "Jump" and (Disable_Jump == true) then
  Humanoid.Jump = false
 end
end)

while true do
 Swait()
 script.Parent = WEAPONGUI
 ANIMATE.Parent = nil
 for _,v in next, Humanoid:GetPlayingAnimationTracks() do
     v:Stop();
 end
 SINE = SINE + CHANGE
 local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
 local TORSOVERTICALVELOCITY = RootPart.Velocity.y
 local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
 local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
 if ANIM == "Walk" and TORSOVELOCITY > 1 then
  RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0.05 * COS(SINE / (WALKSPEEDVALUE/2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(35 * COS(SINE / WALKSPEEDVALUE))), 0.6 / Animation_Speed)
  LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(35 * COS(SINE / WALKSPEEDVALUE))), 0.6 / Animation_Speed)
 elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1 xss=removed xss=removed xss=removed xss=removed> 1 and HITFLOOR == nil then
  ANIM = "Jump"
  if ATTACK == false then
   RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
     end
 elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  ANIM = "Fall"
  if ATTACK == false then
   RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
   RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
   LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
   RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
  end
 elseif TORSOVELOCITY < 1 xss=removed ANIM = "Idle" xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed> 1 and HITFLOOR ~= nil then
  ANIM = "Walk"
  if ATTACK == false then
   RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
   Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
   if MODE == "GoodCop" then
    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.05 * SIN(SINE / (WALKSPEEDVALUE/2)), 0.3) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.05 * SIN(SINE / (WALKSPEEDVALUE/2)), 0.3) * ANGLES(RAD(-40), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   elseif MODE == "BadCop" then
    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.9, 0.5 + 0.05 * SIN(SINE / (WALKSPEEDVALUE/2)), -0.5) * ANGLES(RAD(100), RAD(0), RAD(-70)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.9, 0.25 + 0.05 * SIN(SINE / (WALKSPEEDVALUE/2)), -0.35) * ANGLES(RAD(70), RAD(0), RAD(80)) * LEFTSHOULDERC0, 1 / Animation_Speed)
   end
   RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 2 / Animation_Speed)
   LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(5)), 2 / Animation_Speed)
  end
 end
 unanchor()
 Humanoid.MaxHealth = 3e3
 Humanoid.Health = 3e3
 if Rooted == false then
  Disable_Jump = false
  Humanoid.WalkSpeed = Speed
 elseif Rooted == true then
  Disable_Jump = true
  Humanoid.WalkSpeed = 0
 end
 for _, c in pairs(Character:GetChildren()) do
  if (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
   c:remove()
  end
 end
 sick.SoundId = "rbxassetid://259554386"
 sick.Looped = true
 sick.Pitch = 1
 sick.Volume = 4
 sick.Playing = true
 if MODE == "GoodCop" then
  for E = 1, #GOODUI do
   GOODUI[E].TextStrokeTransparency = 0
   GOODUI[E].TextTransparency = 0
  end
  for E = 1, #BADUI do
   BADUI[E].TextStrokeTransparency = 1
   BADUI[E].TextTransparency = 0.5
  end
 elseif MODE == "BadCop" then
  for E = 1, #GOODUI do
   GOODUI[E].TextStrokeTransparency = 1
   GOODUI[E].TextTransparency = 0.5
  end
  for E = 1, #BADUI do
   BADUI[E].TextStrokeTransparency = 0
   BADUI[E].TextTransparency = 0
  end
 end
end

--//=================================\\
--\\=================================//





--//====================================================\\--
--||        END OF SCRIPT
--\\====================================================//--