Pinkstack/roblox-luau-corpus-text huggingface dataset:
--[[
	
	CameraShakePresets.Bump
	CameraShakePresets.Explosion
	CameraShakePresets.Earthquake
	CameraShakePresets.BadTrip
	CameraShakePresets.HandheldCamera
	CameraShakePresets.Vibration
	CameraShakePresets.RoughDriving
	
--]]





local CameraShakeInstance = require(script.Parent.CameraShakeInstance)

local CameraShakePresets = {
	
	
	-- A high-magnitude, short, yet smooth shake.
	-- Should happen once.
	Bump = function()
		local c = CameraShakeInstance.new(2.5, 4, 0.1, 0.35)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;
	
	HandheldCamera = function()
		local c = CameraShakeInstance.new(.1, .1, .1, 0.25)
		c.PositionInfluence = Vector3.new(0,0,0)
		c.RotationInfluence = Vector3.new(0.5, 0.5, 0.5)
		return c
	end;
	
	-- An intense and rough shake.
	-- Should happen once.
	Explosion = function()
		local c = CameraShakeInstance.new(5, 10, 0, 1.5)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(4, 1, 1)
		return c
	end;
	
	
	-- A continuous, rough shake
	-- Sustained.
	Earthquake = function()
		local c = CameraShakeInstance.new(0.6, 3.5, 2, 10)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(1, 1, 4)
		return c
	end;
	
	
	-- A bizarre shake with a very high magnitude and low roughness.
	-- Sustained.
	BadTrip = function()
		local c = CameraShakeInstance.new(10, 0.15, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0.15)
		c.RotationInfluence = Vector3.new(2, 1, 4)
		return c
	end;
	
	
	-- A subtle, slow shake.
	-- Sustained.
	
	
	-- A very rough, yet low magnitude shake.
	-- Sustained.
	Vibration = function()
		local c = CameraShakeInstance.new(0.4, 20, 2, 2)
		c.PositionInfluence = Vector3.new(0, 0.15, 0)
		c.RotationInfluence = Vector3.new(1.25, 0, 4)
		return c
	end;
	
	
	-- A slightly rough, medium magnitude shake.
	-- Sustained.
	RoughDriving = function()
		local c = CameraShakeInstance.new(1, 2, 1, 1)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;
	
	
}


return setmetatable({}, {
	__index = function(t, i)
		local f = CameraShakePresets[i]
		if (type(f) == "function") then
			return f()
		end
		error("No preset found with index \"" .. i .. "\"")
	end;
})
--[[

	symbol = Symbol.new(id: string [, scope: Symbol])

	Symbol.Is(obj: any): boolean
	Symbol.IsInScope(obj: any, scope: Symbol): boolean

--]]




local CLASSNAME = "Symbol"

local Symbol = {}
Symbol.__index = Symbol


function Symbol.new(id, scope)
	assert(id ~= nil, "Symbol ID cannot be nil")
	if (scope ~= nil) then
		assert(Symbol.Is(scope), "Scope must be a Symbol or nil")
	end
	local self = setmetatable({
		ClassName = CLASSNAME;
		_id = id;
		_scope = scope;
	}, Symbol)
	return self
end


function Symbol.Is(obj)
	return (type(obj) == "table" and getmetatable(obj) == Symbol)
end


function Symbol.IsInScope(obj, scope)
	return (Symbol.Is(obj) and obj._scope == scope)
end


function Symbol:__tostring()
	return ("Symbol<%s>"):format(self._id)
end


return Symbol
--[=[
	Flat map equivalent for brios. The resulting observables will
	be disconnected at the end of the brio.

	@deprecated 3.6.0 -- This method does not wrap the resulting value in a Brio, which can sometimes lead to leaks.
	@param project (value: TBrio) -> TProject
	@param resultSelector ((initial TBrio, value: TProject) -> TResult)?
	@return (source: Observable<Brio<TBrio>> -> Observable<TResult>)
]=]


function RxBrioUtils.flatMap(project, resultSelector)
	assert(type(project) == "function", "Bad project")

	warn("[RxBrioUtils.flatMap] - Deprecated since 3.6.0. Use RxBrioUtils.flatMapBrio")

	return Rx.flatMap(RxBrioUtils.mapBrio(project), resultSelector)
