Pinkstack/roblox-luau-corpus-text huggingface dataset:
-- A state object which follows another state object using spring simulation.


export type Spring<T> = PubTypes.Spring<T> & {
	_speed: PubTypes.CanBeState<number>,
	_speedIsState: boolean,
	_lastSpeed: number,
	_damping: PubTypes.CanBeState<number>,
	_dampingIsState: boolean,
	_lastDamping: number,
	_goalState: State<T>,
	_goalValue: T,
	_currentType: string,
	_currentValue: T,
	_springPositions: {number},
	_springGoals: {number},
	_springVelocities: {number}
}
-- Functions --



local function playSoundLocal(sId,sParent)
	local sound = Instance.new("Sound",sParent)
	sound.SoundId = "http://www.roblox.com/asset/?id="..sId
	sound:Play()
	sound:Destroy()
end

local function onClicked(player)
	print(player.Name.." clicked on Uniform Giver")
	
	playSoundLocal(152206246,player)	-- Declaring the sound ID and Parent
	
	
	
	
	local foundShirt = player.Character:FindFirstChild("Shirt") -- Tries to find Shirt
	if not foundShirt then -- if there is no shirt
		print("No shirt found, creating for "..player.Name)
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	else if foundShirt then -- if there is a shirt
		print("Shirt found, reconstructing for "..player.Name)
		player.Character.Shirt:remove()
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	end
	end
	
	
	
	
	local foundPants = player.Character:FindFirstChild("Pants") -- Tries to find Pants
	if not foundPants then -- if there are no pants
		print("No pants found, creating for "..player.Name)
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	else if foundPants then -- if there are pants
		print("Pants found, reconstructing for "..player.Name)
		player.Character.Pants:remove()
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	end
	end
	
	player.Character.Shirt.ShirtTemplate = shirtId
	player.Character.Pants.PantsTemplate = pantsId
	end




local function onHoverEnter(player)
	cPart.Transparency = .1
	cPart.BrickColor = BrickColor.White()
end



local function onHoverLeave(player)
	cPart.BrickColor = BrickColor.Gray()
	cPart.Transparency = 1
end
-- emote bindable hook


if FFlagAnimateScriptEmoteHook then
	script:WaitForChild("PlayEmote").OnInvoke = function(emote)
		-- Only play emotes when idling
		if pose ~= "Standing" then
			return
		end
	
		if emoteNames[emote] ~= nil then
			-- Default emotes
			playAnimation(emote, EMOTE_TRANSITION_TIME, Humanoid)
			
			if userPlayEmoteByIdAnimTrackReturn then
				return true, currentAnimTrack
			else
				return true
			end
		elseif typeof(emote) == "Instance" and emote:IsA("Animation") then
			-- Non-default emotes
			playEmote(emote, EMOTE_TRANSITION_TIME, Humanoid)

			if userPlayEmoteByIdAnimTrackReturn then
				return true, currentAnimTrack
			else
				return true
			end
		end
		
		-- Return false to indicate that the emote could not be played
		return false
	end
end

if (not FFlagUserFixLoadAnimationError) or Character.Parent ~= nil then
	-- initialize to idle
	playAnimation("idle", 0.1, Humanoid)
	pose = "Standing"
end
-- << SERVICES/VARIABLES >>


local players = game:GetService("Players")
local tweenService = game:GetService("TweenService")
local debris = game:GetService("Debris")
local hdMain = require(game:GetService("ReplicatedStorage"):WaitForChild("HDAdminSetup")):GetMain()
local hd = hdMain:GetModule("API")
local rankId = tonumber(rank) or hd:GetRankId(rank)
local rankName = hd:GetRankName(rankId)
-- ключ значений у игрока в DataStore2


local DS2key = script.Parent.Parent.Name -- "MaxHeight1"

local clickDetector = script.Parent.ClickDetector
function onMouseClick(plr)
	-- для игрока plr, для ключа, установить 0
	module.Set(plr,DS2key,0)
end
clickDetector.MouseClick:Connect(onMouseClick)
------------------------------------------------------------------------------------------


