Roblox/luau_corpus huggingface dataset:
--[[Steering]]
	Tune.SteeringType	= 'New'		-- New = Precise steering calculations based on real life steering assembly (LuaInt)
									-- Old = Previous steering calculations
	-- New Options
	Tune.SteerRatio		= 15/1		-- Steering ratio of your steering rack, google it for your car
	Tune.LockToLock		= 2.6		-- Number of turns of the steering wheel lock to lock, google it for your car
	Tune.Ackerman		= .9		-- If you don't know what it is don't touch it, ranges from .7 to 1.2

	-- Old Options
	Tune.SteerInner		= 45		-- Inner wheel steering angle (in degrees)
	Tune.SteerOuter		= 38		-- Outer wheel steering angle (in degrees)
	
	-- General Steering
	Tune.SteerSpeed		= .05		-- Steering increment per tick (in degrees)
	Tune.ReturnSpeed	= .1		-- Steering increment per tick (in degrees)
	Tune.SteerDecay		= 330		-- Speed of gradient cutoff (in SPS)
	Tune.MinSteer		= 10		-- Minimum steering at max steer decay (in percent)
	Tune.MSteerExp		= 1			-- Mouse steering exponential degree
	
	-- Steer Gyro Tuning, avoid changing these
	Tune.SteerD			= 1000		-- Steering Dampening
	Tune.SteerMaxTorque	= 50000		-- Steering Force
	Tune.SteerP			= 100000	-- Steering Aggressiveness

	--Four Wheel Steering (LuaInt)
	Tune.FWSteer			= 'None'	-- Static, Speed, Both, or None
	Tune.RSteerOuter		= 10		-- Outer rear wheel steering angle (in degrees)
	Tune.RSteerInner		= 10		-- Inner rear wheel steering angle (in degrees)
	Tune.RSteerSpeed		= 60		-- Speed at which 4WS fully activates (Speed), deactivates (Static), or transition begins (Both) (SPS)
	Tune.RSteerDecay		= 330		-- Speed of gradient cutoff (in SPS)

	-- Rear Steer Gyro Tuning, avoid changing these
	Tune.RSteerD			= 1000		-- Steering Dampening
	Tune.RSteerMaxTorque	= 50000		-- Steering Force
	Tune.RSteerP			= 100000	-- Steering Aggressiveness
--If it is a new location, it adds to table

local function chunkExists(chunkX, chunkZ)

	if not chunks[chunkX] then

		chunks[chunkX] = {}

	end

	return chunks[chunkX][chunkZ]

end
--// Declarables
local L_5_ = L_1_:WaitForChild('Resource')
local L_6_ = L_5_:WaitForChild('FX')
local L_7_ = L_5_:WaitForChild('Events')
local L_8_ = L_5_:WaitForChild('HUD')
local L_9_ = L_5_:WaitForChild('Modules')
local L_10_ = L_5_:WaitForChild('Vars')
local L_11_ = L_5_:WaitForChild('SettingsModule')
local L_12_ = require(L_11_:WaitForChild('ServerConfig'))
local L_13_ = L_5_:WaitForChild('Nodes')
local L_14_

local L_15_
local L_16_

local L_17_
local L_18_
local L_19_

local L_20_
local L_21_
local L_22_
local L_23_
local L_24_
local L_25_

local L_26_
local L_27_
--Added those two (if player/if not player) in so this wouldn't break if you used it on AI, or something of the sort. 


	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end
local fx=script.Parent:FindFirstChild("Blade")
local fx2=script.Parent.Blade:FindFirstChild("Stroke")

function lunge()
	damage = lunge_damage

	LungeSound:play()

	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool
	
	
	local force = Instance.new("BodyVelocity")
	force.velocity = Vector3.new(0,10,0) 
	force.maxForce = Vector3.new(0,4000,0) -- ADD THIS TO CHANGE MOMENTUM
	force.Parent = Tool.Parent.Torso
	if fx and fx2 and fxToggled then fx2.Enabled=true end
	wait(.25)
	swordOut()
	wait(.25)
	force.Parent = nil
	wait(.5)
	swordUp()
	if fx and fx2 then fx2.Enabled=false end

	damage = slash_damage
