Roblox/luau_corpus huggingface dataset:
-- Waiting for the player ensures that the RobloxLocaleId has been set.
if Players.LocalPlayer == nil then
	Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
end

local coreScriptTableTranslator
local function getTranslator()
	if coreScriptTableTranslator == nil then
		coreScriptTableTranslator = script.CoreScriptLocalization:GetTranslator(
			LocalizationService.RobloxLocaleId)
	end
	return coreScriptTableTranslator
end

local RobloxTranslator = {}

function RobloxTranslator:FormatByKey(key, args)
	return getTranslator():FormatByKey(key, args)
end

return RobloxTranslator
------------------------------------------------------
	--========================SPOTLIGHT========================--

	local SpotLightEvent = script.Parent.Car.Value.Body.Spotlight.RemoteEvent
	
	SpotlightFrame.On.MouseButton1Down:Connect(function()SpotLightEvent:FireServer("Lights on")script.Parent.AC6_Stock_Gauges.Frame.Beep:Play()end)
	SpotlightFrame.Off.MouseButton1Down:Connect(function()SpotLightEvent:FireServer("Lights off")script.Parent.AC6_Stock_Gauges.Frame.Beep:Play()end)
	
	SpotlightFrame.Right.MouseButton1Down:Connect(function()SpotLightEvent:FireServer("Right start")end)
	SpotlightFrame.Right.MouseButton1Up:Connect(function()SpotLightEvent:FireServer("Right stop")end)
	
	SpotlightFrame.Left.MouseButton1Down:Connect(function()SpotLightEvent:FireServer("Left start")end)
	SpotlightFrame.Left.MouseButton1Up:Connect(function()SpotLightEvent:FireServer("Left stop")end)	
	
	--======================SPOTLIGHT END======================--
------------------------------------------------------------------------------------------------------------------------------------------------------
--  ControlScript
------------------------------------------------------------------------------------------------------------------------------------------------------

local Players 				= game:GetService('Players')
local RunService 			= game:GetService('RunService')
local UserInputService 		= game:GetService('UserInputService')
local ReplicatedStorage 	= game:GetService('ReplicatedStorage')
local PathfindingService 	= game:GetService('PathfindingService')

local LocalPlayer 			= Players.LocalPlayer
local LocalMouse 			= LocalPlayer:GetMouse()
local LocalCharacter 		= LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()

local MouseHolding 			= false
local PathingThread 		= nil
local CurrentPath 			= nil
local HoldingPosition 		= false

workspace.Camera.CameraType = Enum.CameraType.Custom
--DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.Boomerang -- Change "Sword" to the name of your tool, make sure your tool is in ServerStorage

hitPart.Touched:Connect(function(hit)
	if debounce == true then
		if hit.Parent:FindFirstChild("Humanoid") then
			local plr = game.Players:FindFirstChild(hit.Parent.Name)
			if plr then
				debounce = false
				hitPart.BrickColor = BrickColor.new("Bright red")
				tool:Clone().Parent = plr.Backpack
				wait(3) -- Change "3" to however long you want the player to have to wait before they can get the tool again
				debounce = true
				hitPart.BrickColor = BrickColor.new("Bright green")
			end
		end
	end
end)
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------
	,VRecoil = {16,20}				--- Vertical Recoil
	,HRecoil = {8,12}				--- Horizontal Recoil
	,AimRecover = .325				---- Between 0 & 1
	
	,RecoilPunch = .25
	,VPunchBase = 4.75				--- Vertical Punch
	,HPunchBase = 2.5				--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless
	
	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .75
	,MaxRecoilPower = 2
	,RecoilPowerStepAmount = .25
	
	,MinSpread = 0.12				--- Min bullet spread value | Studs
	,MaxSpread = 30					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = .15
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.25				--- Weapon Base Sway | Studs
	,MaxSway =	3					--- Max sway value based on player stamina | Studs
