Roblox/luau_corpus huggingface dataset:
--beam.TextureSpeed = math.random(0.05, 0.1)

local tweenInfoA = TweenInfo.new(
	loopTimeA, -- Time
	Enum.EasingStyle.Quad, -- EasingStyle
	Enum.EasingDirection.Out, -- EasingDirection
	-1, -- RepeatCount (when less than zero the tween will loop indefinitely)
	true, -- Reverses (tween will reverse once reaching it's goal)
	0 -- DelayTime
)

local tweenInfoB = TweenInfo.new(
	loopTimeB, -- Time
	Enum.EasingStyle.Quad, -- EasingStyle
	Enum.EasingDirection.Out, -- EasingDirection
	-1, -- RepeatCount (when less than zero the tween will loop indefinitely)
	true, -- Reverses (tween will reverse once reaching it's goal)
	0 -- DelayTime
)

local targetPosA = attachmentA.Position + Vector3.new(0.0, 1000.0, 0.0)
local targetPosB = attachmentB.Position + Vector3.new(0.0, 1000.0, 0.0)
local tweenA = TweenService:Create(attachmentA, tweenInfoA, {Position = targetPosA})
local tweenB = TweenService:Create(attachmentB, tweenInfoB, {Position = targetPosB})
tweenA:Play()
tweenB:Play()
--[[
local TextBoxPlus = require(script.TextBoxPlus)


local start = TextBoxPlus.new(Instance.new("TextBox"))
local goal = TextBoxPlus.new(Instance.new("TextBox"))


--local DefaultNumber = 123

--local function Reset() end
--local function FullReset() end


goal:SetDefaultConvert(function(Text)  
	local numbered = tonumber(Text or goal.Object.Text)
	
	if numbered and numbered ~= start:Convert() then
		return math.clamp(numbered, 1, 600)
	end
end)

start:SetDefaultConvert(function(Text)  
	local numbered = tonumber(Text or start.Object.Text)

	if numbered and numbered ~= goal:Convert() then
		return math.clamp(numbered, 1, 600)
	end
end)

start:Filter(function(number)
	if not number then
		task.defer(Reset)
		return DefaultNumber
	end
end)
-- :Finally() will be called only after the Filter function has.

[Functions]

:Then(fn) --> *Cycle*
:Finally(fn) --> Void
:Catch(fn(error)) -> *Cycle*

]]

local tbl = {
	{1, 5},
	{2, 2},
	{3, 4},
	{4, 1},
	{5, 3}
}

local rm, pri = Remake.new(), priorty.new()

local s = os.clock()
for _, obj in tbl do
	rm:Push(obj[1], obj[2])
-- Visualizes a ray. This will not run if FastCast.VisualizeCasts is false.
function DbgVisualizeSegment(castStartCFrame, castLength)
	if FastCast.VisualizeCasts ~= true then return end
	local adornment = Instance.new("ConeHandleAdornment")
	adornment.Adornee = Workspace.Terrain
	adornment.CFrame = castStartCFrame
	adornment.Height = castLength
	adornment.Color3 = Color3.new()
	adornment.Radius = 0.25
	adornment.Transparency = 0.5
	adornment.Parent = GetFastCastVisualizationContainer()
	return adornment
end
--[[
This door, the first on ROBLOX of its kind, was created by Mark Otaris (JulienDethurens).

It opens when it is touched by someone whose rank in a certain group is higher or equal than/to a certain rank number.

The group's id can be specified in the GroupId value in the configuration folder contained in the door.
The rank id (from 1 to 255) can be specified in the RankId value in the configuration folder.
]]

local config = script.Parent.Configuration

script.Parent.Touched:connect(function(part)
	if part.Parent and Game:GetService('Players'):GetPlayerFromCharacter(part.Parent) then
		local player = Game:GetService('Players'):GetPlayerFromCharacter(part.Parent)
		if player:GetRankInGroup(config.GroupId.Value)then
			script.Parent.Transparency = 1
			script.Parent.CanCollide = false
			wait(2)
			script.Parent.Transparency = 0
			script.Parent.CanCollide = true
		end
	end
end)
--Statements
tool.RequiresHandle = false
tool.CanBeDropped = false
--//VIPERGUTZ
--//TASER ANIMATIONS

local Tool = script.Parent
local IdleAnimation
local IdleTrack = nil
script.Parent.Equipped:Connect(function(mouse)
	local MyCharacter = Tool.Parent
	local MyPlayer = game:GetService('Players'):GetPlayerFromCharacter(MyCharacter)
	local MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
	IdleAnimation = Tool:WaitForChild("Idle")
	if IdleAnimation then
		IdleTrack = MyHumanoid:LoadAnimation(IdleAnimation)
	end
	if IdleTrack then
		IdleTrack:Play()
	end
end)

script.Parent.Unequipped:Connect(function(mouse)
	if IdleTrack then
		IdleTrack:Stop()
	end
end)
-- Show icons of tools in toolbar
function setIcon(v)
	local imageButton = UiFrame:FindFirstChild(v.Name)
	if imageButton then
		--imageButton.Image = ''
		local tool = v.Value
		if tool then
			imageButton.Visible = true
			--imageButton.Image = tool.TextureId
			imageButton.Item.Text = tool.Name
		else
			imageButton.Visible = false
		end
	end
end
-- For Robloxyton, by Celestus

function OnClick()

local p = script.Parent.Parent.Door

		for i=1, 30 do -- How many times it moves
				p.CFrame = p.CFrame + Vector3.new(0, 0, 0.1) -- How far it will move each time
				wait(.01) -- speed of each movement
				end
-- Symbol keys:
local KEY_ANCESTORS = Symbol("Ancestors")
local KEY_INST_TO_COMPONENTS = Symbol("InstancesToComponents")
local KEY_LOCK_CONSTRUCT = Symbol("LockConstruct")
local KEY_COMPONENTS = Symbol("Components")
local KEY_TROVE = Symbol("Trove")
local KEY_EXTENSIONS = Symbol("Extensions")
local KEY_ACTIVE_EXTENSIONS = Symbol("ActiveExtensions")
local KEY_STARTED = Symbol("Started")


local renderId = 0
local function NextRenderName(): string
	renderId += 1
	return "ComponentRender" .. tostring(renderId)
end


local function InvokeExtensionFn(component, fnName: string)
	for _,extension in ipairs(component[KEY_ACTIVE_EXTENSIONS]) do
		local fn = extension[fnName]
		if type(fn) == "function" then
			fn(component)
		end
	end
end


local function ShouldConstruct(component): boolean
	for _,extension in ipairs(component[KEY_ACTIVE_EXTENSIONS]) do
		local fn = extension.ShouldConstruct
		if type(fn) == "function" then
			local shouldConstruct = fn(component)
			if not shouldConstruct then
				return false
			end
		end
	end
	return true
end


local function GetActiveExtensions(component, extensionList)
	local activeExtensions = table.create(#extensionList)
	local allActive = true
	for _,extension in ipairs(extensionList) do
		local fn = extension.ShouldExtend
		local shouldExtend = type(fn) ~= "function" or not not fn(component)
		if shouldExtend then
			table.insert(activeExtensions, extension)
		else
			allActive = false
		end
	end
	return if allActive then extensionList else activeExtensions
end
--Rocket.Touched:connect(OnTouched)

while script.Parent == Rocket do
	game:GetService("RunService").Stepped:wait()
	local hit,pos = raycast((Rocket.CFrame * CFrame.new(0,0,25)).p,((Rocket.CFrame * CFrame.new(0,0,-1)).p-Rocket.Position).unit,60)
	if hit then
		OnTouched(hit,pos)
	end
	Rocket.CFrame = Rocket.CFrame * CFrame.new(0,0,-50) * CFrame.Angles(0, 0, math.rad(18))
end
--Automatic: DCT
Tune.ShiftUpTime	= 0.25		-- Time required to shift into next gear, from a lower gear to a higher one.
Tune.ShiftDnTime	= 0.125		-- Time required to shift into next gear, from a higher gear to a lower one.

Tune.FinalDrive		= 3.545	-- (Final * Primary)	-- Gearing determines top speed and wheel torque
--[=[
	Completes the subscription, preventing anything else from being
	emitted.
]=]
function Subscription:Complete()
	if self._state ~= stateTypes.PENDING then
		return
	end

	self._state = stateTypes.COMPLETE
	if self._completeCallback then
		self._completeCallback()
	end

	self:_doCleanup()
end
--// Math
local L_90_ = function(L_120_arg1, L_121_arg2, L_122_arg3)
	if L_120_arg1 > L_122_arg3 then
		return L_122_arg3
	elseif L_120_arg1 < L_121_arg2 then
		return L_121_arg2
	end
	return L_120_arg1
end

local L_91_ = L_79_.new(Vector3.new())
L_91_.s = 30
L_91_.d = 0.55
	
local L_92_ = CFrame.Angles(0, 0, 0)
-- MasterWeld by Zephyred
-- Works for all types of parts, unions etc.
function WeldPair(x, y)
	local weld = Instance.new("Motor6D",x) 
	weld.Part0 = x
	weld.Part1 = y
	weld.C1 = y.CFrame:toObjectSpace(x.CFrame);
end

function WeldAll(model, main) -- model can be anything
	if model:IsA("BasePart") then WeldPair(main, model) end
	for _,v in pairs(model:GetChildren()) do WeldAll(v, main) end	
end

function UnanchorAll(model) -- model can be anything
	if (model:IsA("BasePart")) then model.Anchored = false end
	for _,v in pairs(model:GetChildren()) do UnanchorAll(v) end
end

WeldAll(script.Parent, script.Parent.Handle)
UnanchorAll(script.Parent)

script:Destroy() -- Done, clean script up.
-- Variables for objects and vehicle settings
local SettingsFolder = script.Parent.Parent:WaitForChild("Configuration")
local ToolStatus = script.Parent.Parent:WaitForChild("ToolStatus")
local UserInputService = game:GetService("UserInputService")
local VRService = game:GetService("VRService")
local SeaterObject = ToolStatus:WaitForChild("SeaterScript")
local SegwayObject = ToolStatus:WaitForChild("Segway")
local WeldObject = ToolStatus:WaitForChild("PlayersWeld")
local MaxSpeed = SettingsFolder:WaitForChild("MaxSpeed")
local TurnSpeed = SettingsFolder:WaitForChild("TurnSpeed")
local UseGyroSteering = SettingsFolder:WaitForChild("UseGyroSteering")
local VRUseHeadsetControls = SettingsFolder:WaitForChild("VRUseHeadsetControls")
local Thruster = ToolStatus:WaitForChild("Thruster")
local TiltMotor = ToolStatus:WaitForChild("TiltMotor")
local PlayerGui = nil
local Lights = nil
local Notifiers = nil
local RayTest = nil
--< Variables
local code = script.Parent.Code
local redeem = script.Parent.Redeem

local event = game.ReplicatedStorage.Code
-- Decompiled with the Synapse X Luau decompiler.

local l__MarketplaceService__1 = game:GetService("MarketplaceService");
local l__LocalPlayer__2 = game.Players.LocalPlayer;
local l__ReplicatedStorage__3 = game.ReplicatedStorage;
script.Parent.MouseButton1Click:Connect(function()
	l__MarketplaceService__1:PromptGamePassPurchase(l__LocalPlayer__2, l__ReplicatedStorage__3.GamepassIDs.ExtraStorage.Value);
end);
-- CONSTANTS

local PI2 = math.pi*2
local PHI = (1 + math.sqrt(5)) / 2

local RIGHT 	= Vector3.new(1, 0, 0)
local UP 		= Vector3.new(0, 1, 0)
local BACK 		= Vector3.new(0, 0, 1)
local LEFT 		= Vector3.new(-1, 0, 0)
local DOWN 		= Vector3.new(0, -1, 0)
local FORWARD 	= Vector3.new(0, 0, -1)

local CORNERS = {
	Vector3.new(1, 1, 1);
	Vector3.new(-1, 1, 1);
	Vector3.new(-1, 1, -1);
	Vector3.new(1, 1, -1);
	Vector3.new(1, -1, 1);
	Vector3.new(-1, -1, 1);
	Vector3.new(-1, -1, -1);
	Vector3.new(1, -1, -1);
}
--	if math.floor(v) < 75 then
--		carSeat.Parent.Body.MP.Sound.RollOffMode = "LinearSquare"
--	else
--		carSeat.Parent.Body.MP.Sound.RollOffMode = "Inverse"
--	end
end

function wiperF(a,w)
	carSeat.Parent.Misc.WPR.SS.Motor.DesiredAngle = a
	carSeat.Parent.Misc.WPR2.SS.Motor.DesiredAngle = a
	carSeat.Parent.Body.we.p.Enabled = w
	carSeat.Parent.Body.we1.p.Enabled = w
end

F.wspd = function(a)
	local c = math.max(carSeat.WS.Value+a,1)
	carSeat.WS.Value = c
	local b = c/100
	carSeat.Parent.Misc.WPR.SS.Motor.MaxVelocity = b
	carSeat.Parent.Misc.WPR2.SS.Motor.MaxVelocity = b
end

local s = false

F.sunroof = function()
	s = not s
	carSeat.Parent.Misc.SR.SS.Motor.DesiredAngle = s and .1 or 0
end

local xz = 2

F.src = function()
	if xz < 2 then
		xz = xz + 1
	else xz = 0
	end
	local y = 2.3 * xz
	local z = (xz == 1) and 2 or 4
	local bm = carSeat.Parent.Body.HC.BM
	tween(bm,"Offset",Vector3.new(y/2,0,0),z)
	tween(bm,"Scale",Vector3.new(y,1,1),z)
end


F.wws = function(iv,wa)
	carSeat.FW.Value = not carSeat.FW.Value
	carSeat.Parent.DriveSeat.wipe.Playing = carSeat.FW.Value
	if carSeat.FW.Value then
		local b = math.pi/2
		if wa then
			wiperF(0,true) wait(1)
		end
		repeat
			local itv = math.max((carSeat.WS.Value^-1),20^-1)
			wiperF(-b,false)
			repeat wait()
			until carSeat.Parent.Misc.WPR.SS.Motor.CurrentAngle <= (-b)+0.1
			wiperF(0,false)
			repeat wait() until carSeat.Parent.Misc.WPR.SS.Motor.CurrentAngle == 0
			wait(itv*2)
		until carSeat.FW.Value == false
		carSeat.Parent.DriveSeat.wipe.Playing = false
	else
		wiperF(0,false)
	end
end

F.volumeup = function(VolUp)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + 1
	scg.Radio.VOLMENU.VolumeText.Text = "VOLUME: "..carSeat.Parent.Body.MP.Sound.Volume
end

local m = 0

F.IMode = function()
end

F.updateSong = function(Song)
	carSeat.Parent.Body.MP.Sound:Stop()
	wait()
	carSeat.Parent.Body.MP.Sound.SoundId = "rbxassetid://"..Song
	wait()
	carSeat.Parent.Body.MP.Sound:Play()
end

F.lg = function(n)
	carSeat.Parent.Body.MP.Sound.ES.HighGain = n
end

F.mg = function(n)
	carSeat.Parent.Body.MP.Sound.ES.HighGain = n
end

F.hg = function(n)
	carSeat.Parent.Body.MP.Sound.ES.HighGain = n
end

F.eq = function(n)
	carSeat.Parent.Body.MP.Sound.ES.Enabled = n
end

F.updateVolume = function(Vol)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + Vol
	scg.Radio.Volume.Text = carSeat.Parent.Body.MP.Sound.Volume
end

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

	local function fire(...)
		for i = 1, #slots do
			slots[i]:Disconnect()
		end

		return shunt:Fire(...)
	end

	for i = 1, #slots do -- RBXScriptSignal
		slots[i] = slots[i]:Connect(fire) -- Change to RBXScriptConnection
	end

	return shunt.Event:Wait()
end
--[[
	Generates symbols used to denote event handlers when working with the `New`
	function.
]]

local Package = script.Parent.Parent
local PubTypes = require(Package.PubTypes)

local function OnEvent(eventName: string): PubTypes.OnEventKey
	return {
		type = "Symbol",
		name = "OnEvent",
		key = eventName
	}
end

return OnEvent
--[=[
	Gets the screen position of the mouse.
]=]
function Mouse:GetPosition(): Vector2
	return UserInputService:GetMouseLocation()
end
--helpfully checks a table for a specific value
local function contains(t, v)
	for _, val in pairs(t) do
		if val == v then
			return true
		end
	end
	return false
end
--	RightShoulder.MaxVelocity = 0.05
--	LeftShoulder.MaxVelocity = 0.05
--	RightShoulder.DesiredAngle = math.pi
--	LeftShoulder.DesiredAngle = -math.pi
--	RightHip.DesiredAngle = 0
--	LeftHip.DesiredAngle = 0

	for _, motor in next, Limbs do
		if string.match(motor.Name, "Left") or string.match(motor.Name, "Front") or string.match(motor.Name, "Right") or string.match(motor.Name, "Back") then
			motor.DesiredAngle = 0
		end
	end

	for _, motor in next, Joints do
		motor.MaxVelocity = 0.05
		motor.DesiredAngle = math.pi * 0.5
	end	
end

function MoveSit()
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]

local car = script.Parent.Bike.Value
local cam = workspace.CurrentCamera
local RS = game:GetService("RunService")

car.DriveSeat.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then
		RS:UnbindFromRenderStep("MCam")
		cam.CameraType = Enum.CameraType.Custom
	end
end)

script.Parent.Values.MouseSteerOn.Changed:connect(function(property)
	if script.Parent.Values.MouseSteerOn.Value then
		RS:BindToRenderStep("MCam",Enum.RenderPriority.Camera.Value,function()	
			cam.CameraType = Enum.CameraType.Scriptable
			local pspeed = math.min(1,car.DriveSeat.Velocity.Magnitude/500)
			local cc = car.DriveSeat.Position+Vector3.new(0,8+(pspeed*2),0)-(car.DriveSeat.CFrame.lookVector*17)+(car.DriveSeat.Velocity.Unit*-7*pspeed)
			cam.CoordinateFrame = CFrame.new(cc,car.DriveSeat.Position)
		end)
	else
		RS:UnbindFromRenderStep("MCam")
		cam.CameraType = Enum.CameraType.Custom
	end
end)
-----------------------------------------------------------------

game.StarterPlayer.CharacterWalkSpeed = gameRules.NormalWalkSpeed

local function AccessID(SKP_0,SKP_1)
	if SKP_0.UserId ~= SKP_1 then
		SKP_0:kick("Exploit Protocol");
		warn(SKP_0.Name.." - Potential Exploiter! Case 0-A: Client Tried To Access Server Code");
		table.insert(_G.TempBannedPlayers, SKP_0);
	end;
	return ACS_0;
end;

Evt.AcessId.OnServerInvoke = AccessID
--[=[
	Returns true if the class is a maid, and false otherwise.

	```lua
	print(Maid.isMaid(Maid.new())) --> true
	print(Maid.isMaid(nil)) --> false
	```

	@param value any
	@return boolean
]=]
function Maid.isMaid(value)
	return type(value) == "table" and value.ClassName == "Maid"
end
----------------------------------------------------------------------
end


function computeLaunchAngle(dx,dy,grav)
	-- arcane
	-- http://en.wikipedia.org/wiki/Trajectory_of_a_projectile
	
	local g = math.abs(grav)
	local inRoot = (VELOCITY*VELOCITY*VELOCITY*VELOCITY) - (g * ((g*dx*dx) + (2*dy*VELOCITY*VELOCITY)))
	if inRoot <= 0 then
		return .25 * math.pi
	end
	local root = math.sqrt(inRoot)
	local inATan1 = ((VELOCITY*VELOCITY) + root) / (g*dx)

	local inATan2 = ((VELOCITY*VELOCITY) - root) / (g*dx)
	local answer1 = math.atan(inATan1)
	local answer2 = math.atan(inATan2)
	if answer1 < answer2 then return answer1 end
	return answer2
end

function computeDirection(vec)
	local lenSquared = vec.magnitude * vec.magnitude
	local invSqrt = 1 / math.sqrt(lenSquared)
	return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
end



Tool.Enabled = true
function onActivated()

	if not Tool.Enabled then
		local bewl = script.Parent:FindFirstChild("Bool")
		if bewl then
			bewl:Destroy()
		end
		return
	end

	Tool.Enabled = false

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

	local targetPos = humanoid.TargetPoint
	script.Parent.Handle.SlingshotSound:Play()
	fire(targetPos)


	Tool.Enabled = true
end


function onWeld()
local bewl = script.Parent:FindFirstChild("Bool")
	if bewl then
	bewl:Destroy()
	end

end
script.Parent.Activated:connect(onActivated)
script.Parent.Unequipped:connect(onWeld)
--[=[
	@within Comm
	@prop ServerComm ServerComm
]=]
--[=[
	@within Comm
	@prop ClientComm ClientComm
]=]

return Comm
--//Const
local RS = game:GetService("RunService");

function ViewportInit:Init(VP, Selected, CamCFrame)
	if (not VP) then return; end

	VP:ClearAllChildren();
	
	local Obj = Selected:Clone();
	
	if (not Obj.PrimaryPart) then
		for i,v in pairs(Obj:GetChildren()) do
			if (v:IsA("BasePart")) then
				Obj.PrimaryPart = v;
				break;
			end
		end	
	end

	Obj:SetPrimaryPartCFrame(CFrame.new(Vector3.new(), CamCFrame.Position))
	Obj.Parent = VP;

	local Camera = Instance.new("Camera");
	VP.CurrentCamera = Camera;
	Camera.Parent = VP;

	local cf = CamCFrame
	Camera.CFrame = cf


	return Obj, Camera;
end

return ViewportInit
--[[Wheel Alignment]]
	--[Don't physically apply alignment to wheels]
	--[Values are in degrees]
	Tune.FCamber		= -5.5
	Tune.RCamber		= -5
	Tune.FToe			= 0
	Tune.RToe			= 0
-- Private Functions

local function tripleProduct(a, b, c)
	return b * c:Dot(a) - a * c:Dot(b)
end

local function containsOrigin(self, simplex, direction)
	local a = simplex[#simplex]
	local ao = -a

	if (#simplex == 4) then
		local b, c, d = simplex[3], simplex[2], simplex[1]
		local ab, ac, ad = b - a, c - a, d - a
		local abc, acd, adb = ab:Cross(ac), ac:Cross(ad), ad:Cross(ab)
		
		abc = abc:Dot(ad) > 0 and -abc or abc
		acd = acd:Dot(ab) > 0 and -acd or acd
		adb = adb:Dot(ac) > 0 and -adb or adb
		
		if (abc:Dot(ao) > 0) then
			table.remove(simplex, 1)
			direction = abc
		elseif (acd:Dot(ao) > 0) then
			table.remove(simplex, 2)
			direction = acd
		elseif (adb:Dot(ao) > 0) then
			table.remove(simplex, 3)
			direction = adb
		else
			return true
		end
	elseif (#simplex == 3) then
		local b, c = simplex[2], simplex[1]
		local ab, ac = b - a, c - a
		
		local abc = ab:Cross(ac)
		local abPerp = tripleProduct(ac, ab, ab).Unit
		local acPerp = tripleProduct(ab, ac, ac).Unit
		
		if (abPerp:Dot(ao) > 0) then
			table.remove(simplex, 1)
			direction = abPerp
		elseif (acPerp:Dot(ao) > 0) then
			table.remove(simplex, 2)
			direction = acPerp
		else
			local isV3 = ((a - a) == ZERO3)
			if (not isV3) then
				return true
			else
				direction = abc:Dot(ao) > 0 and abc or -abc
			end
		end
	else
		local b = simplex[1]
		local ab = b - a
		local bcPerp = tripleProduct(ab, ao, ab).Unit
		direction = bcPerp
	end
	
	return false, direction
end
--[ LEADERSTATS  ]--

game.Players.PlayerAdded:Connect(function(player)
	
	local leaderstats = Instance.new("Folder", player) -- Creates a folder into the player
	leaderstats.Name = "leaderstats"
	
	local Clicks = Instance.new("IntValue", leaderstats) -- Creates a value into the folder
	Clicks.Name = "Clicks"
	Clicks.Value = 0
	
	local Gems = Instance.new("IntValue", leaderstats) -- Creates a value into the folder
	Gems.Name = "Gems"
	Gems.Value = 0
	
	local Rebirths = Instance.new("IntValue", leaderstats) -- Creates a value into the folder
	Rebirths.Name = "Rebirths"
	Rebirths.Value = 0
end)
-- Set initial value
script.Parent.Visible = not plr.Settings.CanSave.Value
--------------------) Settings
Damage = 0 -- the ammout of health the player or mob will take

Cooldown = 10 -- cooldown for use of the tool again

ZoneModelName = "LB trap" -- name the zone model

MobHumanoidName = "Humanoid"-- the name of player or mob u want to damage
--The button

script.Parent.Button.ClickDetector.MouseClick:connect(function(click)

if not (on) then on = true--On
    script.Parent.MeshPart.Transparency = 1
    script.Parent.MeshPart.CanCollide = false
elseif (on) then on = false --Off
    script.Parent.MeshPart.Transparency = 0
    script.Parent.MeshPart.CanCollide = true
    end
end)
-- fn cst_int_rdr(string src, int len, fn func)
-- @len - Length of type for reader
-- @func - Reader callback
local function cst_int_rdr(len, func)
	return function(S)
		local pos = S.index + len
		local int = func(S.source, S.index, pos)
		S.index = pos

		return int
	end
end
--[[Engine]]

	--		[TORQUE CURVE VISUAL]
	--		https://www.desmos.com/calculator/nap6stpjqf
	--		Use sliders to manipulate values
	--		Edit everything as if your car is NATURALLY aspirated, or as if it lacks a turbo.
	
	Tune.Horsepower		= 150
	Tune.IdleRPM		= 700
	Tune.PeakRPM		= 6000
	Tune.Redline		= 7000
	Tune.EqPoint		= 5252
	Tune.PeakSharpness	= 20
	Tune.CurveMult		= 0.2
	
	Tune.InclineComp	= 1.2		-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Turbo Settings
	Tune.Aspiration		= "Natural"												--[[
	[Aspiration]
		"Natural"		: N/A, Naturally aspirated engine
		"Single"		: Single turbocharger
		"Double"		: Twin turbocharger
		"Super"			: Supercharger												]]
	
	Tune.Boost			= 5			--Max PSI (If you have two turbos and this is 15, the PSI will be 30)
	Tune.TurboSize		= 80		--Turbo size; the bigger it is, the more lag it has.
	Tune.CompressRatio	= 9			--The compression ratio (look it up)
	Tune.Sensitivity	= 0.05		--How quickly the Supercharger (if appllied) will bring boost when throttle is applied. (Increment applied per tick, suggested values from 0.05 to 0.1)
	
	--Misc
	Tune.RevAccel		= 300		-- 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		= 250		-- Clutch engagement threshold (higher = faster response, lower = more stable RPM)
--[[
	Function to clean any state that has been instantiated in the script
]]
function UIController.clean()
end

return UIController
-- Create a new shimmer object
local shim = shimmer.new(guiObject, 1, Enum.EasingStyle.Exponential, Enum.EasingDirection.InOut, -1, false, 0)
---------------------------------------------------------------
function onChildAdded(child)
	if child.Name == "SeatWeld" then
		local human = child.part1.Parent:findFirstChild("Humanoid") 
		if (human ~= nil) then
			print("Human IN")
			seat.SirenControl.Control.CarName.Value = human.Parent.Name.."'s Car"
			seat.Parent.Name = human.Parent.Name.."'s Car"
			s.Parent.SirenControl:clone().Parent = game.Players:findFirstChild(human.Parent.Name).PlayerGui
		end
	end
end

function onChildRemoved(child)
	if (child.Name == "SeatWeld") then	
		local human = child.part1.Parent:findFirstChild("Humanoid") 
		if (human ~= nil) then
			print("Human OUT")
			seat.Parent.Name = "Empty Car"
			seat.SirenControl.Control.CarName.Value = "Empty Car"
			game.Players:findFirstChild(human.Parent.Name).PlayerGui.SirenControl:remove()
		end
	end
end


script.Parent.ChildAdded:connect(onChildAdded)
script.Parent.ChildRemoved:connect(onChildRemoved)