Pinkstack/roblox-luau-corpus-text huggingface dataset:
---[[ Fade Out and In Settings ]]


module.ChatWindowBackgroundFadeOutTime = 0 --Chat background will fade out after this many seconds.
module.ChatWindowTextFadeOutTime = 30				--Chat text will fade out after this many seconds.
module.ChatDefaultFadeDuration = 0.8
module.ChatShouldFadeInFromNewInformation = false
module.ChatAnimationFPS = 20.0
--[[Brakes]]


Tune.ABSEnabled		= true		-- Implements ABS
Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

Tune.FBrakeForce	= 2800		-- Front brake force
Tune.RBrakeForce	= 2200		-- Rear brake force
Tune.PBrakeForce	= 4000		-- Handbrake force

Tune.FLgcyBForce	= 15000		-- Front brake force [PGS OFF]
Tune.RLgcyBForce	= 10000		-- Rear brake force [PGS OFF]
Tune.LgcyPBForce	= 25000		-- Handbrake force [PGS OFF]
-- Find the device's rotation via gyroscope and apply to the segway


	UserInputService.DeviceRotationChanged:connect(function(rotation, rotCFrame)
	local x,y = rotCFrame:toEulerAnglesXYZ()
	local Sensitivity = 1.9
	
		-- Direction
		if -x*Sensitivity > -1 and -x*Sensitivity < 1 then -- Makes sure the device isn't tilted too much
			Direction = -x*Sensitivity+0.4
		elseif -x*Sensitivity > 0 then -- Otherwise we'll go to the max speed
			Direction = 1
		elseif -x*Sensitivity < 0 then -- Otherwise we'll go to the max speed
			Direction = -1
		end
			
		-- Steering
		if -y*Sensitivity > -1 and -y*Sensitivity < 1 then -- Makes sure the device isn't tilted too much
			Steer = -y*Sensitivity
		elseif -y*Sensitivity > 0 then -- Otherwise we'll go to the max speed
			Steer = 1
		elseif -y*Sensitivity < 0 then -- Otherwise we'll go to the max speed
			Steer = -1
		end
	end)
end
-- n0opimdumb3 says hi


local function createJointData(attach0, attach1, limits)
	assert(attach0)
	assert(attach1)
	assert(limits)
	assert(limits.UpperAngle >= 0)
	assert(limits.TwistLowerAngle <= limits.TwistUpperAngle)

	return {
		attachment0 = attach0,
		attachment1 = attach1,
		limits = limits
	}
end

local function find(model)
	return function(first, second, limits)
		local part0 = model:FindFirstChild(first[1])
		local part1 = model:FindFirstChild(second[1])
		if part0 and part1 then
			local attach0 = part0:FindFirstChild(first[2])
			local attach1 = part1:FindFirstChild(second[2])
			if attach0 and attach1 and attach0:IsA("Attachment") and attach1:IsA("Attachment") then
				return createJointData(attach0, attach1, limits)
			end
		end
	end
end

function RigTypes.getNoCollisions(model, rigType)
	if rigType == Enum.HumanoidRigType.R6 then
		return RigTypes.getR6NoCollisions(model)
	elseif rigType == Enum.HumanoidRigType.R15 then
		return RigTypes.getR15NoCollisions(model)
	else
		return {}
	end
end
--// J Key Or ButtonY, Lights


uis.InputBegan:connect(function(input)
	if input.KeyCode==Enum.KeyCode.J or input.KeyCode==Enum.KeyCode.DPadUp then 
		veh.Lightbar.middle.Beep:Play()
		veh.Lightbar.RemoteEvent:FireServer(true)
	end
end)
uis.InputBegan:connect(function(input)	
	if input.KeyCode==Enum.KeyCode.N then  
		veh.Lightbar.middle.Beep:Play()
		veh.Lightbar.DirectorRemoteEvent:FireServer(true)
	end
end)
-- Tips


local tipFrame = Instance.new("Frame")
tipFrame.Name = "TipFrame"
tipFrame.BorderSizePixel = 0
tipFrame.AnchorPoint = Vector2.new(0, 0)
tipFrame.Position = UDim2.new(0,50,0,50)
tipFrame.Size = UDim2.new(1,0,1,-8)
tipFrame.ZIndex = 40
tipFrame.Parent = iconContainer
tipFrame.Active = false

local tipCorner = Instance.new("UICorner")
tipCorner.Name = "TipCorner"
tipCorner.CornerRadius = UDim.new(0.25,0)
tipCorner.Parent = tipFrame

local tipLabel = Instance.new("TextLabel")
tipLabel.Name = "TipLabel"
tipLabel.BackgroundTransparency = 1
tipLabel.TextScaled = false
tipLabel.TextSize = 12
tipLabel.Position = UDim2.new(0,3,0,3)
tipLabel.Size = UDim2.new(1,-6,1,-6)
tipLabel.ZIndex = 41
tipLabel.Parent = tipFrame
tipLabel.Active = false
-- functions



local function EquipHat(character, hat)
	if CUSTOMIZATION.Hats:FindFirstChild(hat) then
		local hat			= CUSTOMIZATION.Hats[hat]:Clone()
		local attach		= hat.PrimaryPart
		local charAttach	= character[attach.Name]
		
		for _, v in pairs(hat:GetChildren()) do
			if v:IsA("BasePart") and v ~= attach then
				local offset	= attach.CFrame:ToObjectSpace(v.CFrame)
				
				local weld	= Instance.new("Weld")
					weld.Part0	= charAttach
					weld.Part1	= v
					weld.C0		= offset
					weld.Parent	= v
					
				v.Anchored		= false
				v.CanCollide	= false
				v.Massless		= true
			end
		end
		
		attach:Destroy()
		hat.Parent	= character.Attachments
	end