--
script.Parent.basla.MouseButton1Click:Connect(function()
	game.Lighting.Blur.Size = 0
	workspace.CurrentCamera.CameraType = "Custom"
	script.Parent.Parent.Parent.Envanter.Enabled = true
	script.Parent.Parent.Shad.Enabled = true
	game.SoundService.Music:Play()
	--
	script.Parent:Destroy()
end)
--Character Script
--Unless you know what you're doing, do not modify this script.
local tool = script.Tool.Value --This identifies the tool to perform actions on.
local player = script.Player.Value --This identifies the player of the character this script is inside.
if player ~= nil then --This ensures that the player exists.
	local humanoidrootpart = script.Parent:WaitForChild("HumanoidRootPart") --This identifies the HumanoidRootPart inside the character.
	player.CharacterRemoving:Connect(function() --This detects the removal of the character.
		tool.Handle.CFrame = CFrame.new(humanoidrootpart.Position) --This sets the position of the handle to the character's position.
		tool.Parent = workspace --This puts the tool into Workspace, allowing players to pick it up.
	end)
else --If the player doesn't exist, the following code will run instead.
	script:Destroy() --This removes this script.
end
-- Amount of damage players will take when standing in lava
local LAVA_DPS = 300
--[[
	ServerPlayer state for when the player is using the camera system.
]]
local ServerStorage = game:GetService("ServerStorage")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local MonsterManager = require(ServerStorage.Source.Managers.MonsterManager)

local LeaveCamera = ReplicatedStorage.Remotes.LeaveCamera

local NOISE_GENERATED = 50

local connections = {}
--CHANGE THIS LINE-- (Turn)
Turn = script.Parent.Parent.Parent.ControlBox.TurnValues.TurnSignal1a -- Change last word
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 468		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 6700		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 4500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 5			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)
--	====================
--	BASIC
--	A basic settings for the gun
--	====================
	
		UseCommonVisualEffects = false; --Enable to use default visual effect folder named "Common". Otherwise, use visual effect with specific tool name (ReplicatedStorage -> Miscs -> GunVisualEffects)
		AutoReload = false; --Reload automatically when you run out of mag; disabling it will make you reload manually
		CancelReload = true; --Exit reload state when you fire the gun
		DirectShootingAt = "None"; --"FirstPerson", "ThirdPerson" or "Both". Make bullets go straight from the fire point instead of going to input position. Set to "None" to disable this
	
	 	--Check "DualWeldEnabled" for detail
		PrimaryHandle = "Handle";
		SecondaryHandle = "Handle2";
	
		CustomGripEnabled = false; --NOTE: Must disable "RequiresHandle" first
		CustomGripName = "Handle";
		CustomGripPart0 = {"Character", "Right Arm"}; --Base
		CustomGripPart1 = {"Tool", "Handle"}; --Target
		AlignC0AndC1FromDefaultGrip = true;
		CustomGripCFrame = false;
		CustomGripC0 = CFrame.new(0, 0, 0);
		CustomGripC1 = CFrame.new(0, 0, 0);	
		
		--CustomGripPart[0/1] = {Ancestor, InstanceName}
		--Supported ancestors: Tool, Character
		--NOTE: Don't set "CustomGripName" to "RightGrip"
-- Changes the body orientiation to make it face a given direction. Returns the computed angles
function OrientableBody:face(direction: Vector3): Vector2?
	local humanoid: Humanoid? = self.character and self.character:FindFirstChild("Humanoid")
	if not humanoid or not humanoid.RootPart then
		return nil
	end

	direction = self.character.HumanoidRootPart.CFrame:PointToObjectSpace(self.character.HumanoidRootPart.Position + direction)

	local verticalAngle = math.asin(direction.Y)
	if verticalAngle < Constants.OFFSET_Y and verticalAngle > -Constants.OFFSET_Y then
		-- Vertical angle is within dead zone, do not change head orientation
		verticalAngle = 0
	else
		if verticalAngle > 0 then
			verticalAngle = verticalAngle - Constants.OFFSET_Y
		else
			verticalAngle = verticalAngle + Constants.OFFSET_Y
		end
	end

	local horizontalAngle = math.atan2(-direction.X, -direction.Z)
	-- If looking behind the character, it will instead rotate towards the camera
	if horizontalAngle > math.pi / 2 then
		horizontalAngle = math.pi - horizontalAngle
	elseif horizontalAngle < -math.pi / 2 then
		horizontalAngle = -math.pi - horizontalAngle
	end

	self.motor:setGoal({
		horizontalAngle = Otter.spring(horizontalAngle),
		verticalAngle = Otter.spring(verticalAngle),
	})

	return Vector2.new(horizontalAngle, verticalAngle)