end
-- Called when the client receives a new look-angle
-- value from the server. This is also called continuously
-- on the client to update the player's view with no latency.



function CharacterRealism:OnLookReceive(player, pitch, yaw)
	local character = player.Character
	local rotator = self.Rotators[character]
	
	if rotator then
		rotator.Pitch.Goal = pitch
		rotator.Yaw.Goal = yaw
	end
end
-- Function to save player's data


local function savePlayerData(playerUserId)
	if sessionData[playerUserId] then
		local success,data = pcall(function()
			--NOTE!!! adding this print adds save if remove then save is lost
			print("Money --> before SetAsync ",sessionData[playerUserId]["Money"])
			playerData:SetAsync(playerUserId, sessionData[playerUserId])
			print("Money --> After SetAsync ",sessionData[playerUserId]["Money"])
			wait()
		end)
		if not success then
			warn("Cannot save data for player!-------------------------------------->")
			warn("----------------------savePlayerData----------------------------------------------")
			warn("What is the reason ",data)
		end
	end
end

function PlayerStatManager:getPlayerData(player)
	local playerUserId = "Player_" .. player.UserId
	local succes,data = pcall(function() 
		print("Got player data---------------------->")
		return sessionData[playerUserId]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getPlayerData----------->")
		print(data)
		return nil
	else
		return data	
	end
	
end 

function PlayerStatManager:getStat(player,statName)
	local succes,data = pcall(function() 
		local playerUserId = "Player_" .. player.UserId
		return sessionData[playerUserId][statName]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getStat----------->")
		print(data)
		return nil
	else
		return data	
	end
end 

function PlayerStatManager:saveStat(player,statName,value)
	local succes,err = pcall(function() 
		local playerUserId = "Player_" .. player.UserId
		sessionData[playerUserId][statName] = value
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:saveStat----------->")
		print(err)
	end
end 

function PlayerStatManager:getStatInTycoonPurchases(player,statName)
	local succes,data = pcall(function() 
		local playerUserId = "Player_" .. player.UserId
		return sessionData[playerUserId]["TycoonPurchases"][statName]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getTycoonPurchases----------->")
		print(data)
		return nil
	else
		return data	
	end
end 

function PlayerStatManager:setPlayerSessionDataToNil(player)
	if player ~= nil then
		local playerUserId = "Player_" .. player.UserId
		if sessionData[playerUserId] then
			sessionData[playerUserId] = nil
		end
	end
end
-- removes a BezierPoint from the Bezier


function Bezier:RemoveBezierPoint(index: number)
	
	-- check if the point exists
	if self.Points[index] then
		
		-- remove point and remove connections
		local point = table.remove(self.Points, index)
		if typeof(point.Point) == "Instance" and point.Point:IsA("BasePart") then
			for i, connection in pairs(self._connections[point.Point]) do
				if connection.Connected then
					connection:Disconnect()
				end
			end
			self._connections[point.Point] = nil
		end
		
		-- update bezier
		self:UpdateLength()
	end
end
-- Variables


local footstepModule = require(replicatedStorage:WaitForChild("FootstepModule"))
local RunService = game:GetService("RunService")
	
local player = players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local rootPart = character:WaitForChild("HumanoidRootPart")
--F.updateSound = function(Sound, Pitch, Volume)
--	if Sound then
--		if Pitch then
--			Sound.Pitch = Pitch
--		end
--		if Volume then
--			Sound.Volume = Volume
--		end
--	end
--end



F.updateWindows = function(Window, Toggle)
	if script.Parent.Parent.Windows:findFirstChild(Window) then
		script.Parent.Parent.Windows:findFirstChild(Window).Value = Toggle
	end	
end

F.volumedown = function(VolDown)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume - 1
end

F.volumeup = function(VolUp)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + 1
end

F.fm = function(ok)
	carSeat.Parent.Body.MP.Sound:Stop()
	carSeat.Stations.mood.Value = ok
end

F.updateSong = function(id)
	carSeat.Stations.mood.Value = 5
	carSeat.Parent.Body.MP.Sound:Stop()
	wait()
	carSeat.Parent.Body.MP.Sound.SoundId = "rbxassetid://"..id
	wait()
	carSeat.Parent.Body.MP.Sound:Play()
end

F.pauseSong = function()
	carSeat.Stations.mood.Value = 5
	carSeat.Parent.Body.MP.Sound:Stop()
end

F.updateVolume = function(Vol)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + Vol/5
end

F.updateValue = function(Val, Value)
	if Val then
		Val.Value = Value
	end
end

F.FEInfo = function()
	carSeat.Parent.Body.Dash.Screen.G.Enabled = true
	wait(.1)
	carSeat.Parent.Body.Dash.Screen.G.FE.Visible = true
end

F.delete = function(plr)
	workspace[plr]:FindFirstChildOfClass("Humanoid").Jump = true
	wait(1)
	carSeat.Parent:Destroy()
end

F.PM = function(m,p)
	carSeat.Mode.Value = m
	carSeat.PMult.Value = p
end

F.reverse = function(yes)
	carSeat.Parent.Misc.TK.RV.Material = yes and "Neon" or "SmoothPlastic"
end

F.Dyn = function(h)
	carSeat.Parent.Wheels.FL.Spring.FreeLength = h
	carSeat.Parent.Wheels.FR.Spring.FreeLength = h
	carSeat.Parent.Wheels.RL.Spring.FreeLength = h
	carSeat.Parent.Wheels.RR.Spring.FreeLength = h
end

script.Parent.OnServerEvent:connect(function(Player, Func, ...)
	if F[Func] then
		F[Func](...)
	end
end)
--///////////////////////// Constructors
--//////////////////////////////////////



function module.new(vChatService, name)
	local obj = setmetatable({}, methods)

	obj.ChatService = vChatService

	obj.PlayerObj = nil

	obj.Name = name
	obj.ExtraData = {}

	obj.Channels = {}
	obj.MutedSpeakers = {}
	obj.EventFolder = nil

	return obj
end

return module
--// # key, ManOn


mouse.KeyDown:connect(function(key)
	if key=="h" then 
		veh.Lightbar.middle.Man:Play()
		veh.Lightbar.middle.Wail.Volume = 0
		veh.Lightbar.middle.Yelp.Volume = 0
		veh.Lightbar.middle.Priority.Volume = 0
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(215, 135, 110)
		veh.Lightbar.MANUAL.Transparency = 0
	end
end)
---------------------------
--[[
	--Main anchor point is the DriveSeat <car.DriveSeat>	
	
	Usage:
		MakeWeld(Part1,Part2,WeldType*,MotorVelocity**) *default is "Weld"  **Applies to Motor welds only
		ModelWeld(Model,MainPart)
	Example:
		MakeWeld(car.DriveSeat,misc.PassengerSeat)
		MakeWeld(car.DriveSeat,misc.SteeringWheel,"Motor",.2)
		ModelWeld(car.DriveSeat,misc.Door)
]]
--Weld stuff here



car.DriveSeat.ChildAdded:connect(function(child)
	if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
		child.C0=CFrame.new(-1,-.6,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0)
	end
end)
--Runtime Loop


while wait() do
	for i,v in pairs(Wheels) do
		--Vars
		local speed = car.DriveSeat.Velocity.Magnitude
		local wheel = v.wheel.RotVelocity.Magnitude
		local z = 0		
		local deg = 0.000126
		
		--Tire Wear
		local cspeed = (speed/1.298)*(2.6/v.wheel.Size.Y) 
		local wdif = math.abs(wheel-cspeed)
		if _WHEELTUNE.TireWearOn then
			if speed < 4 then
				--Wear Regen
				v.Heat = math.min(v.Heat + _WHEELTUNE.RegenSpeed/10000,v.BaseHeat)
			else
				--Tire Wear
				if wdif > 1 then
					v.Heat = v.Heat - wdif*deg*v.WearSpeed/28
				elseif v.Heat >= v.BaseHeat then
					v.Heat = v.BaseHeat
				end
			end
		end
		
		--Apply Friction
		if v.wheel.Name == "FL" or v.wheel.Name == "FR" or v.wheel.Name == "F" then
			z = _WHEELTUNE.FMinFriction+v.Heat
			deg = ((deg - 0.0001188*cValues.Brake.Value)*(1-math.abs(cValues.SteerC.Value))) + 0.00000126*math.abs(cValues.SteerC.Value)
		else
			z = _WHEELTUNE.RMinFriction+v.Heat
		end
		
		--Tire Slip
		if math.ceil((wheel/0.774/speed)*100) < 8 then
			--Lock Slip
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.WheelLockRatio,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.max(v.Heat,0)
		elseif (_Tune.TCSEnabled and cValues.TCS.Value == false and math.ceil((wheel/0.774/speed)*100) > 80) then
			--TCS Off
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.TCSOffRatio,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.max(v.Heat,0)
		elseif math.ceil((wheel/0.774/speed)*100) > 130 then
			--Wheelspin
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.WheelspinRatio,v.elast,v.fWeight,v.eWeight)		
			v.Heat = math.max(v.Heat,0)
		else
			--No Slip
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.min(v.Heat,v.BaseHeat)
		end 
		
		--Update UI
		local vstress = math.abs(((((wdif+cspeed)/0.774)*0.774)-cspeed)/15)
		if vstress > 0.05 and vstress > v.stress then 
			v.stress = math.min(v.stress + 0.03,1)
		else
			v.stress = math.max(v.stress - 0.03,vstress)	
		end
		script.Parent:WaitForChild("Tires")
		local UI = script.Parent.Tires[v.wheel.Name]
		UI.First.Second.Image.ImageColor3 = Color3.new(math.min((v.stress*2),1), 1-v.stress, 0)
		UI.First.Position = UDim2.new(0,0,1-v.Heat/v.BaseHeat,0)
		UI.First.Second.Position = UDim2.new(0,0,v.Heat/v.BaseHeat,0)
	end
end
------//Sprinting Animations


self.RightSprint 	= CFrame.new(-1, 0.5, -1.25) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0));
self.LeftSprint 	= CFrame.new(1.25,1.15,-1.35) * CFrame.Angles(math.rad(-60),math.rad(35),math.rad(-25));

return self
--------RIGHT DOOR --------



game.Workspace.doorright.l13.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l22.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l31.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l43.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l52.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l73.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
--[[Super Util]]

--
function WaitForChild(parent,child)
	while not parent:FindFirstChild(child) do  wait(1/30) end
	return parent[child]
end

function MakeValue(class,name,value,parent)
	local temp = Instance.new(class)
	temp.Name = name
	temp.Value = value
	temp.Parent = parent
	return temp
end	

function TweenProperty(obj, propName, inita, enda, length)
	local startTime = tick()
	while startTime - tick()<length do
		obj[propName] = (startTime - tick())/length
		wait(1/30)
	end
	obj[propName] = enda	
end
--!nocheck



local Players = game.Players
local RunService = game["Run Service"]
local FootstepsSoundGroup = game.SoundService:WaitForChild("Footsteps")

local SOUND_DATA = {
	Climbing = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
	},
	Died = {
		SoundId = "rbxasset://sounds/uuhhh.mp3",
	},
	FreeFalling = {
		SoundId = "rbxasset://sounds/action_falling.mp3",
		Looped = true,
	},
	GettingUp = {
		SoundId = "rbxasset://sounds/action_get_up.mp3",
	},
	Jumping = {
		SoundId = "rbxasset://sounds/action_jump.mp3",
	},
	Landing = {
		SoundId = "rbxasset://sounds/action_jump_land.mp3",
	},
	Running = {
		SoundId = '' ,
		Looped = true,
		Playing = true,
		Pitch = 1,
	},
	Splash = {
		SoundId = "rbxasset://sounds/impact_water.mp3",
	},
	Swimming = {
		SoundId = "rbxasset://sounds/action_swim.mp3",
		Looped = true,
		Pitch = 1.6,
	},
}

 -- wait for the first of the passed signals to fire
