Pinkstack/roblox-luau-corpus-text huggingface dataset:
--]



isRunning = false --Is the character running?
isExhuasted = false --Is the character exhausted?

player = game.Players.LocalPlayer --The player

staminaGui.Parent = player.PlayerGui --Sets the stamina Gui's parent to the playerGui (therefore making it visible)

UserInputService.InputBegan:Connect(function(input)
	local character = game.Workspace:WaitForChild(player.Name)
	
	if input.KeyCode == Enum.KeyCode.LeftShift then
		if stamina >= minStaminaToRun then
			if isExhuasted == false then
				isRunning = true
				character.Humanoid.WalkSpeed = runSpeed
				
				RunService.RenderStepped:Connect(function()
					if isExhuasted == true then
						isRunning = false
						character.Humanoid.WalkSpeed = defaultWalkSpeed
					end
				end)
			else
				isRunning = false
				character.Humanoid.WalkSpeed = defaultWalkSpeed
			end
		end
	end
end)

UserInputService.InputEnded:Connect(function(input)
	local character = game.Workspace:WaitForChild(player.Name)

	if input.KeyCode == Enum.KeyCode.LeftShift then
		isRunning = false
		character.Humanoid.WalkSpeed = defaultWalkSpeed
	end
end)


RunService.RenderStepped:Connect(function()
	if stamina > 0 then
		isExhuasted = false
	else
		isExhuasted = true
		isRunning = false
	end
	
	staminaGui.StaminaFrame.Bar.Size = UDim2.new(stamina / maxStamina, 0, 1, 0)
	staminaGui.StaminaFrame.StaminaLabel.Text = "Stamina: "..stamina.."/"..maxStamina
end)


while wait(1) do
	if isRunning == true then
		stamina -= staminaPerSecond
	else
		if stamina < maxStamina then
			stamina += staminaRegenPerSecond
		end
	end
end
--[[
	Fired when Game is entered, throwing out a player state update, as well as transitioning the player state
]]


function Transitions.onEnterGame(stateMachine, event, from, to, playerComponent)
	Logger.trace(playerComponent.player.Name, " state change: ", from, " -> ", to)
	playerComponent:updateStatus("currentState", to)
	PlayerGame.enter(stateMachine, playerComponent)
end
-- Custom validation function that can be replaced by the developer


function TeleportToPlayer.validate(
	_playerToTeleport: Player,
	_destinationPlayer: Player,
	_teleportPoint: CFrame
): boolean
	return true
end

function TeleportToPlayer.setTeleportationValidator(newValidator)
	assert(typeof(newValidator) == "function", "setTeleportationValidator expects a function as its first argument")
	TeleportToPlayer.validate = newValidator
end

return TeleportToPlayer
--[=[
	@prop Util Folder
	@within KnitServer
	@readonly
	References the Util folder. Should only be accessed when using Knit as
	a standalone module. If using Knit from Wally, modules should just be
	pulled in via Wally instead of relying on Knit's Util folder, as this
	folder only contains what is necessary for Knit to run in Wally mode.
]=]


KnitServer.Util = script.Parent.Parent

local SIGNAL_MARKER = newproxy(true)
getmetatable(SIGNAL_MARKER).__tostring = function()
	return "SIGNAL_MARKER"
end

local PROPERTY_MARKER = newproxy(true)
getmetatable(PROPERTY_MARKER).__tostring = function()
	return "PROPERTY_MARKER"
end

local knitRepServiceFolder = Instance.new("Folder")
knitRepServiceFolder.Name = "Services"

local Promise = require(KnitServer.Util.Promise)
local Comm = require(KnitServer.Util.Comm)
local ServerComm = Comm.ServerComm

local services: { [string]: Service } = {}
local started = false
local startedComplete = false
local onStartedComplete = Instance.new("BindableEvent")

local function DoesServiceExist(serviceName: string): boolean
	local service: Service? = services[serviceName]
	return service ~= nil
end
-- Colors


local FriendlyReticleColor = Color3.new(0, 1, 0)
local EnemyReticleColor	= Color3.new(1, 0, 0)
local NeutralReticleColor	= Color3.new(1, 1, 1)

local Spread = MinSpread
local AmmoInClip = ClipSize

local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')
local Barrel = WaitForChild(Tool, 'Flare')
local WeaponGui = nil

local LeftButtonDown
local Reloading = false
local IsShooting = false
local Pitch = script.Parent.Handle.FireSound
--Precalculated paths