end

local function EquipOutfit(character, outfit)
	if CUSTOMIZATION.Outfits:FindFirstChild(outfit) then
		local shirt	= CUSTOMIZATION.Outfits[outfit]:FindFirstChild("Shirt")
		if shirt then
			shirt	= shirt:Clone()
				shirt.Parent	= character
		end
		local pants	= CUSTOMIZATION.Outfits[outfit]:FindFirstChild("Pants")
		if pants then
			pants	= pants:Clone()
				pants.Parent	= character
		end
	end
end

local function EquipFace(character, face)
	if CUSTOMIZATION.Faces:FindFirstChild(face) then
		local face	= CUSTOMIZATION.Faces[face]:Clone()
			face.Parent	= character.Head
	end
end

local function EquipSkinColor(character, skinColor)
	if CUSTOMIZATION.SkinColors:FindFirstChild(skinColor) then
		for _, v in pairs(character:GetChildren()) do
			if v:IsA("BasePart") then
				v.Color	= CUSTOMIZATION.SkinColors[skinColor].Value
			end
		end
	end
end

local function EquipBackpack(character, backpack)
	if CUSTOMIZATION.Backpacks:FindFirstChild(backpack) then
		local backpack		= CUSTOMIZATION.Backpacks[backpack]:Clone()
		local attach		= backpack.PrimaryPart
		local charAttach	= character[attach.Name]
		
		for _, v in pairs(backpack:GetChildren()) do
			if v:IsA("BasePart") and v ~= attach then
				local offset	= attach.CFrame:ToObjectSpace(v.CFrame)
				
				local weld	= Instance.new("Weld")
					weld.Part0	= charAttach
					weld.Part1	= v
					weld.C0		= offset
					weld.Parent	= v
					
				v.Anchored		= false
				v.CanCollide	= false
				v.Massless		= true
			end
		end
		
		attach:Destroy()
		backpack.Parent	= character.Attachments
	end
end

local function EquipEmote(character, emote)
	if CUSTOMIZATION.Emotes:FindFirstChild(emote) then
		emote	= CUSTOMIZATION.Emotes[emote]:Clone()
			emote.Parent	= character.Animate.Animations.Emotes
	end
end

local function HandleCharacter(character)
	if character then
		local playerData	= PLAYER_DATA:WaitForChild(character.Name)
		
		EquipHat(character, playerData.Equipped.Hat.Value)
		EquipHat(character, playerData.Equipped.Hat2.Value)
		EquipOutfit(character, playerData.Equipped.Outfit.Value)
		EquipFace(character, playerData.Equipped.Face.Value)
		EquipSkinColor(character, playerData.Equipped.SkinColor.Value)
		EquipBackpack(character, playerData.Equipped.Backpack.Value)
		EquipEmote(character, playerData.Equipped.Emote.Value)
	end
end

local function HandlePlayer(player)
	player.CharacterAdded:connect(HandleCharacter)
	
	HandleCharacter(player.Character)
end
-- CONNECTIONS


local iconCreationCount = 0
IconController.iconAdded:Connect(function(icon)
	topbarIcons[icon] = true
	if IconController.gameTheme then
		icon:setTheme(IconController.gameTheme)
	end
	icon.updated:Connect(function()
		local toggleTransitionInfo = icon:get("toggleTransitionInfo")
		IconController.updateTopbar(toggleTransitionInfo)
	end)
	-- When this icon is selected, deselect other icons if necessary
	icon.selected:Connect(function()
		local allIcons = IconController.getIcons()
		for _, otherIcon in pairs(allIcons) do
			if icon.deselectWhenOtherIconSelected and otherIcon ~= icon and otherIcon.deselectWhenOtherIconSelected and otherIcon:getToggleState() == "selected" then
				otherIcon:deselect(icon)
			end
		end
	end)
	-- Order by creation if no order specified
	iconCreationCount = iconCreationCount + 1
	if not icon._orderWasSet then
		icon:setOrder(iconCreationCount)
	end
	-- Apply controller view if enabled
	if IconController.controllerModeEnabled then
		IconController._enableControllerModeForIcon(icon, true)
	end
	IconController:_updateSelectionGroup()
end)

IconController.iconRemoved:Connect(function(icon)
	topbarIcons[icon] = nil
	icon:setEnabled(false)
	icon:deselect()
	icon.updated:Fire()
	IconController:_updateSelectionGroup()
end)
--This script makes it's child go into the character that touches it.



function InfectCharacter(BPart)
	PoisonCheck = BPart.Parent:findFirstChild("KillScript")
	if PoisonCheck ~= nil then return end
	KillScript = script.KillScript:clone()
	KillScript.Parent = BPart.Parent
end 

script.Parent.Touched:connect(InfectCharacter)
--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)
--//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
-- 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
-- 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
--[[function findAllCopies(obj)
	local c = obj:GetChildren();

	for i, v in pairs(c) do
		if (v.Name == script.Name and v.className == "Script" and v ~= script) then
			v.Parent = nil;
		elseif (v.className == "Model" or v.className == "Tool" or v.className == "HopperBin" or v == workspace or v == game.Lighting or v == game.StarterPack) then
			findAllCopies(v);
		end
	end
end

findAllCopies(game);

script.Parent = nil;]]
-- 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
--	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)
--[=[
	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