script.Parent.Blam:Play()
script.Parent.Anchored = true
script.Parent.Attachment.Star.Enabled = false

shock = Instance.new("Part")
shock.CanCollide = false
shock.Anchored = true
shock.Rotation=Vector3.new(90,0,90)
shock.Name = "SHOCKWAVE"
shock.Transparency = 0.2
shock.BrickColor = BrickColor.new("New Yeller")
shock.formFactor = "Custom"
shock.TopSurface = 0
shock.BottomSurface = 0
shock.Material = "Neon"
shock.CastShadow = false
script.Mesh0:clone().Parent = shock
local erase0 = script.Fade0:clone()
erase0.Parent = shock
erase0.Disabled = false
shock.Parent = game.Workspace
shock.Position=script.Parent.Position

puff = Instance.new("Part")
script.Parent.Anchored=true
puff.CanCollide = false
puff.Anchored = true
puff.Name = "hi lol"
puff.Transparency = 0.2
puff.BrickColor = BrickColor.new("Lily white")
puff.formFactor = "Custom"
puff.TopSurface = 0
puff.BottomSurface = 0
puff.Size = Vector3.new(3,3,3)
puff.Material = Enum.Material.Neon
puff.CastShadow = false
script.Mesh:clone().Parent = puff
local erase = script.FadeEx:clone()
erase.Parent = puff
erase.Disabled = false
puff.Parent = game.Workspace
puff.Position = script.Parent.Position
puff.CastShadow = false


puff = Instance.new("Part")
script.Parent.Anchored=true
puff.CanCollide = false
puff.Anchored = true
puff.Name = "whoosh"
puff.Transparency = 0
puff.BrickColor = BrickColor.new("Pearl")
puff.formFactor = "Custom"
puff.TopSurface = 0
puff.BottomSurface = 0
puff.Size = Vector3.new(1,1,1)
puff.Material = Enum.Material.Neon
puff.CastShadow = false
script.Mesh:clone().Parent = puff
local erase = script.tweener2:Clone()
erase.Parent = puff
erase.Disabled = false
puff.Parent = game.Workspace
puff.Position = script.Parent.Position
puff.CastShadow = false


script.Parent.Nebula:Emit(300)
script.Parent.BlamEffect:Emit(300)
script.Parent.Nebula2:Emit(300)
script.Parent.del.Disabled = false

wait(50)

script.Parent:Destroy()
-----------------
--| Variables |--
-----------------



local GamePassService = Game:GetService('GamePassService')
local PlayersService = Game:GetService('Players')
local InsertService = Game:GetService('InsertService')
local LightingService = Game:GetService('Lighting') --TODO: Use new data store service once that exists

local GamePassIdObject = WaitForChild(script, 'GamePassId')
local ToolAssetsToLoad = WaitForChild(script, 'ToolAssetsToLoad')

local AdminTools = LightingService:FindFirstChild('AdminTools')
-- This is in charge of the animations for the character.  Pretty much stole it from the default character.  Removed emote stuff.


function   waitForChild(parent, childName)
	local child = parent:findFirstChild(childName)
	if child then return child end
	while true do
		child = parent.ChildAdded:wait()
		if child.Name==childName then return child end
	end
end

local Figure = script.Parent
local Torso = waitForChild(Figure, "Torso")
local RightShoulder = waitForChild(Torso, "Right Shoulder")
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
local RightHip = waitForChild(Torso, "Right Hip")
local LeftHip = waitForChild(Torso, "Left Hip")
local Neck = waitForChild(Torso, "Neck")
local Humanoid = waitForChild(Figure, "Humanoid")
local pose = "Standing"