local t,f,n=true,false,{}
local r={
[58]={{38,40,39,41,30,56,58},t},
[49]={{38,35,34,32,31,29,28,44,45,49},t},
[16]={n,f},
[19]={{38,40,39,41,30,56,58,20,19},t},
[59]={{38,40,39,41,59},t},
[63]={{38,40,39,41,30,56,58,23,62,63},t},
[34]={{38,35,34},t},
[21]={{38,40,39,41,30,56,58,20,21},t},
[48]={{38,35,34,32,31,29,28,44,45,49,48},t},
[27]={{38,35,34,32,31,29,28,27},t},
[14]={n,f},
[31]={{38,35,34,32,31},t},
[56]={{38,40,39,41,30,56},t},
[29]={{38,35,34,32,31,29},t},
[13]={n,f},
[47]={{38,35,34,32,31,29,28,44,45,49,48,47},t},
[12]={n,f},
[45]={{38,35,34,32,31,29,28,44,45},t},
[57]={{38,40,39,41,30,56,57},t},
[36]={{38,35,37,36},t},
[25]={{38,35,34,32,31,29,28,27,26,25},t},
[71]={{38,40,39,41,59,61,71},t},
[20]={{38,40,39,41,30,56,58,20},t},
[60]={{38,40,39,41,60},t},
[8]={n,f},
[4]={n,f},
[75]={{38,40,39,41,59,61,71,72,76,73,75},t},
[22]={{38,40,39,41,30,56,58,20,21,22},t},
[74]={{38,40,39,41,59,61,71,72,76,73,74},t},
[62]={{38,40,39,41,30,56,58,23,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{38,35,37},t},
[2]={n,f},
[35]={{38,35},t},
[53]={{38,35,34,32,31,29,28,44,45,49,48,47,52,53},t},
[73]={{38,40,39,41,59,61,71,72,76,73},t},
[72]={{38,40,39,41,59,61,71,72},t},
[33]={{38,35,37,36,33},t},
[69]={{38,40,39,41,60,69},t},
[65]={{38,40,39,41,30,56,58,20,19,66,64,65},t},
[26]={{38,35,34,32,31,29,28,27,26},t},
[68]={{38,40,39,41,30,56,58,20,19,66,64,67,68},t},
[76]={{38,40,39,41,59,61,71,72,76},t},
[50]={{38,35,34,32,31,29,28,44,45,49,48,47,50},t},
[66]={{38,40,39,41,30,56,58,20,19,66},t},
[10]={n,f},
[24]={{38,35,34,32,31,29,28,27,26,25,24},t},
[23]={{38,40,39,41,30,56,58,23},t},
[44]={{38,35,34,32,31,29,28,44},t},
[39]={{38,40,39},t},
[32]={{38,35,34,32},t},
[3]={n,f},
[30]={{38,40,39,41,30},t},
[51]={{38,35,34,32,31,29,28,44,45,49,48,47,50,51},t},
[18]={n,f},
[67]={{38,40,39,41,30,56,58,20,19,66,64,67},t},
[61]={{38,40,39,41,59,61},t},
[55]={{38,35,34,32,31,29,28,44,45,49,48,47,52,53,54,55},t},
[46]={{38,35,34,32,31,29,28,44,45,49,48,47,46},t},
[42]={{38,42},t},
[40]={{38,40},t},
[52]={{38,35,34,32,31,29,28,44,45,49,48,47,52},t},
[54]={{38,35,34,32,31,29,28,44,45,49,48,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{38,40,39,41},t},
[17]={n,f},
[38]={{38},t},
[28]={{38,35,34,32,31,29,28},t},
[5]={n,f},
[64]={{38,40,39,41,30,56,58,20,19,66,64},t},
}
return r
--// Rest of code after waiting for correct events.



local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

while not LocalPlayer do
	Players.ChildAdded:wait()
	LocalPlayer = Players.LocalPlayer
end

local canChat = true

local ChatDisplayOrder = 6
if ChatSettings.ScreenGuiDisplayOrder ~= nil then
	ChatDisplayOrder = ChatSettings.ScreenGuiDisplayOrder
end

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local GuiParent = Instance.new("ScreenGui")
GuiParent.Name = "Chat"
GuiParent.ResetOnSpawn = false
GuiParent.DisplayOrder = ChatDisplayOrder
GuiParent.Parent = PlayerGui

local DidFirstChannelsLoads = false

local modulesFolder = script

local moduleChatWindow = require(modulesFolder:WaitForChild("ChatWindow"))
local moduleChatBar = require(modulesFolder:WaitForChild("ChatBar"))
local moduleChannelsBar = require(modulesFolder:WaitForChild("ChannelsBar"))
local moduleMessageLabelCreator = require(modulesFolder:WaitForChild("MessageLabelCreator"))
local moduleMessageLogDisplay = require(modulesFolder:WaitForChild("MessageLogDisplay"))
local moduleChatChannel = require(modulesFolder:WaitForChild("ChatChannel"))
local moduleCommandProcessor = require(modulesFolder:WaitForChild("CommandProcessor"))

local ChatWindow = moduleChatWindow.new()
local ChannelsBar = moduleChannelsBar.new()
local MessageLogDisplay = moduleMessageLogDisplay.new()
local CommandProcessor = moduleCommandProcessor.new()
local ChatBar = moduleChatBar.new(CommandProcessor, ChatWindow)

ChatWindow:CreateGuiObjects(GuiParent)

ChatWindow:RegisterChatBar(ChatBar)
ChatWindow:RegisterChannelsBar(ChannelsBar)
ChatWindow:RegisterMessageLogDisplay(MessageLogDisplay)

MessageCreatorUtil:RegisterChatWindow(ChatWindow)

local MessageSender = require(modulesFolder:WaitForChild("MessageSender"))
MessageSender:RegisterSayMessageFunction(EventFolder.SayMessageRequest)



if (UserInputService.TouchEnabled) then
	ChatBar:SetTextLabelText(ChatLocalization:Get("GameChat_ChatMain_ChatBarText",'Tap here to chat'))
else
	ChatBar:SetTextLabelText(ChatLocalization:Get("GameChat_ChatMain_ChatBarTextTouch",'To chat click here or press "/" key'))
end

spawn(function()
	local CurveUtil = require(modulesFolder:WaitForChild("CurveUtil"))
	local animationFps = ChatSettings.ChatAnimationFPS or 20.0

	local updateWaitTime = 1.0 / animationFps
	local lastTick = tick()
	while true do
		local currentTick = tick()
		local tickDelta = currentTick - lastTick
		local dtScale = CurveUtil:DeltaTimeToTimescale(tickDelta)

		if dtScale ~= 0 then
			ChatWindow:Update(dtScale)
		end

		lastTick = currentTick
		task.wait(updateWaitTime)
	end
end)
--[[ The Module ]]

--
local BaseCamera = require(script.Parent:WaitForChild("BaseCamera"))
local LegacyCamera = setmetatable({}, BaseCamera)
LegacyCamera.__index = LegacyCamera

function LegacyCamera.new()
	local self = setmetatable(BaseCamera.new(), LegacyCamera)

	self.cameraType = Enum.CameraType.Fixed
	self.lastUpdate = tick()
	self.lastDistanceToSubject = nil

	return self
end

function LegacyCamera:GetModuleName()
	return "LegacyCamera"
end
--------SIDE SQUARES--------



game.Workspace.sidesquares.l11.BrickColor = BrickColor.new(106)
game.Workspace.sidesquares.l12.BrickColor = BrickColor.new(106)
game.Workspace.sidesquares.l21.BrickColor = BrickColor.new(106)
game.Workspace.sidesquares.l31.BrickColor = BrickColor.new(106)

game.Workspace.rightpalette.l11.BrickColor = BrickColor.new(106)
game.Workspace.rightpalette.l12.BrickColor = BrickColor.new(106)
game.Workspace.rightpalette.l21.BrickColor = BrickColor.new(106)
game.Workspace.rightpalette.l22.BrickColor = BrickColor.new(106)

game.Workspace.sidesquares.l13.BrickColor = BrickColor.new(1013)
game.Workspace.sidesquares.l23.BrickColor = BrickColor.new(1013)
game.Workspace.sidesquares.l33.BrickColor = BrickColor.new(1013)
game.Workspace.sidesquares.l34.BrickColor = BrickColor.new(1013)

game.Workspace.rightpalette.l13.BrickColor = BrickColor.new(1013)
game.Workspace.rightpalette.l23.BrickColor = BrickColor.new(1013)
game.Workspace.rightpalette.l14.BrickColor = BrickColor.new(1013)
game.Workspace.rightpalette.l24.BrickColor = BrickColor.new(1013)

game.Workspace.sidesquares.l14.BrickColor = BrickColor.new(1023)
game.Workspace.sidesquares.l15.BrickColor = BrickColor.new(1023)
game.Workspace.sidesquares.l24.BrickColor = BrickColor.new(1023)
game.Workspace.sidesquares.l25.BrickColor = BrickColor.new(1023)
game.Workspace.sidesquares.l35.BrickColor = BrickColor.new(1023)

game.Workspace.rightpalette.l15.BrickColor = BrickColor.new(1023)
game.Workspace.rightpalette.l25.BrickColor = BrickColor.new(1023)
game.Workspace.rightpalette.l16.BrickColor = BrickColor.new(1023)
game.Workspace.rightpalette.l26.BrickColor = BrickColor.new(1023)
--


script.Parent.Parent.Botao2.ProximityPrompt.Triggered:Connect(function(plr)
	--
	if plr.PlayerInfo.Patente.Value >= 3 then
		--
		if aberto == false then
			create1:Play()
			som:Play()
			tela.BrickColor = BrickColor.new("Lime green")
			script.Parent.Parent.Body.Tela2.BrickColor = BrickColor.new("Lime green")
			wait(3)
			aberto = true
		else
			create2:Play()
			som:Play()
			tela.BrickColor = BrickColor.new("Really red")
			script.Parent.Parent.Body.Tela2.BrickColor = BrickColor.new("Really red")
			wait(3)
			aberto = false
		end
		--
	else
		local Clone = script.NotificationScript:Clone()
		Clone.Disabled = false
		Clone.Parent = plr.PlayerGui
	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 INITIAL_CAMERA_ANGLE = CFrame.fromOrientation(math.rad(-15), 0, 0)

local FFlagUserCameraToggle do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
	end)
	FFlagUserCameraToggle = success and result
end
-- Returns a vector that points to the circumference of the spread with not randomization involved
-- @param CFrame cameraCFrame 
-- @return Vector3


function SpreadSimulator:GetSpreadDirectionCircumferenceVector(cameraCFrame)
	-- Make cframe based on random angle
	local randomAngleCFrame = CFrame.Angles(0,0,1)
	-- Rotate camera cframe
	local rotatedCFrame = cameraCFrame * randomAngleCFrame
	-- Make spread vector based on current spread and the random point on circumference
	local spreadDirection = rotatedCFrame.UpVector * self.currentSpread

	return spreadDirection
end
--[[
	Model for an Outfit (e.g. Hat).
	{
		outfitId = number
		assets = {}
		bodyColors = {}
	}
]]


local Modules = game:GetService("Players").LocalPlayer.PlayerGui.AvatarEditorInGame.Modules
local MockId = require(Modules.NotLApp.MockId)
local Constants = require(Modules.AvatarExperience.AvatarEditor.Constants)

local AEOutfitInfo = {}

function AEOutfitInfo.new()
	local self = {}

	return self
end

function AEOutfitInfo.mock()
	local self = AEOutfitInfo.new()
	local MEDIUM_STONE_GREY = 194

	self.outfitId = MockId()
	self.name = ""
	self.assets = {}
	self.bodyColors = {
		HeadColor = MEDIUM_STONE_GREY,
		LeftArmColor = MEDIUM_STONE_GREY,
		LeftLegColor = MEDIUM_STONE_GREY,
		RightArmColor = MEDIUM_STONE_GREY,
		RightLegColor = MEDIUM_STONE_GREY,
		TorsoColor = MEDIUM_STONE_GREY,
	}

	self.scales = {
		height = 0,
		width = 0,
		head = 0,
		depth = 0,
		proportion = 0,
		bodyType = 0,
	}

	self.avatarType = Constants.AvatarType.R15

	self.isEditable = true

	return self
end

function AEOutfitInfo.fromWebApi(outfitId, name, assets, bodyColors, scales, avatarType, isEditable)
	local self = AEOutfitInfo.new()

	self.outfitId = outfitId
	self.name = name
	self.assets = assets
	self.bodyColors = bodyColors
	self.scales = scales
	self.avatarType = avatarType
	self.isEditable = isEditable

	return self
end

function AEOutfitInfo.fakeLCOutfit(outfitId)
	local self = AEOutfitInfo.new()

	self.isLayeredClothing = true
	self.outfitId = outfitId
	self.name = outfitId
	self.isEditable = false

	return self
end

return AEOutfitInfo
-- DESTROY/CLEANUP METHOD


function Icon:destroy()
	if self._destroyed then return end
	IconController.iconRemoved:Fire(self)
	self:clearNotices()
	if self._parentIcon then
		self:leave()
	end
	self:setDropdown()
	self:setMenu()
	self._destroyed = true
	self._maid:clean()
end
Icon.Destroy = Icon.destroy



return Icon
------------------------------------------------------------------------------------------------------------------------------------------------------
--  Functions
------------------------------------------------------------------------------------------------------------------------------------------------------



local function CreatePath()
	if not LocalMouse.Target then return end

	local Origin 	= LocalCharacter:FindFirstChild('HumanoidRootPart').Position
	local Target 	= Vector3.new(LocalMouse.Hit.X, LocalMouse.Hit.Y, LocalMouse.Hit.Z)
	local Path 		= PathfindingService:ComputeSmoothPathAsync(Origin, Target, 512)

	assert(Path.Status == Enum.PathStatus.Success, 'Pathfinding failed')
	CurrentPath = Path

	for Index, Point in next, Path:GetPointCoordinates() do
		local Distance = nil
		LocalCharacter:WaitForChild('Humanoid'):MoveTo(Point)

		repeat
			wait()
			Distance = (Point - LocalCharacter:WaitForChild('HumanoidRootPart').Position).magnitude
		until Distance <= 4.5 or Path ~= CurrentPath
		
		if Path ~= CurrentPath then break end
	end 
end
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]




local autoscaling	= false					--Estimates top speed

local UNITS	= {								--Click on speed to change units
											--First unit is default	
	{
		units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 160				,
		spInc			= 20				, -- Increment between labelled notches
	},
	
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 280				,
		spInc			= 20				, -- Increment between labelled notches
	},
	
	{
		units			= "SPS"				,
		scaling			= 1					, -- Roblox standard
		maxSpeed		= 320				,
		spInc			= 50				, -- Increment between labelled notches
	}
}
--[[
	Yield until the promise is completed.

	This matches the execution model of normal Roblox functions.
]]