end

function swordUp()
	Tool.GripForward = Vector3.new(1, 0, 0)
	Tool.GripRight = Vector3.new(0, 0, -1)
	Tool.GripUp = Vector3.new(0, -1, 0)
end

function swordOut()
	Tool.GripForward = Vector3.new(1, 0, 0)
	Tool.GripRight = Vector3.new(0, 0, -1)
	Tool.GripUp = Vector3.new(-20, -1, 0)
end

function swordAcross()
	-- parry
end


Tool.Enabled = true
local last_attack = 0
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return 
	end

	local t = r.Stepped:wait()

	if (t - last_attack < .2) then
		lunge()
	else
		attack()
	end

	last_attack = t

	--wait(.5)

	Tool.Enabled = true
end


function onEquipped()
	UnsheathSound:play()
end
script.Parent.Effects.OnServerEvent:connect(function(p,toggle)
	local ch=script.Parent.Blade:GetChildren()
	for i=1,#ch do 
		if ch[i].ClassName=="ParticleEmitter" or ch[i].ClassName=="PointLight" then
			ch[i].Enabled=toggle
		end
	end
	spawn(function()
		wait(.5)
		script.Parent.Blade.Stroke.Enabled=false
	end)
	fxToggled=toggle
	if not toggle then
		script.Parent.Blade.Material=Enum.Material.Metal
		script.Parent.Blade.BrickColor=BrickColor.new("Institutional white")
		damage=5
		slash_damage=10
		lunge_damage=30

	else
		script.Parent.Blade.Material=Enum.Material.Neon
		script.Parent.Blade.BrickColor=BrickColor.new("Cool yellow")
		damage=15
		slash_damage=20
		lunge_damage=50
	end
end)

script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


connection = sword.Touched:connect(blow)
--// KeyBindings
	FireSelectKey = Enum.KeyCode.V;
	CycleSightKey = Enum.KeyCode.T;
	LaserKey = Enum.KeyCode.G;
	LightKey = Enum.KeyCode.B;
	InteractKey = Enum.KeyCode.E;
	AlternateAimKey = Enum.KeyCode.Z;
	InspectionKey = Enum.KeyCode.H;
----------------------------------------------------------------------------------------------------
------------------=[ Status UI ]=-------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
	,EnableStatusUI = true				--- Don't disabled it...
	,RunWalkSpeed = 22
	,NormalWalkSpeed = 16
	,SlowPaceWalkSpeed = 8	
	,CrouchWalkSpeed = 8
	,ProneWalksSpeed = 4

	,EnableHunger = false				--- Hunger and Thirst system
	,HungerWaitTime = 25

	,CanDrown = true 					--- Welp.. That's it
	
	,EnableStamina = true 				--- Weapon Sway based on stamina	
	,RunValue = 1						--- Stamina consumption
	,StandRecover = .25					--- Stamina recovery while stading
	,CrouchRecover = .5					--- Stamina recovery while crouching
	,ProneRecover = 1					--- Stamina recovery while lying

	,EnableGPS = true					--- GPS shows your allies around you
	,GPSdistance = 50

	,InteractionMenuKey = Enum.KeyCode.LeftControl
--------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------

function createBullet(Direction)
	local Origin = Gun.Main.CFrame.p
	local bulletCF = CF(Origin, Origin + Direction)
	local Bullet = Instance.new("Part")
	Bullet.BrickColor = S.bulletSettings.Color
	Bullet.Material = Enum.Material.Neon
	Bullet.Name = "Bullet"
	Bullet.CanCollide = false
	Bullet.FormFactor = "Custom"
	Bullet.Size = S.bulletSettings.Size
	Bullet.BottomSurface = "Smooth"
	Bullet.TopSurface = "Smooth"
	if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
		local Mesh = Instance.new("BlockMesh")
		Mesh.Scale = S.bulletSettings.Size / Vector3.new(
			math.max(S.bulletSettings.Size.X, 0.2),
			math.max(S.bulletSettings.Size.Y, 0.2),
			math.max(S.bulletSettings.Size.Z, 0.2)
		)
		Mesh.Parent = Bullet
	end
	local BF = Instance.new("BodyForce")
	BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
	BF.Parent = Bullet
	Bullet.Parent = gunIgnore
	Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
	Bullet.Velocity = Direction * S.bulletSettings.Velocity
	return Bullet