end
--------------------------------------------------------------------------------------
--------------------[ VARIABLES ]-----------------------------------------------------
--------------------------------------------------------------------------------------

local Selected = false

local Idleing = false
local Walking = false
local Running = false

local Aimed = false
local Aiming = false

local Reloading = false
local BreakReload = false

local Knifing = false
local ThrowingGrenade = false

local MB1_Down = false

local CanFire = true

local KnifeReady = true

local CanRun = true
local RunTween = false
local Run_Key_Pressed = false
local ChargingStamina = false

local AimingIn = false
local AimingOut = false

local Stamina = S.SprintTime * 60
local CurrentSteadyTime = S.ScopeSteadyTime * 60

local CameraSteady = false
local TakingBreath = false

local Grip = nil
local Aimed_GripCF = nil

local Gui_Clone = nil

local CurrentSpread = S.Spread.Hipfire
local CurrentRecoil = S.Recoil.Hipfire

local AmmoInClip = 0

local Stance = 0
local StanceSway = 1
local CameraSway = 1

local HeadRot = 0
local ArmTilt = 0

local LastBeat = 0

local Parts = {}

local Connections = {}

local PrevNeckCF = {
	C0 = nil;
	C1 = nil;
}

local Keys = {}
-- Config
local Config = Plr:WaitForChild("Backpack"):WaitForChild("Config")
local Playing = Config:WaitForChild("Playing")
--- Recalculate the window height
function Window:UpdateWindowHeight()
	local numLines = 0

	for _, child in pairs(Gui:GetChildren()) do
		if child:IsA("GuiObject") then
			numLines = numLines + 1
		end
	end

	local windowHeight = (numLines * LINE_HEIGHT) + 20

	Gui.CanvasSize = UDim2.new(Gui.CanvasSize.X.Scale, Gui.CanvasSize.X.Offset, 0, windowHeight)
	Gui.Size =
		UDim2.new(
		Gui.Size.X.Scale,
		Gui.Size.X.Offset,
		0,
		windowHeight > WINDOW_MAX_HEIGHT and WINDOW_MAX_HEIGHT or windowHeight
	)

	Gui.CanvasPosition = Vector2.new(0, math.clamp(windowHeight - 300, 0, math.huge))
end
--run this first so if there is a 'white' team it is switched over
if not Settings['AutoAssignTeams'] then
	local teamHire = Instance.new('Team', Teams)
	teamHire.TeamColor = BC.new('White')
	teamHire.Name = "FOR HIRE"
end

for i,v in pairs(script.Parent:WaitForChild('Tycoons'):GetChildren()) do
	Tycoons[v.Name] = v:Clone() -- Store the tycoons then make teams depending on the tycoon names
	if returnColorTaken(v.TeamColor) then
		--//Handle duplicate team colors
		local newColor;
		repeat
			wait()
			newColor = BC.Random()
		until returnColorTaken(newColor) == false
		v.TeamColor.Value = newColor
	end
	--Now that there are for sure no duplicates, make your teams
	local NewTeam = Instance.new('Team',Teams)
	NewTeam.Name = v.Name
	NewTeam.TeamColor = v.TeamColor.Value
	if not Settings['AutoAssignTeams'] then
		NewTeam.AutoAssignable = false
	end
	v.PurchaseHandler.Disabled = false
end

function getPlrTycoon(player)
	for i,v in pairs(script.Parent.Tycoons:GetChildren()) do
		if v:IsA("Model") then
			if v.Owner.Value == player then
				return v
			end
		end
	end
	return nil
end

game.Players.PlayerAdded:connect(function(player)
	local plrStats = Instance.new("NumberValue",game.ServerStorage.PlayerMoney)
	plrStats.Name = player.Name
	local isOwner = Instance.new("ObjectValue",plrStats)
	isOwner.Name = "OwnsTycoon"
end)