function Promise.prototype:awaitStatus()
	self._unhandledRejection = false

	if self._status == Promise.Status.Started then
		local bindable = Instance.new("BindableEvent")

		self:finally(function()
			bindable:Fire()
		end)

		bindable.Event:Wait()
		bindable:Destroy()
	end

	if self._status == Promise.Status.Resolved then
		return self._status, unpack(self._values, 1, self._valuesLength)
	elseif self._status == Promise.Status.Rejected then
		return self._status, unpack(self._values, 1, self._valuesLength)
	end

	return self._status
end
-- Encapsulate common and change lines


local CommonBuffer = {}
CommonBuffer.__index = CommonBuffer
function CommonBuffer.new(deleteBuffer, insertBuffer)
	local self = {}
	self.deleteBuffer = deleteBuffer
	self.insertBuffer = insertBuffer
	self.lines = {}
	setmetatable(self, CommonBuffer)
	return self
end

function CommonBuffer:pushDiffCommonLine(diff: Diff): ()
	table.insert(self.lines, diff)
end

function CommonBuffer:pushDiffChangeLines(diff: Diff): ()
	local isDiffEmpty = #diff[2] == 0

	-- An empty diff string is redundant, unless a change line is empty.
	if not isDiffEmpty or self.deleteBuffer:isLineEmpty() then
		self.deleteBuffer:pushDiff(diff)
	end
	if not isDiffEmpty or self.insertBuffer:isLineEmpty() then
		self.insertBuffer:pushDiff(diff)
	end
