-- ModuleScript ProjectileHandler (via decompile, truncated) local tbl_1 = {} local HttpService_upv_1 = game:GetService("HttpService") local RunService_upv_1 = game:GetService("RunService") local SoundService_upv_1 = game:GetService("SoundService") local TweenService_upv_1 = game:GetService("TweenService") local Debris_upv_1 = game:GetService("Debris") local Workspace_upv_1 = game:GetService("Workspace") local ReplicatedStorage_1 = game:GetService("ReplicatedStorage") local LocalPlayer_upv_1 = game:GetService("Players").LocalPlayer local CurrentCamera_upv_1 = Workspace_upv_1.CurrentCamera local Modules_1 = ReplicatedStorage_1:WaitForChild("Framework"):WaitForChild("Modules") local Miscs_upv_1 = ReplicatedStorage_1:WaitForChild("Miscs") local Remotes_1 = ReplicatedStorage_1:WaitForChild("Remotes") local RayUpdateFolder_upv_1 = Modules_1.Weapons.RayUpdateFolder local FastCastRedux_upv_1 = require(Modules_1.Util.FastCastRedux) local DamageModule_upv_1 = require(Modules_1.Weapons.DamageModule) local PartCache_upv_1 = require(Modules_1.Util.PartCache) local Utilities_1 = require(Modules_1.Util.Utilities) local Thread_upv_1 = Utilities_1.Thread local Math_upv_1 = Utilities_1.Math local DirectionPredictor_upv_1 = Utilities_1.DirectionPredictor local Bullets_upv_1 = Miscs_upv_1.Bullets local Projectiles_upv_1 = Miscs_upv_1.Projectiles local InflictTarget_upv_1 = Remotes_1.InflictTarget local VisualizeBullet_upv_1 = Remotes_1.VisualizeBullet local VisualizeHitEffect_upv_1 = Remotes_1.VisualizeHitEffect local ShatterGlass_upv_1 = Remotes_1.ShatterGlass FastCastRedux_upv_1.DebugLogging = false FastCastRedux_upv_1.VisualizeCasts = false local u1 = Instance.new("Beam") u1.TextureSpeed = 0 u1.LightEmission = 0 u1.LightInfluence = 1 u1.Transparency = NumberSequence.new(0) local v1 = Instance.new("Folder") v1.Name = "BlockSegContainer" v1.Parent = CurrentCamera_upv_1 local v2 = Instance.new("Folder") v2.Name = "CylinderSegContainer" v2.Parent = CurrentCamera_upv_1 local v3 = Instance.new("Folder") v3.Name = "ConeSegContainer" v3.Parent = CurrentCamera_upv_1 local u2 = FastCastRedux_upv_1.new() local u3 = PartCache_upv_1.new(Miscs_upv_1.BlockSegment, 25) u3:SetCacheParent(v1) local u4 = PartCache_upv_1.new(Miscs_upv_1.CylinderSegment, 25) u4:SetCacheParent(v2) local u5 = PartCache_upv_1.new(Miscs_upv_1.ConeSegment, 25) u5:SetCacheParent(v3) local u6 = 0 local u7 = 0 local tbl_upv_2 = {} local tbl_upv_3 = {} local function AddressTableValue(a1, a2, a3, a4) --[[ name: AddressTableValue line: 126 ]] if a3 ~= nil and a1 and a2 then return ((a2 == 1) and (a3.Level1)) or (((a2 == 2) and (a3.Level2)) or (((a2 == 3) and (a3.Level3)) or a4)) end return a4 end local function CanShowEffects(a1) --[[ name: CanShowEffects line: 134 upvalues: CurrentCamera_upv_1 (copy, index: 1) ]] local _, v4 = CurrentCamera_upv_1:WorldToScreenPoint(a1) return v4 and ((a1 - CurrentCamera_upv_1.CFrame.p).Magnitude <= 400) end local function PopulateHumanoids(a1, a2) --[[ name: PopulateHumanoids line: 142 upvalues: DamageModule_upv_1 (copy, index: 1) PopulateHumanoids (copy, index: 2) ]] if a2.ClassName == "Humanoid" and DamageModule_upv_1.CanDamage(a2.Parent, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) then table.insert(Humanoids, a2) end for _, value_1 in ipairs(a2:GetChildren()) do PopulateHumanoids(a1, value_1) end end local function CastWithBlacklist(a1, a2, a3, a4, a5) --[[ name: CastWithBlacklist line: 79 upvalues: Workspace_upv_1 (copy, index: 1) DamageModule_upv_1 (copy, index: 2) ]] local v11 local v5 = Ray.new(a2, a3) local v6, v7, v8, v9 repeat v6, v7, v8, v9 = Workspace_upv_1:FindPartOnRayWithIgnoreList(v5, a4, false, a5) local v10 = v6 if v10 then v6 = v10:FindFirstAncestorOfClass("Model") v7 = v6 and (v6:FindFirstChildOfClass("Humanoid")) v8 = v6:FindFirstAncestorOfClass("Tool") if v6.Name == "Missile" or v6.Name == "Handle" or v6.Name == "Effect" or v6.Name == "Bullet" or v6.Name == "Laser" or string.lower(v6.Name) == "water" or v6.Name == "Rail" or v6.Name == "Arrow" then table.insert(a4, v6) v11 = false elseif v7 then if (v7.Health <= 0) or not DamageModule_upv_1.CanDamage(v6, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) then table.insert(a4, v6) v11 = false elseif a1.UserData.BounceData then if table.find(a1.UserData.BounceData.BouncedHumanoids, v7) or v8 then table.insert(a4, v6) v11 = false else v11 = true end elseif v12 then table.insert(a4, v6) v11 = false else v11 = true end elseif v12 then table.insert(a4, v6) v11 = false else v11 = true end else v11 = true end until v11 return v6, v7, v8, v9 end local function EmitParticle(a1, a2) --[[ name: EmitParticle line: 210 ]] a1:Emit(a2) end local function FadeBeam(a1, a2, a3, a4, a5, a6) --[[ name: FadeBeam line: 225 upvalues: Math_upv_1 (copy, index: 1) Thread_upv_1 (copy, index: 2) ]] if a5 > 0 then local v13 = os.clock() while true do local v14 if a4 == nil then break end v14 = math.min((os.clock() - v13) / a5, 1) if a3 then a3.Transparency = NumberSequence.new(Math_upv_1.Lerp(0, 1, v14)) end if v14 == 1 then break else Thread_upv_1:Wait() end end if a1 then a1:Destroy() end if a2 then a2:Destroy() end if a3 then a3:Destroy() end if not a4 then return end a4:Destroy() else if a1 then a1:Destroy() end if a2 then a2:Destroy() end if a3 then a3:Destroy() end if a4 then a4:Destroy() end end end local function MakeBloodFX(a1, a2, a3, a4, a5, a6, a7, a8, a9) --[[ name: MakeBloodFX line: 510 upvalues: Workspace_upv_1 (copy, index: 1) Thread_upv_1 (copy, index: 2) Debris_upv_1 (copy, index: 3) u1 (copy, index: 4) FadeBeam (copy, index: 5) ]] local v15 = CFrame.new(a2, a2 + a3) local v16 = a6.BloodEnabled local v17 = a6.ChargedShotAdvanceEnabled local v18 = a7.ChargeLevel local v19 = a6.ChargeAlterTable.HitCharSndIDs local HitCharSndIDs_1 = a6.HitCharSndIDs local v20 if v19 ~= nil and v17 and v18 then v20 = ((v18 == 1) and (v19.Level1)) or (((v18 == 2) and (v19.Level2)) or (((v18 == 3) and (v19.Level3)) or HitCharSndIDs_1)) else v20 = HitCharSndIDs_1 end local ChargedShotAdvanceEnabled_1 = a6.ChargedShotAdvanceEnabled local ChargeLevel_1 = a7.ChargeLevel local v21 = a6.ChargeAlterTable.HitCharSndPitchMin local HitCharSndPitchMin_1 = a6.HitCharSndPitchMin if v21 ~= nil and ChargedShotAdvanceEnabled_1 and ChargeLevel_1 then v17 = ((ChargeLevel_1 == 1) and (v21.Level1)) or (((ChargeLevel_1 == 2) and (v21.Level2)) or (((ChargeLevel_1 == 3) and (v21.Level3)) or HitCharSndPitchMin_1)) else v17 = HitCharSndPitchMin_1 end local ChargedShotAdvanceEnabled_2 = a6.ChargedShotAdvanceEnabled local ChargeLevel_2 = a7.ChargeLevel local v22 = a6.ChargeAlterTable.HitCharSndPitchMax local HitCharSndPitchMax_1 = a6.HitCharSndPitchMax if v22 ~= nil and ChargedShotAdvanceEnabled_2 and ChargeLevel_2 then v18 = ((ChargeLevel_2 == 1) and (v22.Level1)) or (((ChargeLevel_2 == 2) and (v22.Level2)) or (((ChargeLevel_2 == 3) and (v22.Level3)) or HitCharSndPitchMax_1)) else v18 = HitCharSndPitchMax_1 end local ChargedShotAdvanceEnabled_3 = a6.ChargedShotAdvanceEnabled local ChargeLevel_3 = a7.ChargeLevel local v23 = a6.ChargeAlterTable.HitCharSndVolume local v24 = a6.HitCharSndVolume if v23 ~= nil and ChargedShotAdvanceEnabled_3 and ChargeLevel_3 then v19 = ((ChargeLevel_3 == 1) and (v23.Level1)) or (((ChargeLevel_3 == 2) and (v23.Level2)) or (((ChargeLevel_3 == 3) and (v23.Level3)) or v24)) else v19 = v24 end local BloodWoundEnabled_1 = a6.BloodWoundEnabled local ChargedShotAdvanceEnabled_4 = a6.ChargedShotAdvanceEnabled local ChargeLevel_4 = a7.ChargeLevel local v25 = a6.ChargeAlterTable.BloodWoundTexture local BloodWoundTexture_1 = a6.BloodWoundTexture if v25 ~= nil and ChargedShotAdvanceEnabled_4 and ChargeLevel_4 then v22 = ((ChargeLevel_4 == 1) and (v25.Level1)) or (((ChargeLevel_4 == 2) and (v25.Level2)) or (((ChargeLevel_4 == 3) and (v25.Level3)) or BloodWoundTexture_1)) else v22 = BloodWoundTexture_1 end local ChargedShotAdvanceEnabled_5 = a6.ChargedShotAdvanceEnabled local ChargeLevel_5 = a7.ChargeLevel local BloodWoundSize_1 = a6.ChargeAlterTable.BloodWoundSize local BloodWoundSize_2 = a6.BloodWoundSize if BloodWoundSize_1 ~= nil and ChargedShotAdvanceEnabled_5 and ChargeLevel_5 then v23 = ((ChargeLevel_5 == 1) and (BloodWoundSize_1.Level1)) or (((ChargeLevel_5 == 2) and (BloodWoundSize_1.Level2)) or (((ChargeLevel_5 == 3) and (BloodWoundSize_1.Level3)) or BloodWoundSize_2)) else v23 = BloodWoundSize_2 end local ChargedShotAdvanceEnabled_6 = a6.ChargedShotAdvanceEnabled local ChargeLevel_6 = a7.ChargeLevel local BloodWoundTextureColor_1 = a6.ChargeAlterTable.BloodWoundTextureColor local BloodWoundTextureColor_2 = a6.BloodWoundTextureColor if BloodWoundTextureColor_1 ~= nil and ChargedShotAdvanceEnabled_6 and ChargeLevel_6 then v24 = ((ChargeLevel_6 == 1) and (BloodWoundTextureColor_1.Level1)) or (((ChargeLevel_6 == 2) and (BloodWoundTextureColor_1.Level2)) or (((ChargeLevel_6 == 3) and (BloodWoundTextureColor_1.Level3)) or BloodWoundTextureColor_2)) else v24 = BloodWoundTextureColor_2 end local ChargedShotAdvanceEnabled_7 = a6.ChargedShotAdvanceEnabled local ChargeLevel_7 = a7.ChargeLevel local BloodWoundPartColor_1 = a6.ChargeAlterTable.BloodWoundPartColor local BloodWoundPartColor_2 = a6.BloodWoundPartColor if BloodWoundPartColor_1 ~= nil and ChargedShotAdvanceEnabled_7 and ChargeLevel_7 then v25 = ((ChargeLevel_7 == 1) and (BloodWoundPartColor_1.Level1)) or (((ChargeLevel_7 == 2) and (BloodWoundPartColor_1.Level2)) or (((ChargeLevel_7 == 3) and (BloodWoundPartColor_1.Level3)) or BloodWoundPartColor_2)) else v25 = BloodWoundPartColor_2 end local BloodWoundVisibleTime_1 = a6.BloodWoundVisibleTime local BloodWoundFadeTime_upv_1 = a6.BloodWoundFadeTime if a9 then v16 = a6.MeleeBloodEnabled v20 = a6.MeleeHitCharSndIDs v17 = a6.MeleeHitCharSndPitchMin v18 = a6.MeleeHitCharSndPitchMax local MeleeHitCharSndVolume_1 = a6.MeleeHitCharSndVolume local MeleeBloodWoundEnabled_1 = a6.MeleeBloodWoundEnabled local MeleeBloodWoundTexture_1 = a6.MeleeBloodWoundTexture local MeleeBloodWoundSize_1 = a6.MeleeBloodWoundSize v24 = a6.MeleeBloodWoundTextureColor local MeleeBloodWoundVisibleTime_1 = a6.MeleeBloodWoundVisibleTime local _ = a6.MeleeBloodWoundFadeTime local v30 = a6.MeleeBloodWoundPartColor v19, v21, v23, v22, v25 = MeleeHitCharSndVolume_1, MeleeBloodWoundEnabled_1, MeleeBloodWoundSize_1, MeleeBloodWoundTexture_1, MeleeBloodWoundVisibleTime_1 else v21 = BloodWoundEnabled_1 end if v16 then local v26 = Instance.new("Attachment") v26.CFrame = v15 v26.Parent = Workspace_upv_1.Terrain local v27 = Instance.new("Sound") v27.SoundId = "rbxassetid://" .. v20[math.random(1, #v20)] v27.PlaybackSpeed = Random.new():NextNumber(v17, v18) v27.Volume = v19 v27.Parent = v26 for _, value_2 in pairs(a7.BloodEffectFolder:GetChildren()) do if value_2.ClassName ~= "ParticleEmitter" then continue end local u8 = 1 local u9 = value_2:Clone() u9.Parent = v26 if u9:FindFirstChild("EmitCount") then local v31 = u9.EmitCount.Value end Thread_upv_1:Delay( 0.01, function() --[[ line: 600 upvalues: u9 (copy, index: 1) u8 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u9:Emit(u8) Debris_upv_1:AddItem(u9, u9.Lifetime.Max) end ) end v27:Play() Debris_upv_1:AddItem(v26, 10) if v21 then local u10 = Instance.new("Attachment") u10.Parent = (a5 and a1) or (Workspace_upv_1.Terrain) u10.WorldCFrame = v15 * CFrame.Angles(1.5707963267948966, math.pi, 0) if a5 then local u11 = Instance.new("Attachment") local u12 = Instance.new("Attachment") local u13 = u1:Clone() u13.Width0 = v23 u13.Width1 = v23 u13.Texture = "rbxassetid://" .. v22[math.random(1, #v22)] u13.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, v24), ColorSequenceKeypoint.new(1, v24)}) if v25 then local v28 = (a1 and (a1.Color)) or (Color3.fromRGB(255, 255, 255)) if a1 then local v29 = a1:IsA("Terrain") if v29 then v28 = Workspace_upv_1.Terrain:GetMaterialColor(a4 or (Enum.Material.Sand)) end end u13.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, v28), ColorSequenceKeypoint.new(1, v28)}) end u13.Attachment0 = u11 u13.Attachment1 = u12 u11.Parent = a1 u12.Parent = a1 u11.WorldCFrame = u10.WorldCFrame * CFrame.new(v23 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, 0, 0) u12.WorldCFrame = u10.WorldCFrame * CFrame.new(-v23 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, math.pi, 0) u13.Parent = Workspace_upv_1.Terrain Thread_upv_1:Delay( BloodWoundVisibleTime_1, function() --[[ line: 645 upvalues: FadeBeam (copy, index: 1) u11 (copy, index: 2) u12 (copy, index: 3) u13 (copy, index: 4) u10 (copy, index: 5) BloodWoundFadeTime_upv_1 (ref, index: 6) a8 (copy, index: 7) ]] FadeBeam(u11, u12, u13, u10, BloodWoundFadeTime_upv_1, a8) end ) else Debris_upv_1:AddItem(u10, 5) end end end end local function MakeImpactFX(a1, a2, a3, a4, a5, a6, a7, a8, a9) --[[ name: MakeImpactFX line: 307 upvalues: Workspace_upv_1 (copy, index: 1) Thread_upv_1 (copy, index: 2) Debris_upv_1 (copy, index: 3) u1 (copy, index: 4) FadeBeam (copy, index: 5) ]] local u14 = CFrame.new(a2, a2 + a3) local v30 = a6.HitEffectEnabled local u15 = a6.ChargedShotAdvanceEnabled local u16 = a7.ChargeLevel local u17 = a6.ChargeAlterTable.HitSoundIDs local _ = a6.HitSoundIDs local MeleeHitSoundIDs_upv_1 if u17 ~= nil and u15 then if u16 then end end local ChargedShotAdvanceEnabled_8 = a6.ChargedShotAdvanceEnabled local ChargeLevel_8 = a7.ChargeLevel local v31 = a6.ChargeAlterTable.HitSoundPitchMin local HitSoundPitchMin_1 = a6.HitSoundPitchMin if v31 ~= nil and ChargedShotAdvanceEnabled_8 and ChargeLevel_8 then u15 = ((ChargeLevel_8 == 1) and (v31.Level1)) or (((ChargeLevel_8 == 2) and (v31.Level2)) or (((ChargeLevel_8 == 3) and (v31.Level3)) or HitSoundPitchMin_1)) else u15 = HitSoundPitchMin_1 end local ChargedShotAdvanceEnabled_9 = a6.ChargedShotAdvanceEnabled local ChargeLevel_9 = a7.ChargeLevel local HitSoundPitchMax_1 = a6.ChargeAlterTable.HitSoundPitchMax local HitSoundPitchMax_2 = a6.HitSoundPitchMax if HitSoundPitchMax_1 ~= nil and ChargedShotAdvanceEnabled_9 and ChargeLevel_9 then u16 = ((ChargeLevel_9 == 1) and (HitSoundPitchMax_1.Level1)) or (((ChargeLevel_9 == 2) and (HitSoundPitchMax_1.Level2)) or (((ChargeLevel_9 == 3) and (HitSoundPitchMax_1.Level3)) or HitSoundPitchMax_2)) else u16 = HitSoundPitchMax_2 end local ChargedShotAdvanceEnabled_10 = a6.ChargedShotAdvanceEnabled local ChargeLevel_10 = a7.ChargeLevel local u18 = a6.ChargeAlterTable.HitSoundVolume local HitSoundVolume_1 = a6.HitSoundVolume if u18 ~= nil and ChargedShotAdvanceEnabled_10 and ChargeLevel_10 then u17 = ((ChargeLevel_10 == 1) and (u18.Level1)) or (((ChargeLevel_10 == 2) and (u18.Level2)) or (((ChargeLevel_10 == 3) and (u18.Level3)) or HitSoundVolume_1)) else u17 = HitSoundVolume_1 end local ChargedShotAdvanceEnabled_11 = a6.ChargedShotAdvanceEnabled local ChargeLevel_11 = a7.ChargeLevel local u19 = a6.ChargeAlterTable.CustomHitEffect local u20 = a6.CustomHitEffect if u19 ~= nil and ChargedShotAdvanceEnabled_11 and ChargeLevel_11 then v31 = ((ChargeLevel_11 == 1) and (u19.Level1)) or (((ChargeLevel_11 == 2) and (u19.Level2)) or (((ChargeLevel_11 == 3) and (u19.Level3)) or u20)) else v31 = u20 end local BulletHoleEnabled_upv_1 = a6.BulletHoleEnabled local ChargedShotAdvanceEnabled_12 = a6.ChargedShotAdvanceEnabled local ChargeLevel_12 = a7.ChargeLevel local BulletHoleSize_1 = a6.ChargeAlterTable.BulletHoleSize local BulletHoleSize_2 = a6.BulletHoleSize if BulletHoleSize_1 ~= nil and ChargedShotAdvanceEnabled_12 and ChargeLevel_12 then u18 = ((ChargeLevel_12 == 1) and (BulletHoleSize_1.Level1)) or (((ChargeLevel_12 == 2) and (BulletHoleSize_1.Level2)) or (((ChargeLevel_12 == 3) and (BulletHoleSize_1.Level3)) or BulletHoleSize_2)) else u18 = BulletHoleSize_2 end local ChargedShotAdvanceEnabled_13 = a6.ChargedShotAdvanceEnabled local ChargeLevel_13 = a7.ChargeLevel local BulletHoleTexture_1 = a6.ChargeAlterTable.BulletHoleTexture local BulletHoleTexture_2 = a6.BulletHoleTexture if BulletHoleTexture_1 ~= nil and ChargedShotAdvanceEnabled_13 and ChargeLevel_13 then local v32 = ((ChargeLevel_13 == 1) and (BulletHoleTexture_1.Level1)) or (((ChargeLevel_13 == 2) and (BulletHoleTexture_1.Level2)) or (((ChargeLevel_13 == 3) and (BulletHoleTexture_1.Level3)) or BulletHoleTexture_2)) end local ChargedShotAdvanceEnabled_14 = a6.ChargedShotAdvanceEnabled local ChargeLevel_14 = a7.ChargeLevel local PartColor_1 = a6.ChargeAlterTable.PartColor local PartColor_2 = a6.PartColor if PartColor_1 ~= nil and ChargedShotAdvanceEnabled_14 and ChargeLevel_14 then u20 = ((ChargeLevel_14 == 1) and (PartColor_1.Level1)) or (((ChargeLevel_14 == 2) and (PartColor_1.Level2)) or (((ChargeLevel_14 == 3) and (PartColor_1.Level3)) or PartColor_2)) else u20 = PartColor_2 end local BulletHoleVisibleTime_upv_1 = a6.BulletHoleVisibleTime local BulletHoleFadeTime_upv_1 = a6.BulletHoleFadeTime if a9 then v30 = a6.MeleeHitEffectEnabled MeleeHitSoundIDs_upv_1 = a6.MeleeHitSoundIDs u15 = a6.MeleeHitSoundPitchMin u16 = a6.MeleeHitSoundPitchMax local MeleeHitSoundVolume_1 = a6.MeleeHitSoundVolume local CustomMeleeHitEffect_1 = a6.CustomMeleeHitEffect local v33 = a6.MarkerEffectEnabled local MarkerEffectSize_1 = a6.MarkerEffectSize local MarkerEffectTexture_1 = a6.MarkerEffectTexture local v34 = a6.MarkerEffectVisibleTime local v35 = a6.MarkerEffectFadeTime u17, u18, u19, u20, v31 = MeleeHitSoundVolume_1, MarkerEffectSize_1, MarkerEffectTexture_1, a6.MarkerPartColor, CustomMeleeHitEffect_1 end if v30 then local u21 = Instance.new("Attachment") u21.CFrame = u14 u21.Parent = Workspace_upv_1.Terrain local u22 = nil local function Spawner_1(a10) --[[ name: Spawner line: 383 upvalues: a7 (copy, index: 1) u22 (ref, index: 2) u15 (ref, index: 3) u16 (ref, index: 4) u17 (ref, index: 5) u21 (copy, index: 6) MeleeHitSoundIDs_upv_1 (ref, index: 7) a1 (copy, index: 8) Workspace_upv_1 (copy, index: 9) a4 (copy, index: 10) Thread_upv_1 (copy, index: 11) Debris_upv_1 (copy, index: 12) BulletHoleEnabled_upv_1 (ref, index: 13) a5 (copy, index: 14) u14 (copy, index: 15) u18 (ref, index: 16) u1 (copy, index: 17) u19 (ref, index: 18) u20 (ref, index: 19) BulletHoleVisibleTime_upv_1 (ref, index: 20) FadeBeam (copy, index: 21) BulletHoleFadeTime_upv_1 (ref, index: 22) a8 (copy, index: 23) ]] local v32 = nil if a7.HitEffectFolder[a10.Name]:FindFirstChild("MaterialSounds") then local v33 = a7.HitEffectFolder[a10.Name].MaterialSounds:GetChildren() v32 = v33[math.random(1, #v33)] if v32 ~= nil then u22 = v32:Clone() if v32:FindFirstChild("Pitch") then local v34 = u22 v34.PlaybackSpeed = Random.new():NextNumber(v32.Pitch.Min.Value, v32.Pitch.Max.Value) else local v35 = u22 v35.PlaybackSpeed = Random.new():NextNumber(u15, u16) end if v32:FindFirstChild("Volume") then local v36 = u22 v36.Volume = Random.new():NextNumber(v32.Volume.Min.Value, v32.Volume.Max.Value) else u22.Volume = u17 end u22.Parent = u21 end else u22 = Instance.new("Sound") local v37 = u22 v37.SoundId = "rbxassetid://" .. MeleeHitSoundIDs_upv_1[math.random(1, #MeleeHitSoundIDs_upv_1)] local v38 = u22 v38.PlaybackSpeed = Random.new():NextNumber(u15, u16) u22.Volume = u17 u22.Parent = u21 end local v39 = nil for _, value_3 in pairs(a7.HitEffectFolder[a10.Name]:GetChildren()) do if value_3.ClassName ~= "ParticleEmitter" then continue end local u23 = 1 local u24 = value_3:Clone() u24.Parent = u21 if u24:FindFirstChild("EmitCount") then local v46 = u24.EmitCount.Value end if not (u24.PartColor.Value) then Thread_upv_1:Delay( 0.01, function() --[[ line: 424 upvalues: u24 (copy, index: 1) u23 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u24:Emit(u23) Debris_upv_1:AddItem(u24, u24.Lifetime.Max) end ) continue end v39 = (a1 and (a1.Color)) or (Color3.fromRGB(255, 255, 255)) if not (a1) then u24.Color = ColorSequence.new(v39, v39) Thread_upv_1:Delay( 0.01, function() --[[ line: 424 upvalues: u24 (copy, index: 1) u23 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u24:Emit(u23) Debris_upv_1:AddItem(u24, u24.Lifetime.Max) end ) continue end local v40 = a1:IsA("Terrain") if v40 then v39 = Workspace_upv_1.Terrain:GetMaterialColor(a4 or (Enum.Material.Sand)) end u24.Color = ColorSequence.new(v39, v39) Thread_upv_1:Delay( 0.01, function() --[[ line: 424 upvalues: u24 (copy, index: 1) u23 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u24:Emit(u23) Debris_upv_1:AddItem(u24, u24.Lifetime.Max) end ) end u22:Play() if BulletHoleEnabled_upv_1 then local u25 = Instance.new("Attachment") u25.Parent = (a5 and a1) or (Workspace_upv_1.Terrain) u25.WorldCFrame = u14 * CFrame.Angles(1.5707963267948966, math.pi, 0) if a5 then local v41 = u18 local u26 = a7.HitEffectFolder[a10.Name]:FindFirstChild("MaterialHoleSize") if u26 then v41 = a7.HitEffectFolder[a10.Name].MaterialHoleSize.Value end u26 = Instance.new("Attachment") local u27 = Instance.new("Attachment") local u28 = u1:Clone() u28.Width0 = v41 u28.Width1 = v41 if a7.HitEffectFolder[a10.Name]:FindFirstChild("MaterialDecals") then local v42 = a7.HitEffectFolder[a10.Name].MaterialDecals:GetChildren() v39 = v42[math.random(1, #v42)] if v39 ~= nil then u28.Texture = "rbxassetid://" .. v39.Value if v39.PartColor.Value then local v43 = (a1 and (a1.Color)) or (Color3.fromRGB(255, 255, 255)) if a1 then local v44 = a1:IsA("Terrain") if v44 then v43 = Workspace_upv_1.Terrain:GetMaterialColor(a4 or (Enum.Material.Sand)) end end u28.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, v43), ColorSequenceKeypoint.new(1, v43)}) end end else u28.Texture = "rbxassetid://" .. u19[math.random(1, #u19)] if u20 then local v42 = (a1 and (a1.Color)) or (Color3.fromRGB(255, 255, 255)) if a1 then local v45 = a1:IsA("Terrain") if v45 then v42 = Workspace_upv_1.Terrain:GetMaterialColor(a4 or (Enum.Material.Sand)) end end u28.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, v42), ColorSequenceKeypoint.new(1, v42)}) end end u28.Attachment0 = u26 u28.Attachment1 = u27 u26.Parent = a1 u27.Parent = a1 u26.WorldCFrame = u25.WorldCFrame * CFrame.new(u18 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, 0, 0) u27.WorldCFrame = u25.WorldCFrame * CFrame.new(-u18 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, math.pi, 0) u28.Parent = Workspace_upv_1.Terrain Thread_upv_1:Delay( BulletHoleVisibleTime_upv_1, function() --[[ line: 487 upvalues: FadeBeam (copy, index: 1) u26 (copy, index: 2) u27 (copy, index: 3) u28 (copy, index: 4) u25 (copy, index: 5) BulletHoleFadeTime_upv_1 (ref, index: 6) a8 (copy, index: 7) ]] FadeBeam(u26, u27, u28, u25, BulletHoleFadeTime_upv_1, a8) end ) else Debris_upv_1:AddItem(u25, 5) end end end if not v31 and a7.HitEffectFolder:FindFirstChild(a1.Material.Name) then Spawner_1(a1.Material) else Spawner_1(a7.HitEffectFolder.Custom) end Debris_upv_1:AddItem(u21, 10) end end local function FindNearestEntity(a1, a2) --[[ name: FindNearestEntity line: 153 upvalues: PopulateHumanoids (copy, index: 1) Workspace_upv_1 (copy, index: 2) CastWithBlacklist (copy, index: 3) DamageModule_upv_1 (copy, index: 4) ]] Humanoids = {} PopulateHumanoids(a1, Workspace_upv_1) local v46 = a1.UserData.HomeData.HomingDistance local v47 = nil local v48 = nil local v49 = nil v47, v48, v49 = v47, v48, v49 for _, value_4 in ipairs(Humanoids) do local v50 = value_4.Parent:FindFirstChild("HumanoidRootPart") or (value_4.Parent:FindFirstChild("Torso") or (value_4.Parent:FindFirstChild("UpperTorso"))) if not (value_4) or not (v50) or not ((v50.Position - a2).Magnitude < v46 + (v50.Size.Magnitude / 2.5)) or not (value_4.Health > 0) then continue end if a1.UserData.HomeData.HomeThroughWall then local v51 = DamageModule_upv_1.CanDamage(value_4.Parent, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) if v51 then local Parent_1 = value_4.Parent v46, v47, v48, v49 = (a2 - v50.Position).Magnitude, Parent_1, value_4, v50 end else local v52 = CastWithBlacklist(a1, a2, (v50.CFrame.p - a2).Unit * 999, a1.UserData.IgnoreList, true) if not (v52) then continue end local v53 = v52:IsDescendantOf(value_4.Parent) if not (v53) then continue end local v54 = DamageModule_upv_1.CanDamage(value_4.Parent, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) if v54 then local Parent_2 = value_4.Parent v46, v47, v48, v49 = (a2 - v50.Position).Magnitude, Parent_2, value_4, v50 end end end return v47, v48, v49 end local function OnRayFinalHit(a1, a2, a3, a4, a5, a6) --[[ name: OnRayFinalHit line: 655 upvalues: CurrentCamera_upv_1 (copy, index: 1) ShatterGlass_upv_1 (copy, index: 2) MakeImpactFX (copy, index: 3) MakeBloodFX (copy, index: 4) Thread_upv_1 (copy, index: 5) InflictTarget_upv_1 (copy, index: 6) Workspace_upv_1 (copy, index: 7) Debris_upv_1 (copy, index: 8) u1 (copy, index: 9) FadeBeam (copy, index: 10) DamageModule_upv_1 (copy, index: 11) LocalPlayer_upv_1 (copy, index: 12) ]] local v55 = (a4 and (a4.Position)) or (a1.UserData.SegmentOrigin) local _, v56 = CurrentCamera_upv_1:WorldToScreenPoint(v55) local v57 = v56 and ((v55 - CurrentCamera_upv_1.CFrame.p).Magnitude <= 400) local v58 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_15 = a1.UserData.Misc.ChargeLevel local ExplosiveEnabled_1 = a1.UserData.ClientModule.ChargeAlterTable.ExplosiveEnabled local ExplosiveEnabled_2 = a1.UserData.ClientModule.ExplosiveEnabled if ExplosiveEnabled_1 ~= nil and v58 and ChargeLevel_15 then _ = ((ChargeLevel_15 == 1) and (ExplosiveEnabled_1.Level1)) or (((ChargeLevel_15 == 2) and (ExplosiveEnabled_1.Level2)) or (((ChargeLevel_15 == 3) and (ExplosiveEnabled_1.Level3)) or ExplosiveEnabled_2)) else _ = ExplosiveEnabled_2 end local v59 = nil if _ then local v60, v61, u30 = nil, nil, nil if a1.UserData.ClientModule.ExplosionSoundEnabled then local ChargedShotAdvanceEnabled_15 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_16 = a1.UserData.Misc.ChargeLevel v60 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionSoundIDs local ExplosionSoundIDs_1 = a1.UserData.ClientModule.ExplosionSoundIDs if v60 ~= nil and ChargedShotAdvanceEnabled_15 and ChargeLevel_16 then if ChargeLevel_16 ~= 1 then local v63 = nil if ChargeLevel_16 ~= 2 then local v106 if ChargeLevel_16 ~= 3 then _ = ExplosionSoundIDs_1 else v106 = v60.Level3 _ = v60.Level3 or ExplosionSoundIDs_1 end else v63 = v60.Level2 if v63 then _ = v63 else local v106 if ChargeLevel_16 ~= 3 then _ = ExplosionSoundIDs_1 else v106 = v60.Level3 _ = v60.Level3 or ExplosionSoundIDs_1 end end end else _ = v60.Level1 if not (_) then local v63 = nil if ChargeLevel_16 ~= 2 then local v106 if ChargeLevel_16 ~= 3 then _ = ExplosionSoundIDs_1 else v106 = v60.Level3 _ = v60.Level3 or ExplosionSoundIDs_1 end else v63 = v60.Level2 if v63 then _ = v63 else local v106 if ChargeLevel_16 ~= 3 then _ = ExplosionSoundIDs_1 else v106 = v60.Level3 _ = v60.Level3 or ExplosionSoundIDs_1 end end end end end else _ = ExplosionSoundIDs_1 end local v64 = Instance.new("Attachment") v64.CFrame = CFrame.new(v55) v64.Parent = Workspace_upv_1.Terrain local v65 = Instance.new("Sound") v65.SoundId = "rbxassetid://" .. _[math.random(1, #_)] local v66 = Random.new() local v62 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_17 = a1.UserData.Misc.ChargeLevel v61 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionSoundPitchMin local ExplosionSoundPitchMin_1 = a1.UserData.ClientModule.ExplosionSoundPitchMin local u31 if v61 ~= nil and v62 and ChargeLevel_17 then u31 = ((ChargeLevel_17 == 1) and (v61.Level1)) or (((ChargeLevel_17 == 2) and (v61.Level2)) or (((ChargeLevel_17 == 3) and (v61.Level3)) or ExplosionSoundPitchMin_1)) else u31 = ExplosionSoundPitchMin_1 end local ChargedShotAdvanceEnabled_16 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_18 = a1.UserData.Misc.ChargeLevel u30 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionSoundPitchMax local ExplosionSoundPitchMax_1 = a1.UserData.ClientModule.ExplosionSoundPitchMax if u30 ~= nil and ChargedShotAdvanceEnabled_16 and ChargeLevel_18 then local v67 = nil if ChargeLevel_18 ~= 1 then local v68 = nil if ChargeLevel_18 ~= 2 then local v107 if ChargeLevel_18 ~= 3 then v62 = ExplosionSoundPitchMax_1 else v107 = u30.Level3 v62 = u30.Level3 or ExplosionSoundPitchMax_1 end else v68 = u30.Level2 if v68 then v62 = v68 else local v107 if ChargeLevel_18 ~= 3 then v62 = ExplosionSoundPitchMax_1 else v107 = u30.Level3 v62 = u30.Level3 or ExplosionSoundPitchMax_1 end end end else v67 = u30.Level1 if v67 then v62 = v67 else local v68 = nil if ChargeLevel_18 ~= 2 then local v107 if ChargeLevel_18 ~= 3 then v62 = ExplosionSoundPitchMax_1 else v107 = u30.Level3 v62 = u30.Level3 or ExplosionSoundPitchMax_1 end else v68 = u30.Level2 if v68 then v62 = v68 else local v107 if ChargeLevel_18 ~= 3 then v62 = ExplosionSoundPitchMax_1 else v107 = u30.Level3 v62 = u30.Level3 or ExplosionSoundPitchMax_1 end end end end end else v62 = ExplosionSoundPitchMax_1 end v65.PlaybackSpeed = v66:NextNumber(u31, v62) local ChargedShotAdvanceEnabled_17 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_19 = a1.UserData.Misc.ChargeLevel v62 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionSoundVolume local ExplosionSoundVolume_1 = a1.UserData.ClientModule.ExplosionSoundVolume if v62 ~= nil and ChargedShotAdvanceEnabled_17 and ChargeLevel_19 then if ChargeLevel_19 == 1 then v60 = v62.Level1 if not (v60) then if ChargeLevel_19 == 2 then v60 = v62.Level2 if not v60 then if ChargeLevel_19 ~= 3 then v60 = ExplosionSoundVolume_1 else v60 = v62.Level3 v60 = v60 or ExplosionSoundVolume_1 end end elseif ChargeLevel_19 ~= 3 then v60 = ExplosionSoundVolume_1 else v60 = v62.Level3 v60 = v60 or ExplosionSoundVolume_1 end end elseif ChargeLevel_19 == 2 then v60 = v62.Level2 if not v60 then if ChargeLevel_19 ~= 3 then v60 = ExplosionSoundVolume_1 else v60 = v62.Level3 v60 = v60 or ExplosionSoundVolume_1 end end elseif ChargeLevel_19 ~= 3 then v60 = ExplosionSoundVolume_1 else v60 = v62.Level3 v60 = v60 or ExplosionSoundVolume_1 end else v60 = ExplosionSoundVolume_1 end v65.Volume = v60 v65.Parent = v64 v65:Play() Debris_upv_1:AddItem(v64, 10) end local u32 = Instance.new("Explosion") local v69 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_20 = a1.UserData.Misc.ChargeLevel v59 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionRadius local ExplosionRadius_1 = a1.UserData.ClientModule.ExplosionRadius if v59 ~= nil and v69 and ChargeLevel_20 then local v70 = nil if ChargeLevel_20 ~= 1 then local v71 = nil if ChargeLevel_20 ~= 2 then local v108 if ChargeLevel_20 ~= 3 then v58 = ExplosionRadius_1 else v108 = v59.Level3 v58 = v59.Level3 or ExplosionRadius_1 end else v71 = v59.Level2 if v71 then v58 = v71 else local v108 if ChargeLevel_20 ~= 3 then v58 = ExplosionRadius_1 else v108 = v59.Level3 v58 = v59.Level3 or ExplosionRadius_1 end end end else v70 = v59.Level1 if v70 then v58 = v70 else local v71 = nil if ChargeLevel_20 ~= 2 then local v108 if ChargeLevel_20 ~= 3 then v58 = ExplosionRadius_1 else v108 = v59.Level3 v58 = v59.Level3 or ExplosionRadius_1 end else v71 = v59.Level2 if v71 then v58 = v71 else local v108 if ChargeLevel_20 ~= 3 then v58 = ExplosionRadius_1 else v108 = v59.Level3 v58 = v59.Level3 or ExplosionRadius_1 end end end end end else v58 = ExplosionRadius_1 end u32.BlastRadius = v58 u32.BlastPressure = 0 u32.ExplosionType = Enum.ExplosionType.NoCraters u32.Position = v55 u32.Parent = CurrentCamera_upv_1 v58 = (a4 and (CFrame.new(a4.Position, a4.Position + a4.Normal))) or (CFrame.new(a1.UserData.SegmentOrigin, a1.UserData.SegmentOrigin + a1.UserData.SegmentDirection)) if v57 then if a4 then local ChargedShotAdvanceEnabled_18 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_21 = a1.UserData.Misc.ChargeLevel local v72 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterEnabled local ExplosionCraterEnabled_1 = a1.UserData.ClientModule.ExplosionCraterEnabled if v72 ~= nil and ChargedShotAdvanceEnabled_18 and ChargeLevel_21 then v69 = ((ChargeLevel_21 == 1) and (v72.Level1)) or (((ChargeLevel_21 == 2) and (v72.Level2)) or (((ChargeLevel_21 == 3) and (v72.Level3)) or ExplosionCraterEnabled_1)) else v69 = ExplosionCraterEnabled_1 end if v69 and a4.Instance then local v73 = nil if a4.Instance.Parent then v69 = a4.Instance:FindFirstAncestorOfClass("Model") v73 = v69 and (v69:FindFirstChildOfClass("Humanoid")) local v74, v75, v76, v77, v78 = nil, nil, nil, nil, nil if not (v73) then local u33 = Instance.new("Attachment") u33.Parent = a4.Instance or (Workspace_upv_1.Terrain) u33.WorldCFrame = v58 * CFrame.Angles(1.5707963267948966, math.pi, 0) v72 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_22 = a1.UserData.Misc.ChargeLevel v74 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterSize local ExplosionCraterSize_1 = a1.UserData.ClientModule.ExplosionCraterSize if v74 ~= nil and v72 and ChargeLevel_22 then v59 = ((ChargeLevel_22 == 1) and (v74.Level1)) or (((ChargeLevel_22 == 2) and (v74.Level2)) or (((ChargeLevel_22 == 3) and (v74.Level3)) or ExplosionCraterSize_1)) else v59 = ExplosionCraterSize_1 end local ChargedShotAdvanceEnabled_19 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_23 = a1.UserData.Misc.ChargeLevel v75 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterTexture u30 = a1.UserData.ClientModule.ExplosionCraterTexture if v75 ~= nil and ChargedShotAdvanceEnabled_19 and ChargeLevel_23 then local v79 = nil if ChargeLevel_23 ~= 1 then local v80 = nil if ChargeLevel_23 ~= 2 then local v109 if ChargeLevel_23 ~= 3 then v72 = u30 else v109 = v75.Level3 v72 = v75.Level3 or u30 end else v80 = v75.Level2 if v80 then v72 = v80 else local v109 if ChargeLevel_23 ~= 3 then v72 = u30 else v109 = v75.Level3 v72 = v75.Level3 or u30 end end end else v79 = v75.Level1 if v79 then v72 = v79 else local v80 = nil if ChargeLevel_23 ~= 2 then local v109 if ChargeLevel_23 ~= 3 then v72 = u30 else v109 = v75.Level3 v72 = v75.Level3 or u30 end else v80 = v75.Level2 if v80 then v72 = v80 else local v109 if ChargeLevel_23 ~= 3 then v72 = u30 else v109 = v75.Level3 v72 = v75.Level3 or u30 end end end end end else v72 = u30 end local u34 = Instance.new("Attachment") local u35 = Instance.new("Attachment") local u36 = u1:Clone() u36.Width0 = v59 u36.Width1 = v59 u36.Texture = "rbxassetid://" .. v72[math.random(1, #v72)] local ChargedShotAdvanceEnabled_20 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_24 = a1.UserData.Misc.ChargeLevel v76 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterPartColor local ExplosionCraterPartColor_1 = a1.UserData.ClientModule.ExplosionCraterPartColor if v76 ~= nil and ChargedShotAdvanceEnabled_20 and ChargeLevel_24 then u30 = ((ChargeLevel_24 == 1) and (v76.Level1)) or (((ChargeLevel_24 == 2) and (v76.Level2)) or (((ChargeLevel_24 == 3) and (v76.Level3)) or ExplosionCraterPartColor_1)) else u30 = ExplosionCraterPartColor_1 end if u30 then v72 = ((a4.Instance) and (a4.Instance.Color)) or (Color3.fromRGB(255, 255, 255)) if a4.Instance then local v81 = a4.Instance:IsA("Terrain") if v81 then v72 = Workspace_upv_1.Terrain:GetMaterialColor(a4.Material or (Enum.Material.Sand)) end end u36.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, v72), ColorSequenceKeypoint.new(1, v72)}) end u36.Attachment0 = u34 u36.Attachment1 = u35 u34.Parent = a4.Instance u35.Parent = a4.Instance u34.WorldCFrame = u33.WorldCFrame * CFrame.new(v59 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, 0, 0) u35.WorldCFrame = u33.WorldCFrame * CFrame.new(-v59 / 2, -0.01, 0) * CFrame.Angles(1.5707963267948966, math.pi, 0) u36.Parent = Workspace_upv_1.Terrain u30 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_25 = a1.UserData.Misc.ChargeLevel v77 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterVisibleTime local ExplosionCraterVisibleTime_1 = a1.UserData.ClientModule.ExplosionCraterVisibleTime if v77 ~= nil and u30 and ChargeLevel_25 then v59 = ((ChargeLevel_25 == 1) and (v77.Level1)) or (((ChargeLevel_25 == 2) and (v77.Level2)) or (((ChargeLevel_25 == 3) and (v77.Level3)) or ExplosionCraterVisibleTime_1)) else v59 = ExplosionCraterVisibleTime_1 end local ChargedShotAdvanceEnabled_21 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_26 = a1.UserData.Misc.ChargeLevel v78 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionCraterFadeTime local ExplosionCraterFadeTime_1 = a1.UserData.ClientModule.ExplosionCraterFadeTime if v78 ~= nil and ChargedShotAdvanceEnabled_21 and ChargeLevel_26 then u30 = ((ChargeLevel_26 == 1) and (v78.Level1)) or (((ChargeLevel_26 == 2) and (v78.Level2)) or (((ChargeLevel_26 == 3) and (v78.Level3)) or ExplosionCraterFadeTime_1)) else u30 = ExplosionCraterFadeTime_1 end Thread_upv_1:Delay( v59, function() --[[ line: 944 upvalues: FadeBeam (copy, index: 1) u34 (copy, index: 2) u35 (copy, index: 3) u36 (copy, index: 4) u33 (copy, index: 5) u30 (copy, index: 6) a1 (copy, index: 7) ]] FadeBeam(u34, u35, u36, u33, u30, a1.UserData.Replicate) end ) end end end end end if a1.UserData.ClientModule.CustomExplosion then u32.Visible = false if v57 then local v82 = Instance.new("Attachment") v82.CFrame = v58 v82.Parent = Workspace_upv_1.Terrain for v110, value_5 in pairs(a1.UserData.Misc.ExplosionEffectFolder:GetChildren()) do if value_5.ClassName ~= "ParticleEmitter" then continue end local u37 = 1 local u38 = value_5:Clone() u38.Parent = v82 if u38:FindFirstChild("EmitCount") then local v111 = u38.EmitCount.Value end Thread_upv_1:Delay( 0.01, function() --[[ line: 971 upvalues: u38 (copy, index: 1) u37 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u38:Emit(u37) Debris_upv_1:AddItem(u38, u38.Lifetime.Max) end ) end Debris_upv_1:AddItem(v82, 10) end end local tbl_upv_4 = {} local u39 = false u32.Hit:Connect( function(a7, a8) --[[ line: 986 upvalues: a1 (copy, index: 1) u39 (ref, index: 2) tbl_upv_4 (copy, index: 3) u32 (copy, index: 4) DamageModule_upv_1 (copy, index: 5) Debris_upv_1 (copy, index: 6) LocalPlayer_upv_1 (copy, index: 7) a4 (copy, index: 8) Thread_upv_1 (copy, index: 9) InflictTarget_upv_1 (copy, index: 10) ShatterGlass_upv_1 (copy, index: 11) a3 (copy, index: 12) ]] if not a7 then return end if a1.UserData.Replicate then local v83 = u39 if v83 == false then local function searchUntilPlugin_upv_1(a9) --[[ name: searchUntilPlugin line: 988 upvalues: searchUntilPlugin_upv_1 (copy, index: 1) ]] if not (a9.Parent:FindFirstChild("DriveSeat")) and a9.Parent ~= game.Workspace then return searchUntilPlugin_upv_1(a9.Parent) end return a9.Parent end local u40 if a7.Parent:FindFirstChild("DriveSeat") or a7.Parent == game.Workspace then u40 = a7.Parent else u40 = searchUntilPlugin_upv_1(a7.Parent) end local v84 = nil local u41 = nil local v85 = nil if u40 and u40 ~= game.Workspace then v84 = u40:FindFirstChildOfClass("VehicleSeat") local _ = v84 and (u40:FindFirstChild("PrimaryPart")) v85 = v84 and u40.Health:FindFirstChildOfClass("IntValue") end local v100 = nil if a7.Parent and a7.Name == "HumanoidRootPart" or a7.Name == "Head" then local v87 = a7:FindFirstAncestorOfClass("Model") local u42 = v87 and (v87:FindFirstChildOfClass("Humanoid")) local u43 = v87 and (v87:FindFirstChild("HumanoidRootPart") or (v87:FindFirstChild("Head"))) if u42 and u43 and u42.Health > 0 and not (tbl_upv_4[u42]) then local _, v89 = nil, nil if a1.UserData.ClientModule.ExplosionKnockback then u39 = true local ChargedShotAdvanceEnabled_22 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_27 = a1.UserData.Misc.ChargeLevel local v88 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionKnockbackMultiplierOnTarget local v90 = a1.UserData.ClientModule.ExplosionKnockbackMultiplierOnTarget if v88 ~= nil and ChargedShotAdvanceEnabled_22 and ChargeLevel_27 then v100 = ((ChargeLevel_27 == 1) and (v88.Level1)) or (((ChargeLevel_27 == 2) and (v88.Level2)) or (((ChargeLevel_27 == 3) and (v88.Level3)) or v90)) else v100 = v90 end v88 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local v102 = a1.UserData.Misc.ChargeLevel _ = a1.UserData.ClientModule.ChargeAlterTable.ExplosionRadius local Unit_1 = (u43.Position - u32.Position).Unit local ChargedShotAdvanceEnabled_23 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_28 = a1.UserData.Misc.ChargeLevel v89 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionKnockbackPower local ExplosionKnockbackPower_1 = a1.UserData.ClientModule.ExplosionKnockbackPower if v89 ~= nil and ChargedShotAdvanceEnabled_23 and ChargeLevel_28 then local v92 = nil if ChargeLevel_28 ~= 1 then local v93 = nil if ChargeLevel_28 ~= 2 then local v103 if ChargeLevel_28 ~= 3 then v88 = ExplosionKnockbackPower_1 else v103 = v89.Level3 v88 = v89.Level3 or ExplosionKnockbackPower_1 end else v93 = v89.Level2 if v93 then v88 = v93 else local v103 if ChargeLevel_28 ~= 3 then v88 = ExplosionKnockbackPower_1 else v103 = v89.Level3 v88 = v89.Level3 or ExplosionKnockbackPower_1 end end end else v92 = v89.Level1 if v92 then v88 = v92 else local v93 = nil if ChargeLevel_28 ~= 2 then local v103 if ChargeLevel_28 ~= 3 then v88 = ExplosionKnockbackPower_1 else v103 = v89.Level3 v88 = v89.Level3 or ExplosionKnockbackPower_1 end else v93 = v89.Level2 if v93 then v88 = v93 else local v103 if ChargeLevel_28 ~= 3 then v88 = ExplosionKnockbackPower_1 else v103 = v89.Level3 v88 = v89.Level3 or ExplosionKnockbackPower_1 end end end end end else v88 = ExplosionKnockbackPower_1 end local v94 = Unit_1 * v88 local v95 = u43.Velocity - Vector3.new(0, u43.Velocity.y, 0) + Vector3.new(v94.X, 0, v94.Z) if DamageModule_upv_1.CanDamage(v87, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) then v88 = Instance.new("BodyVelocity") v88.MaxForce = Vector3.new(inf, 0, inf) v88.Velocity = v95 v88.Parent = u43 u43.Velocity = u43.Velocity + Vector3.new(0, v94.Y * v100, 0) Debris_upv_1:AddItem(v88, 0.25) else local v96 = nil if u42.Parent.Name == LocalPlayer_upv_1.Name then v88 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_29 = a1.UserData.Misc.ChargeLevel v96 = a1.UserData.ClientModule.ChargeAlterTable.ExplosionKnockbackMultiplierOnPlayer local v97 = a1.UserData.ClientModule.ExplosionKnockbackMultiplierOnPlayer if v96 ~= nil and v88 and ChargeLevel_29 then local v98 = nil if ChargeLevel_29 ~= 1 then local v99 = nil if ChargeLevel_29 ~= 2 then local v104 if ChargeLevel_29 ~= 3 then v100 = v97 else v104 = v96.Level3 v100 = v96.Level3 or v97 end else v99 = v96.Level2 if v99 then v100 = v99 else local v104 if ChargeLevel_29 ~= 3 then v100 = v97 else v104 = v96.Level3 v100 = v96.Level3 or v97 end end end else v98 = v96.Level1 if v98 then v100 = v98 else local v99 = nil if ChargeLevel_29 ~= 2 then local v104 if ChargeLevel_29 ~= 3 then v100 = v97 else v104 = v96.Level3 v100 = v96.Level3 or v97 end else v99 = v96.Level2 if v99 then v100 = v99 else local v104 if ChargeLevel_29 ~= 3 then v100 = v97 else v104 = v96.Level3 v100 = v96.Level3 or v97 end end end end end else v100 = v97 end v88 = Instance.new("BodyVelocity") v88.MaxForce = Vector3.new(inf, 0, inf) v88.Velocity = v95 v88.Parent = u43 u43.Velocity = u43.Velocity + Vector3.new(0, v94.Y * v100, 0) Debris_upv_1:AddItem(v88, 0.25) end end end local u44 = (a4 and (a4.Instance)) or a7 Thread_upv_1:Spawn( function() --[[ line: 1083 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u42 (copy, index: 3) u43 (copy, index: 4) u44 (copy, index: 5) a8 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u42, u43, u44, u44.Size, a1.UserData.Misc, a8) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (u44.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker)) end tbl_upv_4[u42] = true end return end if a7.Name == "_glass" then local ChargedShotAdvanceEnabled_24 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_30 = a1.UserData.Misc.ChargeLevel v100 = a1.UserData.ClientModule.ChargeAlterTable.CanBreakGlass local CanBreakGlass_1 = a1.UserData.ClientModule.CanBreakGlass local v101 if v100 ~= nil and ChargedShotAdvanceEnabled_24 and ChargeLevel_30 then v101 = ((ChargeLevel_30 == 1) and (v100.Level1)) or (((ChargeLevel_30 == 2) and (v100.Level2)) or (((ChargeLevel_30 == 3) and (v100.Level3)) or CanBreakGlass_1)) else v101 = CanBreakGlass_1 end if v101 then u39 = true ShatterGlass_upv_1:FireServer(a7, a7.Position, a3) return end end if v84 then local SeatPart_1 = game.Players.LocalPlayer.Character.Humanoid.SeatPart if v85.Value == 0 or SeatPart_1 and SeatPart_1.Parent and SeatPart_1.Parent.Parent and SeatPart_1.Parent.Parent == u40 then return end u39 = true Thread_upv_1:Spawn( function() --[[ line: 1133 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u40 (ref, index: 3) u41 (ref, index: 4) a4 (copy, index: 5) a8 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u40, u41, a4.Instance, a4.Instance.Size, a1.UserData.Misc, a8) end ) if not a1.UserData.Tool or not a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then return end a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker), true) end end end end ) elseif a4 and a4.Instance then if a4.Instance.Parent then local v102 = nil if a4.Instance.Name == "_glass" then local ChargedShotAdvanceEnabled_25 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_31 = a1.UserData.Misc.ChargeLevel v102 = a1.UserData.ClientModule.ChargeAlterTable.CanBreakGlass local CanBreakGlass_2 = a1.UserData.ClientModule.CanBreakGlass if v102 ~= nil and ChargedShotAdvanceEnabled_25 and ChargeLevel_31 then _ = ((ChargeLevel_31 == 1) and (v102.Level1)) or (((ChargeLevel_31 == 2) and (v102.Level2)) or (((ChargeLevel_31 == 3) and (v102.Level3)) or CanBreakGlass_2)) else _ = CanBreakGlass_2 end if _ then if a1.UserData.Replicate then ShatterGlass_upv_1:FireServer(a4.Instance, a4.Position, a3) end return end end if a1.UserData.ClientModule.BlacklistParts[a4.Instance.Name] then if not v57 then return end MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) else _ = (a4.Position - a2).Magnitude local u45 = a4.Instance:FindFirstAncestorOfClass("Model") local u46 = u45 local v112 = u46 and (u45:FindFirstChildOfClass("Humanoid")) local u47 = u45 and (u45:FindFirstChild("HumanoidRootPart") or (u45:FindFirstChild("Head"))) local v103 = u45 local v104 = v103 and (u45:FindFirstChildOfClass("VehicleSeat")) local u31 = v104 and (u45:FindFirstChild("PrimaryPart")) local v105 = v103 and (u45.Health:FindFirstChildOfClass("IntValue")) if u46 and u46.Health > 0 and u47 and not (v103) then if v57 then MakeBloodFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end if a1.UserData.Replicate and u46.Health > 0 then Thread_upv_1:Spawn( function() --[[ line: 725 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u46 (copy, index: 3) u47 (copy, index: 4) a4 (copy, index: 5) _ (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u46, u47, a4.Instance, a4.Instance.Size, a1.UserData.Misc, u29) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker)) end end return end if v103 then local SeatPart_2 = game.Players.LocalPlayer.Character.Humanoid.SeatPart if v105.Value == 0 then return end if SeatPart_2 then if SeatPart_2.Parent then if SeatPart_2.Parent.Parent then if SeatPart_2.Parent.Parent == u45 then return end Thread_upv_1:Spawn( function() --[[ line: 763 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u45 (copy, index: 3) u31 (copy, index: 4) a4 (copy, index: 5) _ (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u45, u31, a4.Instance, a4.Instance.Size, a1.UserData.Misc, u29) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker), true) end else Thread_upv_1:Spawn( function() --[[ line: 763 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u45 (copy, index: 3) u31 (copy, index: 4) a4 (copy, index: 5) u29 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u45, u31, a4.Instance, a4.Instance.Size, a1.UserData.Misc, u29) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker), true) end end else Thread_upv_1:Spawn( function() --[[ line: 763 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u45 (copy, index: 3) u31 (copy, index: 4) a4 (copy, index: 5) u29 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u45, u31, a4.Instance, a4.Instance.Size, a1.UserData.Misc, u29) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker), true) end end else Thread_upv_1:Spawn( function() --[[ line: 763 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u45 (copy, index: 3) u31 (copy, index: 4) a4 (copy, index: 5) u29 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u45, u31, a4.Instance, a4.Instance.Size, a1.UserData.Misc, u29) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker), true) end end if not v57 then return end MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) elseif v57 then MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end end end end end local function CanRayHit(a1, a2, a3, a4, a5, a6) --[[ name: CanRayHit line: 1392 ]] if not a1.UserData.ClientModule.BlacklistParts[a4.Instance.Name] then local v106 = a4.Instance:FindFirstAncestorOfClass("Model") local v107 = v106 local _ = v107 and (v106:FindFirstChildOfClass("Humanoid")) local v108 = v106 and (v106:FindFirstChild("HumanoidRootPart") or (v106:FindFirstChild("Head"))) if v107 and v107.Health > 0 and v108 then if a1.UserData.BounceData.StopBouncingOn == "Humanoid" then return false elseif not (a1.UserData.CastBehavior.Hitscan) and a1.UserData.BounceData.SuperRicochet or a1.UserData.BounceData.CurrentBounces > 0 then return true else return false end end end if a1.UserData.BounceData.StopBouncingOn == "Object" then return false elseif not (a1.UserData.CastBehavior.Hitscan) and a1.UserData.BounceData.SuperRicochet or a1.UserData.BounceData.CurrentBounces > 0 then return true else return false end end local function OnRayExited(a1, a2, a3, a4, a5, a6) --[[ name: OnRayExited line: 1421 upvalues: CurrentCamera_upv_1 (copy, index: 1) MakeImpactFX (copy, index: 2) MakeBloodFX (copy, index: 3) ]] if a1.UserData.PenetrationData and a1.UserData.ClientModule.PenetrationType == "WallPenetration" then local v109 = a4.Position local _, v110 = CurrentCamera_upv_1:WorldToScreenPoint(v109) local v111 = v110 and ((v109 - CurrentCamera_upv_1.CFrame.p).Magnitude <= 400) if a4.Instance and a4.Instance.Parent then local v112 = nil if a4.Instance.Name == "_glass" then local ChargedShotAdvanceEnabled_26 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_32 = a1.UserData.Misc.ChargeLevel v112 = a1.UserData.ClientModule.ChargeAlterTable.CanBreakGlass local CanBreakGlass_3 = a1.UserData.ClientModule.CanBreakGlass local v113 if v112 ~= nil and ChargedShotAdvanceEnabled_26 and ChargeLevel_32 then v113 = ((ChargeLevel_32 == 1) and (v112.Level1)) or (((ChargeLevel_32 == 2) and (v112.Level2)) or (((ChargeLevel_32 == 3) and (v112.Level3)) or CanBreakGlass_3)) else v113 = CanBreakGlass_3 end if v113 then return end end if a1.UserData.ClientModule.BlacklistParts[a4.Instance.Name] then if v111 then MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end else v109 = a4.Instance:FindFirstAncestorOfClass("Model") local v114 = v109 local v117 = v114 and (v109:FindFirstChildOfClass("Humanoid")) local v115 = v109 and (v109:FindFirstChild("HumanoidRootPart") or (v109:FindFirstChild("Head"))) if v114 and v114.Health > 0 and v115 then if v111 then MakeBloodFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end elseif v111 then MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end end end end if not a4.Instance then return end if a4.Instance.Parent then local v116 = a1:DbgVisualizeHit(CFrame.new(a4.Position), true) if v116 == nil then return end v116.Color3 = Color3.fromRGB(13, 105, 172) end end local function UpdateParticle(a1, a2, a3, a4) --[[ name: UpdateParticle line: 1716 upvalues: CurrentCamera_upv_1 (copy, index: 1) ]] local v117 = nil if a1.UserData.BulletParticleData.MotionBlur then local v118 = os.clock() local v119 = CFrame.new().pointToObjectSpace(CurrentCamera_upv_1.CFrame, a4) local v120 if a1.UserData.BulletParticleData.T0 then v120 = (2 / (v118 - a1.UserData.BulletParticleData.T1)) * (v119 - a1.UserData.BulletParticleData.P1) - (v119 - a1.UserData.BulletParticleData.P0) / (v118 - a1.UserData.BulletParticleData.T0) else local v121 = (v119 - a1.UserData.BulletParticleData.P1) / (v118 - a1.UserData.BulletParticleData.T1) a1.UserData.BulletParticleData.V1 = v121 v120 = v121 end a1.UserData.BulletParticleData.T0 = a1.UserData.BulletParticleData.T1 a1.UserData.BulletParticleData.V0 = a1.UserData.BulletParticleData.V1 a1.UserData.BulletParticleData.P0 = a1.UserData.BulletParticleData.P1 a1.UserData.BulletParticleData.T1 = v118 a1.UserData.BulletParticleData.V1 = v120 a1.UserData.BulletParticleData.P1 = v119 local v122 = a1.UserData.BulletParticleData.T1 - a1.UserData.BulletParticleData.T0 v117 = a1.UserData.BulletParticleData.V0.Magnitude local Magnitude_1 = a1.UserData.BulletParticleData.V1.Magnitude a1.UserData.BulletParticleData.Attachment0.Position = CurrentCamera_upv_1.CFrame * a1.UserData.BulletParticleData.P0 a1.UserData.BulletParticleData.Attachment1.Position = CurrentCamera_upv_1.CFrame * a1.UserData.BulletParticleData.P1 if v117 > 1e-08 then a1.UserData.BulletParticleData.Attachment0.Axis = CFrame.new().vectorToWorldSpace(CurrentCamera_upv_1.CFrame, a1.UserData.BulletParticleData.V0 / v117) end if Magnitude_1 > 1e-08 then a1.UserData.BulletParticleData.Attachment1.Axis = CFrame.new().vectorToWorldSpace(CurrentCamera_upv_1.CFrame, a1.UserData.BulletParticleData.V1 / Magnitude_1) end local v123 = -a1.UserData.BulletParticleData.P0.Z local v124 = -a1.UserData.BulletParticleData.P1.Z local v125 = ((v123 < 0) and 0) or v123 local v126 = ((v124 < 0) and 0) or v124 local v127 = a1.UserData.BulletParticleData.BulletSize + a1.UserData.BulletParticleData.BulletBloom * v125 local v128 = a1.UserData.BulletParticleData.BulletSize + a1.UserData.BulletParticleData.BulletBloom * v126 for _, value_6 in next, a1.UserData.BulletParticleData.Effects do value_6.CurveSize0 = (v122 / 3) * v117 value_6.CurveSize1 = (v122 / 3) * Magnitude_1 value_6.Width0 = v127 value_6.Width1 = v128 value_6.Transparency = NumberSequence.new(1 - ((((4 * a1.UserData.BulletParticleData.BulletSize) * a1.UserData.BulletParticleData.BulletSize) / ((v127 + v128) * (((2 * ((a1.UserData.BulletParticleData.P1 - a1.UserData.BulletParticleData.P0) * Vector3.new(1, 1, 0)).Magnitude) + v127) + v128))) * a1.UserData.BulletParticleData.BulletBrightness)) end elseif (a2 - a3).Magnitude > 0 then local v129 = CFrame.new(a3, a2) - a3 local v130 = CFrame.Angles(0, 1.5707963267948966, 0) a1.UserData.BulletParticleData.Attachment0.CFrame = (CFrame.new(a2) * v129) * v130 a1.UserData.BulletParticleData.Attachment1.CFrame = CFrame.new(a3, a2) * v130 end end local function OnRayTerminated(a1, a2, a3) --[[ name: OnRayTerminated line: 2150 upvalues: u7 (ref, index: 1) CurrentCamera_upv_1 (copy, index: 2) LocalPlayer_upv_1 (copy, index: 3) Thread_upv_1 (copy, index: 4) Debris_upv_1 (copy, index: 5) ]] if a1.UserData.LaserData.UpdateLaserTrail then a1.UserData.LaserData.UpdateLaserTrail:Fire(a1.UserData.LaserData.LaserTrailId, a1.UserData.LaserData.LaserTrailContainer, true) end if a1.UserData.BulletParticleData then a1.UserData.BulletParticleData.Attachment0:Destroy() a1.UserData.BulletParticleData.Attachment1:Destroy() for _, value_7 in next, a1.UserData.BulletParticleData.Effects do value_7:Destroy() end end local CosmeticBulletObject_1 = a1.RayInfo.CosmeticBulletObject if CosmeticBulletObject_1 == nil then return end local _ = a1:GetPosition() local v131 = a1:GetVelocity() if a3 then if a1.UserData.DebrisData.DecayProjectile then local u48 if u7 <= 100 then u7 = u7 + 1 u48 = CosmeticBulletObject_1:Clone() u48.Name = "DecayProjectile" u48.CFrame = CosmeticBulletObject_1.CFrame u48.Anchored = a1.UserData.DebrisData.AnchorDecay u48.CanCollide = a1.UserData.DebrisData.CollideDecay if not (u48.Anchored) then if a1.UserData.DebrisData.VelocityInfluence then u48.Velocity = u48.CFrame.LookVector * v131.Magnitude else u48.Velocity = u48.CFrame.LookVector * a1.UserData.DebrisData.DecayVelocity end end for v137, value_8 in pairs(u48:GetDescendants()) do if not (value_8:IsA("PointLight")) and not (value_8:IsA("SurfaceLight")) and not (value_8:IsA("SpotLight")) or not (a1.UserData.DebrisData.DisableDebrisContents.DisableTrail) then if not (value_8:IsA("ParticleEmitter")) or not (a1.UserData.DebrisData.DisableDebrisContents.Particle) then if not (value_8:IsA("Trail")) or not (a1.UserData.DebrisData.DisableDebrisContents.Trail) then if not (value_8:IsA("Beam")) or not (a1.UserData.DebrisData.DisableDebrisContents.Beam) then if not (value_8:IsA("Sound")) then continue end if a1.UserData.DebrisData.DisableDebrisContents.Sound then value_8:Stop() continue end end value_8.Enabled = false continue end value_8.Enabled = false continue end value_8.Enabled = false continue end value_8.Enabled = false end u48.Parent = CurrentCamera_upv_1 u48:SetNetworkOwner(LocalPlayer_upv_1) Thread_upv_1:Delay( 5, function() --[[ line: 2204 upvalues: u48 (copy, index: 1) u7 (ref, index: 2) ]] if u48 then u48:Destroy() end u7 = u7 - 1 end ) end end elseif a2 then local v132 = a2.Instance.CFrame:pointToObjectSpace(a2.Position) if a1.UserData.DebrisData.DebrisProjectile and u7 <= 100 then u7 = u7 + 1 local u49 = CosmeticBulletObject_1:Clone() u49.Name = "DebrisProjectile" u49.CFrame = a1.UserData.DebrisData.NormalizeDebris and CFrame.new(a2.Position, a2.Position + a2.Normal) or a2.Instance.CFrame * CFrame.new(v132, v132 + a2.Instance.CFrame:vectorToObjectSpace(a1.UserData.SegmentVelocity.Unit)) u49.Anchored = a1.UserData.DebrisData.AnchorDebris u49.CanCollide = a1.UserData.DebrisData.CollideDebris if not (u49.Anchored) then local v134 = nil if a1.UserData.DebrisData.BounceDebris then local LookVector_1 = u49.CFrame.LookVector local v135 = LookVector_1 - 2 * LookVector_1:Dot(a2.Normal) * a2.Normal local BounceVelocity_1 = a1.UserData.DebrisData.BounceVelocity local Magnitude_2 = v131.Magnitude local ChargedShotAdvanceEnabled_27 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_33 = a1.UserData.Misc.ChargeLevel v134 = a1.UserData.ClientModule.ChargeAlterTable.BulletSpeed local BulletSpeed_1 = a1.UserData.ClientModule.BulletSpeed local v136 = nil if v134 ~= nil and ChargedShotAdvanceEnabled_27 and ChargeLevel_33 then if ChargeLevel_33 == 1 then v136 = v134.Level1 if not (v136) then if ChargeLevel_33 == 2 then v136 = v134.Level2 if not v136 then if ChargeLevel_33 ~= 3 then v136 = BulletSpeed_1 else v136 = v134.Level3 v136 = v136 or BulletSpeed_1 end end elseif ChargeLevel_33 ~= 3 then v136 = BulletSpeed_1 else v136 = v134.Level3 v136 = v136 or BulletSpeed_1 end end elseif ChargeLevel_33 == 2 then v136 = v134.Level2 if not v136 then if ChargeLevel_33 ~= 3 then v136 = BulletSpeed_1 else v136 = v134.Level3 v136 = v136 or BulletSpeed_1 end end elseif ChargeLevel_33 ~= 3 then v136 = BulletSpeed_1 else v136 = v134.Level3 v136 = v136 or BulletSpeed_1 end else v136 = BulletSpeed_1 end u49.Velocity = v135 * (BounceVelocity_1 * (Magnitude_2 / v136)) u49.CFrame = CFrame.new(u49.Position, u49.Position + u49.Velocity) end end for v138, value_9 in pairs(u49:GetDescendants()) do if not (value_9:IsA("PointLight")) and not (value_9:IsA("SurfaceLight")) and not (value_9:IsA("SpotLight")) or not (a1.UserData.DebrisData.DisableDebrisContents.DisableTrail) then if not (value_9:IsA("ParticleEmitter")) or not (a1.UserData.DebrisData.DisableDebrisContents.Particle) then if not (value_9:IsA("Trail")) or not (a1.UserData.DebrisData.DisableDebrisContents.Trail) then if not (value_9:IsA("Beam")) or not (a1.UserData.DebrisData.DisableDebrisContents.Beam) then if not (value_9:IsA("Sound")) then continue end if a1.UserData.DebrisData.DisableDebrisContents.Sound then value_9:Stop() continue end end value_9.Enabled = false continue end value_9.Enabled = false continue end value_9.Enabled = false continue end value_9.Enabled = false end u49.Parent = CurrentCamera_upv_1 u49:SetNetworkOwner(LocalPlayer_upv_1) Thread_upv_1:Delay( 5, function() --[[ line: 2275 upvalues: u49 (copy, index: 1) u7 (ref, index: 2) ]] if u49 then u49:Destroy() end u7 = u7 - 1 end ) end end CosmeticBulletObject_1.Transparency = 1 for v139, value_10 in pairs(CosmeticBulletObject_1:GetDescendants()) do if value_10:IsA("ParticleEmitter") or value_10:IsA("PointLight") or value_10:IsA("SurfaceLight") or value_10:IsA("SpotLight") or value_10:IsA("Trail") or value_10:IsA("Beam") or value_10:IsA("BillboardGui") or value_10:IsA("SurfaceGui") then value_10.Enabled = false continue end if value_10:IsA("Sound") then value_10:Stop() continue end if value_10:IsA("Decal") or value_10:IsA("Texture") or value_10:IsA("BasePart") then value_10.Transparency = 1 end end if a1.UserData.CastBehavior.CosmeticBulletProvider == nil then Debris_upv_1:AddItem(CosmeticBulletObject_1, 5) elseif CosmeticBulletObject_1 ~= nil then a1.UserData.CastBehavior.CosmeticBulletProvider:ReturnPart(CosmeticBulletObject_1) end end function tbl_1.VisualizeHitEffect(a1, a2, a3, a4, a5, a6, a7, a8, a9) --[[ name: VisualizeHitEffect line: 2316 upvalues: VisualizeHitEffect_upv_1 (copy, index: 1) CurrentCamera_upv_1 (copy, index: 2) MakeImpactFX (copy, index: 3) MakeBloodFX (copy, index: 4) ]] if a9 then VisualizeHitEffect_upv_1:FireServer(a2, a3, a4, a5, a6, a7, a8) end local _, v137 = CurrentCamera_upv_1:WorldToScreenPoint(a4) if not v137 or not ((a4 - CurrentCamera_upv_1.CFrame.p).Magnitude <= 400) then return end if a2 == "Normal" then MakeImpactFX(a3, a4, a5, a6, true, a7, a8, a9, true) elseif a2 == "Blood" then MakeBloodFX(a3, a4, a5, a6, true, a7, a8, a9, true) end end local function CanRayPenetrate(a1, a2, a3, a4, a5, a6) --[[ name: CanRayPenetrate line: 1498 upvalues: CurrentCamera_upv_1 (copy, index: 1) DamageModule_upv_1 (copy, index: 2) Workspace_upv_1 (copy, index: 3) ShatterGlass_upv_1 (copy, index: 4) MakeImpactFX (copy, index: 5) OnRayExited (copy, index: 6) MakeBloodFX (copy, index: 7) Thread_upv_1 (copy, index: 8) InflictTarget_upv_1 (copy, index: 9) ]] local v138 = a4.Position local _, v139 = CurrentCamera_upv_1:WorldToScreenPoint(v138) local v140 = v139 and ((v138 - CurrentCamera_upv_1.CFrame.p).Magnitude <= 400) if a4.Instance and a4.Instance.Parent then if a1.UserData.ClientModule.IgnoreBlacklistedParts and a1.UserData.ClientModule.BlacklistParts[a4.Instance.Name] then return true end v138 = a4.Instance:FindFirstAncestorOfClass("Model") local u50 = v138 and (v138:FindFirstChildOfClass("Humanoid")) local v141 = a4.Instance:FindFirstAncestorOfClass("Tool") if a4.Instance.Name ~= "Missile" and a4.Instance.Name ~= "Handle" and a4.Instance.Name ~= "Effect" and a4.Instance.Name ~= "Bullet" and a4.Instance.Name ~= "Laser" and string.lower(a4.Instance.Name) ~= "water" and a4.Instance.Name ~= "Rail" and a4.Instance.Name ~= "Arrow" then if u50 and (u50.Health <= 0 or not DamageModule_upv_1.CanDamage(v138, a1.UserData.Character, a1.UserData.ClientModule.FriendlyFire) or a1.UserData.PenetrationData and table.find(a1.UserData.PenetrationData.HitHumanoids, u50) or a1.UserData.BounceData and table.find(a1.UserData.BounceData.BouncedHumanoids, u50)) then return true end if not (v141) then if a1.UserData.PenetrationData then if a1.UserData.ClientModule.PenetrationType ~= "WallPenetration" then if a1.UserData.ClientModule.PenetrationType == "HumanoidPenetration" and a1.UserData.PenetrationData.PenetrationAmount <= 0 then return false end elseif a1.UserData.PenetrationData.PenetrationDepth <= 0 then return false end local v142 = a4.Instance.Size.Magnitude * a3 local v143, v144, v145, v146 = Workspace_upv_1:FindPartOnRayWithWhitelist(Ray.new(a4.Position + v142, -v142), {a4.Instance}, a1.RayInfo.Parameters.IgnoreWater) local Magnitude_3 = (v144 - a4.Position).Magnitude local v147 = nil if a4.Instance.Name == "_glass" then local ChargedShotAdvanceEnabled_28 = a1.UserData.ClientModule.ChargedShotAdvanceEnabled local ChargeLevel_34 = a1.UserData.Misc.ChargeLevel v147 = a1.UserData.ClientModule.ChargeAlterTable.CanBreakGlass local CanBreakGlass_4 = a1.UserData.ClientModule.CanBreakGlass local v148 if v147 ~= nil and ChargedShotAdvanceEnabled_28 and ChargeLevel_34 then v148 = ((ChargeLevel_34 == 1) and (v147.Level1)) or (((ChargeLevel_34 == 2) and (v147.Level2)) or (((ChargeLevel_34 == 3) and (v147.Level3)) or CanBreakGlass_4)) else v148 = CanBreakGlass_4 end if v148 then if a1.UserData.Replicate then ShatterGlass_upv_1:FireServer(a4.Instance, a4.Position, a5.Unit) end if a1.UserData.ClientModule.PenetrationType == "WallPenetration" then local PenetrationData_1 = a1.UserData.PenetrationData PenetrationData_1.PenetrationDepth = PenetrationData_1.PenetrationDepth * (1 - ((Magnitude_3 / a1.UserData.PenetrationData.PenetrationDepth) / 1.1)) return true elseif a1.UserData.BounceData.LastBouncedObject then if a1.UserData.BounceData.LastBouncedObject ~= ((u50 and (u50.Parent)) or (a4.Instance)) then return false end return true else return false end end end if a1.UserData.ClientModule.BlacklistParts[a4.Instance.Name] then if a1.UserData.ClientModule.PenetrationType == "WallPenetration" then if v140 then MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end local PenetrationData_2 = a1.UserData.PenetrationData PenetrationData_2.PenetrationDepth = PenetrationData_2.PenetrationDepth * (1 - ((Magnitude_3 / a1.UserData.PenetrationData.PenetrationDepth) / 1.1)) if v143 then OnRayExited(a1, a4.Position + v142, -v142, {Instance = v143, Position = v144, Normal = v145, Material = v146}, a5, a6) end return true end else local Magnitude_upv_4 = (a4.Position - a2).Magnitude local u51 = v138 and (v138:FindFirstChild("HumanoidRootPart") or (v138:FindFirstChild("Head"))) if u50 and u50.Health > 0 and u51 then if not (table.find(a1.UserData.PenetrationData.HitHumanoids, u50)) then table.insert(a1.UserData.PenetrationData.HitHumanoids, u50) if v140 then MakeBloodFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end if a1.UserData.Replicate and u50.Health > 0 then Thread_upv_1:Spawn( function() --[[ line: 1620 upvalues: InflictTarget_upv_1 (copy, index: 1) a1 (copy, index: 2) u50 (copy, index: 3) u51 (copy, index: 4) a4 (copy, index: 5) Magnitude_upv_4 (copy, index: 6) ]] InflictTarget_upv_1:InvokeServer("Gun", a1.UserData.Tool, a1.UserData.ClientModule, u50, u51, a4.Instance, a4.Instance.Size, a1.UserData.Misc, Magnitude_upv_4) end ) if a1.UserData.Tool and a1.UserData.Tool.GunClient:FindFirstChild("MarkerEvent") then a1.UserData.Tool.GunClient.MarkerEvent:Fire(a1.UserData.ClientModule, (a4.Instance.Name == "Head") and (a1.UserData.ClientModule.HeadshotHitmarker)) end end if a1.UserData.ClientModule.PenetrationType == "WallPenetration" then local PenetrationData_3 = a1.UserData.PenetrationData PenetrationData_3.PenetrationDepth = PenetrationData_3.PenetrationDepth * (1 - ((Magnitude_3 / a1.UserData.PenetrationData.PenetrationDepth) / 1.1)) if v143 then OnRayExited(a1, a4.Position + v142, -v142, {Instance = v143, Position = v144, Normal = v145, Material = v146}, a5, a6) end elseif a1.UserData.ClientModule.PenetrationType == "HumanoidPenetration" then local PenetrationData_4 = a1.UserData.PenetrationData PenetrationData_4.PenetrationAmount = PenetrationData_4.PenetrationAmount - 1 end if a1.UserData.PenetrationData.PenetrationIgnoreDelay ~= math.huge then Thread_upv_1:Delay( a1.UserData.PenetrationData.PenetrationIgnoreDelay, function() --[[ line: 1661 upvalues: a1 (copy, index: 1) u50 (copy, index: 2) ]] local v149 = table.find(a1.UserData.PenetrationData.HitHumanoids, u50) if not v149 then return end table.remove(a1.UserData.PenetrationData.HitHumanoids, v149) end ) end return true elseif a1.UserData.BounceData.LastBouncedObject then if a1.UserData.BounceData.LastBouncedObject ~= ((u50 and (u50.Parent)) or (a4.Instance)) then return false end return true else return false end end if a1.UserData.ClientModule.PenetrationType == "WallPenetration" then if v140 then MakeImpactFX(a4.Instance, a4.Position, a4.Normal, a4.Material, true, a1.UserData.ClientModule, a1.UserData.Misc, a1.UserData.Replicate) end local PenetrationData_5 = a1.UserData.PenetrationData PenetrationData_5.PenetrationDepth = PenetrationData_5.PenetrationDepth * (1 - ((Magnitude_3 / a1.UserData.PenetrationData.PenetrationDepth) / 1.1)) if v143 then OnRayExited(a1, a4.Position + v142, -v142, {Instance = v143, Position = v144, Normal = v145, Material = v146}, a5, a6) end return true end end end if a1.UserData.BounceData.LastBouncedObject then if a1.UserData.BounceData.LastBouncedObject ~= ((u50 and (u50.Parent)) or (a4.Instance)) then return false end return true end return false end end return true end return false end function tbl_1.SimulateProjectile(a1, a2, a3, a4, a5, a6, a7, a8, a9) --[[ name: SimulateProjectile line: 2330 upvalues: Workspace_upv_1 (copy, index: 1) Thread_upv_1 (copy, index: 2) Debris_upv_1 (copy, index: 3) CurrentCamera_upv_1 (copy, index: 4) u6 (ref, index: 5) HttpService_upv_1 (copy, index: 6) Projectiles_upv_1 (copy, index: 7) tbl_upv_2 (copy, index: 8) PartCache_upv_1 (copy, index: 9) Bullets_upv_1 (copy, index: 10) FastCastRedux_upv_1 (copy, index: 11) CanRayPenetrate (copy, index: 12) CanRayHit (copy, index: 13) u2 (copy, index: 14) VisualizeBullet_upv_1 (copy, index: 15) RunService_upv_1 (copy, index: 16) InflictTarget_upv_1 (copy, index: 17) ]] if not a4 or not a2 or not a3 or not a6 or not (a6:IsDescendantOf(Workspace_upv_1)) and not (a6:IsDescendantOf(a2)) then return end if a7 then if a4.MuzzleFlashEnabled then local u52 = nil for _, value_11 in pairs(a8.MuzzleFolder:GetChildren()) do if value_11.ClassName ~= "ParticleEmitter" then continue end local u53 = 1 u52 = value_11:Clone() u52.Parent = a7 if u52:FindFirstChild("EmitCount") then local v188 = u52.EmitCount.Value end Thread_upv_1:Delay( 0.01, function() --[[ line: 2363 upvalues: u52 (copy, index: 1) u53 (ref, index: 2) Debris_upv_1 (copy, index: 3) ]] u52:Emit(u53) Debris_upv_1:AddItem(u52, u52.Lifetime.Max) end ) end end local v150, v151, v152 = nil, nil, nil if a4.MuzzleLightEnabled then local v153 = Instance.new("PointLight") local ChargedShotAdvanceEnabled_29 = a4.ChargedShotAdvanceEnabled local ChargeLevel_35 = a8.ChargeLevel v150 = a4.ChargeAlterTable.LightBrightness local LightBrightness_1 = a4.LightBrightness local v154 = nil if v150 ~= nil and ChargedShotAdvanceEnabled_29 and ChargeLevel_35 then if ChargeLevel_35 == 1 then v154 = v150.Level1 if not (v154) then if ChargeLevel_35 == 2 then v154 = v150.Level2 if not v154 then if ChargeLevel_35 ~= 3 then v154 = LightBrightness_1 else v154 = v150.Level3 v154 = v154 or LightBrightness_1 end end elseif ChargeLevel_35 ~= 3 then v154 = LightBrightness_1 else v154 = v150.Level3 v154 = v154 or LightBrightness_1 end end elseif ChargeLevel_35 == 2 then v154 = v150.Level2 if not v154 then if ChargeLevel_35 ~= 3 then v154 = LightBrightness_1 else v154 = v150.Level3 v154 = v154 or LightBrightness_1 end end elseif ChargeLevel_35 ~= 3 then v154 = LightBrightness_1 else v154 = v150.Level3 v154 = v154 or LightBrightness_1 end else v154 = LightBrightness_1 end v153.Brightness = v154 local ChargedShotAdvanceEnabled_30 = a4.ChargedShotAdvanceEnabled local ChargeLevel_36 = a8.ChargeLevel v151 = a4.ChargeAlterTable.LightColor local LightColor_1 = a4.LightColor if v151 ~= nil and ChargedShotAdvanceEnabled_30 and ChargeLevel_36 then if ChargeLevel_36 == 1 then v154 = v151.Level1 if not v154 then if ChargeLevel_36 == 2 then v154 = v151.Level2 if not v154 then if ChargeLevel_36 ~= 3 then v154 = LightColor_1 else v154 = v151.Level3 v154 = v154 or LightColor_1 end end elseif ChargeLevel_36 ~= 3 then v154 = LightColor_1 else v154 = v151.Level3 v154 = v154 or LightColor_1 end end elseif ChargeLevel_36 == 2 then v154 = v151.Level2 if not v154 then if ChargeLevel_36 ~= 3 then v154 = LightColor_1 else v154 = v151.Level3 v154 = v154 or LightColor_1 end end elseif ChargeLevel_36 ~= 3 then v154 = LightColor_1 else v154 = v151.Level3 v154 = v154 or LightColor_1 end else v154 = LightColor_1 end v153.Color = v154 local ChargedShotAdvanceEnabled_31 = a4.ChargedShotAdvanceEnabled local ChargeLevel_37 = a8.ChargeLevel v152 = a4.ChargeAlterTable.LightRange local LightRange_1 = a4.LightRange if v152 ~= nil and ChargedShotAdvanceEnabled_31 and ChargeLevel_37 then if ChargeLevel_37 == 1 then v154 = v152.Level1 if not v154 then if ChargeLevel_37 == 2 then v154 = v152.Level2 if not v154 then if ChargeLevel_37 ~= 3 then v154 = LightRange_1 else v154 = v152.Level3 v154 = v154 or LightRange_1 end end elseif ChargeLevel_37 ~= 3 then v154 = LightRange_1 else v154 = v152.Level3 v154 = v154 or LightRange_1 end end elseif ChargeLevel_37 == 2 then v154 = v152.Level2 if not v154 then if ChargeLevel_37 ~= 3 then v154 = LightRange_1 else v154 = v152.Level3 v154 = v154 or LightRange_1 end end elseif ChargeLevel_37 ~= 3 then v154 = LightRange_1 else v154 = v152.Level3 v154 = v154 or LightRange_1 end else v154 = LightRange_1 end v153.Range = v154 v153.Shadows = a4.LightShadows v153.Enabled = true v153.Parent = a7 Debris_upv_1:AddItem(v153, a4.VisibleTime) end end local v155 = a4.ChargedShotAdvanceEnabled local ChargeLevel_38 = a8.ChargeLevel local ShootType_1 = a4.ChargeAlterTable.ShootType local ShootType_2 = a4.ShootType local Parent_upv_3 if ShootType_1 ~= nil and v155 and ChargeLevel_38 then Parent_upv_3 = ((ChargeLevel_38 == 1) and (ShootType_1.Level1)) or (((ChargeLevel_38 == 2) and (ShootType_1.Level2)) or (((ChargeLevel_38 == 3) and (ShootType_1.Level3)) or ShootType_2)) else Parent_upv_3 = ShootType_2 end if Parent_upv_3 == "Custom" or not a2.Parent or not a2.Parent:FindFirstChildOfClass("Humanoid") then return end Parent_upv_3 = a2.Parent v155 = {CurrentCamera_upv_1, a2, Parent_upv_3} if Parent_upv_3.Humanoid.SeatPart and Parent_upv_3.Humanoid.SeatPart.Parent and (Parent_upv_3.Humanoid.SeatPart.Parent.Name == "CarGrab" or Parent_upv_3.Humanoid.SeatPart:FindFirstChild("CarHold")) then v155 = (Parent_upv_3.Humanoid.SeatPart.Parent.Parent:FindFirstChild("PrimaryPart") and {CurrentCamera_upv_1, a2, Parent_upv_3, Parent_upv_3.Humanoid.SeatPart.Parent.Parent}) or v155 end local v156 = RaycastParams.new() v156.IgnoreWater = true v156.FilterType = Enum.RaycastFilterType.Exclude v156.FilterDescendantsInstances = v155 local u54 = OverlapParams.new() u54.FilterType = Enum.RaycastFilterType.Exclude u54.FilterDescendantsInstances = v155 u54.MaxParts = 0 u54.CollisionGroup = "Default" u6 = u6 + 1 local tbl_upv_5 = {} local u55 = nil local v157 = a4.ChargedShotAdvanceEnabled local ChargeLevel_39 = a8.ChargeLevel local LaserTrailEnabled_1 = a4.ChargeAlterTable.LaserTrailEnabled local LaserTrailEnabled_2 = a4.LaserTrailEnabled local u52 if LaserTrailEnabled_1 ~= nil and v157 and ChargeLevel_39 then u52 = ((ChargeLevel_39 == 1) and (LaserTrailEnabled_1.Level1)) or (((ChargeLevel_39 == 2) and (LaserTrailEnabled_1.Level2)) or (((ChargeLevel_39 == 3) and (LaserTrailEnabled_1.Level3)) or LaserTrailEnabled_2)) else u52 = LaserTrailEnabled_2 end local ChargedShotAdvanceEnabled_32 = a4.ChargedShotAdvanceEnabled local ChargeLevel_40 = a8.ChargeLevel local DamageableLaserTrail_1 = a4.ChargeAlterTable.DamageableLaserTrail local DamageableLaserTrail_2 = a4.DamageableLaserTrail if DamageableLaserTrail_1 ~= nil and ChargedShotAdvanceEnabled_32 and ChargeLevel_40 then v157 = ((ChargeLevel_40 == 1) and (DamageableLaserTrail_1.Level1)) or (((ChargeLevel_40 == 2) and (DamageableLaserTrail_1.Level2)) or (((ChargeLevel_40 == 3) and (DamageableLaserTrail_1.Level3)) or DamageableLaserTrail_2)) else v157 = DamageableLaserTrail_2 end if a9 and u52 and v157 then u55 = Instance.new("BindableEvent") u55.Name = "UpdateLaserTrail_" .. HttpService_upv_1:GenerateGUID() end local v158, v159, v160, v161, v161, v163, v163, v163, v163, v163, v163, v163, v163, v163, v163, v163, v163, v163, v163, _, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v189, v190, v190, v190, v190, v190, v191, v191, v191, v191, v164, v159, v165 = nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil local v166 = nil local v167 = nil local v168 = nil local v169 = nil local v170 = nil local v171 = nil local v172 = nil local v173 = nil local v174 = nil local v175 = nil local v176 = nil local v177 = nil local v178 = nil local v192 = nil local v193 = nil local v179 = nil for v194, value_12 in pairs(a5) do if not a6 or not (a6:IsDescendantOf(Workspace_upv_1)) and not (a6:IsDescendantOf(a2)) then return end v158 = a6.WorldPosition v166 = Parent_upv_3:WaitForChild("HumanoidRootPart", 1) if not (v166) then continue end v167 = a6.WorldCFrame v168 = v167.Position v164 = v167.LookVector v167 = math.abs((v166.Position - v168):Dot(v164)) + 1 local v169, v180 = Workspace_upv_1:FindPartOnRayWithIgnoreList(Ray.new(v168 - (v164.Unit * v167), v164.Unit * v167), v155, false, true) if v169 then v158 = ((math.abs((v168 - v180).Magnitude) > 0) and (v180 - v164.Unit * 0.1)) or v158 end v165 = a4.ChargedShotAdvanceEnabled local ChargeLevel_41 = a8.ChargeLevel v170 = a4.ChargeAlterTable.BulletSpeed local BulletSpeed_2 = a4.BulletSpeed if v170 == nil then v159 = BulletSpeed_2 elseif v165 and ChargeLevel_41 then v159 = ((ChargeLevel_41 == 1) and (v170.Level1)) or (((ChargeLevel_41 == 2) and (v170.Level2)) or (((ChargeLevel_41 == 3) and (v170.Level3)) or BulletSpeed_2)) else v171 = BulletSpeed_2 end v171 = nil v165 = nil local ChargedShotAdvanceEnabled_33 = a4.ChargedShotAdvanceEnabled local ChargeLevel_42 = a8.ChargeLevel local ProjectileType_1 = a4.ChargeAlterTable.ProjectileType local ProjectileType_2 = a4.ProjectileType if ProjectileType_1 ~= nil and ChargedShotAdvanceEnabled_33 and ChargeLevel_42 then v169 = ((ChargeLevel_42 == 1) and (ProjectileType_1.Level1)) or (((ChargeLevel_42 == 2) and (ProjectileType_1.Level2)) or (((ChargeLevel_42 == 3) and (ProjectileType_1.Level3)) or ProjectileType_2)) else v169 = ProjectileType_2 end if v169 ~= "None" then local v181 = Projectiles_upv_1:FindFirstChild(v169) if v181 then v164 = false for v195, value_13 in pairs(tbl_upv_2) do if value_13.ProjectileName == v181.Name then v164 = true local v182 = CurrentCamera_upv_1:FindFirstChild("ProjectileContainer_(" .. v181.Name .. ")") v171, v165 = value_13.CosmeticPartProvider, v182 end end if not v164 then v165 = Instance.new("Folder") v165.Name = "ProjectileContainer_(" .. v181.Name .. ")" v165.Parent = CurrentCamera_upv_1 v171 = PartCache_upv_1.new(v181, 100, v165) table.insert(tbl_upv_2, {ProjectileName = v181.Name, CosmeticPartProvider = v171}) end end end v160 = a4.ChargedShotAdvanceEnabled local ChargeLevel_43 = a8.ChargeLevel local PenetrationDepth_1 = a4.ChargeAlterTable.PenetrationDepth local PenetrationDepth_2 = a4.PenetrationDepth if PenetrationDepth_1 ~= nil and v160 and ChargeLevel_43 then v169 = ((ChargeLevel_43 == 1) and (PenetrationDepth_1.Level1)) or (((ChargeLevel_43 == 2) and (PenetrationDepth_1.Level2)) or (((ChargeLevel_43 == 3) and (PenetrationDepth_1.Level3)) or PenetrationDepth_2)) else v169 = PenetrationDepth_2 end v160 = a4.ChargedShotAdvanceEnabled local ChargeLevel_44 = a8.ChargeLevel v172 = a4.ChargeAlterTable.PenetrationAmount local PenetrationAmount_1 = a4.PenetrationAmount if v172 ~= nil and v160 and ChargeLevel_44 then v168 = ((ChargeLevel_44 == 1) and (v172.Level1)) or (((ChargeLevel_44 == 2) and (v172.Level2)) or (((ChargeLevel_44 == 3) and (v172.Level3)) or PenetrationAmount_1)) else v168 = PenetrationAmount_1 end v160 = nil if v169 > 0 or v168 > 0 then local tbl_6 = {HitHumanoids = 0, PenetrationIgnoreDelay = 0} tbl_6.PenetrationDepth = v169 tbl_6.PenetrationAmount = v168 local ChargedShotAdvanceEnabled_34 = a4.ChargedShotAdvanceEnabled local ChargeLevel_45 = a8.ChargeLevel local PenetrationIgnoreDelay_1 = a4.ChargeAlterTable.PenetrationIgnoreDelay local PenetrationIgnoreDelay_2 = a4.PenetrationIgnoreDelay if PenetrationIgnoreDelay_1 ~= nil and ChargedShotAdvanceEnabled_34 and ChargeLevel_45 then if ChargeLevel_45 == 1 then local Level1_1 = PenetrationIgnoreDelay_1.Level1 if Level1_1 then v172 = Level1_1 elseif ChargeLevel_45 == 2 then local Level2_1 = PenetrationIgnoreDelay_1.Level2 if Level2_1 then v172 = Level2_1 elseif ChargeLevel_45 ~= 3 then v172 = PenetrationIgnoreDelay_2 else local v196 = PenetrationIgnoreDelay_1.Level3 v172 = PenetrationIgnoreDelay_1.Level3 or PenetrationIgnoreDelay_2 end elseif ChargeLevel_45 ~= 3 then v172 = PenetrationIgnoreDelay_2 else local v196 = PenetrationIgnoreDelay_1.Level3 v172 = PenetrationIgnoreDelay_1.Level3 or PenetrationIgnoreDelay_2 end elseif ChargeLevel_45 == 2 then local Level2_1 = PenetrationIgnoreDelay_1.Level2 if Level2_1 then v172 = Level2_1 elseif ChargeLevel_45 ~= 3 then v172 = PenetrationIgnoreDelay_2 else local v196 = PenetrationIgnoreDelay_1.Level3 v172 = PenetrationIgnoreDelay_1.Level3 or PenetrationIgnoreDelay_2 end elseif ChargeLevel_45 ~= 3 then v172 = PenetrationIgnoreDelay_2 else local v196 = PenetrationIgnoreDelay_1.Level3 v172 = PenetrationIgnoreDelay_1.Level3 or PenetrationIgnoreDelay_2 end else v172 = PenetrationIgnoreDelay_2 end tbl_6.PenetrationIgnoreDelay = v172 tbl_6.HitHumanoids = {} v160 = tbl_6 end local ChargedShotAdvanceEnabled_35 = a4.ChargedShotAdvanceEnabled local ChargeLevel_46 = a8.ChargeLevel local SpinX_1 = a4.ChargeAlterTable.SpinX local SpinX_2 = a4.SpinX if SpinX_1 ~= nil and ChargedShotAdvanceEnabled_35 and ChargeLevel_46 then v169 = ((ChargeLevel_46 == 1) and (SpinX_1.Level1)) or (((ChargeLevel_46 == 2) and (SpinX_1.Level2)) or (((ChargeLevel_46 == 3) and (SpinX_1.Level3)) or SpinX_2)) else v169 = SpinX_2 end local ChargedShotAdvanceEnabled_36 = a4.ChargedShotAdvanceEnabled local ChargeLevel_47 = a8.ChargeLevel local SpinY_1 = a4.ChargeAlterTable.SpinY local SpinY_2 = a4.SpinY if SpinY_1 ~= nil and ChargedShotAdvanceEnabled_36 and ChargeLevel_47 then v168 = ((ChargeLevel_47 == 1) and (SpinY_1.Level1)) or (((ChargeLevel_47 == 2) and (SpinY_1.Level2)) or (((ChargeLevel_47 == 3) and (SpinY_1.Level3)) or SpinY_2)) else v168 = SpinY_2 end local ChargedShotAdvanceEnabled_37 = a4.ChargedShotAdvanceEnabled v173 = a8.ChargeLevel local SpinZ_1 = a4.ChargeAlterTable.SpinZ local SpinZ_2 = a4.SpinZ if SpinZ_1 ~= nil and ChargedShotAdvanceEnabled_37 and v173 then v167 = ((v173 == 1) and (SpinZ_1.Level1)) or (((v173 == 2) and (SpinZ_1.Level2)) or (((v173 == 3) and (SpinZ_1.Level3)) or SpinZ_2)) else v167 = SpinZ_2 end local v183 = nil v174 = a4.ChargedShotAdvanceEnabled local ChargeLevel_48 = a8.ChargeLevel local BulletParticle_1 = a4.ChargeAlterTable.BulletParticle v175 = a4.BulletParticle if BulletParticle_1 ~= nil and v174 and ChargeLevel_48 then v173 = ((ChargeLevel_48 == 1) and (BulletParticle_1.Level1)) or (((ChargeLevel_48 == 2) and (BulletParticle_1.Level2)) or (((ChargeLevel_48 == 3) and (BulletParticle_1.Level3)) or v175)) else v173 = v175 end if v173 then local ChargedShotAdvanceEnabled_38 = a4.ChargedShotAdvanceEnabled local ChargeLevel_49 = a8.ChargeLevel local BulletType_1 = a4.ChargeAlterTable.BulletType local BulletType_2 = a4.BulletType if BulletType_1 ~= nil and ChargedShotAdvanceEnabled_38 and ChargeLevel_49 then v166 = ((ChargeLevel_49 == 1) and (BulletType_1.Level1)) or (((ChargeLevel_49 == 2) and (BulletType_1.Level2)) or (((ChargeLevel_49 == 3) and (BulletType_1.Level3)) or BulletType_2)) else v166 = BulletType_2 end if v166 == "None" then v170 = v183 else v172 = Bullets_upv_1[v166].Attachment0:Clone() local v184 = Bullets_upv_1[v166].Attachment1:Clone() local tbl_7 = {} v172.Parent = Workspace_upv_1.Terrain v184.Parent = Workspace_upv_1.Terrain for v197, value_14 in next, Bullets_upv_1[v166]:GetChildren() do if value_14:IsA("Beam") or value_14:IsA("Trail") then local v185 = value_14:Clone() v185.Attachment0 = v172 v185.Attachment1 = v184 v185.Parent = Workspace_upv_1.Terrain table.insert(tbl_7, v185) end end local tbl_8 = {BulletBrightness = 0, BulletSize = 0, BulletBloom = 0, MotionBlur = 0} tbl_8.T1 = os.clock() tbl_8.P1 = CFrame.new().pointToObjectSpace(CurrentCamera_upv_1.CFrame, v158) tbl_8.Attachment0 = v172 tbl_8.Attachment1 = v184 tbl_8.Effects = tbl_7 local ChargedShotAdvanceEnabled_39 = a4.ChargedShotAdvanceEnabled local ChargeLevel_50 = a8.ChargeLevel local MotionBlur_1 = a4.ChargeAlterTable.MotionBlur local MotionBlur_2 = a4.MotionBlur if MotionBlur_1 ~= nil and ChargedShotAdvanceEnabled_39 and ChargeLevel_50 then if ChargeLevel_50 == 1 then v175 = MotionBlur_1.Level1 if not (v175) then if ChargeLevel_50 == 2 then v175 = MotionBlur_1.Level2 if not (v175) then if ChargeLevel_50 ~= 3 then v175 = MotionBlur_2 else v175 = MotionBlur_1.Level3 or MotionBlur_2 end end elseif ChargeLevel_50 ~= 3 then v175 = MotionBlur_2 else v175 = MotionBlur_1.Level3 or MotionBlur_2 end end elseif ChargeLevel_50 == 2 then v175 = MotionBlur_1.Level2 if not (v175) then if ChargeLevel_50 ~= 3 then v175 = MotionBlur_2 else v175 = MotionBlur_1.Level3 or MotionBlur_2 end end elseif ChargeLevel_50 ~= 3 then v175 = MotionBlur_2 else v175 = MotionBlur_1.Level3 or MotionBlur_2 end else v175 = MotionBlur_2 end tbl_8.MotionBlur = v175 local ChargedShotAdvanceEnabled_40 = a4.ChargedShotAdvanceEnabled local ChargeLevel_51 = a8.ChargeLevel local BulletSize_1 = a4.ChargeAlterTable.BulletSize local BulletSize_2 = a4.BulletSize if BulletSize_1 ~= nil and ChargedShotAdvanceEnabled_40 and ChargeLevel_51 then if ChargeLevel_51 == 1 then v175 = BulletSize_1.Level1 if not (v175) then if ChargeLevel_51 == 2 then v175 = BulletSize_1.Level2 if not (v175) then if ChargeLevel_51 ~= 3 then v175 = BulletSize_2 else v175 = BulletSize_1.Level3 or BulletSize_2 end end elseif ChargeLevel_51 ~= 3 then v175 = BulletSize_2 else v175 = BulletSize_1.Level3 or BulletSize_2 end end elseif ChargeLevel_51 == 2 then v175 = BulletSize_1.Level2 if not (v175) then if ChargeLevel_51 ~= 3 then v175 = BulletSize_2 else v175 = BulletSize_1.Level3 or BulletSize_2 end end elseif ChargeLevel_51 ~= 3 then v175 = BulletSize_2 else v175 = BulletSize_1.Level3 or BulletSize_2 end else v175 = BulletSize_2 end tbl_8.BulletSize = v175 local ChargedShotAdvanceEnabled_41 = a4.ChargedShotAdvanceEnabled local ChargeLevel_52 = a8.ChargeLevel local BulletBloom_1 = a4.ChargeAlterTable.BulletBloom local BulletBloom_2 = a4.BulletBloom if BulletBloom_1 ~= nil and ChargedShotAdvanceEnabled_41 and ChargeLevel_52 then if ChargeLevel_52 == 1 then v175 = BulletBloom_1.Level1 if not (v175) then if ChargeLevel_52 == 2 then v175 = BulletBloom_1.Level2 if not (v175) then if ChargeLevel_52 ~= 3 then v175 = BulletBloom_2 else v175 = BulletBloom_1.Level3 or BulletBloom_2 end end elseif ChargeLevel_52 ~= 3 then v175 = BulletBloom_2 else v175 = BulletBloom_1.Level3 or BulletBloom_2 end end elseif ChargeLevel_52 == 2 then v175 = BulletBloom_1.Level2 if not (v175) then if ChargeLevel_52 ~= 3 then v175 = BulletBloom_2 else v175 = BulletBloom_1.Level3 or BulletBloom_2 end end elseif ChargeLevel_52 ~= 3 then v175 = BulletBloom_2 else v175 = BulletBloom_1.Level3 or BulletBloom_2 end else v175 = BulletBloom_2 end tbl_8.BulletBloom = v175 local ChargedShotAdvanceEnabled_42 = a4.ChargedShotAdvanceEnabled local ChargeLevel_53 = a8.ChargeLevel local BulletBrightness_1 = a4.ChargeAlterTable.BulletBrightness local BulletBrightness_2 = a4.BulletBrightness if BulletBrightness_1 ~= nil and ChargedShotAdvanceEnabled_42 and ChargeLevel_53 then if ChargeLevel_53 == 1 then v175 = BulletBrightness_1.Level1 if not (v175) then if ChargeLevel_53 == 2 then v175 = BulletBrightness_1.Level2 if not (v175) then if ChargeLevel_53 ~= 3 then v175 = BulletBrightness_2 else v175 = BulletBrightness_1.Level3 or BulletBrightness_2 end end elseif ChargeLevel_53 ~= 3 then v175 = BulletBrightness_2 else v175 = BulletBrightness_1.Level3 or BulletBrightness_2 end end elseif ChargeLevel_53 == 2 then v175 = BulletBrightness_1.Level2 if not (v175) then if ChargeLevel_53 ~= 3 then v175 = BulletBrightness_2 else v175 = BulletBrightness_1.Level3 or BulletBrightness_2 end end elseif ChargeLevel_53 ~= 3 then v175 = BulletBrightness_2 else v175 = BulletBrightness_1.Level3 or BulletBrightness_2 end else v175 = BulletBrightness_2 end tbl_8.BulletBrightness = v175 v170 = tbl_8 end else v170 = v183 end v172 = FastCastRedux_upv_1.newBehavior() v172.RaycastParams = v156 local ChargedShotAdvanceEnabled_43 = a4.ChargedShotAdvanceEnabled local ChargeLevel_54 = a8.ChargeLevel v175 = a4.ChargeAlterTable.TravelType local TravelType_1 = a4.TravelType if v175 ~= nil and ChargedShotAdvanceEnabled_43 and ChargeLevel_54 then if ChargeLevel_54 == 1 then local Level1_2 = v175.Level1 if Level1_2 then v174 = Level1_2 elseif ChargeLevel_54 == 2 then local Level2_2 = v175.Level2 if Level2_2 then v174 = Level2_2 elseif ChargeLevel_54 ~= 3 then v174 = TravelType_1 else local v198 = v175.Level3 v174 = v175.Level3 or TravelType_1 end elseif ChargeLevel_54 ~= 3 then v174 = TravelType_1 else local v198 = v175.Level3 v174 = v175.Level3 or TravelType_1 end elseif ChargeLevel_54 == 2 then local Level2_2 = v175.Level2 if Level2_2 then v174 = Level2_2 elseif ChargeLevel_54 ~= 3 then v174 = TravelType_1 else local v198 = v175.Level3 v174 = v175.Level3 or TravelType_1 end elseif ChargeLevel_54 ~= 3 then v174 = TravelType_1 else local v198 = v175.Level3 v174 = v175.Level3 or TravelType_1 end else v174 = TravelType_1 end v172.TravelType = v174 local ChargedShotAdvanceEnabled_44 = a4.ChargedShotAdvanceEnabled local ChargeLevel_55 = a8.ChargeLevel v175 = a4.ChargeAlterTable.Range local Range_1 = a4.Range if v175 ~= nil and ChargedShotAdvanceEnabled_44 and ChargeLevel_55 then if ChargeLevel_55 == 1 then local Level1_3 = v175.Level1 if Level1_3 then v174 = Level1_3 elseif ChargeLevel_55 == 2 then local Level2_3 = v175.Level2 if Level2_3 then v174 = Level2_3 elseif ChargeLevel_55 ~= 3 then v174 = Range_1 else local v199 = v175.Level3 v174 = v175.Level3 or Range_1 end elseif ChargeLevel_55 ~= 3 then v174 = Range_1 else local v199 = v175.Level3 v174 = v175.Level3 or Range_1 end elseif ChargeLevel_55 == 2 then local Level2_3 = v175.Level2 if Level2_3 then v174 = Level2_3 elseif ChargeLevel_55 ~= 3 then v174 = Range_1 else local v199 = v175.Level3 v174 = v175.Level3 or Range_1 end elseif ChargeLevel_55 ~= 3 then v174 = Range_1 else local v199 = v175.Level3 v174 = v175.Level3 or Range_1 end else v174 = Range_1 end v172.MaxDistance = v174 local ChargedShotAdvanceEnabled_45 = a4.ChargedShotAdvanceEnabled local ChargeLevel_56 = a8.ChargeLevel v175 = a4.ChargeAlterTable.Lifetime local Lifetime_1 = a4.Lifetime if v175 ~= nil and ChargedShotAdvanceEnabled_45 and ChargeLevel_56 then if ChargeLevel_56 == 1 then local Level1_4 = v175.Level1 if Level1_4 then v174 = Level1_4 elseif ChargeLevel_56 == 2 then local Level2_4 = v175.Level2 if Level2_4 then v174 = Level2_4 elseif ChargeLevel_56 ~= 3 then v174 = Lifetime_1 else local v200 = v175.Level3 v174 = v175.Level3 or Lifetime_1 end elseif ChargeLevel_56 ~= 3 then v174 = Lifetime_1 else local v200 = v175.Level3 v174 = v175.Level3 or Lifetime_1 end elseif ChargeLevel_56 == 2 then local Level2_4 = v175.Level2 if Level2_4 then v174 = Level2_4 elseif ChargeLevel_56 ~= 3 then v174 = Lifetime_1 else local v200 = v175.Level3 v174 = v175.Level3 or Lifetime_1 end elseif ChargeLevel_56 ~= 3 then v174 = Lifetime_1 else local v200 = v175.Level3 v174 = v175.Level3 or Lifetime_1 end else v174 = Lifetime_1 end v172.Lifetime = v174 v172.HighFidelityBehavior = FastCastRedux_upv_1.HighFidelityBehavior.Default v172.CosmeticBulletProvider = nil v172.CosmeticBulletContainer = v165 local ChargedShotAdvanceEnabled_46 = a4.ChargedShotAdvanceEnabled local ChargeLevel_57 = a8.ChargeLevel v175 = a4.ChargeAlterTable.Acceleration local Acceleration_1 = a4.Acceleration if v175 ~= nil and ChargedShotAdvanceEnabled_46 and ChargeLevel_57 then if ChargeLevel_57 == 1 then v161 = v175.Level1 if not (v161) then if ChargeLevel_57 == 2 then local Level2_5 = v175.Level2 if Level2_5 then v161 = Level2_5 elseif ChargeLevel_57 ~= 3 then v161 = Acceleration_1 else local v201 = v175.Level3 v161 = v175.Level3 or Acceleration_1 end elseif ChargeLevel_57 ~= 3 then v161 = Acceleration_1 else local v201 = v175.Level3 v161 = v175.Level3 or Acceleration_1 end end elseif ChargeLevel_57 == 2 then local Level2_5 = v175.Level2 if Level2_5 then v161 = Level2_5 elseif ChargeLevel_57 ~= 3 then v161 = Acceleration_1 else local v201 = v175.Level3 v161 = v175.Level3 or Acceleration_1 end elseif ChargeLevel_57 ~= 3 then v161 = Acceleration_1 else local v201 = v175.Level3 v161 = v175.Level3 or Acceleration_1 end else v161 = Acceleration_1 end v172.Acceleration = v161 v172.AutoIgnoreContainer = false local ChargedShotAdvanceEnabled_47 = a4.ChargedShotAdvanceEnabled local ChargeLevel_58 = a8.ChargeLevel v175 = a4.ChargeAlterTable.HitEventOnTermination local HitEventOnTermination_1 = a4.HitEventOnTermination if v175 ~= nil and ChargedShotAdvanceEnabled_47 and ChargeLevel_58 then if ChargeLevel_58 == 1 then local Level1_5 = v175.Level1 if Level1_5 then v161 = Level1_5 elseif ChargeLevel_58 == 2 then local Level2_6 = v175.Level2 if Level2_6 then v161 = Level2_6 elseif ChargeLevel_58 ~= 3 then v161 = HitEventOnTermination_1 else local v202 = v175.Level3 v161 = v175.Level3 or HitEventOnTermination_1 end elseif ChargeLevel_58 ~= 3 then v161 = HitEventOnTermination_1 else local v202 = v175.Level3 v161 = v175.Level3 or HitEventOnTermination_1 end elseif ChargeLevel_58 == 2 then local Level2_6 = v175.Level2 if Level2_6 then v161 = Level2_6 elseif ChargeLevel_58 ~= 3 then v161 = HitEventOnTermination_1 else local v202 = v175.Level3 v161 = v175.Level3 or HitEventOnTermination_1 end elseif ChargeLevel_58 ~= 3 then v161 = HitEventOnTermination_1 else local v202 = v175.Level3 v161 = v175.Level3 or HitEventOnTermination_1 end else v161 = HitEventOnTermination_1 end v172.HitEventOnTermination = v161 v172.CanPenetrateFunction = CanRayPenetrate v172.CanHitFunction = CanRayHit local ChargedShotAdvanceEnabled_48 = a4.ChargedShotAdvanceEnabled local ChargeLevel_59 = a8.ChargeLevel local RaycastHitbox_1 = a4.ChargeAlterTable.RaycastHitbox local RaycastHitbox_2 = a4.RaycastHitbox if RaycastHitbox_1 ~= nil and ChargedShotAdvanceEnabled_48 and ChargeLevel_59 then v165 = ((ChargeLevel_59 == 1) and (RaycastHitbox_1.Level1)) or (((ChargeLevel_59 == 2) and (RaycastHitbox_1.Level2)) or (((ChargeLevel_59 == 3) and (RaycastHitbox_1.Level3)) or RaycastHitbox_2)) else v165 = RaycastHitbox_2 end local v162 = a4.ChargedShotAdvanceEnabled v176 = a8.ChargeLevel local RaycastHitboxData_1 = a4.ChargeAlterTable.RaycastHitboxData local RaycastHitboxData_2 = a4.RaycastHitboxData if RaycastHitboxData_1 == nil then v159 = RaycastHitboxData_2 elseif v162 and v176 then v159 = ((v176 == 1) and (RaycastHitboxData_1.Level1)) or (((v176 == 2) and (RaycastHitboxData_1.Level2)) or (((v176 == 3) and (RaycastHitboxData_1.Level3)) or RaycastHitboxData_2)) else v171 = RaycastHitboxData_2 end v162 = v165 and (0 < #v159) and v159 or nil v172.RaycastHitbox = v162 v172.CurrentCFrame = CFrame.new(v158, v158 + value_12) v172.ModifiedDirection = CFrame.new(v158, v158 + value_12).LookVector local ChargedShotAdvanceEnabled_49 = a4.ChargedShotAdvanceEnabled local ChargeLevel_60 = a8.ChargeLevel local ShootType_3 = a4.ChargeAlterTable.ShootType local ShootType_4 = a4.ShootType if ShootType_3 ~= nil and ChargedShotAdvanceEnabled_49 and ChargeLevel_60 then v176 = ((ChargeLevel_60 == 1) and (ShootType_3.Level1)) or (((ChargeLevel_60 == 2) and (ShootType_3.Level2)) or (((ChargeLevel_60 == 3) and (ShootType_3.Level3)) or ShootType_4)) else v176 = ShootType_4 end if v176 == "Hitscan" then v177 = true else v177 = false end v172.Hitscan = v177 v165 = HttpService_upv_1:GenerateGUID() if a9 and u52 and v157 then table.insert(tbl_upv_5, {Terminate = false, Id = v165, LaserContainer = {}, HitHumanoids = {}}) end v159 = {} v176 = a4.ChargedShotAdvanceEnabled local ChargeLevel_61 = a8.ChargeLevel v175 = a4.ChargeAlterTable.LightningBoltEnabled local LightningBoltEnabled_1 = a4.LightningBoltEnabled if v175 ~= nil and v176 and ChargeLevel_61 then v177 = ((ChargeLevel_61 == 1) and (v175.Level1)) or (((ChargeLevel_61 == 2) and (v175.Level2)) or (((ChargeLevel_61 == 3) and (v175.Level3)) or LightningBoltEnabled_1)) else v177 = LightningBoltEnabled_1 end if v177 then local ChargedShotAdvanceEnabled_50 = a4.ChargedShotAdvanceEnabled local ChargeLevel_62 = a8.ChargeLevel local BoltRadius_1 = a4.ChargeAlterTable.BoltRadius local BoltRadius_2 = a4.BoltRadius if BoltRadius_1 ~= nil and ChargedShotAdvanceEnabled_50 and ChargeLevel_62 then v176 = ((ChargeLevel_62 == 1) and (BoltRadius_1.Level1)) or (((ChargeLevel_62 == 2) and (BoltRadius_1.Level2)) or (((ChargeLevel_62 == 3) and (BoltRadius_1.Level3)) or BoltRadius_2)) else v176 = BoltRadius_2 end local v186 = 1 local ChargedShotAdvanceEnabled_51 = a4.ChargedShotAdvanceEnabled local ChargeLevel_63 = a8.ChargeLevel local BoltCount_1 = a4.ChargeAlterTable.BoltCount local BoltCount_2 = a4.BoltCount if BoltCount_1 ~= nil and ChargedShotAdvanceEnabled_51 and ChargeLevel_63 then if ChargeLevel_63 == 1 then local Level1_6 = BoltCount_1.Level1 if Level1_6 then v179 = Level1_6 elseif ChargeLevel_63 == 2 then local Level2_7 = BoltCount_1.Level2 if Level2_7 then v179 = Level2_7 elseif ChargeLevel_63 ~= 3 then v179 = BoltCount_2 else local v203 = BoltCount_1.Level3 v179 = BoltCount_1.Level3 or BoltCount_2 end elseif ChargeLevel_63 ~= 3 then v179 = BoltCount_2 else local v203 = BoltCount_1.Level3 v179 = BoltCount_1.Level3 or BoltCount_2 end elseif ChargeLevel_63 == 2 then local Level2_7 = BoltCount_1.Level2 if Level2_7 then v179 = Level2_7 elseif ChargeLevel_63 ~= 3 then v179 = BoltCount_2 else local v203 = BoltCount_1.Level3 v179 = BoltCount_1.Level3 or BoltCount_2 end elseif ChargeLevel_63 ~= 3 then v179 = BoltCount_2 else local v203 = BoltCount_1.Level3 v179 = BoltCount_1.Level3 or BoltCount_2 end else v179 = BoltCount_2 end for n_1 = v186, v179 do if n_1 ~= 1 then table.insert(v159, CFrame.new(math.random(-v176, v176), math.random(-v176, v176), 0)) else table.insert(v159, CFrame.new(0, 0, 0)) end end end v176 = {LastSegmentOrigin = 0, LaserData = 0, IgnoreList = 0, SpinData = 0, CastBehavior = 0, HomeData = 0, DebrisData = 0, SegmentDirection = 0, Whizzed = false, LastPosition = 0, SegmentVelocity = 0, UpdateData = 0, BounceData = 0, LightningData = 0, SegmentOrigin = 0} v176.ShootId = u6 v176.Tool = a2 v176.Character = Parent_upv_3 v176.ClientModule = a4 v176.Misc = a8 v176.Replicate = a9 v176.PenetrationData = v160 v176.BulletParticleData = v170 local tbl_9 = {RandomizeLaserColorIn = 0, ScaleLaserTrail = 0, LaserTrailFadeTime = 0, LaserTrailScaleMultiplier = 0, LaserTrailMaterial = 0, LaserTrailWidth = 0, LaserTrailColor = 0, LaserTrailShape = 0, LaserTrailId = 0, UpdateLaserTrail = 0, LaserTrailHeight = 0, LaserTrailContainer = 0, LaserTrailVisibleTime = 0, LaserTrailTransparency = 0, RandomLaserColor = 0, LaserTrailReflectance = 0} tbl_9.LaserTrailEnabled = u52 local ChargedShotAdvanceEnabled_52 = a4.ChargedShotAdvanceEnabled local ChargeLevel_64 = a8.ChargeLevel local LaserTrailWidth_1 = a4.ChargeAlterTable.LaserTrailWidth local LaserTrailWidth_2 = a4.LaserTrailWidth if LaserTrailWidth_1 == nil then v163 = LaserTrailWidth_2 elseif ChargedShotAdvanceEnabled_52 and ChargeLevel_64 then if ChargeLevel_64 == 1 then local Level1_7 = LaserTrailWidth_1.Level1 if Level1_7 then v163 = Level1_7 elseif ChargeLevel_64 == 2 then local Level2_8 = LaserTrailWidth_1.Level2 if Level2_8 then v175 = Level2_8 elseif ChargeLevel_64 ~= 3 then v175 = LaserTrailWidth_2 else local v204 = LaserTrailWidth_1.Level3 v175 = LaserTrailWidth_1.Level3 or LaserTrailWidth_2 end elseif ChargeLevel_64 ~= 3 then v175 = LaserTrailWidth_2 else local v204 = LaserTrailWidth_1.Level3 v175 = LaserTrailWidth_1.Level3 or LaserTrailWidth_2 end elseif ChargeLevel_64 == 2 then local Level2_8 = LaserTrailWidth_1.Level2 if Level2_8 then v163 = Level2_8 elseif ChargeLevel_64 ~= 3 then v175 = LaserTrailWidth_2 else local v204 = LaserTrailWidth_1.Level3 v175 = LaserTrailWidth_1.Level3 or LaserTrailWidth_2 end elseif ChargeLevel_64 ~= 3 then v163 = LaserTrailWidth_2 else local v204 = LaserTrailWidth_1.Level3 v163 = LaserTrailWidth_1.Level3 or LaserTrailWidth_2 end else v175 = LaserTrailWidth_2 end tbl_9.LaserTrailWidth = v163 local ChargedShotAdvanceEnabled_53 = a4.ChargedShotAdvanceEnabled local ChargeLevel_65 = a8.ChargeLevel local LaserTrailHeight_1 = a4.ChargeAlterTable.LaserTrailHeight local LaserTrailHeight_2 = a4.LaserTrailHeight if LaserTrailHeight_1 == nil then v163 = LaserTrailHeight_2 elseif ChargedShotAdvanceEnabled_53 and ChargeLevel_65 then if ChargeLevel_65 == 1 then local Level1_8 = LaserTrailHeight_1.Level1 if Level1_8 then v163 = Level1_8 elseif ChargeLevel_65 == 2 then local Level2_9 = LaserTrailHeight_1.Level2 if Level2_9 then v175 = Level2_9 elseif ChargeLevel_65 ~= 3 then v175 = LaserTrailHeight_2 else local v205 = LaserTrailHeight_1.Level3 v175 = LaserTrailHeight_1.Level3 or LaserTrailHeight_2 end elseif ChargeLevel_65 ~= 3 then v175 = LaserTrailHeight_2 else local v205 = LaserTrailHeight_1.Level3 v175 = LaserTrailHeight_1.Level3 or LaserTrailHeight_2 end elseif ChargeLevel_65 == 2 then local Level2_9 = LaserTrailHeight_1.Level2 if Level2_9 then v163 = Level2_9 elseif ChargeLevel_65 ~= 3 then v175 = LaserTrailHeight_2 else local v205 = LaserTrailHeight_1.Level3 v175 = LaserTrailHeight_1.Level3 or LaserTrailHeight_2 end elseif ChargeLevel_65 ~= 3 then v163 = LaserTrailHeight_2 else local v205 = LaserTrailHeight_1.Level3 v163 = LaserTrailHeight_1.Level3 or LaserTrailHeight_2 end else v175 = LaserTrailHeight_2 end tbl_9.LaserTrailHeight = v163 local ChargedShotAdvanceEnabled_54 = a4.ChargedShotAdvanceEnabled local ChargeLevel_66 = a8.ChargeLevel local LaserTrailColor_1 = a4.ChargeAlterTable.LaserTrailColor local LaserTrailColor_2 = a4.LaserTrailColor if LaserTrailColor_1 == nil then v163 = LaserTrailColor_2 elseif ChargedShotAdvanceEnabled_54 and ChargeLevel_66 then if ChargeLevel_66 == 1 then local Level1_9 = LaserTrailColor_1.Level1 if Level1_9 then v163 = Level1_9 elseif ChargeLevel_66 == 2 then local Level2_10 = LaserTrailColor_1.Level2 if Level2_10 then v175 = Level2_10 elseif ChargeLevel_66 ~= 3 then v175 = LaserTrailColor_2 else local v206 = LaserTrailColor_1.Level3 v175 = LaserTrailColor_1.Level3 or LaserTrailColor_2 end elseif ChargeLevel_66 ~= 3 then v175 = LaserTrailColor_2 else local v206 = LaserTrailColor_1.Level3 v175 = LaserTrailColor_1.Level3 or LaserTrailColor_2 end elseif ChargeLevel_66 == 2 then local Level2_10 = LaserTrailColor_1.Level2 if Level2_10 then v163 = Level2_10 elseif ChargeLevel_66 ~= 3 then v175 = LaserTrailColor_2 else local v206 = LaserTrailColor_1.Level3 v175 = LaserTrailColor_1.Level3 or LaserTrailColor_2 end elseif ChargeLevel_66 ~= 3 then v163 = LaserTrailColor_2 else local v206 = LaserTrailColor_1.Level3 v163 = LaserTrailColor_1.Level3 or LaserTrailColor_2 end else v175 = LaserTrailColor_2 end tbl_9.LaserTrailColor = v163 local ChargedShotAdvanceEnabled_55 = a4.ChargedShotAdvanceEnabled local ChargeLevel_67 = a8.ChargeLevel local RandomizeLaserColorIn_1 = a4.ChargeAlterTable.RandomizeLaserColorIn local RandomizeLaserColorIn_2 = a4.RandomizeLaserColorIn if RandomizeLaserColorIn_1 == nil then v163 = RandomizeLaserColorIn_2 elseif ChargedShotAdvanceEnabled_55 and ChargeLevel_67 then if ChargeLevel_67 == 1 then local Level1_10 = RandomizeLaserColorIn_1.Level1 if Level1_10 then v163 = Level1_10 elseif ChargeLevel_67 == 2 then local Level2_11 = RandomizeLaserColorIn_1.Level2 if Level2_11 then v175 = Level2_11 elseif ChargeLevel_67 ~= 3 then v175 = RandomizeLaserColorIn_2 else local v207 = RandomizeLaserColorIn_1.Level3 v175 = RandomizeLaserColorIn_1.Level3 or RandomizeLaserColorIn_2 end elseif ChargeLevel_67 ~= 3 then v175 = RandomizeLaserColorIn_2 else local v207 = RandomizeLaserColorIn_1.Level3 v175 = RandomizeLaserColorIn_1.Level3 or RandomizeLaserColorIn_2 end elseif ChargeLevel_67 == 2 then local Level2_11 = RandomizeLaserColorIn_1.Level2 if Level2_11 then v163 = Level2_11 elseif ChargeLevel_67 ~= 3 then v175 = RandomizeLaserColorIn_2 else local v207 = RandomizeLaserColorIn_1.Level3 v175 = RandomizeLaserColorIn_1.Level3 or RandomizeLaserColorIn_2 end elseif ChargeLevel_67 ~= 3 then v163 = RandomizeLaserColorIn_2 else local v207 = RandomizeLaserColorIn_1.Level3 v163 = RandomizeLaserColorIn_1.Level3 or RandomizeLaserColorIn_2 end else v175 = RandomizeLaserColorIn_2 end tbl_9.RandomizeLaserColorIn = v163 local ChargedShotAdvanceEnabled_56 = a4.ChargedShotAdvanceEnabled local ChargeLevel_68 = a8.ChargeLevel local LaserTrailMaterial_1 = a4.ChargeAlterTable.LaserTrailMaterial local LaserTrailMaterial_2 = a4.LaserTrailMaterial if LaserTrailMaterial_1 == nil then v163 = LaserTrailMaterial_2 elseif ChargedShotAdvanceEnabled_56 and ChargeLevel_68 then if ChargeLevel_68 == 1 then local Level1_11 = LaserTrailMaterial_1.Level1 if Level1_11 then v163 = Level1_11 elseif ChargeLevel_68 == 2 then local Level2_12 = LaserTrailMaterial_1.Level2 if Level2_12 then v175 = Level2_12 elseif ChargeLevel_68 ~= 3 then v175 = LaserTrailMaterial_2 else local v208 = LaserTrailMaterial_1.Level3 v175 = LaserTrailMaterial_1.Level3 or LaserTrailMaterial_2 end elseif ChargeLevel_68 ~= 3 then v175 = LaserTrailMaterial_2 else local v208 = LaserTrailMaterial_1.Level3 v175 = LaserTrailMaterial_1.Level3 or LaserTrailMaterial_2 end elseif ChargeLevel_68 == 2 then local Level2_12 = LaserTrailMaterial_1.Level2 if Level2_12 then v163 = Level2_12 elseif ChargeLevel_68 ~= 3 then v175 = LaserTrailMaterial_2 else local v208 = LaserTrailMaterial_1.Level3 v175 = LaserTrailMaterial_1.Level3 or LaserTrailMaterial_2 end elseif ChargeLevel_68 ~= 3 then v163 = LaserTrailMaterial_2 else local v208 = LaserTrailMaterial_1.Level3 v163 = LaserTrailMaterial_1.Level3 or LaserTrailMaterial_2 end else v175 = LaserTrailMaterial_2 end tbl_9.LaserTrailMaterial = v163 local ChargedShotAdvanceEnabled_57 = a4.ChargedShotAdvanceEnabled local ChargeLevel_69 = a8.ChargeLevel local LaserTrailShape_1 = a4.ChargeAlterTable.LaserTrailShape local LaserTrailShape_2 = a4.LaserTrailShape if LaserTrailShape_1 == nil then v163 = LaserTrailShape_2 elseif ChargedShotAdvanceEnabled_57 and ChargeLevel_69 then if ChargeLevel_69 == 1 then local Level1_12 = LaserTrailShape_1.Level1 if Level1_12 then v163 = Level1_12 elseif ChargeLevel_69 == 2 then local Level2_13 = LaserTrailShape_1.Level2 if Level2_13 then v175 = Level2_13 elseif ChargeLevel_69 ~= 3 then v175 = LaserTrailShape_2 else local v209 = LaserTrailShape_1.Level3 v175 = LaserTrailShape_1.Level3 or LaserTrailShape_2 end elseif ChargeLevel_69 ~= 3 then v175 = LaserTrailShape_2 else local v209 = LaserTrailShape_1.Level3 v175 = LaserTrailShape_1.Level3 or LaserTrailShape_2 end elseif ChargeLevel_69 == 2 then local Level2_13 = LaserTrailShape_1.Level2 if Level2_13 then v163 = Level2_13 elseif ChargeLevel_69 ~= 3 then v175 = LaserTrailShape_2 else local v209 = LaserTrailShape_1.Level3 v175 = LaserTrailShape_1.Level3 or LaserTrailShape_2 end elseif ChargeLevel_69 ~= 3 then v163 = LaserTrailShape_2 else local v209 = LaserTrailShape_1.Level3 v163 = LaserTrailShape_1.Level3 or LaserTrailShape_2 end else v175 = LaserTrailShape_2 end tbl_9.LaserTrailShape = v163 local ChargedShotAdvanceEnabled_58 = a4.ChargedShotAdvanceEnabled local ChargeLevel_70 = a8.ChargeLevel local LaserTrailReflectance_1 = a4.ChargeAlterTable.LaserTrailReflectance local LaserTrailReflectance_2 = a4.LaserTrailReflectance if LaserTrailReflectance_1 == nil then v163 = LaserTrailReflectance_2 elseif ChargedShotAdvanceEnabled_58 and ChargeLevel_70 then if ChargeLevel_70 == 1 then local Level1_13 = LaserTrailReflectance_1.Level1 if Level1_13 then v163 = Level1_13 elseif ChargeLevel_70 == 2 then local Level2_14 = LaserTrailReflectance_1.Level2 if Level2_14 then v175 = Level2_14 elseif ChargeLevel_70 ~= 3 then v175 = LaserTrailReflectance_2 else local v210 = LaserTrailReflectance_1.Level3 v175 = LaserTrailReflectance_1.Level3 or LaserTrailReflectance_2 end elseif ChargeLevel_70 ~= 3 then v175 = LaserTrailReflectance_2 else local v210 = LaserTrailReflectance_1.Level3 v175 = LaserTrailReflectance_1.Level3 or LaserTrailReflectance_2 end elseif ChargeLevel_70 == 2 then local Level2_14 = LaserTrailReflectance_1.Level2 if Level2_14 then v163 = Level2_14 elseif ChargeLevel_70 ~= 3 then v175 = LaserTrailReflectance_2 else local v210 = LaserTrailReflectance_1.Level3 v175 = LaserTrailReflectance_1.Level3 or LaserTrailReflectance_2 end elseif ChargeLevel_70 ~= 3 then v163 = LaserTrailReflectance_2 else local v210 = LaserTrailReflectance_1.Level3 v163 = LaserTrailReflectance_1.Level3 or LaserTrailReflectance_2 end else v175 = LaserTrailReflectance_2 end tbl_9.LaserTrailReflectance = v163 local ChargedShotAdvanceEnabled_59 = a4.ChargedShotAdvanceEnabled local ChargeLevel_71 = a8.ChargeLevel local LaserTrailTransparency_1 = a4.ChargeAlterTable.LaserTrailTransparency local LaserTrailTransparency_2 = a4.LaserTrailTransparency if LaserTrailTransparency_1 == nil then v163 = LaserTrailTransparency_2 elseif ChargedShotAdvanceEnabled_59 and ChargeLevel_71 then if ChargeLevel_71 == 1 then local Level1_14 = LaserTrailTransparency_1.Level1 if Level1_14 then v163 = Level1_14 elseif ChargeLevel_71 == 2 then local Level2_15 = LaserTrailTransparency_1.Level2 if Level2_15 then v175 = Level2_15 elseif ChargeLevel_71 ~= 3 then v175 = LaserTrailTransparency_2 else local v211 = LaserTrailTransparency_1.Level3 v175 = LaserTrailTransparency_1.Level3 or LaserTrailTransparency_2 end elseif ChargeLevel_71 ~= 3 then v175 = LaserTrailTransparency_2 else local v211 = LaserTrailTransparency_1.Level3 v175 = LaserTrailTransparency_1.Level3 or LaserTrailTransparency_2 end elseif ChargeLevel_71 == 2 then local Level2_15 = LaserTrailTransparency_1.Level2 if Level2_15 then v163 = Level2_15 elseif ChargeLevel_71 ~= 3 then v175 = LaserTrailTransparency_2 else local v211 = LaserTrailTransparency_1.Level3 v175 = LaserTrailTransparency_1.Level3 or LaserTrailTransparency_2 end elseif ChargeLevel_71 ~= 3 then v163 = LaserTrailTransparency_2 else local v211 = LaserTrailTransparency_1.Level3 v163 = LaserTrailTransparency_1.Level3 or LaserTrailTransparency_2 end else v175 = LaserTrailTransparency_2 end tbl_9.LaserTrailTransparency = v163 local ChargedShotAdvanceEnabled_60 = a4.ChargedShotAdvanceEnabled local ChargeLevel_72 = a8.ChargeLevel local LaserTrailVisibleTime_1 = a4.ChargeAlterTable.LaserTrailVisibleTime local LaserTrailVisibleTime_2 = a4.LaserTrailVisibleTime if LaserTrailVisibleTime_1 == nil then v163 = LaserTrailVisibleTime_2 elseif ChargedShotAdvanceEnabled_60 and ChargeLevel_72 then if ChargeLevel_72 == 1 then local Level1_15 = LaserTrailVisibleTime_1.Level1 if Level1_15 then v163 = Level1_15 elseif ChargeLevel_72 == 2 then local Level2_16 = LaserTrailVisibleTime_1.Level2 if Level2_16 then v175 = Level2_16 elseif ChargeLevel_72 ~= 3 then v175 = LaserTrailVisibleTime_2 else local v212 = LaserTrailVisibleTime_1.Level3 v175 = LaserTrailVisibleTime_1.Level3 or LaserTrailVisibleTime_2 end elseif ChargeLevel_72 ~= 3 then v175 = LaserTrailVisibleTime_2 else local v212 = LaserTrailVisibleTime_1.Level3 v175 = LaserTrailVisibleTime_1.Level3 or LaserTrailVisibleTime_2 end elseif ChargeLevel_72 == 2 then local Level2_16 = LaserTrailVisibleTime_1.Level2 if Level2_16 then v163 = Level2_16 elseif ChargeLevel_72 ~= 3 then v175 = LaserTrailVisibleTime_2 else local v212 = LaserTrailVisibleTime_1.Level3 v175 = LaserTrailVisibleTime_1.Level3 or LaserTrailVisibleTime_2 end elseif ChargeLevel_72 ~= 3 then v163 = LaserTrailVisibleTime_2 else local v212 = LaserTrailVisibleTime_1.Level3 v163 = LaserTrailVisibleTime_1.Level3 or LaserTrailVisibleTime_2 end else v175 = LaserTrailVisibleTime_2 end tbl_9.LaserTrailVisibleTime = v163 local ChargedShotAdvanceEnabled_61 = a4.ChargedShotAdvanceEnabled local ChargeLevel_73 = a8.ChargeLevel local LaserTrailFadeTime_1 = a4.ChargeAlterTable.LaserTrailFadeTime local LaserTrailFadeTime_2 = a4.LaserTrailFadeTime if LaserTrailFadeTime_1 == nil then v163 = LaserTrailFadeTime_2 elseif ChargedShotAdvanceEnabled_61 and ChargeLevel_73 then if ChargeLevel_73 == 1 then local Level1_16 = LaserTrailFadeTime_1.Level1 if Level1_16 then v163 = Level1_16 elseif ChargeLevel_73 == 2 then local Level2_17 = LaserTrailFadeTime_1.Level2 if Level2_17 then v175 = Level2_17 elseif ChargeLevel_73 ~= 3 then v175 = LaserTrailFadeTime_2 else local v213 = LaserTrailFadeTime_1.Level3 v175 = LaserTrailFadeTime_1.Level3 or LaserTrailFadeTime_2 end elseif ChargeLevel_73 ~= 3 then v175 = LaserTrailFadeTime_2 else local v213 = LaserTrailFadeTime_1.Level3 v175 = LaserTrailFadeTime_1.Level3 or LaserTrailFadeTime_2 end elseif ChargeLevel_73 == 2 then local Level2_17 = LaserTrailFadeTime_1.Level2 if Level2_17 then v163 = Level2_17 elseif ChargeLevel_73 ~= 3 then v175 = LaserTrailFadeTime_2 else local v213 = LaserTrailFadeTime_1.Level3 v175 = LaserTrailFadeTime_1.Level3 or LaserTrailFadeTime_2 end elseif ChargeLevel_73 ~= 3 then v163 = LaserTrailFadeTime_2 else local v213 = LaserTrailFadeTime_1.Level3 v163 = LaserTrailFadeTime_1.Level3 or LaserTrailFadeTime_2 end else v175 = LaserTrailFadeTime_2 end tbl_9.LaserTrailFadeTime = v163 local ChargedShotAdvanceEnabled_62 = a4.ChargedShotAdvanceEnabled local ChargeLevel_74 = a8.ChargeLevel local ScaleLaserTrail_1 = a4.ChargeAlterTable.ScaleLaserTrail local ScaleLaserTrail_2 = a4.ScaleLaserTrail if ScaleLaserTrail_1 == nil then v163 = ScaleLaserTrail_2 elseif ChargedShotAdvanceEnabled_62 and ChargeLevel_74 then if ChargeLevel_74 == 1 then local Level1_17 = ScaleLaserTrail_1.Level1 if Level1_17 then v163 = Level1_17 elseif ChargeLevel_74 == 2 then local Level2_18 = ScaleLaserTrail_1.Level2 if Level2_18 then v175 = Level2_18 elseif ChargeLevel_74 ~= 3 then v175 = ScaleLaserTrail_2 else local v214 = ScaleLaserTrail_1.Level3 v175 = ScaleLaserTrail_1.Level3 or ScaleLaserTrail_2 end elseif ChargeLevel_74 ~= 3 then v175 = ScaleLaserTrail_2 else local v214 = ScaleLaserTrail_1.Level3 v175 = ScaleLaserTrail_1.Level3 or ScaleLaserTrail_2 end elseif ChargeLevel_74 == 2 then local Level2_18 = ScaleLaserTrail_1.Level2 if Level2_18 then v163 = Level2_18 elseif ChargeLevel_74 ~= 3 then v175 = ScaleLaserTrail_2 else local v214 = ScaleLaserTrail_1.Level3 v175 = ScaleLaserTrail_1.Level3 or ScaleLaserTrail_2 end elseif ChargeLevel_74 ~= 3 then v163 = ScaleLaserTrail_2 else local v214 = ScaleLaserTrail_1.Level3 v163 = ScaleLaserTrail_1.Level3 or ScaleLaserTrail_2 end else v175 = ScaleLaserTrail_2 end tbl_9.ScaleLaserTrail = v163 local ChargedShotAdvanceEnabled_63 = a4.ChargedShotAdvanceEnabled local ChargeLevel_75 = a8.ChargeLevel local LaserTrailScaleMultiplier_1 = a4.ChargeAlterTable.LaserTrailScaleMultiplier local LaserTrailScaleMultiplier_2 = a4.LaserTrailScaleMultiplier if LaserTrailScaleMultiplier_1 == nil then v163 = LaserTrailScaleMultiplier_2 elseif ChargedShotAdvanceEnabled_63 and ChargeLevel_75 then if ChargeLevel_75 == 1 then local Level1_18 = LaserTrailScaleMultiplier_1.Level1 if Level1_18 then v163 = Level1_18 elseif ChargeLevel_75 == 2 then local Level2_19 = LaserTrailScaleMultiplier_1.Level2 if Level2_19 then v175 = Level2_19 elseif ChargeLevel_75 ~= 3 then v175 = LaserTrailScaleMultiplier_2 else local v215 = LaserTrailScaleMultiplier_1.Level3 v175 = LaserTrailScaleMultiplier_1.Level3 or LaserTrailScaleMultiplier_2 end elseif ChargeLevel_75 ~= 3 then v175 = LaserTrailScaleMultiplier_2 else local v215 = LaserTrailScaleMultiplier_1.Level3 v175 = LaserTrailScaleMultiplier_1.Level3 or LaserTrailScaleMultiplier_2 end elseif ChargeLevel_75 == 2 then local Level2_19 = LaserTrailScaleMultiplier_1.Level2 if Level2_19 then v163 = Level2_19 elseif ChargeLevel_75 ~= 3 then v175 = LaserTrailScaleMultiplier_2 else local v215 = LaserTrailScaleMultiplier_1.Level3 v175 = LaserTrailScaleMultiplier_1.Level3 or LaserTrailScaleMultiplier_2 end elseif ChargeLevel_75 ~= 3 then v163 = LaserTrailScaleMultiplier_2 else local v215 = LaserTrailScaleMultiplier_1.Level3 v163 = LaserTrailScaleMultiplier_1.Level3 or LaserTrailScaleMultiplier_2 end else v175 = LaserTrailScaleMultiplier_2 end tbl_9.LaserTrailScaleMultiplier = v163 tbl_9.RandomLaserColor = Color3.new(math.random(), math.random(), math.random()) tbl_9.LaserTrailId = v165 tbl_9.UpdateLaserTrail = u55 tbl_9.LaserTrailContainer = {} v176.LaserData = tbl_9 local tbl_10 = {BoltVisibleTime = 0, BoltCFrameTable = 0, BoltHeight = 0, BoltScaleMultiplier = 0, BoltWideness = 0, BoltMaterial = 0, BoltWidth = 0, RandomizeBoltColorIn = 0, BoltShape = 0, ScaleBolt = 0, BoltReflectance = 0, BoltFadeTime = 0, LightningBoltEnabled = 0, BoltTransparency = 0, BoltColor = 0, RandomBoltColor = 0} local ChargedShotAdvanceEnabled_64 = a4.ChargedShotAdvanceEnabled local ChargeLevel_76 = a8.ChargeLevel local LightningBoltEnabled_2 = a4.ChargeAlterTable.LightningBoltEnabled local LightningBoltEnabled_3 = a4.LightningBoltEnabled if LightningBoltEnabled_2 == nil then v178 = LightningBoltEnabled_3 elseif ChargedShotAdvanceEnabled_64 and ChargeLevel_76 then if ChargeLevel_76 == 1 then v178 = LightningBoltEnabled_2.Level1 if not (v178) then if ChargeLevel_76 == 2 then v175 = LightningBoltEnabled_2.Level2 if not v175 then if ChargeLevel_76 ~= 3 then v175 = LightningBoltEnabled_3 else v175 = LightningBoltEnabled_2.Level3 v175 = v175 or LightningBoltEnabled_3 end end elseif ChargeLevel_76 ~= 3 then v175 = LightningBoltEnabled_3 else v175 = LightningBoltEnabled_2.Level3 v175 = v175 or LightningBoltEnabled_3 end end elseif ChargeLevel_76 == 2 then v178 = LightningBoltEnabled_2.Level2 if not v178 then if ChargeLevel_76 ~= 3 then v175 = LightningBoltEnabled_3 else v175 = LightningBoltEnabled_2.Level3 v175 = v175 or LightningBoltEnabled_3 end end elseif ChargeLevel_76 ~= 3 then v178 = LightningBoltEnabled_3 else v178 = LightningBoltEnabled_2.Level3 v178 = v178 or LightningBoltEnabled_3 end else v175 = LightningBoltEnabled_3 end tbl_10.LightningBoltEnabled = v178 local ChargedShotAdvanceEnabled_65 = a4.ChargedShotAdvanceEnabled local ChargeLevel_77 = a8.ChargeLevel local BoltWideness_1 = a4.ChargeAlterTable.BoltWideness local BoltWideness_2 = a4.BoltWideness if BoltWideness_1 == nil then v178 = BoltWideness_2 elseif ChargedShotAdvanceEnabled_65 and ChargeLevel_77 then if ChargeLevel_77 == 1 then v178 = BoltWideness_1.Level1 if not v178 then if ChargeLevel_77 == 2 then v175 = BoltWideness_1.Level2 if not v175 then if ChargeLevel_77 ~= 3 then v175 = BoltWideness_2 else v175 = BoltWideness_1.Level3 v175 = v175 or BoltWideness_2 end end elseif ChargeLevel_77 ~= 3 then v175 = BoltWideness_2 else v175 = BoltWideness_1.Level3 v175 = v175 or BoltWideness_2 end end elseif ChargeLevel_77 == 2 then v178 = BoltWideness_1.Level2 if not v178 then if ChargeLevel_77 ~= 3 then v175 = BoltWideness_2 else v175 = BoltWideness_1.Level3 v175 = v175 or BoltWideness_2 end end elseif ChargeLevel_77 ~= 3 then v178 = BoltWideness_2 else v178 = BoltWideness_1.Level3 v178 = v178 or BoltWideness_2 end else v175 = BoltWideness_2 end tbl_10.BoltWideness = v178 local ChargedShotAdvanceEnabled_66 = a4.ChargedShotAdvanceEnabled local ChargeLevel_78 = a8.ChargeLevel local BoltWidth_1 = a4.ChargeAlterTable.BoltWidth local BoltWidth_2 = a4.BoltWidth if BoltWidth_1 == nil then v178 = BoltWidth_2 elseif ChargedShotAdvanceEnabled_66 and ChargeLevel_78 then if ChargeLevel_78 == 1 then v178 = BoltWidth_1.Level1 if not v178 then if ChargeLevel_78 == 2 then v175 = BoltWidth_1.Level2 if not v175 then if ChargeLevel_78 ~= 3 then v175 = BoltWidth_2 else v175 = BoltWidth_1.Level3 v175 = v175 or BoltWidth_2 end end elseif ChargeLevel_78 ~= 3 then v175 = BoltWidth_2 else v175 = BoltWidth_1.Level3 v175 = v175 or BoltWidth_2 end end elseif ChargeLevel_78 == 2 then v178 = BoltWidth_1.Level2 if not v178 then if ChargeLevel_78 ~= 3 then v175 = BoltWidth_2 else v175 = BoltWidth_1.Level3 v175 = v175 or BoltWidth_2 end end elseif ChargeLevel_78 ~= 3 then v178 = BoltWidth_2 else v178 = BoltWidth_1.Level3 v178 = v178 or BoltWidth_2 end else v175 = BoltWidth_2 end tbl_10.BoltWidth = v178 local ChargedShotAdvanceEnabled_67 = a4.ChargedShotAdvanceEnabled local ChargeLevel_79 = a8.ChargeLevel local BoltHeight_1 = a4.ChargeAlterTable.BoltHeight local BoltHeight_2 = a4.BoltHeight if BoltHeight_1 == nil then v178 = BoltHeight_2 elseif ChargedShotAdvanceEnabled_67 and ChargeLevel_79 then if ChargeLevel_79 == 1 then v178 = BoltHeight_1.Level1 if not v178 then if ChargeLevel_79 == 2 then v175 = BoltHeight_1.Level2 if not v175 then if ChargeLevel_79 ~= 3 then v175 = BoltHeight_2 else v175 = BoltHeight_1.Level3 v175 = v175 or BoltHeight_2 end end elseif ChargeLevel_79 ~= 3 then v175 = BoltHeight_2 else v175 = BoltHeight_1.Level3 v175 = v175 or BoltHeight_2 end end elseif ChargeLevel_79 == 2 then v178 = BoltHeight_1.Level2 if not v178 then if ChargeLevel_79 ~= 3 then v175 = BoltHeight_2 else v175 = BoltHeight_1.Level3 v175 = v175 or BoltHeight_2 end end elseif ChargeLevel_79 ~= 3 then v178 = BoltHeight_2 else v178 = BoltHeight_1.Level3 v178 = v178 or BoltHeight_2 end else v175 = BoltHeight_2 end tbl_10.BoltHeight = v178 local ChargedShotAdvanceEnabled_68 = a4.ChargedShotAdvanceEnabled local ChargeLevel_80 = a8.ChargeLevel local BoltColor_1 = a4.ChargeAlterTable.BoltColor local BoltColor_2 = a4.BoltColor if BoltColor_1 == nil then v178 = BoltColor_2 elseif ChargedShotAdvanceEnabled_68 and ChargeLevel_80 then if ChargeLevel_80 == 1 then v178 = BoltColor_1.Level1 if not v178 then if ChargeLevel_80 == 2 then v175 = BoltColor_1.Level2 if not v175 then if ChargeLevel_80 ~= 3 then v175 = BoltColor_2 else v175 = BoltColor_1.Level3 v175 = v175 or BoltColor_2 end end elseif ChargeLevel_80 ~= 3 then v175 = BoltColor_2 else v175 = BoltColor_1.Level3 v175 = v175 or BoltColor_2 end end elseif ChargeLevel_80 == 2 then v178 = BoltColor_1.Level2 if not v178 then if ChargeLevel_80 ~= 3 then v175 = BoltColor_2 else v175 = BoltColor_1.Level3 v175 = v175 or BoltColor_2 end end elseif ChargeLevel_80 ~= 3 then v178 = BoltColor_2 else v178 = BoltColor_1.Level3 v178 = v178 or BoltColor_2 end else v175 = BoltColor_2 end tbl_10.BoltColor = v178 local ChargedShotAdvanceEnabled_69 = a4.ChargedShotAdvanceEnabled local ChargeLevel_81 = a8.ChargeLevel local RandomizeBoltColorIn_1 = a4.ChargeAlterTable.RandomizeBoltColorIn local RandomizeBoltColorIn_2 = a4.RandomizeBoltColorIn if RandomizeBoltColorIn_1 == nil then v178 = RandomizeBoltColorIn_2 elseif ChargedShotAdvanceEnabled_69 and ChargeLevel_81 then if ChargeLevel_81 == 1 then v178 = RandomizeBoltColorIn_1.Level1 if not v178 then if ChargeLevel_81 == 2 then v175 = RandomizeBoltColorIn_1.Level2 if not v175 then if ChargeLevel_81 ~= 3 then v175 = RandomizeBoltColorIn_2 else v175 = RandomizeBoltColorIn_1.Level3 v175 = v175 or RandomizeBoltColorIn_2 end end elseif ChargeLevel_81 ~= 3 then v175 = RandomizeBoltColorIn_2 else v175 = RandomizeBoltColorIn_1.Level3 v175 = v175 or RandomizeBoltColorIn_2 end end elseif ChargeLevel_81 == 2 then v178 = RandomizeBoltColorIn_1.Level2 if not v178 then if ChargeLevel_81 ~= 3 then v175 = RandomizeBoltColorIn_2 else v175 = RandomizeBoltColorIn_1.Level3 v175 = v175 or RandomizeBoltColorIn_2 end end elseif ChargeLevel_81 ~= 3 then v178 = RandomizeBoltColorIn_2 else v178 = RandomizeBoltColorIn_1.Level3 v178 = v178 or RandomizeBoltColorIn_2 end else v175 = RandomizeBoltColorIn_2 end tbl_10.RandomizeBoltColorIn = v178 local ChargedShotAdvanceEnabled_70 = a4.ChargedShotAdvanceEnabled local ChargeLevel_82 = a8.ChargeLevel local BoltMaterial_1 = a4.ChargeAlterTable.BoltMaterial local BoltMaterial_2 = a4.BoltMaterial if BoltMaterial_1 == nil then v178 = BoltMaterial_2 elseif ChargedShotAdvanceEnabled_70 and ChargeLevel_82 then if ChargeLevel_82 == 1 then v178 = BoltMaterial_1.Level1 if not v178 then if ChargeLevel_82 == 2 then v175 = BoltMaterial_1.Level2 if not v175 then if ChargeLevel_82 ~= 3 then v175 = BoltMaterial_2 else v175 = BoltMaterial_1.Level3 v175 = v175 or BoltMaterial_2 end end elseif ChargeLevel_82 ~= 3 then v175 = BoltMaterial_2 else v175 = BoltMaterial_1.Level3 v175 = v175 or BoltMaterial_2 end end elseif ChargeLevel_82 == 2 then v178 = BoltMaterial_1.Level2 if not v178 then if ChargeLevel_82 ~= 3 then v175 = BoltMaterial_2 else v175 = BoltMaterial_1.Level3 v175 = v175 or BoltMaterial_2 end end elseif ChargeLevel_82 ~= 3 then v178 = BoltMaterial_2 else v178 = BoltMaterial_1.Level3 v178 = v178 or BoltMaterial_2 end else v175 = BoltMaterial_2 end tbl_10.BoltMaterial = v178 local ChargedShotAdvanceEnabled_71 = a4.ChargedShotAdvanceEnabled local ChargeLevel_83 = a8.ChargeLevel local BoltShape_1 = a4.ChargeAlterTable.BoltShape local BoltShape_2 = a4.BoltShape if BoltShape_1 == nil then v178 = BoltShape_2 elseif ChargedShotAdvanceEnabled_71 and ChargeLevel_83 then if ChargeLevel_83 == 1 then v178 = BoltShape_1.Level1 if not v178 then if ChargeLevel_83 == 2 then v175 = BoltShape_1.Level2 if not v175 then if ChargeLevel_83 ~= 3 then v175 = BoltShape_2 else v175 = BoltShape_1.Level3 v175 = v175 or BoltShape_2 end end elseif ChargeLevel_83 ~= 3 then v175 = BoltShape_2 else v175 = BoltShape_1.Level3 v175 = v175 or BoltShape_2 end end elseif ChargeLevel_83 == 2 then v178 = BoltShape_1.Level2 if not v178 then if ChargeLevel_83 ~= 3 then v175 = BoltShape_2 else v175 = BoltShape_1.Level3 v175 = v175 or BoltShape_2 end end elseif ChargeLevel_83 ~= 3 then v178 = BoltShape_2 else v178 = BoltShape_1.Level3 v178 = v178 or BoltShape_2 end else v175 = BoltShape_2 end tbl_10.BoltShape = v178 local ChargedShotAdvanceEnabled_72 = a4.ChargedShotAdvanceEnabled local ChargeLevel_84 = a8.ChargeLevel local BoltReflectance_1 = a4.ChargeAlterTable.BoltReflectance local BoltReflectance_2 = a4.BoltReflectance if BoltReflectance_1 == nil then v178 = BoltReflectance_2 elseif ChargedShotAdvanceEnabled_72 and ChargeLevel_84 then if ChargeLevel_84 == 1 then v178 = BoltReflectance_1.Level1 if not v178 then if ChargeLevel_84 == 2 then v175 = BoltReflectance_1.Level2 if not v175 then if ChargeLevel_84 ~= 3 then v175 = BoltReflectance_2 else v175 = BoltReflectance_1.Level3 v175 = v175 or BoltReflectance_2 end end elseif ChargeLevel_84 ~= 3 then v175 = BoltReflectance_2 else v175 = BoltReflectance_1.Level3 v175 = v175 or BoltReflectance_2 end end elseif ChargeLevel_84 == 2 then v178 = BoltReflectance_1.Level2 if not v178 then if ChargeLevel_84 ~= 3 then v175 = BoltReflectance_2 else v175 = BoltReflectance_1.Level3 v175 = v175 or BoltReflectance_2 end end elseif ChargeLevel_84 ~= 3 then v178 = BoltReflectance_2 else v178 = BoltReflectance_1.Level3 v178 = v178 or BoltReflectance_2 end else v175 = BoltReflectance_2 end tbl_10.BoltReflectance = v178 local ChargedShotAdvanceEnabled_73 = a4.ChargedShotAdvanceEnabled local ChargeLevel_85 = a8.ChargeLevel local BoltTransparency_1 = a4.ChargeAlterTable.BoltTransparency local BoltTransparency_2 = a4.BoltTransparency if BoltTransparency_1 == nil then v178 = BoltTransparency_2 elseif ChargedShotAdvanceEnabled_73 and ChargeLevel_85 then if ChargeLevel_85 == 1 then v178 = BoltTransparency_1.Level1 if not v178 then if ChargeLevel_85 == 2 then v175 = BoltTransparency_1.Level2 if not v175 then if ChargeLevel_85 ~= 3 then v175 = BoltTransparency_2 else v175 = BoltTransparency_1.Level3 v175 = v175 or BoltTransparency_2 end end elseif ChargeLevel_85 ~= 3 then v175 = BoltTransparency_2 else v175 = BoltTransparency_1.Level3 v175 = v175 or BoltTransparency_2 end end elseif ChargeLevel_85 == 2 then v178 = BoltTransparency_1.Level2 if not v178 then if ChargeLevel_85 ~= 3 then v175 = BoltTransparency_2 else v175 = BoltTransparency_1.Level3 v175 = v175 or BoltTransparency_2 end end elseif ChargeLevel_85 ~= 3 then v178 = BoltTransparency_2 else v178 = BoltTransparency_1.Level3 v178 = v178 or BoltTransparency_2 end else v175 = BoltTransparency_2 end tbl_10.BoltTransparency = v178 local ChargedShotAdvanceEnabled_74 = a4.ChargedShotAdvanceEnabled local ChargeLevel_86 = a8.ChargeLevel local BoltVisibleTime_1 = a4.ChargeAlterTable.BoltVisibleTime local BoltVisibleTime_2 = a4.BoltVisibleTime if BoltVisibleTime_1 == nil then v178 = BoltVisibleTime_2 elseif ChargedShotAdvanceEnabled_74 and ChargeLevel_86 then if ChargeLevel_86 == 1 then v178 = BoltVisibleTime_1.Level1 if not v178 then if ChargeLevel_86 == 2 then v175 = BoltVisibleTime_1.Level2 if not v175 then if ChargeLevel_86 ~= 3 then v175 = BoltVisibleTime_2 else v175 = BoltVisibleTime_1.Level3 v175 = v175 or BoltVisibleTime_2 end end elseif ChargeLevel_86 ~= 3 then v175 = BoltVisibleTime_2 else v175 = BoltVisibleTime_1.Level3 v175 = v175 or BoltVisibleTime_2 end end elseif ChargeLevel_86 == 2 then v178 = BoltVisibleTime_1.Level2 if not v178 then if ChargeLevel_86 ~= 3 then v175 = BoltVisibleTime_2 else v175 = BoltVisibleTime_1.Level3 v175 = v175 or BoltVisibleTime_2 end end elseif ChargeLevel_86 ~= 3 then v178 = BoltVisibleTime_2 else v178 = BoltVisibleTime_1.Level3 v178 = v178 or BoltVisibleTime_2 end else v175 = BoltVisibleTime_2 end tbl_10.BoltVisibleTime = v178 local ChargedShotAdvanceEnabled_75 = a4.ChargedShotAdvanceEnabled local ChargeLevel_87 = a8.ChargeLevel local BoltFadeTime_1 = a4.ChargeAlterTable.BoltFadeTime local BoltFadeTime_2 = a4.BoltFadeTime if BoltFadeTime_1 == nil then v178 = BoltFadeTime_2 elseif ChargedShotAdvanceEnabled_75 and ChargeLevel_87 then if ChargeLevel_87 == 1 then v178 = BoltFadeTime_1.Level1 if not v178 then if ChargeLevel_87 == 2 then v175 = BoltFadeTime_1.Level2 if not v175 then if ChargeLevel_87 ~= 3 then v175 = BoltFadeTime_2 else v175 = BoltFadeTime_1.Level3 v175 = v175 or BoltFadeTime_2 end end elseif ChargeLevel_87 ~= 3 then v175 = BoltFadeTime_2 else v175 = BoltFadeTime_1.Level3 v175 = v175 or BoltFadeTime_2 end end elseif ChargeLevel_87 == 2 then v178 = BoltFadeTime_1.Level2 if not v178 then if ChargeLevel_87 ~= 3 then v175 = BoltFadeTime_2 else v175 = BoltFadeTime_1.Level3 v175 = v175 or BoltFadeTime_2 end end elseif ChargeLevel_87 ~= 3 then v178 = BoltFadeTime_2 else v178 = BoltFadeTime_1.Level3 v178 = v178 or BoltFadeTime_2 end else v175 = BoltFadeTime_2 end tbl_10.BoltFadeTime = v178 local ChargedShotAdvanceEnabled_76 = a4.ChargedShotAdvanceEnabled local ChargeLevel_88 = a8.ChargeLevel local ScaleBolt_1 = a4.ChargeAlterTable.ScaleBolt local ScaleBolt_2 = a4.ScaleBolt if ScaleBolt_1 == nil then v178 = ScaleBolt_2 elseif ChargedShotAdvanceEnabled_76 and ChargeLevel_88 then if ChargeLevel_88 == 1 then v178 = ScaleBolt_1.Level1 if not v178 then if ChargeLevel_88 == 2 then v175 = ScaleBolt_1.Level2 if not v175 then if ChargeLevel_88 ~= 3 then v175 = ScaleBolt_2 else v175 = ScaleBolt_1.Level3 v175 = v175 or ScaleBolt_2 end end elseif ChargeLevel_88 ~= 3 then v175 = ScaleBolt_2 else v175 = ScaleBolt_1.Level3 v175 = v175 or ScaleBolt_2 end end elseif ChargeLevel_88 == 2 then v178 = ScaleBolt_1.Level2 if not v178 then if ChargeLevel_88 ~= 3 then v175 = ScaleBolt_2 else v175 = ScaleBolt_1.Level3 v175 = v175 or ScaleBolt_2 end end elseif ChargeLevel_88 ~= 3 then v178 = ScaleBolt_2 else v178 = ScaleBolt_1.Level3 v178 = v178 or ScaleBolt_2 end else v175 = ScaleBolt_2 end tbl_10.ScaleBolt = v178 local ChargedShotAdvanceEnabled_77 = a4.ChargedShotAdvanceEnabled local ChargeLevel_89 = a8.ChargeLevel local BoltScaleMultiplier_1 = a4.ChargeAlterTable.BoltScaleMultiplier local BoltScaleMultiplier_2 = a4.BoltScaleMultiplier if BoltScaleMultiplier_1 == nil then v178 = BoltScaleMultiplier_2 elseif ChargedShotAdvanceEnabled_77 and ChargeLevel_89 then if ChargeLevel_89 == 1 then v178 = BoltScaleMultiplier_1.Level1 if not v178 then if ChargeLevel_89 == 2 then v175 = BoltScaleMultiplier_1.Level2 if not v175 then if ChargeLevel_89 ~= 3 then v175 = BoltScaleMultiplier_2 else v175 = BoltScaleMultiplier_1.Level3 v175 = v175 or BoltScaleMultiplier_2 end end elseif ChargeLevel_89 ~= 3 then v175 = BoltScaleMultiplier_2 else v175 = BoltScaleMultiplier_1.Level3 v175 = v175 or BoltScaleMultiplier_2 end end elseif ChargeLevel_89 == 2 then v178 = BoltScaleMultiplier_1.Level2 if not v178 then if ChargeLevel_89 ~= 3 then v175 = BoltScaleMultiplier_2 else v175 = BoltScaleMultiplier_1.Level3 v175 = v175 or BoltScaleMultiplier_2 end end elseif ChargeLevel_89 ~= 3 then v178 = BoltScaleMultiplier_2 else v178 = BoltScaleMultiplier_1.Level3 v178 = v178 or BoltScaleMultiplier_2 end else v175 = BoltScaleMultiplier_2 end tbl_10.BoltScaleMultiplier = v178 tbl_10.RandomBoltColor = Color3.new(math.random(), math.random(), math.random()) tbl_10.BoltCFrameTable = v159 v176.LightningData = tbl_10 local tbl_11 = {ProjectileOffset = 0, InitalRotation = 0, InitalAngularVelocity = 0, SpinX = 0, InitalTick = 0, SpinY = 0, SpinZ = 0, CanSpinPart = 0} local ChargedShotAdvanceEnabled_78 = a4.ChargedShotAdvanceEnabled local ChargeLevel_90 = a8.ChargeLevel local CanSpinPart_1 = a4.ChargeAlterTable.CanSpinPart local CanSpinPart_2 = a4.CanSpinPart if CanSpinPart_1 == nil then v178 = CanSpinPart_2 elseif ChargedShotAdvanceEnabled_78 and ChargeLevel_90 then if ChargeLevel_90 == 1 then v178 = CanSpinPart_1.Level1 if not (v178) then if ChargeLevel_90 == 2 then v175 = CanSpinPart_1.Level2 if not v175 then if ChargeLevel_90 ~= 3 then v175 = CanSpinPart_2 else v175 = CanSpinPart_1.Level3 v175 = v175 or CanSpinPart_2 end end elseif ChargeLevel_90 ~= 3 then v175 = CanSpinPart_2 else v175 = CanSpinPart_1.Level3 v175 = v175 or CanSpinPart_2 end end elseif ChargeLevel_90 == 2 then v178 = CanSpinPart_1.Level2 if not v178 then if ChargeLevel_90 ~= 3 then v175 = CanSpinPart_2 else v175 = CanSpinPart_1.Level3 v175 = v175 or CanSpinPart_2 end end elseif ChargeLevel_90 ~= 3 then v178 = CanSpinPart_2 else v178 = CanSpinPart_1.Level3 v178 = v178 or CanSpinPart_2 end else v175 = CanSpinPart_2 end tbl_11.CanSpinPart = v178 tbl_11.SpinX = v169 tbl_11.SpinY = v168 tbl_11.SpinZ = v167 tbl_11.InitalTick = os.clock() tbl_11.InitalAngularVelocity = Vector3.new(v169, v168, v167) tbl_11.InitalRotation = v172.CurrentCFrame - v172.CurrentCFrame.p tbl_11.ProjectileOffset = Vector3.new() v176.SpinData = tbl_11 local tbl_12 = {CollideDebris = 0, AnchorDecay = 0, DecayProjectile = 0, DisableDebrisContents = 0, CollideDecay = 0, BounceDebris = 0, DebrisProjectile = 0, BounceVelocity = 0, AnchorDebris = 0, VelocityInfluence = 0, DecayVelocity = 0, NormalizeDebris = 0} local ChargedShotAdvanceEnabled_79 = a4.ChargedShotAdvanceEnabled local ChargeLevel_91 = a8.ChargeLevel local DebrisProjectile_1 = a4.ChargeAlterTable.DebrisProjectile local DebrisProjectile_2 = a4.DebrisProjectile if DebrisProjectile_1 == nil then v178 = DebrisProjectile_2 elseif ChargedShotAdvanceEnabled_79 and ChargeLevel_91 then if ChargeLevel_91 == 1 then v178 = DebrisProjectile_1.Level1 if not (v178) then if ChargeLevel_91 == 2 then v175 = DebrisProjectile_1.Level2 if not v175 then if ChargeLevel_91 ~= 3 then v175 = DebrisProjectile_2 else v175 = DebrisProjectile_1.Level3 v175 = v175 or DebrisProjectile_2 end end elseif ChargeLevel_91 ~= 3 then v175 = DebrisProjectile_2 else v175 = DebrisProjectile_1.Level3 v175 = v175 or DebrisProjectile_2 end end elseif ChargeLevel_91 == 2 then v178 = DebrisProjectile_1.Level2 if not v178 then if ChargeLevel_91 ~= 3 then v175 = DebrisProjectile_2 else v175 = DebrisProjectile_1.Level3 v175 = v175 or DebrisProjectile_2 end end elseif ChargeLevel_91 ~= 3 then v178 = DebrisProjectile_2 else v178 = DebrisProjectile_1.Level3 v178 = v178 or DebrisProjectile_2 end else v175 = DebrisProjectile_2 end tbl_12.DebrisProjectile = v178 local ChargedShotAdvanceEnabled_80 = a4.ChargedShotAdvanceEnabled local ChargeLevel_92 = a8.ChargeLevel local AnchorDebris_1 = a4.ChargeAlterTable.AnchorDebris local AnchorDebris_2 = a4.AnchorDebris if AnchorDebris_1 == nil then v178 = AnchorDebris_2 elseif ChargedShotAdvanceEnabled_80 and ChargeLevel_92 then if ChargeLevel_92 == 1 then v178 = AnchorDebris_1.Level1 if not v178 then if ChargeLevel_92 == 2 then v175 = AnchorDebris_1.Level2 if not v175 then if ChargeLevel_92 ~= 3 then v175 = AnchorDebris_2 else v175 = AnchorDebris_1.Level3 v175 = v175 or AnchorDebris_2 end end elseif ChargeLevel_92 ~= 3 then v175 = AnchorDebris_2 else v175 = AnchorDebris_1.Level3 v175 = v175 or AnchorDebris_2 end end elseif ChargeLevel_92 == 2 then v178 = AnchorDebris_1.Level2 if not v178 then if ChargeLevel_92 ~= 3 then v175 = AnchorDebris_2 else v175 = AnchorDebris_1.Level3 v175 = v175 or AnchorDebris_2 end end elseif ChargeLevel_92 ~= 3 then v178 = AnchorDebris_2 else v178 = AnchorDebris_1.Level3 v178 = v178 or AnchorDebris_2 end else v175 = AnchorDebris_2 end tbl_12.AnchorDebris = v178 local ChargedShotAdvanceEnabled_81 = a4.ChargedShotAdvanceEnabled local ChargeLevel_93 = a8.ChargeLevel local CollideDebris_1 = a4.ChargeAlterTable.CollideDebris local CollideDebris_2 = a4.CollideDebris if CollideDebris_1 == nil then v178 = CollideDebris_2 elseif ChargedShotAdvanceEnabled_81 and ChargeLevel_93 then if ChargeLevel_93 == 1 then v178 = CollideDebris_1.Level1 if not v178 then if ChargeLevel_93 == 2 then v175 = CollideDebris_1.Level2 if not v175 then if ChargeLevel_93 ~= 3 then v175 = CollideDebris_2 else v175 = CollideDebris_1.Level3 v175 = v175 or CollideDebris_2 end end elseif ChargeLevel_93 ~= 3 then v175 = CollideDebris_2 else v175 = CollideDebris_1.Level3 v175 = v175 or CollideDebris_2 end end elseif ChargeLevel_93 == 2 then v178 = CollideDebris_1.Level2 if not v178 then if ChargeLevel_93 ~= 3 then v175 = CollideDebris_2 else v175 = CollideDebris_1.Level3 v175 = v175 or CollideDebris_2 end end elseif ChargeLevel_93 ~= 3 then v178 = CollideDebris_2 else v178 = CollideDebris_1.Level3 v178 = v178 or CollideDebris_2 end else v175 = CollideDebris_2 end tbl_12.CollideDebris = v178 local ChargedShotAdvanceEnabled_82 = a4.ChargedShotAdvanceEnabled local ChargeLevel_94 = a8.ChargeLevel local NormalizeDebris_1 = a4.ChargeAlterTable.NormalizeDebris local NormalizeDebris_2 = a4.NormalizeDebris if NormalizeDebris_1 == nil then v178 = NormalizeDebris_2 elseif ChargedShotAdvanceEnabled_82 and ChargeLevel_94 then if ChargeLevel_94 == 1 then v178 = NormalizeDebris_1.Level1 if not v178 then if ChargeLevel_94 == 2 then v175 = NormalizeDebris_1.Level2 if not v175 then if ChargeLevel_94 ~= 3 then v175 = NormalizeDebris_2 else v175 = NormalizeDebris_1.Level3 v175 = v175 or NormalizeDebris_2 end end elseif ChargeLevel_94 ~= 3 then v175 = NormalizeDebris_2 else v175 = NormalizeDebris_1.Level3 v175 = v175 or NormalizeDebris_2 end end elseif ChargeLevel_94 == 2 then v178 = NormalizeDebris_1.Level2 if not v178 then if ChargeLevel_94 ~= 3 then v175 = NormalizeDebris_2 else v175 = NormalizeDebris_1.Level3 v175 = v175 or NormalizeDebris_2 end end elseif ChargeLevel_94 ~= 3 then v178 = NormalizeDebris_2 else v178 = NormalizeDebris_1.Level3 v178 = v178 or NormalizeDebris_2 end else v175 = NormalizeDebris_2 end tbl_12.NormalizeDebris = v178 local ChargedShotAdvanceEnabled_83 = a4.ChargedShotAdvanceEnabled local ChargeLevel_95 = a8.ChargeLevel local BounceDebris_1 = a4.ChargeAlterTable.BounceDebris local BounceDebris_2 = a4.BounceDebris if BounceDebris_1 == nil then v178 = BounceDebris_2 elseif ChargedShotAdvanceEnabled_83 and ChargeLevel_95 then if ChargeLevel_95 == 1 then v178 = BounceDebris_1.Level1 if not v178 then if ChargeLevel_95 == 2 then v175 = BounceDebris_1.Level2 if not v175 then if ChargeLevel_95 ~= 3 then v175 = BounceDebris_2 else v175 = BounceDebris_1.Level3 v175 = v175 or BounceDebris_2 end end elseif ChargeLevel_95 ~= 3 then v175 = BounceDebris_2 else v175 = BounceDebris_1.Level3 v175 = v175 or BounceDebris_2 end end elseif ChargeLevel_95 == 2 then v178 = BounceDebris_1.Level2 if not v178 then if ChargeLevel_95 ~= 3 then v175 = BounceDebris_2 else v175 = BounceDebris_1.Level3 v175 = v175 or BounceDebris_2 end end elseif ChargeLevel_95 ~= 3 then v178 = BounceDebris_2 else v178 = BounceDebris_1.Level3 v178 = v178 or BounceDebris_2 end else v175 = BounceDebris_2 end tbl_12.BounceDebris = v178 local ChargedShotAdvanceEnabled_84 = a4.ChargedShotAdvanceEnabled local ChargeLevel_96 = a8.ChargeLevel local BounceVelocity_2 = a4.ChargeAlterTable.BounceVelocity local BounceVelocity_3 = a4.BounceVelocity if BounceVelocity_2 == nil then v178 = BounceVelocity_3 elseif ChargedShotAdvanceEnabled_84 and ChargeLevel_96 then if ChargeLevel_96 == 1 then v178 = BounceVelocity_2.Level1 if not v178 then if ChargeLevel_96 == 2 then v175 = BounceVelocity_2.Level2 if not v175 then if ChargeLevel_96 ~= 3 then v175 = BounceVelocity_3 else v175 = BounceVelocity_2.Level3 v175 = v175 or BounceVelocity_3 end end elseif ChargeLevel_96 ~= 3 then v175 = BounceVelocity_3 else v175 = BounceVelocity_2.Level3 v175 = v175 or BounceVelocity_3 end end elseif ChargeLevel_96 == 2 then v178 = BounceVelocity_2.Level2 if not v178 then if ChargeLevel_96 ~= 3 then v175 = BounceVelocity_3 else v175 = BounceVelocity_2.Level3 v175 = v175 or BounceVelocity_3 end end elseif ChargeLevel_96 ~= 3 then v178 = BounceVelocity_3 else v178 = BounceVelocity_2.Level3 v178 = v178 or BounceVelocity_3 end else v175 = BounceVelocity_3 end tbl_12.BounceVelocity = v178 local ChargedShotAdvanceEnabled_85 = a4.ChargedShotAdvanceEnabled local ChargeLevel_97 = a8.ChargeLevel local DecayProjectile_1 = a4.ChargeAlterTable.DecayProjectile local DecayProjectile_2 = a4.DecayProjectile if DecayProjectile_1 == nil then v178 = DecayProjectile_2 elseif ChargedShotAdvanceEnabled_85 and ChargeLevel_97 then if ChargeLevel_97 == 1 then v178 = DecayProjectile_1.Level1 if not v178 then if ChargeLevel_97 == 2 then v175 = DecayProjectile_1.Level2 if not v175 then if ChargeLevel_97 ~= 3 then v175 = DecayProjectile_2 else v175 = DecayProjectile_1.Level3 v175 = v175 or DecayProjectile_2 end end elseif ChargeLevel_97 ~= 3 then v175 = DecayProjectile_2 else v175 = DecayProjectile_1.Level3 v175 = v175 or DecayProjectile_2 end end elseif ChargeLevel_97 == 2 then v178 = DecayProjectile_1.Level2 if not v178 then if ChargeLevel_97 ~= 3 then v175 = DecayProjectile_2 else v175 = DecayProjectile_1.Level3 v175 = v175 or DecayProjectile_2 end end elseif ChargeLevel_97 ~= 3 then v178 = DecayProjectile_2 else v178 = DecayProjectile_1.Level3 v178 = v178 or DecayProjectile_2 end else v175 = DecayProjectile_2 end tbl_12.DecayProjectile = v178 local ChargedShotAdvanceEnabled_86 = a4.ChargedShotAdvanceEnabled local ChargeLevel_98 = a8.ChargeLevel local AnchorDecay_1 = a4.ChargeAlterTable.AnchorDecay local AnchorDecay_2 = a4.AnchorDecay if AnchorDecay_1 == nil then v178 = AnchorDecay_2 elseif ChargedShotAdvanceEnabled_86 and ChargeLevel_98 then if ChargeLevel_98 == 1 then v178 = AnchorDecay_1.Level1 if not v178 then if ChargeLevel_98 == 2 then v175 = AnchorDecay_1.Level2 if not v175 then if ChargeLevel_98 ~= 3 then v175 = AnchorDecay_2 else v175 = AnchorDecay_1.Level3 v175 = v175 or AnchorDecay_2 end end elseif ChargeLevel_98 ~= 3 then v175 = AnchorDecay_2 else v175 = AnchorDecay_1.Level3 v175 = v175 or AnchorDecay_2 end end elseif ChargeLevel_98 == 2 then v178 = AnchorDecay_1.Level2 if not v178 then if ChargeLevel_98 ~= 3 then v175 = AnchorDecay_2 else v175 = AnchorDecay_1.Level3 v175 = v175 or AnchorDecay_2 end end elseif ChargeLevel_98 ~= 3 then v178 = AnchorDecay_2 else v178 = AnchorDecay_1.Level3 v178 = v178 or AnchorDecay_2 end else v175 = AnchorDecay_2 end tbl_12.AnchorDecay = v178 local ChargedShotAdvanceEnabled_87 = a4.ChargedShotAdvanceEnabled local ChargeLevel_99 = a8.ChargeLevel local CollideDecay_1 = a4.ChargeAlterTable.CollideDecay local CollideDecay_2 = a4.CollideDecay if CollideDecay_1 == nil then v178 = CollideDecay_2 elseif ChargedShotAdvanceEnabled_87 and ChargeLevel_99 then if ChargeLevel_99 == 1 then v178 = CollideDecay_1.Level1 if not v178 then if ChargeLevel_99 == 2 then v175 = CollideDecay_1.Level2 if not v175 then if ChargeLevel_99 ~= 3 then v175 = CollideDecay_2 else v175 = CollideDecay_1.Level3 v175 = v175 or CollideDecay_2 end end elseif ChargeLevel_99 ~= 3 then v175 = CollideDecay_2 else v175 = CollideDecay_1.Level3 v175 = v175 or CollideDecay_2 end end elseif ChargeLevel_99 == 2 then v178 = CollideDecay_1.Level2 if not v178 then if ChargeLevel_99 ~= 3 then v175 = CollideDecay_2 else v175 = CollideDecay_1.Level3 v175 = v175 or CollideDecay_2 end end elseif ChargeLevel_99 ~= 3 then v178 = CollideDecay_2 else v178 = CollideDecay_1.Level3 v178 = v178 or CollideDecay_2 end else v175 = CollideDecay_2 end tbl_12.CollideDecay = v178 local ChargedShotAdvanceEnabled_88 = a4.ChargedShotAdvanceEnabled local ChargeLevel_100 = a8.ChargeLevel local DecayVelocity_1 = a4.ChargeAlterTable.DecayVelocity local DecayVelocity_2 = a4.DecayVelocity if DecayVelocity_1 == nil then v178 = DecayVelocity_2 elseif ChargedShotAdvanceEnabled_88 and ChargeLevel_100 then if ChargeLevel_100 == 1 then v178 = DecayVelocity_1.Level1 if not v178 then if ChargeLevel_100 == 2 then v175 = DecayVelocity_1.Level2 if not v175 then if ChargeLevel_100 ~= 3 then v175 = DecayVelocity_2 else v175 = DecayVelocity_1.Level3 v175 = v175 or DecayVelocity_2 end end elseif ChargeLevel_100 ~= 3 then v175 = DecayVelocity_2 else v175 = DecayVelocity_1.Level3 v175 = v175 or DecayVelocity_2 end end elseif ChargeLevel_100 == 2 then v178 = DecayVelocity_1.Level2 if not v178 then if ChargeLevel_100 ~= 3 then v175 = DecayVelocity_2 else v175 = DecayVelocity_1.Level3 v175 = v175 or DecayVelocity_2 end end elseif ChargeLevel_100 ~= 3 then v178 = DecayVelocity_2 else v178 = DecayVelocity_1.Level3 v178 = v178 or DecayVelocity_2 end else v175 = DecayVelocity_2 end tbl_12.DecayVelocity = v178 local ChargedShotAdvanceEnabled_89 = a4.ChargedShotAdvanceEnabled local ChargeLevel_101 = a8.ChargeLevel local VelocityInfluence_1 = a4.ChargeAlterTable.VelocityInfluence local VelocityInfluence_2 = a4.VelocityInfluence if VelocityInfluence_1 == nil then v178 = VelocityInfluence_2 elseif ChargedShotAdvanceEnabled_89 and ChargeLevel_101 then if ChargeLevel_101 == 1 then v178 = VelocityInfluence_1.Level1 if not v178 then if ChargeLevel_101 == 2 then v175 = VelocityInfluence_1.Level2 if not v175 then if ChargeLevel_101 ~= 3 then v175 = VelocityInfluence_2 else v175 = VelocityInfluence_1.Level3 v175 = v175 or VelocityInfluence_2 end end elseif ChargeLevel_101 ~= 3 then v175 = VelocityInfluence_2 else v175 = VelocityInfluence_1.Level3 v175 = v175 or VelocityInfluence_2 end end elseif ChargeLevel_101 == 2 then v178 = VelocityInfluence_1.Level2 if not v178 then if ChargeLevel_101 ~= 3 then v175 = VelocityInfluence_2 else v175 = VelocityInfluence_1.Level3 v175 = v175 or VelocityInfluence_2 end end elseif ChargeLevel_101 ~= 3 then v178 = VelocityInfluence_2 else v178 = VelocityInfluence_1.Level3 v178 = v178 or VelocityInfluence_2 end else v175 = VelocityInfluence_2 end tbl_12.VelocityInfluence = v178 local ChargedShotAdvanceEnabled_90 = a4.ChargedShotAdvanceEnabled local ChargeLevel_102 = a8.ChargeLevel local DisableDebrisContents_1 = a4.ChargeAlterTable.DisableDebrisContents local DisableDebrisContents_2 = a4.DisableDebrisContents if DisableDebrisContents_1 == nil then v178 = DisableDebrisContents_2 elseif ChargedShotAdvanceEnabled_90 and ChargeLevel_102 then if ChargeLevel_102 == 1 then v178 = DisableDebrisContents_1.Level1 if not v178 then if ChargeLevel_102 == 2 then v175 = DisableDebrisContents_1.Level2 if not v175 then if ChargeLevel_102 ~= 3 then v175 = DisableDebrisContents_2 else v175 = DisableDebrisContents_1.Level3 v175 = v175 or DisableDebrisContents_2 end end elseif ChargeLevel_102 ~= 3 then v175 = DisableDebrisContents_2 else v175 = DisableDebrisContents_1.Level3 v175 = v175 or DisableDebrisContents_2 end end elseif ChargeLevel_102 == 2 then v178 = DisableDebrisContents_1.Level2 if not v178 then if ChargeLevel_102 ~= 3 then v175 = DisableDebrisContents_2 else v175 = DisableDebrisContents_1.Level3 v175 = v175 or DisableDebrisContents_2 end end elseif ChargeLevel_102 ~= 3 then v178 = DisableDebrisContents_2 else v178 = DisableDebrisContents_1.Level3 v178 = v178 or DisableDebrisContents_2 end else v175 = DisableDebrisContents_2 end tbl_12.DisableDebrisContents = v178 v176.DebrisData = tbl_12 local tbl_13 = {CurrentBounces = 0, FrictionConstant = 0, AnchorPoint = 0, BouncedHumanoids = 0, SlopeAngle = 0, BounceElasticity = 0, IgnoreSlope = 0, PredictDirection = 0, NoExplosionWhileBouncing = 0, CurrentAnchorPoint = 0, BounceDeltaTime = 0, StopBouncingOn = 0, BounceBetweenHumanoids = 0, SuperRicochet = 0, BounceDelay = 0, BounceHeight = 0} local ChargedShotAdvanceEnabled_91 = a4.ChargedShotAdvanceEnabled local ChargeLevel_103 = a8.ChargeLevel local RicochetAmount_1 = a4.ChargeAlterTable.RicochetAmount local RicochetAmount_2 = a4.RicochetAmount if RicochetAmount_1 == nil then v178 = RicochetAmount_2 elseif ChargedShotAdvanceEnabled_91 and ChargeLevel_103 then if ChargeLevel_103 == 1 then v178 = RicochetAmount_1.Level1 if not v178 then if ChargeLevel_103 == 2 then v175 = RicochetAmount_1.Level2 if not v175 then if ChargeLevel_103 ~= 3 then v175 = RicochetAmount_2 else v175 = RicochetAmount_1.Level3 v175 = v175 or RicochetAmount_2 end end elseif ChargeLevel_103 ~= 3 then v175 = RicochetAmount_2 else v175 = RicochetAmount_1.Level3 v175 = v175 or RicochetAmount_2 end end elseif ChargeLevel_103 == 2 then v178 = RicochetAmount_1.Level2 if not v178 then if ChargeLevel_103 ~= 3 then v175 = RicochetAmount_2 else v175 = RicochetAmount_1.Level3 v175 = v175 or RicochetAmount_2 end end elseif ChargeLevel_103 ~= 3 then v178 = RicochetAmount_2 else v178 = RicochetAmount_1.Level3 v178 = v178 or RicochetAmount_2 end else v175 = RicochetAmount_2 end tbl_13.CurrentBounces = v178 local ChargedShotAdvanceEnabled_92 = a4.ChargedShotAdvanceEnabled local ChargeLevel_104 = a8.ChargeLevel local BounceElasticity_1 = a4.ChargeAlterTable.BounceElasticity local BounceElasticity_2 = a4.BounceElasticity if BounceElasticity_1 == nil then v178 = BounceElasticity_2 elseif ChargedShotAdvanceEnabled_92 and ChargeLevel_104 then if ChargeLevel_104 == 1 then v178 = BounceElasticity_1.Level1 if not v178 then if ChargeLevel_104 == 2 then v175 = BounceElasticity_1.Level2 if not v175 then if ChargeLevel_104 ~= 3 then v175 = BounceElasticity_2 else v175 = BounceElasticity_1.Level3 v175 = v175 or BounceElasticity_2 end end elseif ChargeLevel_104 ~= 3 then v175 = BounceElasticity_2 else v175 = BounceElasticity_1.Level3 v175 = v175 or BounceElasticity_2 end end elseif ChargeLevel_104 == 2 then v178 = BounceElasticity_1.Level2 if not v178 then if ChargeLevel_104 ~= 3 then v175 = BounceElasticity_2 else v175 = BounceElasticity_1.Level3 v175 = v175 or BounceElasticity_2 end end elseif ChargeLevel_104 ~= 3 then v178 = BounceElasticity_2 else v178 = BounceElasticity_1.Level3 v178 = v178 or BounceElasticity_2 end else v175 = BounceElasticity_2 end tbl_13.BounceElasticity = v178 local ChargedShotAdvanceEnabled_93 = a4.ChargedShotAdvanceEnabled local ChargeLevel_105 = a8.ChargeLevel local FrictionConstant_1 = a4.ChargeAlterTable.FrictionConstant local FrictionConstant_2 = a4.FrictionConstant if FrictionConstant_1 == nil then v178 = FrictionConstant_2 elseif ChargedShotAdvanceEnabled_93 and ChargeLevel_105 then if ChargeLevel_105 == 1 then v178 = FrictionConstant_1.Level1 if not v178 then if ChargeLevel_105 == 2 then v175 = FrictionConstant_1.Level2 if not v175 then if ChargeLevel_105 ~= 3 then v175 = FrictionConstant_2 else v175 = FrictionConstant_1.Level3 v175 = v175 or FrictionConstant_2 end end elseif ChargeLevel_105 ~= 3 then v175 = FrictionConstant_2 else v175 = FrictionConstant_1.Level3 v175 = v175 or FrictionConstant_2 end end elseif ChargeLevel_105 == 2 then v178 = FrictionConstant_1.Level2 if not v178 then if ChargeLevel_105 ~= 3 then v175 = FrictionConstant_2 else v175 = FrictionConstant_1.Level3 v175 = v175 or FrictionConstant_2 end end elseif ChargeLevel_105 ~= 3 then v178 = FrictionConstant_2 else v178 = FrictionConstant_1.Level3 v178 = v178 or FrictionConstant_2 end else v175 = FrictionConstant_2 end tbl_13.FrictionConstant = v178 local ChargedShotAdvanceEnabled_94 = a4.ChargedShotAdvanceEnabled local ChargeLevel_106 = a8.ChargeLevel local IgnoreSlope_1 = a4.ChargeAlterTable.IgnoreSlope local IgnoreSlope_2 = a4.IgnoreSlope if IgnoreSlope_1 == nil then v178 = IgnoreSlope_2 elseif ChargedShotAdvanceEnabled_94 and ChargeLevel_106 then if ChargeLevel_106 == 1 then v178 = IgnoreSlope_1.Level1 if not v178 then if ChargeLevel_106 == 2 then v175 = IgnoreSlope_1.Level2 if not v175 then if ChargeLevel_106 ~= 3 then v175 = IgnoreSlope_2 else v175 = IgnoreSlope_1.Level3 v175 = v175 or IgnoreSlope_2 end end elseif ChargeLevel_106 ~= 3 then v175 = IgnoreSlope_2 else v175 = IgnoreSlope_1.Level3 v175 = v175 or IgnoreSlope_2 end end elseif ChargeLevel_106 == 2 then v178 = IgnoreSlope_1.Level2 if not v178 then if ChargeLevel_106 ~= 3 then v175 = IgnoreSlope_2 else v175 = IgnoreSlope_1.Level3 v175 = v175 or IgnoreSlope_2 end end elseif ChargeLevel_106 ~= 3 then v178 = IgnoreSlope_2 else v178 = IgnoreSlope_1.Level3 v178 = v178 or IgnoreSlope_2 end else v175 = IgnoreSlope_2 end tbl_13.IgnoreSlope = v178 local ChargedShotAdvanceEnabled_95 = a4.ChargedShotAdvanceEnabled local ChargeLevel_107 = a8.ChargeLevel local SlopeAngle_1 = a4.ChargeAlterTable.SlopeAngle local SlopeAngle_2 = a4.SlopeAngle if SlopeAngle_1 == nil then v178 = SlopeAngle_2 elseif ChargedShotAdvanceEnabled_95 and ChargeLevel_107 then if ChargeLevel_107 == 1 then v178 = SlopeAngle_1.Level1 if not v178 then if ChargeLevel_107 == 2 then v175 = SlopeAngle_1.Level2 if not v175 then if ChargeLevel_107 ~= 3 then v175 = SlopeAngle_2 else v175 = SlopeAngle_1.Level3 v175 = v175 or SlopeAngle_2 end end elseif ChargeLevel_107 ~= 3 then v175 = SlopeAngle_2 else v175 = SlopeAngle_1.Level3 v175 = v175 or SlopeAngle_2 end end elseif ChargeLevel_107 == 2 then v178 = SlopeAngle_1.Level2 if not v178 then if ChargeLevel_107 ~= 3 then v175 = SlopeAngle_2 else v175 = SlopeAngle_1.Level3 v175 = v175 or SlopeAngle_2 end end elseif ChargeLevel_107 ~= 3 then v178 = SlopeAngle_2 else v178 = SlopeAngle_1.Level3 v178 = v178 or SlopeAngle_2 end else v175 = SlopeAngle_2 end tbl_13.SlopeAngle = v178 local ChargedShotAdvanceEnabled_96 = a4.ChargedShotAdvanceEnabled local ChargeLevel_108 = a8.ChargeLevel local BounceHeight_1 = a4.ChargeAlterTable.BounceHeight local BounceHeight_2 = a4.BounceHeight if BounceHeight_1 == nil then v178 = BounceHeight_2 elseif ChargedShotAdvanceEnabled_96 and ChargeLevel_108 then if ChargeLevel_108 == 1 then v178 = BounceHeight_1.Level1 if not v178 then if ChargeLevel_108 == 2 then v175 = BounceHeight_1.Level2 if not v175 then if ChargeLevel_108 ~= 3 then v175 = BounceHeight_2 else v175 = BounceHeight_1.Level3 v175 = v175 or BounceHeight_2 end end elseif ChargeLevel_108 ~= 3 then v175 = BounceHeight_2 else v175 = BounceHeight_1.Level3 v175 = v175 or BounceHeight_2 end end elseif ChargeLevel_108 == 2 then v178 = BounceHeight_1.Level2 if not v178 then if ChargeLevel_108 ~= 3 then v175 = BounceHeight_2 else v175 = BounceHeight_1.Level3 v175 = v175 or BounceHeight_2 end end elseif ChargeLevel_108 ~= 3 then v178 = BounceHeight_2 else v178 = BounceHeight_1.Level3 v178 = v178 or BounceHeight_2 end else v175 = BounceHeight_2 end tbl_13.BounceHeight = v178 local ChargedShotAdvanceEnabled_97 = a4.ChargedShotAdvanceEnabled local ChargeLevel_109 = a8.ChargeLevel local NoExplosionWhileBouncing_1 = a4.ChargeAlterTable.NoExplosionWhileBouncing local NoExplosionWhileBouncing_2 = a4.NoExplosionWhileBouncing if NoExplosionWhileBouncing_1 == nil then v178 = NoExplosionWhileBouncing_2 elseif ChargedShotAdvanceEnabled_97 and ChargeLevel_109 then if ChargeLevel_109 == 1 then v178 = NoExplosionWhileBouncing_1.Level1 if not v178 then if ChargeLevel_109 == 2 then v175 = NoExplosionWhileBouncing_1.Level2 if not v175 then if ChargeLevel_109 ~= 3 then v175 = NoExplosionWhileBouncing_2 else v175 = NoExplosionWhileBouncing_1.Level3 v175 = v175 or NoExplosionWhileBouncing_2 end end elseif ChargeLevel_109 ~= 3 then v175 = NoExplosionWhileBouncing_2 else v175 = NoExplosionWhileBouncing_1.Level3 v175 = v175 or NoExplosionWhileBouncing_2 end end elseif ChargeLevel_109 == 2 then v178 = NoExplosionWhileBouncing_1.Level2 if not v178 then if ChargeLevel_109 ~= 3 then v175 = NoExplosionWhileBouncing_2 else v175 = NoExplosionWhileBouncing_1.Level3 v175 = v175 or NoExplosionWhileBouncing_2 end end elseif ChargeLevel_109 ~= 3 then v178 = NoExplosionWhileBouncing_2 else v178 = NoExplosionWhileBouncing_1.Level3 v178 = v178 or NoExplosionWhileBouncing_2 end else v175 = NoExplosionWhileBouncing_2 end tbl_13.NoExplosionWhileBouncing = v178 local ChargedShotAdvanceEnabled_98 = a4.ChargedShotAdvanceEnabled local ChargeLevel_110 = a8.ChargeLevel local StopBouncingOn_1 = a4.ChargeAlterTable.StopBouncingOn local StopBouncingOn_2 = a4.StopBouncingOn if StopBouncingOn_1 == nil then v178 = StopBouncingOn_2 elseif ChargedShotAdvanceEnabled_98 and ChargeLevel_110 then if ChargeLevel_110 == 1 then v178 = StopBouncingOn_1.Level1 if not v178 then if ChargeLevel_110 == 2 then v175 = StopBouncingOn_1.Level2 if not v175 then if ChargeLevel_110 ~= 3 then v175 = StopBouncingOn_2 else v175 = StopBouncingOn_1.Level3 v175 = v175 or StopBouncingOn_2 end end elseif ChargeLevel_110 ~= 3 then v175 = StopBouncingOn_2 else v175 = StopBouncingOn_1.Level3 v175 = v175 or StopBouncingOn_2 end end elseif ChargeLevel_110 == 2 then v178 = StopBouncingOn_1.Level2 if not v178 then if ChargeLevel_110 ~= 3 then v175 = StopBouncingOn_2 else v175 = StopBouncingOn_1.Level3 v175 = v175 or StopBouncingOn_2 end end elseif ChargeLevel_110 ~= 3 then v178 = StopBouncingOn_2 else v178 = StopBouncingOn_1.Level3 v178 = v178 or StopBouncingOn_2 end else v175 = StopBouncingOn_2 end tbl_13.StopBouncingOn = v178 local ChargedShotAdvanceEnabled_99 = a4.ChargedShotAdvanceEnabled local ChargeLevel_111 = a8.ChargeLevel local SuperRicochet_1 = a4.ChargeAlterTable.SuperRicochet local SuperRicochet_2 = a4.SuperRicochet if SuperRicochet_1 == nil then v178 = SuperRicochet_2 elseif ChargedShotAdvanceEnabled_99 and ChargeLevel_111 then if ChargeLevel_111 == 1 then v178 = SuperRicochet_1.Level1 if not v178 then if ChargeLevel_111 == 2 then v175 = SuperRicochet_1.Level2 if not v175 then if ChargeLevel_111 ~= 3 then v175 = SuperRicochet_2 else v175 = SuperRicochet_1.Level3 v175 = v175 or SuperRicochet_2 end end elseif ChargeLevel_111 ~= 3 then v175 = SuperRicochet_2 else v175 = SuperRicochet_1.Level3 v175 = v175 or SuperRicochet_2 end end elseif ChargeLevel_111 == 2 then v178 = SuperRicochet_1.Level2 if not v178 then if ChargeLevel_111 ~= 3 then v175 = SuperRicochet_2 else v175 = SuperRicochet_1.Level3 v175 = v175 or SuperRicochet_2 end end elseif ChargeLevel_111 ~= 3 then v178 = SuperRicochet_2 else v178 = SuperRicochet_1.Level3 v178 = v178 or SuperRicochet_2 end else v175 = SuperRicochet_2 end tbl_13.SuperRicochet = v178 local ChargedShotAdvanceEnabled_100 = a4.ChargedShotAdvanceEnabled local ChargeLevel_112 = a8.ChargeLevel local BounceBetweenHumanoids_1 = a4.ChargeAlterTable.BounceBetweenHumanoids local BounceBetweenHumanoids_2 = a4.BounceBetweenHumanoids if BounceBetweenHumanoids_1 == nil then v178 = BounceBetweenHumanoids_2 elseif ChargedShotAdvanceEnabled_100 and ChargeLevel_112 then if ChargeLevel_112 == 1 then v178 = BounceBetweenHumanoids_1.Level1 if not v178 then if ChargeLevel_112 == 2 then v175 = BounceBetweenHumanoids_1.Level2 if not v175 then if ChargeLevel_112 ~= 3 then v175 = BounceBetweenHumanoids_2 else v175 = BounceBetweenHumanoids_1.Level3 v175 = v175 or BounceBetweenHumanoids_2 end end elseif ChargeLevel_112 ~= 3 then v175 = BounceBetweenHumanoids_2 else v175 = BounceBetweenHumanoids_1.Level3 v175 = v175 or BounceBetweenHumanoids_2 end end elseif ChargeLevel_112 == 2 then v178 = BounceBetweenHumanoids_1.Level2 if not v178 then if ChargeLevel_112 ~= 3 then v175 = BounceBetweenHumanoids_2 else v175 = BounceBetweenHumanoids_1.Level3 v175 = v175 or BounceBetweenHumanoids_2 end end elseif ChargeLevel_112 ~= 3 then v178 = BounceBetweenHumanoids_2 else v178 = BounceBetweenHumanoids_1.Level3 v178 = v178 or BounceBetweenHumanoids_2 end else v175 = BounceBetweenHumanoids_2 end tbl_13.BounceBetweenHumanoids = v178 local ChargedShotAdvanceEnabled_101 = a4.ChargedShotAdvanceEnabled local ChargeLevel_113 = a8.ChargeLevel local PredictDirection_1 = a4.ChargeAlterTable.PredictDirection local PredictDirection_2 = a4.PredictDirection if PredictDirection_1 == nil then v178 = PredictDirection_2 elseif ChargedShotAdvanceEnabled_101 and ChargeLevel_113 then if ChargeLevel_113 == 1 then v178 = PredictDirection_1.Level1 if not v178 then if ChargeLevel_113 == 2 then v175 = PredictDirection_1.Level2 if not v175 then if ChargeLevel_113 ~= 3 then v175 = PredictDirection_2 else v175 = PredictDirection_1.Level3 v175 = v175 or PredictDirection_2 end end elseif ChargeLevel_113 ~= 3 then v175 = PredictDirection_2 else v175 = PredictDirection_1.Level3 v175 = v175 or PredictDirection_2 end end elseif ChargeLevel_113 == 2 then v178 = PredictDirection_1.Level2 if not v178 then if ChargeLevel_113 ~= 3 then v175 = PredictDirection_2 else v175 = PredictDirection_1.Level3 v175 = v175 or PredictDirection_2 end end elseif ChargeLevel_113 ~= 3 then v178 = PredictDirection_2 else v178 = PredictDirection_1.Level3 v178 = v178 or PredictDirection_2 end else v175 = PredictDirection_2 end tbl_13.PredictDirection = v178 local ChargedShotAdvanceEnabled_102 = a4.ChargedShotAdvanceEnabled local ChargeLevel_114 = a8.ChargeLevel local RaycastHitboxAnchorPoint_1 = a4.ChargeAlterTable.RaycastHitboxAnchorPoint local RaycastHitboxAnchorPoint_2 = a4.RaycastHitboxAnchorPoint if RaycastHitboxAnchorPoint_1 == nil then v178 = RaycastHitboxAnchorPoint_2 elseif ChargedShotAdvanceEnabled_102 and ChargeLevel_114 then if ChargeLevel_114 == 1 then v178 = RaycastHitboxAnchorPoint_1.Level1 if not v178 then if ChargeLevel_114 == 2 then v175 = RaycastHitboxAnchorPoint_1.Level2 if not v175 then if ChargeLevel_114 ~= 3 then v175 = RaycastHitboxAnchorPoint_2 else v175 = RaycastHitboxAnchorPoint_1.Level3 v175 = v175 or RaycastHitboxAnchorPoint_2 end end elseif ChargeLevel_114 ~= 3 then v175 = RaycastHitboxAnchorPoint_2 else v175 = RaycastHitboxAnchorPoint_1.Level3 v175 = v175 or RaycastHitboxAnchorPoint_2 end end elseif ChargeLevel_114 == 2 then v178 = RaycastHitboxAnchorPoint_1.Level2 if not v178 then if ChargeLevel_114 ~= 3 then v175 = RaycastHitboxAnchorPoint_2 else v175 = RaycastHitboxAnchorPoint_1.Level3 v175 = v175 or RaycastHitboxAnchorPoint_2 end end elseif ChargeLevel_114 ~= 3 then v178 = RaycastHitboxAnchorPoint_2 else v178 = RaycastHitboxAnchorPoint_1.Level3 v178 = v178 or RaycastHitboxAnchorPoint_2 end else v175 = RaycastHitboxAnchorPoint_2 end tbl_13.AnchorPoint = v178 local ChargedShotAdvanceEnabled_103 = a4.ChargedShotAdvanceEnabled local ChargeLevel_115 = a8.ChargeLevel local BounceDelay_1 = a4.ChargeAlterTable.BounceDelay local BounceDelay_2 = a4.BounceDelay if BounceDelay_1 == nil then v178 = BounceDelay_2 elseif ChargedShotAdvanceEnabled_103 and ChargeLevel_115 then if ChargeLevel_115 == 1 then v178 = BounceDelay_1.Level1 if not v178 then if ChargeLevel_115 == 2 then v175 = BounceDelay_1.Level2 if not v175 then if ChargeLevel_115 ~= 3 then v175 = BounceDelay_2 else v175 = BounceDelay_1.Level3 v175 = v175 or BounceDelay_2 end end elseif ChargeLevel_115 ~= 3 then v175 = BounceDelay_2 else v175 = BounceDelay_1.Level3 v175 = v175 or BounceDelay_2 end end elseif ChargeLevel_115 == 2 then v178 = BounceDelay_1.Level2 if not v178 then if ChargeLevel_115 ~= 3 then v175 = BounceDelay_2 else v175 = BounceDelay_1.Level3 v175 = v175 or BounceDelay_2 end end elseif ChargeLevel_115 ~= 3 then v178 = BounceDelay_2 else v178 = BounceDelay_1.Level3 v178 = v178 or BounceDelay_2 end else v175 = BounceDelay_2 end tbl_13.BounceDelay = v178 tbl_13.BouncedHumanoids = {} tbl_13.CurrentAnchorPoint = Vector3.new() v176.BounceData = tbl_13 local tbl_14 = {LockOnOnHovering = 0, LockedEntity = 0, TurnRatePerSecond = 0, HomingDistance = 0, Homing = 0, HomeThroughWall = 0} local ChargedShotAdvanceEnabled_104 = a4.ChargedShotAdvanceEnabled local ChargeLevel_116 = a8.ChargeLevel local Homing_1 = a4.ChargeAlterTable.Homing local Homing_2 = a4.Homing if Homing_1 == nil then v178 = Homing_2 elseif ChargedShotAdvanceEnabled_104 and ChargeLevel_116 then if ChargeLevel_116 == 1 then v178 = Homing_1.Level1 if not (v178) then if ChargeLevel_116 == 2 then v175 = Homing_1.Level2 if not v175 then if ChargeLevel_116 ~= 3 then v175 = Homing_2 else v175 = Homing_1.Level3 v175 = v175 or Homing_2 end end elseif ChargeLevel_116 ~= 3 then v175 = Homing_2 else v175 = Homing_1.Level3 v175 = v175 or Homing_2 end end elseif ChargeLevel_116 == 2 then v178 = Homing_1.Level2 if not v178 then if ChargeLevel_116 ~= 3 then v175 = Homing_2 else v175 = Homing_1.Level3 v175 = v175 or Homing_2 end end elseif ChargeLevel_116 ~= 3 then v178 = Homing_2 else v178 = Homing_1.Level3 v178 = v178 or Homing_2 end else v175 = Homing_2 end tbl_14.Homing = v178 local ChargedShotAdvanceEnabled_105 = a4.ChargedShotAdvanceEnabled local ChargeLevel_117 = a8.ChargeLevel local HomingDistance_1 = a4.ChargeAlterTable.HomingDistance local HomingDistance_2 = a4.HomingDistance if HomingDistance_1 == nil then v178 = HomingDistance_2 elseif ChargedShotAdvanceEnabled_105 and ChargeLevel_117 then if ChargeLevel_117 == 1 then v178 = HomingDistance_1.Level1 if not v178 then if ChargeLevel_117 == 2 then v175 = HomingDistance_1.Level2 if not v175 then if ChargeLevel_117 ~= 3 then v175 = HomingDistance_2 else v175 = HomingDistance_1.Level3 v175 = v175 or HomingDistance_2 end end elseif ChargeLevel_117 ~= 3 then v175 = HomingDistance_2 else v175 = HomingDistance_1.Level3 v175 = v175 or HomingDistance_2 end end elseif ChargeLevel_117 == 2 then v178 = HomingDistance_1.Level2 if not v178 then if ChargeLevel_117 ~= 3 then v175 = HomingDistance_2 else v175 = HomingDistance_1.Level3 v175 = v175 or HomingDistance_2 end end elseif ChargeLevel_117 ~= 3 then v178 = HomingDistance_2 else v178 = HomingDistance_1.Level3 v178 = v178 or HomingDistance_2 end else v175 = HomingDistance_2 end tbl_14.HomingDistance = v178 local ChargedShotAdvanceEnabled_106 = a4.ChargedShotAdvanceEnabled local ChargeLevel_118 = a8.ChargeLevel local TurnRatePerSecond_1 = a4.ChargeAlterTable.TurnRatePerSecond local TurnRatePerSecond_2 = a4.TurnRatePerSecond if TurnRatePerSecond_1 == nil then v178 = TurnRatePerSecond_2 elseif ChargedShotAdvanceEnabled_106 and ChargeLevel_118 then if ChargeLevel_118 == 1 then v178 = TurnRatePerSecond_1.Level1 if not v178 then if ChargeLevel_118 == 2 then v175 = TurnRatePerSecond_1.Level2 if not v175 then if ChargeLevel_118 ~= 3 then v175 = TurnRatePerSecond_2 else v175 = TurnRatePerSecond_1.Level3 v175 = v175 or TurnRatePerSecond_2 end end elseif ChargeLevel_118 ~= 3 then v175 = TurnRatePerSecond_2 else v175 = TurnRatePerSecond_1.Level3 v175 = v175 or TurnRatePerSecond_2 end end elseif ChargeLevel_118 == 2 then v178 = TurnRatePerSecond_1.Level2 if not v178 then if ChargeLevel_118 ~= 3 then v175 = TurnRatePerSecond_2 else v175 = TurnRatePerSecond_1.Level3 v175 = v175 or TurnRatePerSecond_2 end end elseif ChargeLevel_118 ~= 3 then v178 = TurnRatePerSecond_2 else v178 = TurnRatePerSecond_1.Level3 v178 = v178 or TurnRatePerSecond_2 end else v175 = TurnRatePerSecond_2 end tbl_14.TurnRatePerSecond = v178 local ChargedShotAdvanceEnabled_107 = a4.ChargedShotAdvanceEnabled local ChargeLevel_119 = a8.ChargeLevel local HomeThroughWall_1 = a4.ChargeAlterTable.HomeThroughWall local HomeThroughWall_2 = a4.HomeThroughWall if HomeThroughWall_1 == nil then v178 = HomeThroughWall_2 elseif ChargedShotAdvanceEnabled_107 and ChargeLevel_119 then if ChargeLevel_119 == 1 then v178 = HomeThroughWall_1.Level1 if not v178 then if ChargeLevel_119 == 2 then v175 = HomeThroughWall_1.Level2 if not v175 then if ChargeLevel_119 ~= 3 then v175 = HomeThroughWall_2 else v175 = HomeThroughWall_1.Level3 v175 = v175 or HomeThroughWall_2 end end elseif ChargeLevel_119 ~= 3 then v175 = HomeThroughWall_2 else v175 = HomeThroughWall_1.Level3 v175 = v175 or HomeThroughWall_2 end end elseif ChargeLevel_119 == 2 then v178 = HomeThroughWall_1.Level2 if not v178 then if ChargeLevel_119 ~= 3 then v175 = HomeThroughWall_2 else v175 = HomeThroughWall_1.Level3 v175 = v175 or HomeThroughWall_2 end end elseif ChargeLevel_119 ~= 3 then v178 = HomeThroughWall_2 else v178 = HomeThroughWall_1.Level3 v178 = v178 or HomeThroughWall_2 end else v175 = HomeThroughWall_2 end tbl_14.HomeThroughWall = v178 tbl_14.LockOnOnHovering = a4.LockOnOnHovering tbl_14.LockedEntity = a8.LockedEntity v176.HomeData = tbl_14 local tbl_15 = {ExtraRayUpdater = 0, UpdateRayInExtra = 0} local ChargedShotAdvanceEnabled_108 = a4.ChargedShotAdvanceEnabled local ChargeLevel_120 = a8.ChargeLevel local UpdateRayInExtra_1 = a4.ChargeAlterTable.UpdateRayInExtra local UpdateRayInExtra_2 = a4.UpdateRayInExtra if UpdateRayInExtra_1 == nil then v178 = UpdateRayInExtra_2 elseif ChargedShotAdvanceEnabled_108 and ChargeLevel_120 then if ChargeLevel_120 == 1 then v178 = UpdateRayInExtra_1.Level1 if not v178 then if ChargeLevel_120 == 2 then v175 = UpdateRayInExtra_1.Level2 if not v175 then if ChargeLevel_120 ~= 3 then v175 = UpdateRayInExtra_2 else v175 = UpdateRayInExtra_1.Level3 v175 = v175 or UpdateRayInExtra_2 end end elseif ChargeLevel_120 ~= 3 then v175 = UpdateRayInExtra_2 else v175 = UpdateRayInExtra_1.Level3 v175 = v175 or UpdateRayInExtra_2 end end elseif ChargeLevel_120 == 2 then v178 = UpdateRayInExtra_1.Level2 if not v178 then if ChargeLevel_120 ~= 3 then v175 = UpdateRayInExtra_2 else v175 = UpdateRayInExtra_1.Level3 v175 = v175 or UpdateRayInExtra_2 end end elseif ChargeLevel_120 ~= 3 then v178 = UpdateRayInExtra_2 else v178 = UpdateRayInExtra_1.Level3 v178 = v178 or UpdateRayInExtra_2 end else v175 = UpdateRayInExtra_2 end tbl_15.UpdateRayInExtra = v178 local ChargedShotAdvanceEnabled_109 = a4.ChargedShotAdvanceEnabled local ChargeLevel_121 = a8.ChargeLevel local ExtraRayUpdater_1 = a4.ChargeAlterTable.ExtraRayUpdater local ExtraRayUpdater_2 = a4.ExtraRayUpdater if ExtraRayUpdater_1 == nil or not (ChargedShotAdvanceEnabled_109) or not (ChargeLevel_121) then tbl_15.ExtraRayUpdater = ExtraRayUpdater_2 v176.UpdateData = tbl_15 v176.IgnoreList = v155 v176.LastSegmentOrigin = Vector3.new() v176.SegmentOrigin = Vector3.new() v176.SegmentDirection = Vector3.new() v176.SegmentVelocity = Vector3.new() v176.LastPosition = v158 v176.CastBehavior = v172 v172.UserData = v176 v177 = u2:Fire(v158, value_12, value_12 * v159, v172) continue end if (ChargeLevel_121 ~= 1 or not (ExtraRayUpdater_1.Level1)) and (ChargeLevel_121 ~= 2 or not (ExtraRayUpdater_1.Level2)) then if ChargeLevel_121 ~= 3 then v178 = ExtraRayUpdater_2 tbl_15.ExtraRayUpdater = ExtraRayUpdater_2 v176.UpdateData = tbl_15 v176.IgnoreList = v155 v176.LastSegmentOrigin = Vector3.new() v176.SegmentOrigin = Vector3.new() v176.SegmentDirection = Vector3.new() v176.SegmentVelocity = Vector3.new() v176.LastPosition = v158 v176.CastBehavior = v172 v172.UserData = v176 v177 = u2:Fire(v158, value_12, value_12 * v159, v172) continue end v175 = ExtraRayUpdater_1.Level3 v178 = (v175) or ExtraRayUpdater_2 tbl_15.ExtraRayUpdater = ExtraRayUpdater_2 v176.UpdateData = tbl_15 v176.IgnoreList = v155 v176.LastSegmentOrigin = Vector3.new() v176.SegmentOrigin = Vector3.new() v176.SegmentDirection = Vector3.new() v176.SegmentVelocity = Vector3.new() v176.LastPosition = v158 v176.CastBehavior = v172 v172.UserData = v176 v177 = u2:Fire(v158, value_12, value_12 * v159, v172) end tbl_15.ExtraRayUpdater = ExtraRayUpdater_2 v176.UpdateData = tbl_15 v176.IgnoreList = v155 v176.LastSegmentOrigin = Vector3.new() v176.SegmentOrigin = Vector3.new() v176.SegmentDirection = Vector3.new() v176.SegmentVelocity = Vector3.new() v176.LastPosition = v158 v176.CastBehavior = v172 v172.UserData = v176 v177 = u2:Fire(v158, value_12, value_12 * v159, v172) end if not a9 then return end VisualizeBullet_upv_1:FireServer(a2, a3, a4, a5, a6, a7, a8) if u52 and v157 then if u55 then u55.Event:Connect( function(a10, a11, a12) --[[ line: 3165 upvalues: tbl_upv_5 (copy, index: 1) ]] for _, value_15 in pairs(tbl_upv_5) do if value_15.Id == a10 then value_15.LaserContainer = a11 if a12 then value_15.Terminate = true end return end end end ) end local u56 = nil local v187 = RunService_upv_1.Heartbeat:Connect( function(a13) --[[ line: 3178 upvalues: tbl_upv_5 (copy, index: 1) u55 (ref, index: 2) u56 (ref, index: 3) Workspace_upv_1 (copy, index: 4) u54 (copy, index: 5) Parent_upv_3 (copy, index: 6) Thread_upv_1 (copy, index: 7) InflictTarget_upv_1 (copy, index: 8) a2 (copy, index: 9) a4 (copy, index: 10) a8 (copy, index: 11) ]] if #tbl_upv_5 <= 0 then if u55 then u55:Destroy() end if not u56 then return end u56:Disconnect() u56 = nil else local v188 = nil local v189 = nil for key_1, value_upv_16 in next, tbl_upv_5 do local v190 = false if value_upv_16.Terminate and #value_upv_16.LaserContainer <= 0 then v190 = true table.remove(tbl_upv_5, key_1) end if v190 then continue end v189 = nil for _, value_17 in pairs(value_upv_16.LaserContainer) do if not (value_17) then continue end v189 = nil for v192, value_upv_18 in pairs(Workspace_upv_1:GetPartsInPart(value_17, u54)) do if not (value_upv_18) or not (value_upv_18.Parent) then continue end local v191 = value_upv_18:FindFirstAncestorOfClass("Model") local u57 = v191 and (v191:FindFirstChildOfClass("Humanoid")) local u58 = v191 and (v191:FindFirstChild("HumanoidRootPart") or (value_upv_18.Parent:FindFirstChild("Head"))) if not (u57) or u57.Parent == Parent_upv_3 or not (u58) or not (u57.Health > 0) or table.find(value_upv_16.HitHumanoids, u57) then continue end table.insert(value_upv_16.HitHumanoids, u57) Thread_upv_1:Spawn( function() --[[ line: 3218 upvalues: InflictTarget_upv_1 (copy, index: 1) a2 (copy, index: 2) a4 (copy, index: 3) u57 (copy, index: 4) u58 (copy, index: 5) value_upv_18 (copy, index: 6) a8 (copy, index: 7) ]] InflictTarget_upv_1:InvokeServer("GunLaser", a2, a4, u57, u58, value_upv_18, value_upv_18.Size, a8) end ) if a2 and a2.GunClient:FindFirstChild("MarkerEvent") then a2.GunClient.MarkerEvent:Fire(a4, false) end local ChargedShotAdvanceEnabled_110 = a4.ChargedShotAdvanceEnabled v189 = a8.ChargeLevel local LaserTrailConstantDamage_1 = a4.ChargeAlterTable.LaserTrailConstantDamage local LaserTrailConstantDamage_2 = a4.LaserTrailConstantDamage if LaserTrailConstantDamage_1 ~= nil and ChargedShotAdvanceEnabled_110 and v189 then v188 = ((v189 == 1) and (LaserTrailConstantDamage_1.Level1)) or (((v189 == 2) and (LaserTrailConstantDamage_1.Level2)) or (((v189 == 3) and (LaserTrailConstantDamage_1.Level3)) or LaserTrailConstantDamage_2)) else v188 = LaserTrailConstantDamage_2 end if not (v188) then continue end local ChargedShotAdvanceEnabled_111 = a4.ChargedShotAdvanceEnabled local ChargeLevel_122 = a8.ChargeLevel local LaserTrailDamageRate_1 = a4.ChargeAlterTable.LaserTrailDamageRate local LaserTrailDamageRate_2 = a4.LaserTrailDamageRate if LaserTrailDamageRate_1 == nil or not (ChargedShotAdvanceEnabled_111) then v189 = LaserTrailDamageRate_2 Thread_upv_1:Delay( v189, function() --[[ line: 3250 upvalues: value_upv_16 (copy, index: 1) u57 (copy, index: 2) ]] local v192 = table.find(value_upv_16.HitHumanoids, u57) if not v192 then return end table.remove(value_upv_16.HitHumanoids, v192) end ) continue end if ChargeLevel_122 then v189 = ((ChargeLevel_122 == 1) and (LaserTrailDamageRate_1.Level1)) or (((ChargeLevel_122 == 2) and (LaserTrailDamageRate_1.Level2)) or (((ChargeLevel_122 == 3) and (LaserTrailDamageRate_1.Level3)) or LaserTrailDamageRate_2)) else v189 = LaserTrailDamageRate_2 end Thread_upv_1:Delay( v189, function() --[[ line: 3250 upvalues: value_upv_16 (copy, index: 1) u57 (copy, index: 2) ]] local v192 = table.find(value_upv_16.HitHumanoids, u57) if not v192 then return end table.remove(value_upv_16.HitHumanoids, v192) end ) end end end end end ) u56 = v187 end end u2.RayFinalHit:Connect(OnRayFinalHit) local function OnRayHit(a1, a2, a3, a4, a5, a6) --[[ name: OnRayHit line: 1159 upvalues: FindNearestEntity (copy, index: 1) DirectionPredictor_upv_1 (copy, index: 2) CastWithBlacklist (copy, index: 3) CurrentCamera_upv_1 (copy, index: 4) ShatterGlass_upv_1 (copy, index: 5) MakeImpactFX (copy, index: 6) MakeBloodFX (copy, index: 7) Thread_upv_1 (copy, index: 8) InflictTarget_upv_1 (copy, index: 9) OnRayFinalHit (copy, index: 10) ]] local v193 = a1.UserData.CastBehavior.Hitscan local v194 = a1:GetPosition() local v195 = a1:GetVelocity() local Acceleration_2 = a1.UserData.CastBehavior.Acceleration if a1.UserData.CastBehavior.Hitscan then local v196 = false if a1.UserData.BounceData.BounceBetweenHumanoids then local v197 = a4.Instance:FindFirstAncestorOfClass("Model") local _ = v197 and (v197:FindFirstChildOfClass("Humanoid")) local v198 = v197 and (v197:FindFirstChild("HumanoidRootPart") or (v197:FindFirstChild("Head"))) if v197 and v197.Health > 0 and v198 and not (table.find(a1.UserData.BounceData.BouncedHumanoids, v197)) then table.insert(a1.UserData.BounceData.BouncedHumanoids, v197) end local v199, v200, v201 = FindNearestEntity(a1, a4.Position) if v199 and v200 and v201 and v200.Health > 0 then a1.RayInfo.ModifiedDirection = (v201.Position - a4.Position).Unit else v196 = true end else v196 = true end if v196 then local ModifiedDirection_1 = a1.RayInfo.ModifiedDirection a1.RayInfo.ModifiedDirection = ModifiedDirection_1 - (2 * ModifiedDirection_1:Dot(a4.Normal) * a4.Normal) end else a1.UserData.SpinData.InitalTick = os.clock() a1.UserData.SpinData.InitalAngularVelocity = a4.Normal:Cross(v195) / 0.2 a1.UserData.SpinData.InitalRotation = a1.RayInfo.CurrentCFrame - a1.RayInfo.CurrentCFrame.p a1.UserData.SpinData.ProjectileOffset = 0.2 * a4.Normal if v195.Magnitude > 0 then local v202 = false local v203 = a1.RayInfo.RaycastHitbox and a1.UserData.BounceData.CurrentAnchorPoint or a4.Position local v204 = a4.Instance:FindFirstAncestorOfClass("Model") local v205 = v204 local _ = v205 and (v204:FindFirstChildOfClass("Humanoid")) local v206 = v204 and (v204:FindFirstChild("HumanoidRootPart") or (v204:FindFirstChild("Head"))) local v212, v213, v214 = nil, nil, nil if a1.UserData.BounceData.BounceBetweenHumanoids then if v205 and v205.Health > 0 and v206 and not (table.find(a1.UserData.BounceData.BouncedHumanoids, v205)) then table.insert(a1.UserData.BounceData.BouncedHumanoids, v205) end local v208, v209 v212, v208, v209 = FindNearestEntity(a1, v203) if v212 and v208 and v209 and v208.Health > 0 then v204 = (v209.Position - v203).Unit if a1.UserData.BounceData.PredictDirection then v214, v213 = DirectionPredictor_upv_1(v203, v209.Position, Vector3.new(), v209.Velocity, Acceleration_2, (2 * v209.Velocity) / 3, a5.Magnitude) if v214 and v213 then v204 = v213.Unit end end a1:SetVelocity(v204 * a5.Magnitude) a1:SetPosition(v203) if a1.RayInfo.RaycastHitbox then a1.UserData.BounceData.LastBouncedObject = (v205 and (v205.Parent)) or (a4.Instance) a1.UserData.BounceData.BounceDeltaTime = 0 end else v202 = true end else v202 = true end if v202 then v206 = v203 - v194 v212 = 1 - 0.001 / v206.Magnitude local v215 if v212 < 0 then v215 = 0 else v215 = v212 end a1:AddPosition((v215 * v206) + (0.05 * a4.Normal)) local v216 = a4.Normal if a1.UserData.BounceData.IgnoreSlope and Acceleration_2 ~= Vector3.new(0, 0, 0) then local v217 = nil if Acceleration_2.Y < 0 then local v218 = a1:GetPosition() v206 = Vector3.new(v195.X, -a1.UserData.BounceData.BounceHeight, v195.Z) if CastWithBlacklist(a1, v218, Vector3.new(0, 1, 0), a1.UserData.IgnoreList, true) then v206 = Vector3.new(v195.X, a1.UserData.BounceData.BounceHeight, v195.Z) end local v219 = math.deg(math.asin(a4.Normal.X)) v213 = math.deg(math.asin(a4.Normal.Z)) local v220 = ((v219 == 0) and v213) or v219 v217 = math.floor(math.max(v220, ((v219 == 0) and (-v213)) or (-v219))) local v221, v234 = nil, nil if v217 > 0 then if a1.UserData.BounceData.SlopeAngle <= v217 then v221 = a4.Normal if not (v221) then v221 = Vector3.new(0, a4.Normal.Y, 0) v221 = v221 or a4.Normal end else v221 = Vector3.new(0, a4.Normal.Y, 0) v221 = v221 or a4.Normal end else v221 = a4.Normal end v216 = v221 end end local v222 = Vector3.new().Dot(v216, v206) * v216 local v223 = v206 - v222 v213 = -Vector3.new().Dot(v216, Acceleration_2) local v224 = -(1 +