end
--[[START]]

	script.Parent:WaitForChild("Car")
	script.Parent:WaitForChild("IsOn")
	script.Parent:WaitForChild("ControlsOpen")
	script.Parent:WaitForChild("Values")
-- atualiza o TextLabel com a NumberValue
local function updateTextLabel()
	textLabel.Text = commaSeparateNumber(numValue.Value)
end
-- Process Tiles
local ZoneParser = require(script.ZoneParser)
local PlayerManager = require(script.PlayerManager)

ZoneParser:ParseType("Straight")
ZoneParser:ParseType("Left")
ZoneParser:ParseType("Right")
ZoneParser:ParseType("TJunction")
ZoneParser:ParseType("Obstacle")

ZoneParser:ParseType("Tutorial")

game.Workspace.DisplayElements:Destroy()

local trackSlots = {}
for i = 1, 6 do
	trackSlots[i] = {player = nil, height = 50 * i}
end

local managers = {}

game.ReplicatedStorage.Events.StartRunning.OnServerEvent:connect(function(player)
	
	local playerSlot = player:WaitForChild("slotHeight")
	local manager = PlayerManager:Run(player, playerSlot.Value)
	managers[player.Name] = manager
	
	wait()
	
	player:LoadCharacter()
end)

game.Players.PlayerAdded:connect(function(player)
	local playerSlot = nil
	for i = 1, 6 do
		local slot = trackSlots[i]
		if not slot.player then
			slot.player = player
			playerSlot = slot
			break
		end
	end
	local slotHeight = Instance.new("IntValue", player)
	slotHeight.Name = "slotHeight"
	slotHeight.Value = playerSlot.height
end)

game.Players.PlayerRemoving:connect(function(player)
	if managers[player.Name] then
		managers[player.Name].Cleanup()
		managers[player.Name] = nil
	end
end)
--- Special
   Special.Value = Special1:GetAsync(Plr.UserId) or Special.Value
	   Special1:SetAsync(Plr.UserId, Special.Value)
      Special.Changed:connect(function()
	   Special1:SetAsync(Plr.UserId, Special.Value)
   end)
--[[
    Server side script that listens to client bomb throw requests, validates them, and then executes the request
]]
local ServerStorage = game:GetService("ServerStorage")

local createThrownBomb = require(ServerStorage.Source.MinigameUtilities.createThrownBomb)

local tool = script.Parent
local fireEvent = tool:FindFirstChild("Fire")
local cooldown = tool:FindFirstChild("Cooldown").Value

local lastThrow = 0
fireEvent.OnServerEvent:Connect(
	function(player, origin, target)
		if player and player.Character then
			if script:IsDescendantOf(player.Character) then
				local nowTick = tick()
				if nowTick - lastThrow > cooldown then
					lastThrow = nowTick
					createThrownBomb(player, origin, target)
				end
			end
		end
	end
)
-- Local private variables and constants
local ZERO_VECTOR2 = Vector2.new(0,0)

local tweenAcceleration = math.rad(220)		--Radians/Second^2
local tweenSpeed = math.rad(0)				--Radians/Second
local tweenMaxSpeed = math.rad(250)			--Radians/Second
local TIME_BEFORE_AUTO_ROTATE = 2.0 		--Seconds, used when auto-aligning camera with vehicles
local PORTRAIT_OFFSET = Vector3.new(0, 2, 0) 
local MOBILE_OFFSET = Vector3.new(0, 1, 0)