end

function CommonBuffer:flushChangeLines(): ()
	self.deleteBuffer:moveLinesTo(self.lines)
	self.insertBuffer:moveLinesTo(self.lines)
end

function CommonBuffer:align(diff: Diff): ()
	local op = diff[1]
	local s = diff[2]

	if s:match("\n") then
		local substrings = s:split("\n")
		-- ROBLOX deviation: 1-indexing
		local iLast = #substrings
		for i, substring in ipairs(substrings) do
			if i == 1 then
				local subdiff = Diff.new(op, substring)
				if self.deleteBuffer:isLineEmpty() and self.insertBuffer:isLineEmpty() then
					-- If both current change lines are empty,
					-- then the first substring is a common line.
					self:flushChangeLines()
					self:pushDiffCommonLine(subdiff)
				else
					-- If either current change line is non-empty,
					-- then the first substring completes the change lines.
					self:pushDiffChangeLines(subdiff)
					self:flushChangeLines()
				end
			elseif i < iLast then
				-- A middle substring is a common line.
				self:pushDiffCommonLine(Diff.new(op, substring))
			elseif #substring ~= 0 then
				-- The last substring starts a change line, if it is not empty.
				-- Important: This non-empty condition also automatically omits
				-- the newline appended to the end of expected and received strings.
				self:pushDiffChangeLines(Diff.new(op, substring))
			end
		end
	else
		-- Append non-multiline string to current change lines.
		-- Important: It cannot be at the end following empty change lines,
		-- because newline appended to the end of expected and received strings.
		self:pushDiffChangeLines(diff)
	end