game.Players.PlayerRemoving:connect(function(player)
	local plrStats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
	if plrStats ~= nil then
		plrStats:Destroy()
	end
	local tycoon = getPlrTycoon(player)
	if tycoon then
		local backup = Tycoons[tycoon.Name]:Clone()
		tycoon:Destroy()
		wait()
		backup.Parent=script.Parent.Tycoons
	end
end)
--	====================
--	BASIC
--	A basic settings for the gun
--	====================
	
		UseCommonVisualEffects = true; --Enable to use default visual effect folder named "Common". Otherwise, use visual effect with specific tool name (ReplicatedStorage -> Miscs -> GunVisualEffects)
		AutoReload = true; --Reload automatically when you run out of mag; disabling it will make you reload manually
		CancelReload = true; --Exit reload state when you fire the gun
		DirectShootingAt = "None"; --"FirstPerson", "ThirdPerson" or "Both". Make bullets go straight from the fire point instead of going to input position. NOTE: Set to "None" to disable this
	
		--Check "DualWeldEnabled" for detail
		PrimaryHandle = "Handle";
		SecondaryHandle = "Handle2";
	
		CustomGripEnabled = false; --NOTE: Must disable "RequiresHandle" first
		CustomGripName = "Handle";
		CustomGripPart0 = {"Character", "Right Arm"}; --Base
		CustomGripPart1 = {"Tool", "Handle"}; --Target
		AlignC0AndC1FromDefaultGrip = true;
		CustomGripCFrame = false;
		CustomGripC0 = CFrame.new(0, 0, 0);
		CustomGripC1 = CFrame.new(0, 0, 0);	
		
		--CustomGripPart[0/1] = {Ancestor, InstanceName}
		--Supported ancestors: Tool, Character
		--NOTE: Don't set "CustomGripName" to "RightGrip"
-- Setup animation objects
function scriptChildModified(child)
	local fileList = animNames[child.Name]
	if fileList then
		configureAnimationSet(child.Name, fileList)
	end	
end

script.ChildAdded:connect(scriptChildModified)
script.ChildRemoved:connect(scriptChildModified)

for name, fileList in pairs(animNames) do 
	configureAnimationSet(name, fileList)
end
--[=[
	@param object T
	Add an object to the queue.
]=]
function TaskQueue:Add<T>(object: T)
	table.insert(self._queue, object)
	if not self._flushingScheduled then
		self._flushingScheduled = true
		task.defer(function()
			if not self._flushingScheduled then
				return
			end
			self._flushing = true
			self._onFlush(self._queue)
			table.clear(self._queue)
			self._flushing = false
			self._flushingScheduled = false
		end)
	end
end
----- Properties to Change -----
local BigScreenStroke = script.BigScreenStrokeValue.Value
local SmallScreenStroke = script.SmallScreenStrokeValue.Value
local SuperSmallScreenStroke = script.SmallScreenStrokeValue.Value
--script.Parent.Parent.Mover1.part.Anchored = true
script.Parent.Parent.Mover1.part.PrismaticConstraint.Speed = 0
script.Parent.Parent.Mover1.part.PrismaticConstraint.TargetPosition = script.Parent.Parent.Mover1.part.PrismaticConstraint.CurrentPosition
-- Folder
local animFold = rp.Storage.Animations
local loadedAnims = {}
local module = {}
-- // VARIABLES \\ --

local Shadow = script.Parent
local RunAnim = script.RunAnim

local Humanoid = script.Parent:WaitForChild("Humanoid")

local SprintAnim = Humanoid:LoadAnimation(RunAnim)

local Debounce = false
-- Decompiled with the Synapse X Luau decompiler.

tool = script.Parent;
while not tool:FindFirstChild("WeldProfile") do
	wait();
end;
profile = tool.WeldProfile;
function reweld()
	local v1, v2, v3 = pairs(profile:GetChildren());
	while true do
		local v4, v5 = v1(v2, v3);
		if v4 then

		else
			break;
		end;
		v3 = v4;
		local l__Value__6 = v5.Value;
		l__Value__6:BreakJoints();
		local v7 = Instance.new("ManualWeld");
		v7.Name = "HandleWeld";
		v7.Part0 = l__Value__6;
		v7.Part1 = profile.Value;
		v7.C0 = v5.C0.Value;
		v7.C1 = v5.C1.Value;
		v7.Parent = game.JointsService;	
	end;