local INITIAL_CAMERA_ANGLE = CFrame.fromOrientation(math.rad(-15), 0, 0)
-- // Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local ServerStorage = game:GetService("ServerStorage")
-- url : (string)
-- body : (string)
-- customHeaders : (dictionary<string, string>, optional)
-- returns : (promise<HttpResponse/HttpError>)
function Networking:POST(url, body, customHeaders)
	if not customHeaders then
		customHeaders = self._headers
	end

	assert(type(url) == "string", "expected 'url' to be a string")
	assert(type(body) == "string", "expected 'body' to be a string")
	assert(type(customHeaders) == "table", "expected 'customHeaders' to be a dictionary")

	local httpFunc = function()
		return self._httpImpl:RequestAsync({
			Url = url,
			Method = "POST",
			Headers = customHeaders,
			Body = body,
		})
	end

	return commonHttpHandler(url, httpFunc)
end

return Networking
--[[Brakes]]
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 18		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 2000		-- Front brake force
	Tune.RBrakeForce	= 1750		-- Rear brake force
	Tune.PBrakeForce	= 5000		-- Handbrake force
	
	Tune.FLgcyBForce	= 10000		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 8000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 25000		-- Handbrake force [PGS OFF]
-- Luke


local button = script.Parent
local players = game:GetService('Players')
local characterScripts = game:GetService('ReplicatedStorage'):WaitForChild('CharacterScripts')


local CHARACTER_TEMPLATE = workspace:WaitForChild('Girl')
local DEBOUNCE_TIME = 5
local debounce = false


button.Touched:connect(function(hit)
	if hit and hit.Parent then
		local humanoid = hit.Parent:FindFirstChild('Humanoid')
		local hrp = hit.Parent:FindFirstChild('HumanoidRootPart')
		if hrp and humanoid and humanoid.Health > 0 then
			local player = players:GetPlayerFromCharacter(hit.Parent)
			if not debounce then
				debounce = true
				
				local newCharacter = CHARACTER_TEMPLATE:Clone()
				newCharacter.HumanoidRootPart.CFrame = hrp.CFrame
				newCharacter.HumanoidRootPart.Anchored = false
				newCharacter.Name = player.Name
				
				for i,v in pairs(characterScripts:GetChildren()) do
					v:clone().Parent = newCharacter
				end

				player.Character = newCharacter
				newCharacter.Parent = workspace

				wait(DEBOUNCE_TIME)
				debounce = false
			end
		end
	end
end)
--// Tracer Vars
	TracerTransparency = 0;	
	TracerLightEmission = 1;
	TracerTextureLength = 0.1;
	TracerLifetime = 0.05;
	TracerFaceCamera = true;
	TracerColor = BrickColor.new('White');
-- regeneration
while true do
	local s = wait(4)
	local health = Humanoid.Health
	if health > 0 and health < Humanoid.MaxHealth then
		health = health + 0.08 * s * Humanoid.MaxHealth
		if health * 1.05 < Humanoid.MaxHealth then
			Humanoid.Health = health
		else
			Humanoid.Health = Humanoid.MaxHealth
		end
	end