local function waitForFirst(...: any): ...any
	local shunt = Instance.new("BindableEvent")
	local slots = {...}

	local function fire(...)
		for i = 1, #slots do
			slots[i]:Disconnect()
		end
		
		task.defer(function()
			shunt:Destroy()
		end)
		
		return shunt:Fire(...)
	end

	for i = 1, #slots do
		slots[i] = slots[i]:Connect(fire)
	end

	return shunt.Event:Wait()
end
-- Public Constructors



function SliderClass.new(sliderFrame, axis)
	local self = setmetatable({}, SliderClass)
	
	self._Maid = Lazy.Utilities.Maid.new()
	self._Spring = Lazy.Utilities.Spring.new(1, 0.1, 1, 0)
	self._Axis = axis or "x"
	self._ChangedBind = Instance.new("BindableEvent")
	self._ClickedBind = Instance.new("BindableEvent")
	
	self.Interval = 0
	self.IsActive = true
	self.TweenClick = true
	self.Inverted = false
	
	self.Frame = sliderFrame
	self.Changed = self._ChangedBind.Event
	self.Clicked = self._ClickedBind.Event
	self.DragStart = nil
	self.DragStop = nil
	
	init(self)
	self:Set(0.5)
	
	return self
end
--[[ Sc 2 ]]