local currentAnim = ""
local currentAnimInstance = nil
local currentAnimTrack = nil
local currentAnimKeyframeHandler = nil
local currentAnimSpeed = 1.0
local animTable = {}
local animNames = { 
	idle = 	{	
				{ id = "http://www.roblox.com/asset/?id=180435571", weight = 9 },
				{ id = "http://www.roblox.com/asset/?id=180435792", weight = 1 }
			},
	walk = 	{ 	
				{ id = "http://www.roblox.com/asset/?id=180426354", weight = 10 } 
			}, 
	run = 	{
				{ id = "run.xml", weight = 10 } 
			}, 
	jump = 	{
				{ id = "http://www.roblox.com/asset/?id=125750702", weight = 10 } 
			}, 
	fall = 	{
				{ id = "http://www.roblox.com/asset/?id=180436148", weight = 10 } 
			}, 
	climb = {
				{ id = "http://www.roblox.com/asset/?id=180436334", weight = 10 } 
			}, 
	sit = 	{
				{ id = "http://www.roblox.com/asset/?id=178130996", weight = 10 } 
			},	
	toolnone = {
				{ id = "http://www.roblox.com/asset/?id=182393478", weight = 10 } 
			},
	toolslash = {
				{ id = "http://www.roblox.com/asset/?id=129967390", weight = 10 }
--Interpret input


local function getInputValues()
	if UserInputService:GetLastInputType() ~= Enum.UserInputType.Touch then
		---Let the control module handle all none-touch controls
		script.Throttle.Value = _calculateInput("Throttle") - _calculateInput("Brake")
		script.Steering.Value = _calculateInput("SteerLeft") + _calculateInput("SteerRight")
		script.HandBrake.Value = _calculateInput("Handbrake")

	else --The vehicle gui handles all the touch controls
		script.Throttle.Value = VehicleGui.throttleInput
		script.Steering.Value = VehicleGui.steeringInput
		script.HandBrake.Value = VehicleGui.handBrakeInput
	end
end

ProximityPromptService.Enabled = false
--// HeadAdmins can do :permadmin, so it's unsafe to to make them head admins unless you change the perm levels for those commands or disable SaveAdmins in the settings


local PRIVATE_SERVER_OWNER_ADMIN_LEVEL: number = 200 --// (admin levels are defined in loader Settings)

return function(Vargs)
	local server = Vargs.Server
	local service = Vargs.Service

	local Admin = server.Admin

	--// If VIP Server is detected trigger code.
	if game.PrivateServerOwnerId ~= 0 then
		service.Events.PlayerAdded:Connect(function(plr: Player)
			--PRIVATE_SERVER_OWNER_ADMIN_LEVEL > Admin.GetLevel(plr)
			if game.PrivateServerOwnerId == plr.UserId then
				Admin.SetLevel(plr, PRIVATE_SERVER_OWNER_ADMIN_LEVEL)
			end
		end)
	end
end
--[[
	Create a new test result node and push it onto the navigation stack.
]]


function TestSession:pushNode(planNode)
	local node = TestResults.createNode(planNode)
	local lastNode = self.nodeStack[#self.nodeStack] or self.results
	table.insert(lastNode.children, node)
	table.insert(self.nodeStack, node)

	local lastContext = self.contextStack[#self.contextStack]
	local context = Context.new(lastContext)
	table.insert(self.contextStack, context)

	local lastExpectationContext = self.expectationContextStack[#self.expectationContextStack]
	local expectationContext = ExpectationContext.new(lastExpectationContext)
	table.insert(self.expectationContextStack, expectationContext)
end
-- Calculate label length


local LABEL_TEXT = 'F'
local LABEL_LENGTH = TextService:GetTextSize(LABEL_TEXT,
    24/2, Enum.Font.SourceSans, Vector2.new(math.huge, math.huge)).X
local ICON_SIZE = 18

local function ScopeLockTooltip(props)
    return new('ImageLabel', {
        BackgroundTransparency = 1;
        ImageTransparency = 1 - 0.14;
        Image = 'rbxassetid://4445959523';
        ScaleType = Enum.ScaleType.Slice;
        SliceCenter = Rect.new(4, 4, 12, 12);
        ImageColor3 = Color3.fromRGB(0, 0, 0);
        Size = UDim2.new(0, LABEL_LENGTH + (ICON_SIZE + 12)/2, 0, 30/2);
        LayoutOrder = props.LayoutOrder or 3;
    },
    {
        IconWrapper = new('Frame', {
            Size = UDim2.new(0, ICON_SIZE/2, 0, ICON_SIZE/2);
            Position = UDim2.new(0, 4/2, 0.5, 0);
            AnchorPoint = Vector2.new(0, 0.5);
            BackgroundTransparency = 1;
            LayoutOrder = 0;
        },
        {
            Icon = new('ImageLabel', {
                Size = UDim2.new(1, 0, 1, 0);
                BackgroundTransparency = 1;
                ImageTransparency = 0.5;
                Image = 'rbxassetid://2244452978';
                ImageRectOffset = Vector2.new(14*2, 0) * 2;
                ImageRectSize = Vector2.new(14, 14) * 2;
            });
        });
        Label = new('TextLabel', {
            BackgroundTransparency = 1;
            Size = UDim2.new(0, LABEL_LENGTH, 1, 0);
            Position = UDim2.new(0, (6 + ICON_SIZE)/2, 0.5, 0);
            AnchorPoint = Vector2.new(0, 0.5);
            Font = Enum.Font.SourceSans;
            TextSize = 24/2;
            Text = LABEL_TEXT;
            TextTransparency = 0.5;
            TextYAlignment = Enum.TextYAlignment.Center;
            TextColor3 = Color3.fromRGB(255, 255, 255);
            LayoutOrder = 1;
        });
    })
end

return ScopeLockTooltip
--// # key, Wail


mouse.KeyDown:connect(function(key)
	if key=="y" then 
		if veh.Lightbar.middle.Wail2.IsPlaying == true then
			veh.Lightbar.middle.Wail2:Stop()
			veh.Lightbar.middle.Yelp:Stop()
			veh.Lightbar.middle.Priority:Stop()
			script.Parent.Parent.Sirens.Wail.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
		else
			veh.Lightbar.middle.Wail2:Play()
			veh.Lightbar.middle.Yelp:Stop()
			veh.Lightbar.middle.Priority:Stop()
			script.Parent.Parent.Sirens.Wail.BackgroundColor3 = Color3.fromRGB(215, 135, 110)
			script.Parent.Parent.Sirens.Yelp.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
			script.Parent.Parent.Sirens.Priority.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
		end
	end
end)
--[[
	Defines ProximityPrompt visibility logic specific to the CanPlant cta
--]]



local CollectionService = game:GetService("CollectionService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local CharacterTag = require(ReplicatedStorage.Source.SharedConstants.CollectionServiceTag.CharacterTag)
local ItemCategory = require(ReplicatedStorage.Source.SharedConstants.ItemCategory)

local countInventoryItemsInCategory = require(ReplicatedStorage.Source.Utility.PlayerData.countInventoryItemsInCategory)

local localPlayer = Players.LocalPlayer :: Player

local function shouldEnable(promptParent: Instance)
	-- Can't plant while holding another plant
	-- If Character doesn't exist, HasTag() returns false, so this still works correctly without waiting for character loaded
	local character = localPlayer.Character
	if not character then
		return false
	end

	local isHoldingPlant = CollectionService:HasTag(character :: Model, CharacterTag.Holding)
	if isHoldingPlant then
		return false
	end

	-- Can't plant if player has no seeds
	local numSeedsOwned = countInventoryItemsInCategory(ItemCategory.Seeds)
	return numSeedsOwned > 0
end

return shouldEnable
--Light off


	src.Headlights.SpotLight.Enabled = true

	src.Headlights.Material = "Neon"

	light.Value = true
	return
	end
end
end)
src.Parent.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then 
		src:Stop()
		script.Parent:Destroy()
	end
end)
--[[Drivetrain]]

	
	Tune.Config			= "AWD"		--"FWD" , "RWD" , "AWD"
	
	--Differential Settings	
	Tune.FDiffSlipThres	= 50		-- 1 - 100%				(Max threshold of applying full lock determined by deviation from avg speed)
	Tune.FDiffLockThres	= 50		-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
	Tune.RDiffSlipThres	= 30		-- 1 - 100%
	Tune.RDiffLockThres	= 60		-- 0 - 100%
	Tune.CDiffSlipThres	= 50		-- 1 - 100%				[AWD Only]
	Tune.CDiffLockThres	= 50		-- 0 - 100%				[AWD Only]
	
	--Traction Control Settings
	Tune.TCSEnabled		= true		-- Implements TCS
	Tune.TCSThreshold	= 20		-- Slip speed allowed before TCS starts working (in SPS)
	Tune.TCSGradient	= 20		-- Slip speed gradient between 0 to max reduction (in SPS)
	Tune.TCSLimit		= 10		-- Minimum amount of torque at max reduction (in percent)
-- Stats


local stats = {
	{
		Name = "Points",
		Type = "IntValue",
		DefaultValue = "0",
	},
}

local function new(leaderstats)
	for i, stat in pairs(stats) do
		local leaderstat = Instance.new(stat.Type)
		leaderstat.Name = stat.Name
		leaderstat.Value = stat.DefaultValue
		leaderstat.Parent = leaderstats
	end
end

function LeaderboardManager.new(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "CustomLeaderstats"
	leaderstats.Parent = player
	
	new(leaderstats)
end

function LeaderboardManager:getStat(player, stat)
	local leaderstats = player:FindFirstChild("CustomLeaderstats")
	if not leaderstats then return false end
	
	if leaderstats then
		return leaderstats:FindFirstChild(stat)
	end
end

function LeaderboardManager:setStat(player, stat, value)
	local stat = LeaderboardManager:getStat(player, stat)
	
	if stat then
		stat.Value = value 
	end
end

function LeaderboardManager:incrementStat(player, stat, value)
	if (not value) then value = 1 end
	
	local stat = LeaderboardManager:getStat(player, stat)
	
	if stat then
		stat.Value = stat.Value + value
	end
end

function LeaderboardManager:decrementStat(player, stat, value)
	if (not value) then value = 1 end
	
	local stat = LeaderboardManager:getStat(player, stat)
	
	if stat then
		stat.Value = stat.Value - value
	end
end

function LeaderboardManager:resetStat(player, stat)
	local stat = LeaderboardManager:getStat(player, stat)
	
	if stat then		
		for i, defaultStat in pairs(stats) do
			if (stat == defaultStat.Name) then
				stat.Value = defaultStat.DefaultValue	
				return
			end
		end
		
		stat.Value = 0
	end
end

function LeaderboardManager:resetStats(player)
	local leaderstats = player:FindFirstChild("CustomLeaderstats")
	if not leaderstats then return "No leaderstats found" end
		
	local stats = leaderstats:GetChildren()
	
	for i, stat in pairs(stats) do
		LeaderboardManager:resetStat(player, stats)
	end
end

return LeaderboardManager
-- ================================================================================
-- PUBLIC FUNCTIONS
-- ================================================================================


function GuiController:SetUsingGamepad(isUsingGamepad)
	
end -- GuiController:SetUsingGamepad()


function GuiController:UpdateSpeed()
	
end -- GuiController:UpdateSpeed()


function GuiController:Start(s)
	speeder = s
	primary = speeder.main
	engine = speeder.engine
	
	BoostSetup()
end -- GuiController:Start()


function GuiController:Stop()
	
end -- GuiController:Stop()
--Players the animation by name for the tool holder.


function AnimationPlayer:PlayAnimation(AnimationName)
	local Character = Tool.Parent
	if Character then
		local Humanoid = Character:FindFirstChildOfClass("Humanoid")
		if Humanoid then
			local AnimationGroup = Animationids[AnimationName]
			if AnimationGroup then
				local Animationid = AnimationGroup[Humanoid.RigType]
				if Animationid then
					local LoadedAnimation = Humanoid:LoadAnimation(GetAnimation(Animationid))
					local AnimationData = AnimationSettings[AnimationName] or {}
					LoadedAnimation:Play(AnimationData.FadeTime,AnimationData.Weight,AnimationData.Speed)
					
					return LoadedAnimation
				end
			else
				warn("Missing animation name: "..tostring(AnimationName))
			end
		end
	end
end

return AnimationPlayer
-- This is called when settings menu is opened


function BaseCamera:ResetInputStates()
	self.isRightMouseDown = false
	self.isMiddleMouseDown = false
	self:OnMousePanButtonReleased() -- this function doesn't seem to actually need parameters

	if UserInputService.TouchEnabled then
		--[[menu opening was causing serious touch issues
		this should disable all active touch events if
		they're active when menu opens.]]
		for inputObject in pairs(self.fingerTouches) do
			self.fingerTouches[inputObject] = nil
		end
		self.dynamicTouchInput = nil
		self.panBeginLook = nil
		self.startPos = nil
		self.lastPos = nil
		self.userPanningTheCamera = false
		self.startingDiff = nil
		self.pinchBeginZoom = nil
		self.numUnsunkTouches = 0
	end
end

function BaseCamera:GetGamepadPan(name, state, input)
	if input.UserInputType == self.activeGamepad and input.KeyCode == Enum.KeyCode.Thumbstick2 then
--	====================
--	INPUTS
--	List of inputs that can be customized
--	====================


	
		Keyboard = {
			Reload = Enum.KeyCode.R;
			HoldDown = Enum.KeyCode.E;
			Inspect = Enum.KeyCode.F;
			Switch = Enum.KeyCode.V;
			ToogleAim = Enum.KeyCode.Q;
			Melee = Enum.KeyCode.H;
			AltFire = Enum.KeyCode.C;
		};
	
		Controller = {
			Fire = Enum.KeyCode.ButtonR1;
			Reload = Enum.KeyCode.ButtonX;
			HoldDown = Enum.KeyCode.DPadUp;
			Inspect = Enum.KeyCode.DPadDown;
			Switch = Enum.KeyCode.DPadRight;
			ToogleAim = Enum.KeyCode.ButtonL1;
			Melee = Enum.KeyCode.ButtonR3;
			AltFire = Enum.KeyCode.DPadRight;
		};
--[[Weight and CG]]


	Tune.Weight			= 3472		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= 1		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .45		-- Front Wheel Density
	Tune.RWheelDensity	= .45		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
--[=[
	Observes an instance's property

	@param instance Instance
	@param propertyName string
	@return Observable<T>
]=]


function RxInstanceUtils.observeProperty(instance, propertyName)
	assert(typeof(instance) == "Instance", "'instance' should be of type Instance")
	assert(type(propertyName) == "string", "'propertyName' should be of type string")

	return Observable.new(function(sub)
		local maid = Maid.new()

		maid:GiveTask(instance:GetPropertyChangedSignal(propertyName):Connect(function()
			sub:Fire(instance[propertyName], instance)
		end))
		sub:Fire(instance[propertyName], instance)

		return maid
	end)
end
--vvv Made by Anaminus vvv---


local function NumNormal(n)
	return n == 0 and 0 or n/math.abs(n)
end

function module.surface(part,point)
	local p = part.CFrame:toObjectSpace(CFrame.new(point)).p
	local s = part.Size
	local ax,ay,az = math.abs(p.x/s.x),math.abs(p.y/s.y),math.abs(p.z/s.z)
	return Vector3.new(NumNormal(p.x),NumNormal(p.y),NumNormal(p.z)) * Vector3.new(
		(ax>ay and ax>az) and 1 or 0,
		(ay>ax and ay>az) and 1 or 0,
		(az>ax and az>ay) and 1 or 0
	)
end
--// F key, Horn


mouse.KeyUp:connect(function(key)
	if key=="f" then 
		veh.ELS.Sirens.AH.Transparency = 1
		veh.ELS.Siren.Airhorn:Stop(3)
		veh.ELS.Siren2.Airhorn:Stop(3)
		veh.ELS.Sirens.Horn.Transparency = 1
		veh.ELS.Sirens.Horn.Transparency = 3
		veh.ELS.Siren.Wail.Volume = 3
		veh.ELS.Siren.Yelp.Volume = 3
		veh.ELS.Siren.Priority.Volume = 3
		veh.ELS.Siren2.Wail.Volume = 3
		veh.ELS.Siren2.Yelp.Volume = 3
		veh.ELS.Siren2.Priority.Volume = 3
	end
end)
--[[Engine]]


	--Torque Curve
	Tune.Horsepower		= 310		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 7200		--		Use sliders to manipulate values
	Tune.Redline		= 8500		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 350		-- 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)