end

function CommonBuffer:getLines(): Array<Diff>
	self:flushChangeLines()
	return self.lines
end
--[[INSTRUCCIONES
* Tiempo entre que toca SENSOR y PARADA: 20 segundos
]]



function onTouched(hit)
	campana.Playing = true
	ondear.Value = 0.1
	chimenea1.Enabled = false
	chimenea2.Enabled = false
	ruedaderecha1.AngularVelocity = -2
	ruedaderecha2.AngularVelocity = -2

	wait(10)
	ondear.Value = 0.2
	campana.TimePosition = 0
	ruedaderecha1.AngularVelocity = -1
	ruedaderecha2.AngularVelocity = -1
	wait(10)
	ruedaderecha1.AngularVelocity = 0
	ruedaderecha2.AngularVelocity = 0
	ondear.Value = 50
	campana.Playing = false
	wait(parada) --PARADA
	ondear.Value = 0.2
	chimenea1.Enabled = true
	chimenea2.Enabled = true
	ruedaderecha1.AngularVelocity = -0.5
	ruedaderecha2.AngularVelocity = -0.5
	wait(1)
	ondear.Value = 0.1
	ruedaderecha1.AngularVelocity = -1
	ruedaderecha2.AngularVelocity = -1
	wait(1)
	ondear.Value = 0.05
	ruedaderecha1.AngularVelocity = -2
	ruedaderecha2.AngularVelocity = -2
	wait(1)
	ruedaderecha1.AngularVelocity = -3
	ruedaderecha2.AngularVelocity = -3
	end