--

while true do
	wait(0.1)
	local Ran1 = math.random(1,10)
	if Ran1 == 1 then
		Light.Color = Color3.fromRGB(255,0,0)
		wait(math.random(1,100)/100)
		Light.Color = Color3.fromRGB(0,255,0)
	end
end
--// Event Connections


placeEvent.OnServerEvent:connect(function(plr,newPos,what)

 local char =	plr.Character

	if not newRope then
			new = Instance.new('Part')
			new.Parent = workspace
			new.Anchored = true
			new.CanCollide = false
			new.Size = Vector3.new(0.2,0.2,0.2)
			new.BrickColor = BrickColor.new('Black')
			new.Material = Enum.Material.Metal
			new.Position = newPos + Vector3.new(0,new.Size.Y/2,0)
			
			local newW = Instance.new('WeldConstraint')
			newW.Parent = new
			newW.Part0 = new
			newW.Part1 = what
			new.Anchored = false
			
			newAtt0 = Instance.new('Attachment')
			newAtt0.Parent = char.Torso
			newAtt0.Position = Vector3.new(0,-.75,0)
			newAtt1 = Instance.new('Attachment')
			newAtt1.Parent = new
			
			newRope = Instance.new('RopeConstraint')
			newRope.Attachment0 = newAtt0
			newRope.Attachment1 = newAtt1
			newRope.Parent = char.Torso
			newRope.Length = 20
			newRope.Restitution = 0.3
			newRope.Visible = true
			newRope.Thickness = 0.1
			newRope.Color = BrickColor.new("Black")

		placeEvent:FireClient(plr,new)
	end
end)