end;
tool.AncestryChanged:connect(reweld);
reweld();
--[=[
	Gets the controller by name. Throws an error if the controller
	is not found.
]=]
function KnitClient.GetController(controllerName: string): Controller
	local controller = controllers[controllerName]
	if controller then
		return controller
	end
	assert(started, "Cannot call GetController until Knit has been started")
	assert(type(controllerName) == "string", `ControllerName must be a string; got {type(controllerName)}`)
	error(`Could not find controller "{controllerName}". Check to verify a controller with this name exists.`, 2)
end
--< Constants >--
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Camera = workspace.CurrentCamera

local DefaultFieldOFView = Camera.FieldOfView
local DefaultWalkingSpeed = Humanoid.WalkSpeed
--script.Parent.Parent.Parent.Sensortwo.Move.Disabled = false
script.Parent.Parent.Parent.WinSensor.Script.Disabled = false
--[=[
	@class Component

	Bind components to Roblox instances using the Component class and CollectionService tags.
]=]
local Component = {}
Component.__index = Component
--!strict
type Match = {
	index: number,
	match: string,
}

local function findOr(str: string, patternTable: { string }, initIndex: number?): Match | nil
	-- loop through all options in patern patternTable

	local init = utf8.offset(str, initIndex or 1)
	local matches = {}
	for _, value in ipairs(patternTable) do
		local iStart, iEnd = string.find(str, value, init)
		if iStart then
			local prefix = string.sub(str, 1, iStart - 1)
			local prefixEnd, invalidBytePosition = utf8.len(prefix)
			if prefixEnd == nil then
				error(("string `%s` has an invalid byte at position %s"):format(prefix, tostring(invalidBytePosition)))
			end
			local iStartIndex = prefixEnd :: number + 1
			local match = {
				index = iStartIndex,
				match = string.sub(str, iStart, iEnd),
			}
			table.insert(matches, match)
		end
	end

	-- if no matches, return nil
	if #matches == 0 then
		return nil
	end

	-- find the first matched index (after the init param)
	-- for each, if we get a hit, return the earliest index and matched term

	local firstMatch
	for _, value in ipairs(matches) do
		-- load first condition
		if firstMatch == nil then
			firstMatch = value
		end
		-- identify if current match comes before first match
		if value.index < firstMatch.index then
			firstMatch = value
		end
	end

	-- return first match
	return firstMatch
end

return findOr
--local Anim = script.Parent.AnimationController:LoadAnimation(game.ReplicatedStorage.Pets.Settings.WalkAnim)
--local AnimPlay = false

if Player then
	while wait() do
		if Player.Character:FindFirstChild("HumanoidRootPart") then
			local Pos = script.Parent.Pos.Value
			local CoinPos = script.Parent.CoinPos.Value
			local BG = script.Parent.BodyGyro
			local BP = script.Parent.BodyPosition
			local d = Player.Character.HumanoidRootPart.Position.Y - script.Parent.Position.Y
			if script.Parent.Selected.Value == 0 then
				local Stats = require(game.ReplicatedStorage.Assets.Pets:FindFirstChild(script.Parent.PetName.Value)["Pet Data"])
				if Stats.fly == true then
					BP.Position = (Player.Character.HumanoidRootPart.Position + Pos) - Vector3.new(0,2,0) + Vector3.new(0,script.Parent.Size.Y/2,0) + Vector3.new(0, game.ServerScriptService.globalPetFloat.Value, 0)
					if Player.Walking.Value == false then
						BG.CFrame = CFrame.new(script.Parent.Position, Player.Character.HumanoidRootPart.Position - Vector3.new(0, d, 0))
					else
						BG.CFrame = Player.Character.HumanoidRootPart.CFrame
					end
				else
					BP.Position = (Player.Character.HumanoidRootPart.Position + Pos) - Vector3.new(0,3.4,0) + Vector3.new(0,script.Parent.Size.Y/2,0)
					if Player.Walking.Value == false then
						BG.CFrame = CFrame.new(script.Parent.Position, Player.Character.HumanoidRootPart.Position - Vector3.new(0, d, 0))
					else
						BG.CFrame = Player.Character.HumanoidRootPart.CFrame
					end
				end
			else
				BP.Position = (workspace.CoinFolder[script.Parent.Selected.Value].Position + CoinPos) - Vector3.new(0,workspace.CoinFolder[script.Parent.Selected.Value].Size.Y/2,0) + Vector3.new(0,script.Parent.Size.Y/2,0)
				BG.CFrame = CFrame.new(script.Parent.Position, workspace.CoinFolder[script.Parent.Selected.Value].Position - Vector3.new(0, 0, 0))
			end
		end
	end