end
--[[**
	ensures Roblox Rect type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]
t.Rect = primitive("Rect")
--// Connections
L_105_.OnClientEvent:connect(function(L_188_arg1, L_189_arg2, L_190_arg3, L_191_arg4, L_192_arg5, L_193_arg6, L_194_arg7)
	if L_188_arg1 and not L_15_ then
		MakeFakeArms()
		
		L_42_ = L_2_.PlayerGui.MainGui
		L_26_ = L_42_:WaitForChild('Others')
		L_27_ = L_26_:WaitForChild('Kill')
		L_28_ = L_42_:WaitForChild('GameGui'):WaitForChild('AmmoFrame')
		L_29_ = L_28_:WaitForChild('Ammo')
		L_30_ = L_28_:WaitForChild('AmmoBackground')
		L_31_ = L_28_:WaitForChild('MagCount')
		L_32_ = L_28_:WaitForChild('MagCountBackground')
		L_33_ = L_28_:WaitForChild('DistDisp')
		L_34_ = L_28_:WaitForChild('Title')
		L_35_ = L_28_:WaitForChild('Mode1')
		L_36_ = L_28_:WaitForChild('Mode2')
		L_37_ = L_28_:WaitForChild('Mode3')
		L_38_ = L_28_:WaitForChild('Mode4')
		L_39_ = L_28_:WaitForChild('Mode5')
		L_40_ = L_28_:WaitForChild('Stances')
		L_41_ = L_42_:WaitForChild('Shading')
		L_41_.Visible = false
		
		L_34_.Text = L_1_.Name
		UpdateAmmo()
		
		L_43_ = L_189_arg2
		L_44_ = L_190_arg3
		L_45_ = L_191_arg4
		L_46_ = L_192_arg5
		L_47_ = L_193_arg6
		L_48_ = L_194_arg7	
		L_49_ = L_59_.Bolt
		
		L_84_ = L_48_.C1
		L_85_ = L_48_.C0
		
		if L_1_:FindFirstChild('AimPart2') then
			L_54_ = L_1_:WaitForChild('AimPart2')
		end
		
		if L_1_:FindFirstChild('FirePart2') then
			L_57_ = L_1_.FirePart2
		end
		
		if L_24_.FirstPersonOnly then
			L_2_.CameraMode = Enum.CameraMode.LockFirstPerson
		end
		--uis.MouseIconEnabled = false
		L_5_.FieldOfView = 70
		L_15_ = true
	elseif L_15_ then
		if L_3_ and L_3_.Humanoid and L_3_.Humanoid.Health > 0 and L_9_ then
			Stand()
			Unlean()
		end	
		
		L_90_ = 0
		L_77_ = false
		L_78_ = false
		L_79_ = false
		L_61_ = false
		L_64_ = false
		L_63_ = false
		Shooting = false
		
		L_94_ = 70
		
		RemoveArmModel()
		
		L_42_:Destroy()	
		
		for L_195_forvar1, L_196_forvar2 in pairs(IgnoreList) do
			if L_196_forvar2 ~= L_3_ and L_196_forvar2 ~= L_5_ and L_196_forvar2 ~= L_98_ then
				table.remove(IgnoreList, L_195_forvar1)
			end
		end
		
		if L_3_:FindFirstChild('Right Arm') and L_3_:FindFirstChild('Left Arm') then
			L_3_['Right Arm'].LocalTransparencyModifier = 0
			L_3_['Left Arm'].LocalTransparencyModifier = 0
		end	

		L_75_ = false
		L_66_ = true
		
		L_2_.CameraMode = Enum.CameraMode.Classic
		L_104_.MouseIconEnabled = true		
		L_5_.FieldOfView = 70
		L_15_ = false
		L_104_.MouseDeltaSensitivity = L_52_
		L_4_.Icon = "http://www.roblox.com/asset?id=0"
		L_15_ = false
		L_4_.TargetFilter = nil
	end
end)
--// Functions
function MakeFakeArms()
	Arms = Instance.new("Model")
	Arms.Name = "Arms"
	Arms.Parent = L_5_

	local L_169_ = Instance.new("Humanoid")
	L_169_.MaxHealth = 0
	L_169_.Health = 0
	L_169_.Name = ""
	L_169_.Parent = Arms
		
	if L_3_:FindFirstChild("Shirt") then
		local L_174_ = L_3_:FindFirstChild("Shirt"):clone()
		L_174_.Parent = Arms
	end
	
	local L_170_ = L_3_:FindFirstChild("Right Arm"):clone()
	for L_175_forvar1, L_176_forvar2 in pairs(L_170_:GetChildren()) do
		if L_176_forvar2:IsA('Motor6D') then
			L_176_forvar2:Destroy()
		end
	end
	L_170_.Name = "Right Arm"
	L_170_.FormFactor = "Custom"
	L_170_.Size = Vector3.new(0.8, 2.5, 0.8)
	L_170_.Transparency = 0.0
	
	local L_171_ = Instance.new("Motor6D")
	L_171_.Part0 = L_170_
	L_171_.Part1 = L_3_:FindFirstChild("Right Arm")
	L_171_.C0 = CFrame.new()
	L_171_.C1 = CFrame.new()
	L_171_.Parent = L_170_	
	L_170_.Parent = Arms
		
	local L_172_ = L_3_:FindFirstChild("Left Arm"):clone()
	L_172_.Name = "Left Arm"
	L_172_.FormFactor = "Custom"
	L_172_.Size = Vector3.new(0.8, 2.5, 0.8)
	L_172_.Transparency = 0.0	
	
	local L_173_ = Instance.new("Motor6D")
	L_173_.Part0 = L_172_
	L_173_.Part1 = L_3_:FindFirstChild("Left Arm")
	L_173_.C0 = CFrame.new()
	L_173_.C1 = CFrame.new()
	L_173_.Parent = L_172_	
	L_172_.Parent = Arms
end

function RemoveArmModel()
	if Arms then
		Arms:Destroy()
		Arms = nil
	end
end

local L_132_

function CreateShell()
	L_132_ = time()
	local L_177_ = L_1_.Shell:clone()
	if L_177_:FindFirstChild('Shell') then
		L_177_.Shell:Destroy()
	end
	L_177_.CFrame =  L_1_.Chamber.CFrame
	L_177_.Velocity = L_1_.Chamber.CFrame.lookVector * 30 + Vector3.new(0, 4, 0)
	--shell.RotVelocity = Vector3.new(-10,40,30)
	L_177_.Parent = L_98_
	L_177_.CanCollide = false
	game:GetService("Debris"):addItem(L_177_, 1)
	delay(0.5, function()
		if L_19_:FindFirstChild('ShellCasing') then
			local L_178_ = L_19_.ShellCasing:clone()
			L_178_.Parent = L_2_.PlayerGui
			L_178_:Play()
			game:GetService('Debris'):AddItem(L_178_, L_178_.TimeLength)
		end
	end)
end
--script.AB.Value = true
	carSeat.Parent.Weight.FrontDF.Force = Vector3.new(0, 0, 0)
	carSeat.Parent.Weight.RearDF.Force = Vector3.new(0, 0, 0)
	else --script.AB.Value = false
carSeat.Parent.Weight.FrontDF.Force = Vector3.new(0, (-1.2*DFF)*speed, (0.3*DFF)*speed)
carSeat.Parent.Weight.FrontDF.Location = Vector3.new(0,-2,-2)

carSeat.Parent.Weight.RearDF.Force = Vector3.new(0, ((-2.2*DFR)-1.5)*speed, (0.6*DFR)*speed)
carSeat.Parent.Weight.RearDF.Location = Vector3.new(0,1,4)
end
-- declarations
local toolAnim = "None"
local toolAnimTime = 0

local jumpAnimTime = 0
local jumpAnimDuration = 0.31

local toolTransitionTime = 0.1
local fallTransitionTime = 0.2

local currentlyPlayingEmote = false
--[[
	Displays a countdown for the intermission
]]
local function startCountdown()
	local gameStartingElement = activeElements.GameStartingElement

	gameStartingElement:FindFirstChild("Title").Text = translate("STARTING")

	gameStartingElement.Visible = true
	activeElements.WaitingElement.Visible = false

	local startingTick = tick()
	local timeLeft = intermissionTime - (startingTick - tick())

	while timeLeft > 0 do
		timeLeft = timeLeft - wait()

		if not gameStartingElement or not gameStartingElement.Parent then
			return
		end

		gameStartingElement.Amount.Text = math.floor(timeLeft + 0.5)
	end
end
--[=[
	@param andThenFn (value: any) -> Option
	@return value: Option
	If the option holds a value, then the `andThenFn`
	function is called with the held value of the option,
	and then the resultant Option returned by the `andThenFn`
	is returned. Otherwise, None is returned.

	```lua
	local optA = Option.Some(32)
	local optB = optA:AndThen(function(num)
		return Option.Some(num * 2)
	end)
	print(optB:Expect("Expected number")) --> 64
	```
]=]
function Option:AndThen(andThenFn)
	if self:IsSome() then
		local result = andThenFn(self:Unwrap())
		Option.Assert(result)
		return result
	else
		return Option.None
	end
end
--[[Output Scaling Factor]]

	local hpScaling = _Tune.WeightScaling*10
	local FBrakeForce = _Tune.FBrakeForce
	local RBrakeForce = _Tune.RBrakeForce
	local PBrakeForce = _Tune.PBrakeForce
	if not workspace:PGSIsEnabled() then
		hpScaling = _Tune.LegacyScaling*10
		FBrakeForce = _Tune.FLgcyBForce
		RBrakeForce = _Tune.RLgcyBForce
		PBrakeForce = _Tune.LgcyPBForce
	end
-- initialize to idle
playAnimation("idle", 0.1, Humanoid)
pose = "Standing"
--Turbocharger
local BOV_Loudness = .75	--volume of the BOV (not exact volume so you kinda have to experiment with it)
local BOV_Pitch = 0.9	--max pitch of the BOV (not exact so might have to mess with it)
local T_Loudness = .325 --volume of the turbo(s) (not exact volume so you kinda have to experiment with it also)
-- Player specific convenience variables
local MyPlayer = nil
local MyCharacter = nil
local MyHumanoid = nil
local MyTorso = nil
local MyMouse = nil
local  rot = {"100","200","300","400","500","-100","-200","-300","-400","-500"}
pi = {"1","1","1","1.05","0.95"}
local RecoilAnim
local RecoilTrack = nil

local IconURL = Tool.TextureId  -- URL to the weapon icon asset

local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')


local FireSound

local OnFireConnection = nil
local OnReloadConnection = nil

local DecreasedAimLastShot = false
local LastSpreadUpdate = time()
--[[**
	matches given tuple against tuple type definition

	@param ... The type definition for the tuples

	@returns A function that will return true iff the condition is passed
**--]]
function t.tuple(...)
	local checks = { ... }
	return function(...)
		local args = { ... }
		for i, check in ipairs(checks) do
			local success, errMsg = check(args[i])
			if success == false then
				return false, string.format("Bad tuple index #%s:\n\t%s", i, errMsg or "")
			end
		end

		return true
	end
end
--local player = game:GetService("Players").PlayerAdded:Connect(function(plr) 
--	plr.CharacterAdded:Connect(function(char)
--local char = script.Parent.Parent.Parent
--local Params = RaycastParams.new()
--	Params.FilterDescendantsInstances = {char}
--	Params.FilterType = Enum.RaycastFilterType.Blacklist
--	print(Params.FilterDescendantsInstances)
--	end)
--end)

local newHitbox = RaycastHitbox.new(script.Parent)
newHitbox.Visualizer = false

newHitbox.OnHit:Connect(function(hit, humanoid)
	if humanoid.Parent.Name ~= script.Parent.Parent.Parent.Name then
		humanoid:TakeDamage(100)
	end
end)

event.OnServerEvent:Connect(function(db)
		newHitbox:HitStart()
		wait(1)
		newHitbox:HitStop()
end)
---[[ Misc Settings ]]
module.WhisperCommandAutoCompletePlayerNames = true
--[[Engine]]
--Torque Curve
Tune.Horsepower		= 3000		--	[TORQUE CURVE VISUAL]
Tune.IdleRPM		= 1000		--		https://www.desmos.com/calculator/2uo3hqwdhf
Tune.PeakRPM		= 8000		--		Use sliders to manipulate values
Tune.Redline		= 9000--		Copy and paste slider values into the respective tune values
Tune.EqPoint		= 10700
Tune.PeakSharpness	= 2.3
Tune.CurveMult		= 0.07