ropeEvent.OnServerEvent:connect(function(plr,dir,held)
	if newRope then
		newDir = dir
		isHeld = held
	end
end)

cutEvent.OnServerEvent:connect(function(plr)
	if newRope then
		newRope:Destroy()
		newRope = nil
		new:Destroy()
		newAtt0:Destroy()
		newAtt1:Destroy()
	end
end)
-- functions



local function TrackPlayer(player, color)
	local character	= player.Character
	local humanoid	= character:WaitForChild("Humanoid")
	local armor		= humanoid:WaitForChild("Armor")
	local down		= humanoid:WaitForChild("Down")
	
	local frame		= script.SquadFrame:Clone()
		frame.NameLabel.Text		= player.Name
		frame.NameLabel.TextColor3	= color
		frame.Parent				= SQUAD_GUI
	
	local function Update()
		frame.Bars.Health.Size	= UDim2.new(humanoid.Health / humanoid.MaxHealth, 0, 0.6, -1)
		frame.Bars.Armor.Size	= UDim2.new(armor.Value / 150, 0, 0.4, -1)
		
		frame.Bars.Health.BackgroundColor3	= down.Value and DOWN_COLOR or HEALTH_COLOR
		frame.DownLabel.Visible	= down.Value
	end
	
	humanoid.HealthChanged:connect(Update)
	armor.Changed:connect(Update)
	down.Changed:connect(function()
		if down.Value then
			script.DownSound:Play()
		end
		
		Update()
	end)
	
	Update()
end

script.TrackPlayer.Event:connect(TrackPlayer)
--[Script]--