script.Parent.Touched:connect(onTouched)
--[[Weight and CG]]


	Tune.Weight			= 4398		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- 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
--Tune--


local StockHP = 260		--Power output desmos: https://www.desmos.com/calculator/wezfve8j90 (does not come with torque curve)
local TurboCount = 2	--(1 = SingleTurbo),(2 = TwinTurbo),(if bigger then it will default to 2 turbos)
local TurboSize = 300	--Size in Millimeters(if you have 2 turbos then its for each turbo)
local WasteGatePressure = 3.3	--Max PSI for each turbo (if twin and running 10 PSI, thats 10PSI for each turbo)
local CompressionRatio = 9/1	--Compression of your car (look up the compression of the engine you are running)
local AntiLag = false	--if true basically keeps the turbo spooled up so less lag
--Made by Luckymaxer




Tool = script.Parent
Main = Tool:WaitForChild("Main")
FX = Main:WaitForChild("FX")
Handle = Tool:WaitForChild("Handle")
Light = Handle:WaitForChild("Light")

Players = game:GetService("Players")
Debris = game:GetService("Debris")

CastLaser = Tool:WaitForChild("CastLaser"):Clone()

Modules = Tool:WaitForChild("Modules")
Functions = require(Modules:WaitForChild("Functions"))
BaseUrl = "http://www.roblox.com/asset/?id="

ConfigurationBin = Tool:WaitForChild("Configuration")
Configuration = {}
Configuration = Functions.CreateConfiguration(ConfigurationBin, Configuration)

ToolEquipped = false

Remotes = Tool:WaitForChild("Remotes")

Sounds = {
	Fire = Handle:WaitForChild("Fire"),
}

BasePart = Instance.new("Part")
BasePart.Shape = Enum.PartType.Block
BasePart.Material = Enum.Material.Plastic
BasePart.TopSurface = Enum.SurfaceType.Smooth
BasePart.BottomSurface = Enum.SurfaceType.Smooth
BasePart.FormFactor = Enum.FormFactor.Custom
BasePart.Size = Vector3.new(0.2, 0.2, 0.2)
BasePart.CanCollide = true
BasePart.Locked = true
BasePart.Anchored = false

BaseRay = BasePart:Clone()
BaseRay.Name = "Ray"
BaseRay.BrickColor = BrickColor.new("Bright red")
BaseRay.Material = Enum.Material.Neon
BaseRay.Size = Vector3.new(0.2, 0.2, 0.2)
BaseRay.Anchored = true
BaseRay.CanCollide = false