end
--// Hash: 88a45019b6f79cfdc71424fff47b83927baa4c5e15d680e491900085e4daf0f2c10b403598e03f7c502ea0b5ef79031b
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {
	Revive1 = 1286521615, 
	Revive5 = 1288445778, 
	Knobs250 = 1288448939, 
	Knobs600 = 1288449065, 
	Knobs1300 = 1288449315, 
	Knobs2800 = 1288449386, 
	Knobs6000 = 1297326833, 
	Knobs16000 = 1297327030, 
	Knobs1000000 = 1297328308, 
	BoostKnobs = 1293421321
};
for v2, v3 in pairs(v1) do
	v1[v3] = v2;
end;
return v1;
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local handler = car:WaitForChild("AC6_FE_Sounds")
local _Tune = require(car["A-Chassis Tune"])
local on = 0
local mult=0
local det=.13
local trm=.4
local trmmult=0
local trmon=0
local throt=0
local redline=0
local shift=0

script:WaitForChild("Rev")

script.Parent.Values.Gear.Changed:connect(function()
	mult=1
	if script.Parent.Values.RPM.Value>5000 then
		shift=.2
	end
end)

for i,v in pairs(car.DriveSeat:GetChildren()) do
	for _,a in pairs(script:GetChildren()) do
		if v.Name==a.Name then v:Stop() wait() v:Destroy() end
	end
end

handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,0,true)
handler:FireServer("playSound","Rev")
car.DriveSeat:WaitForChild("Rev")

while wait() do
	mult=math.max(0,mult-.1)
	local _RPM = script.Parent.Values.RPM.Value
	
	if script.Parent.Values.Throttle.Value <= _Tune.IdleThrottle/100 then
		throt = math.max(.3,throt-.2)
		trmmult = math.max(0,trmmult-.05)
		trmon = 1		
	else
		throt = math.min(1,throt+.1)
		trmmult = 1
		trmon = 0		
	end	
	shift = math.min(1,shift+.2)	
	if script.Parent.Values.RPM.Value > _Tune.Redline-_Tune.RevBounce/4 and script.Parent.Values.Throttle.Value > _Tune.IdleThrottle/100 then
		redline=.5
	else
		redline=1
	end
	if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
	local Volume = (on*(15*throt*shift*redline)+(trm*trmon*trmmult*(1-throt)*math.sin(tick()*50)))
	local Pitch = math.max((((script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline))*on^2)+(det*mult*math.sin(80*tick())),script.Rev.SetPitch.Value)
	if FE then
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,Pitch,Volume)
	else
		car.DriveSeat.Rev.Volume = Volume
		car.DriveSeat.Rev.Pitch = Pitch
	end
end
--//Tool Function\\--
tool.Equipped:Connect(function()
	contextActionService:BindAction("ActivateSpecial", activate, true, Enum.KeyCode.E)
	contextActionService:SetImage("ActivateSpecial", tool.TextureId)
	contextActionService:SetPosition("ActivateSpecial", UDim2.new(0.72, -25, 0.20, -25))
	mouse.Icon = cursorId
end)

tool.Unequipped:Connect(function()
	contextActionService:UnbindAction("ActivateSpecial")
	mouse.Icon = ""
end)

tool.Activated:Connect(function()
	if not enabled then return end
	
	enabled = false
	fire:FireServer(mouse.Hit)
	wait(fireRate.Value)
	enabled = true
end)

hit.OnClientEvent:Connect(function()
	mouse.Icon = hitId
	handle.Hitmark:Play()
	wait(0.075)
	mouse.Icon = cursorId
end)

activateSpecial.OnClientEvent:Connect(function()
	
	for i = specialRechargeTime.Value, 0, -1 do
		wait(1)
		specialDB = false
		
	end
	
	specialDB = true
end)