StunsValue.Changed:Connect(function()
	if StunsValue.Value >= 30 then  -- change this to the amount of stuns it takes to trigger BloodHour
		workspace.BHStart:Play();
		script.Parent.BHAnimation.Disabled = false;
		StunsValue.Value = 0;
		BHValue.Value = true;
		script.Parent.Head.Eye1.Color = Color3.fromRGB(255, 0, 0);
		script.Parent.Head.Eye2.Color = Color3.fromRGB(255, 0, 0);
		script.Parent.Configuration.WalkSpeed.Value = 0
		script.Parent.Configuration.RunSpeed.Value = 0
		script.Parent.Configuration.Damage.Value = 10000
		script.Disabled = true
		wait(34)
		BHText.Value = 2
		workspace.BHChase:Play()
		wait(2)
		script.Parent.Head.Screaming:Play()
		script.Parent.Configuration.WalkSpeed.Value = 22
		script.Parent.Configuration.RunSpeed.Value = 55
		script.Parent.Configuration.Damage.Value = 90
		wait(50) --End BloodHour change to what you want
		workspace.BHChase:Stop()
        game.Lighting.BHColor.Enabled = false
        game.Lighting.Ambient = Color3.fromRGB(255, 255, 255)
        game.Lighting.FogColor = Color3.fromRGB(255, 255, 255)
		script.Parent.BHAnimation.Disabled = true;
		BHValue.Value = false;
		BHEndValue.Value = false;
		BHText.Value = 0
		Stunning.Value = false
		StunsValue.Value = 0
        game.Workspace.BHChase:Stop()
		script.Parent.Head.Screaming:Stop()
		script.Parent.Configuration.WalkSpeed.Value = 12;
		script.Parent.Configuration.RunSpeed.Value = 25;
		script.Parent.Configuration.Damage.Value = 30;
		script.Parent.Head.Eye1.Color = Color3.fromRGB(255, 255, 255); -- eye color --
		script.Parent.Head.Eye2.Color = Color3.fromRGB(255, 255, 255); -- eye color --
		script.Disabled = false;
	end
end)
--[[Handlebars]]

--
	Tune.SteerAngle		= 20		-- Handlebar angle at max lock (in degrees)
	Tune.MSteerExp		= 1 		-- Mouse steering exponential degree
	Tune.LowSpeedCut	= 60 		-- Low speed steering cutoff, tune according to your full lock, a bike with a great handlebar lock angle will need a lower value (E.G. If your full lock is 20 your cutoff will be 40/50, or if your full lock is 40 your cutoff will be 20/30)
	
	Tune.SteerD			= 50 		-- Dampening of the Low speed steering
	Tune.SteerMaxTorque	= 4000 		-- Force of the the Low speed steering
	Tune.SteerP			= 500 		-- Aggressiveness of the the Low speed steering
--Right.InputChanged:Connect(RightTurn)



local function TouchThrottle(input, GPE)
	if input.UserInputState == Enum.UserInputState.Begin and _IsOn then
		_InThrot = 1
	else
		_InThrot = _Tune.IdleThrottle/100
	end
end
Gas.InputBegan:Connect(TouchThrottle)
Gas.InputEnded:Connect(TouchThrottle)
--== Primary logic ==--


modifierPressed 	= false
primaryPressed 	= false
debouncer 			= false

inputService.InputChanged:connect(function(winput,processed)
	if processed == false then -- checks to see if you're focused on a textbox or not
		local pressedkeys = inputService:GetKeysPressed()
		
		for _, input in pairs (pressedkeys) do -- iterate all keys currently pressed
			if input.KeyCode == modifierKey then
				modifierPressed = true
			end
			if input.KeyCode == primaryKey then
				primaryPressed = true
			end
			if primaryPressed and modifierPressed then break end -- escapes loop
		end
		
		if primaryPressed == true and modifierPressed == true and debouncer == false then
			debouncer 			= true
			if script.Parent.IsOn.Value == false then StartCar() else StopCar() end
			primaryPressed 	= false
			modifierPressed	= false
			wait(2)
			debouncer = false
		end
	end
end)

script.Parent.IsOn.Changed:Connect(function()
	script.Parent.IgnitionStatus.Text = script.Parent.IsOn.Value and "Engine On" or "Engine Off"
end)