Pinkstack/roblox-luau-corpus-text huggingface dataset:
-- ROBLOX TODO: fix PrettyFormat types imports


type CompareKeys = ((a: string, b: string) -> number) | nil

local Types = require(CurrentModule.types)
type DiffOptions = Types.DiffOptions
type DiffOptionsNormalized = Types.DiffOptionsNormalized

local function noColor(s): string
	return s
end

local DIFF_CONTEXT_DEFAULT = 5

local OPTIONS_DEFAULT = {
	aAnnotation = "Expected",
	aColor = chalk.green,
	aIndicator = "-",
	bAnnotation = "Received",
	bColor = chalk.red,
	bIndicator = "+",
	changeColor = chalk.inverse,
	changeLineTrailingSpaceColor = noColor,
	commonColor = chalk.dim,
	commonIndicator = " ",
	commonLineTrailingSpaceColor = noColor,
	-- ROBLOX deviation: using Object.None instead of nil because assigning nil is no different from not assigning value at all
	compareKeys = Object.None,
	contextLines = DIFF_CONTEXT_DEFAULT,
	emptyFirstOrLastLinePlaceholder = "",
	expand = true,
	includeChangeCounts = false,
	omitAnnotationLines = false,
	patchColor = chalk.yellow,
}

local function getCompareKeys(compareKeys: CompareKeys?): CompareKeys
	return if compareKeys and typeof(compareKeys) == "function" then compareKeys else OPTIONS_DEFAULT.compareKeys
end

local function getContextLines(contextLines: number?): number
	if typeof(contextLines) == "number" and Number.isSafeInteger(contextLines) and contextLines >= 0 then
		return contextLines
	end
	return DIFF_CONTEXT_DEFAULT
end
--[[Transmission]]


	Tune.TransModes		= {"Auto", "Semi"}								--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch
		
		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}								
		>First mode is default mode													]]
	
	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]	
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		--Automatic downshift point (relative to peak RPM, positive = Under-rev)
	
	--Gear Ratios
	Tune.FinalDrive		= 5.06			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	2.70		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		1.53		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.04		,
		--[[ 3 ]]		1.38		,
		--[[ 4 ]]		1.03		,
		--[[ 5 ]]		0.80		,
		--[[ 6 ]]		0.75		,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
tagHumanoid(h

umanoid, creator)

	end

end



function tagHumanoid(humanoid, creator)

	-- tag does not need to expire iff all explosions lethal

	

	if creator ~= nil then

		local new_tag = creator:clone()

		new_tag.Parent = humanoid

		

	end

end



function untagHumanoid(humanoid)

	if humanoid ~= nil then

		local tag = humanoid:findFirstChild("creator")

		if tag ~= nil then

		

			tag.Parent = nil

		end

	end

end



t, s = r.Stepped:wait()



swoosh = script.Parent.Swoosh

swoosh:play()



d = t + 10.0 - s

connection = shaft.Touched:connect(blow)



while t < d do

	fly()

	t = r.Stepped:wait()

end



-- at max range

script.Parent.Explosion.PlayOnRemove = false

swoosh:stop()

shaft:remove()
-- << COMMANDS >>


local module = {
	
	-----------------------------------
	{
	Name = ";give";
	Aliases	= {tool};
	Prefixes = {settings.Prefix};
	Rank = 4;
	RankLock = false;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	Function = function(speaker, args)
		
	end;
	UnFunction = function(speaker, args)
		
	end;
	--
	};
	
	
	
	
	-----------------------------------
	{
	Name = "music";
	Aliases	= {music};
	Prefixes = {settings.Prefix};
	Rank = 2;
	RankLock = true;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	--[[
	ClientCommand = true;
	FireAllClients = true;
	BlockWhenPunished = true;
	PreFunction = function(speaker, args)
		
	end;
	Function = function(speaker, args)
		wait(1)
	end;
	--]]
	--
	};
	
	
	
	
	-----------------------------------
		{
	Name = "volume";
	Aliases	= {loudest};
	Prefixes = {settings.Prefix};
	Rank = 2;
	RankLock = true;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	--[[
	ClientCommand = true;
	FireAllClients = true;
	BlockWhenPunished = true;
	PreFunction = function(speaker, args)
		
	end;
	Function = function(speaker, args)
		wait(1)
	end;
	--]]
	--
	};
	
	
	
	
	-----------------------------------
		{
	Name = "pitch";
	Aliases	= {speed/slow sound};
	Prefixes = {settings.Prefix};
	Rank = 2;
	RankLock = true;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	--[[
	ClientCommand = true;
	FireAllClients = true;
	BlockWhenPunished = true;
	PreFunction = function(speaker, args)
		
	end;
	Function = function(speaker, args)
		wait(1)
	end;
	--]]
	--
	};
	
	
	
	-----------------------------------
		{
	Name = "cmdbar2";
	Aliases	= {commandbar2};
	Prefixes = {settings.Prefix};
	Rank = 2;
	RankLock = true;
	Loopable = false;
	Tags = {};
	Description = "";
	Contributors = {};
	--
	Args = {};
	--[[
	ClientCommand = true;
	FireAllClients = true;
	BlockWhenPunished = true;
	PreFunction = function(speaker, args)
		
	end;
	Function = function(speaker, args)
		wait(1)
	end;
	--]]
	--
	};
	
	
};



return module
-- context : (string)
-- action : (string)
-- label : (string)
-- value : (number, optional)


function GAReporter:sendEvent(context, action, label, value)
	assert(self.trackingId ~= "UA-00000000-00", "** YOU HAVE NOT YET SET YOUR GOOGLE ANALYTICS TRACKING ID IN CONFIG **")

	-- data validation
	local function validateStringInput(var, name, length)
		if type(var) == "string" then
			if #var > length then
				warn(string.format("%s cannot be longer than %d chars", name, length))
				var = var:sub(1, length - 1)
				warn(string.format("%s  has been truncated to %d chars", name, #var))
			end
		else
			error(string.format("%s must be a string", name))
		end
	end

	validateStringInput(context, "Context", 150)
	validateStringInput(action, "Action", 500)
	validateStringInput(label, "Label", 500)

	if value then
		assert(type(value) == "number", "Value must be a number")
		assert(value < 0, "Value must be greater than 0")
	end

	-- construct some args
	local args = {}
	args["t"] = "event"
	args["ec"] = context
	args["ea"] = action
	if label then
		args["el"] = label
	end
	if value then
		args["ev"] = value
	end

	return sendReport(self._networking, self.trackingId, self.clientId, self.userId, args)
end
--[[Susupension]]


	Tune.SusEnabled		= true		-- works only in with PGSPhysicsSolverEnabled, defaults to false when PGS is disabled
	
	--Front Suspension
	Tune.FSusDamping	= 500		-- Spring Dampening
	Tune.FSusStiffness	= 8000   	-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)
	
	Tune.FSusLength		= 2			-- Suspension length (in studs)
	Tune.FPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.FWsBoneLen		= 5			-- Wishbone Length
	Tune.FWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward
	
	--Rear Suspension
	Tune.RSusDamping	= 500		-- Spring Dampening
	Tune.RSusStiffness	= 8000		-- Spring Force
	Tune.FAntiRoll 		= 30		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 2			-- Suspension length (in studs)
	Tune.RPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.RWsBoneLen		= 5			-- Wishbone Length
	Tune.RWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Aesthetics	
	Tune.SusVisible		= false		-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness
-- events



REMOTES.Pin.OnServerEvent:connect(function(player, action, ...)
	local squad	= GetSquad(player)
	
	if squad then
		if action == "Add" then
			for _, p in pairs(squad:GetChildren()) do
				if p.Value ~= player then
					REMOTES.Pin:FireClient(p.Value, action, player, ...)
				end
			end
		elseif action == "Remove" then
			for _, p in pairs(squad:GetChildren()) do
				if p.Value ~= player then
					REMOTES.Pin:FireClient(p.Value, action, player)
				end
			end
		end
	end
end)

Players.PlayerAdded:connect(function(player)
	local info		= player:GetJoinData()
	local squadName	= info.TeleportData
	local squad
	
	if squadName then
		squad = SQUADS:FindFirstChild(squadName)
	end	
	
	if not squad then
		squad	= CreateSquad(squadName)
	end
	
	AddPlayerToSquad(player, squad)
end)

Players.PlayerRemoving:connect(function(player)
	RemovePlayer(player)
end)
---------------
--// Functions
---------------


local function toggleBuild()
	if sellMode then
		button.BackgroundColor3 = Color3.new(0.658824, 0.368627, 0.345098)
	else
		button.BackgroundColor3 = Color3.new(0.658824, 0.658824, 0.658824)
	end
end

local function pickupModeVisuals()
	while sellMode do
		task.wait(.01)
		pcall(function()
			local object = Mouse.Target
			local selected = nil


			local P = object.Parent
			local PP = object.Parent.Parent
			local PPP = object.Parent.Parent.Parent
			local TANG = nil

			if P.Name == "Builds" then
				TANG = object
			elseif PP.Name == "Builds" then
				TANG = P
			elseif PPP.Name == "Builds" then
				TANG = PP
			end

			if (object) and (TANG) then
				if TANG ~= selected then
					selected = TANG
					-- Not undo everything if already done
					-- Replace existing

					pcall(function()
						Part:Destroy()
					end)

					Part = Instance.new("Part")
					Part.Size = Vector3.new(5,5,5)
					Part.Color = Color3.new(1,0,0)
					Part.Parent = workspace
					Part.Transparency = 0.8
					Part.Anchored = true
					Part.CanCollide = false
					Part.CanQuery = false
					Part.CanTouch = false

					local SelectionBox = Instance.new("SelectionBox")
					SelectionBox.Color3 = Color3.new(1,0,0)
					SelectionBox.Adornee = Part
					SelectionBox.Parent = Part
					SelectionBox.LineThickness = 0.025
					
					local X,Y,Z
					
					if TANG:IsA("Model") then
						
						X,Y,Z = TANG:GetBoundingBox().X, TANG:GetBoundingBox().Y, TANG:GetBoundingBox().Z

					else
						X,Y,Z = TANG.Position.X, TANG.Position.Z, TANG.Position.Z

					end
					
					Part.Position = Vector3.new(X,2.6,Z)

				end
			else
				pcall(function()
					Part:Destroy()
				end)
			end	
		end)
	end
end
-- ROBLOX deviation: tuples not currently supported in Luau so we use a number array instead


export type RGB = { number }

return {
	aForeground2 = 90,
	aBackground2 = 225,

	bForeground2 = 23,
	bBackground2 = 195,

	aForeground3 = { 0x80, 0, 0x80 },
	aBackground3 = { 0xff, 0xd7, 0xff },

	bForeground3 = { 0, 0x5f, 0x5f },
	bBackground3 = { 0xd7, 0xff, 0xff },
}
--[[*
 * Returns true if **any** of the given glob `patterns` match the specified `string`.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.isMatch(string, patterns[, options]);
 *
 * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true
 * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false
 * ```
 * @param {String|Array} str The string to test.
 * @param {String|Array} patterns One or more glob patterns to use for matching.
 * @param {Object} [options] See available [options](#options).
 * @return {Boolean} Returns true if any patterns match `str`
 * @api public
 ]]



function picomatch.isMatch(str: string, patterns, options: Object?)
	return picomatch(patterns, options)(str)
end
--!strict


export type Array<T> = { [number]: T }

return {
	concat = require(script.concat),
	every = require(script.every),
	filter = require(script.filter),
	find = require(script.find),
	findIndex = require(script.findIndex),
	forEach = require(script.forEach),
	from = require(script.from),
	includes = require(script.includes),
	indexOf = require(script.indexOf),
	isArray = require(script.isArray),
	join = require(script.join),
	map = require(script.map),
	reduce = require(script.reduce),
	reverse = require(script.reverse),
	shift = require(script.shift),
	slice = require(script.slice),
	some = require(script.some),
	sort = require(script.sort),
	splice = require(script.splice),
	unshift = require(script.unshift),
}
-- -- -- -- -- -- --
--DIRECTION SCROLL--
-- -- -- -- -- -- --




Elevator:WaitForChild("Direction").Changed:connect(function(val)
    if val == 1 then
		This.Display.ARW1.U.Transparency = 0
		This.Display.ARW1.D.Transparency = 1
    elseif val == -1 then
		This.Display.ARW1.U.Transparency = 1
		This.Display.ARW1.D.Transparency = 0
	else
		This.Display.ARW1.U.Transparency = 1
		This.Display.ARW1.D.Transparency = 1
    end
end)
--//SS6 PLUGIN; SPLASH//--


  --//INSPARE 2017//--

local a = script.Parent.Main_Frame.A
local b = script.Parent.Main_Frame.B
local c = script.Parent.Main_Frame.C
local d = script.Parent.Main_Frame.D
local e = script.Parent.Main_Frame.E
local ai = script.Parent.Main_Frame.A.Frame.ImageLabel
local bi = script.Parent.Main_Frame.B.Frame.ImageLabel
local ci = script.Parent.Main_Frame.C.Frame.ImageLabel
local di = script.Parent.Main_Frame.D.Frame.ImageLabel
local ei = script.Parent.Main_Frame.E.Frame.ImageLabel
local i = script.Parent.Main_Frame.D.IN
local s = script.Parent.Main_Frame.F.SPARE
wait(.2)

script.Parent:TweenPosition(UDim2.new(0.5,0,0.5,0),"Out","Quint",.75)
script.Parent.Main_Frame:TweenPosition(UDim2.new(0.6,0,0.5,0),"Out","Sine",7.5)
for f=1,0,-0.1 do
	ai.ImageTransparency = f
	bi.ImageTransparency = f
	ci.ImageTransparency = f
	di.ImageTransparency = f
	ei.ImageTransparency = f
	i.TextTransparency = f
	s.TextTransparency = f
	wait()
end
wait(.5)
for f=0,0.25,0.01 do
	a.BackgroundTransparency = 1-f
	b.BackgroundTransparency = 1-f
	c.BackgroundTransparency = 1-f
	d.BackgroundTransparency = 1-f
	e.BackgroundTransparency = 1-f
	wait()
end
wait(1)
for f=0.25,0,-0.05 do
	a.BackgroundTransparency = 1-f
	b.BackgroundTransparency = 1-f
	c.BackgroundTransparency = 1-f
	d.BackgroundTransparency = 1-f
	e.BackgroundTransparency = 1-f
	wait()
end
wait(0.25)
for f=0,1,0.2 do
	ai.ImageTransparency = f
	bi.ImageTransparency = f
	ci.ImageTransparency = f
	di.ImageTransparency = f
	ei.ImageTransparency = f
	i.TextTransparency = f
	s.TextTransparency = f
	wait()
end
wait()
script.Parent:Destroy()
-------------------------


while true do
Puerta1.BodyVelocity.velocity = Vector3.new(-0.5, 0, 0)
Puerta2.BodyVelocity.velocity = Vector3.new(0.5, 0, 0)
wait(8)
Puerta1.BodyVelocity.velocity = Vector3.new(0, 0, 0)
Puerta2.BodyVelocity.velocity = Vector3.new(0, 0, 0)
break
end
-----------------------------------------------------------------------------------------------



script.Parent:WaitForChild("Spd")

local player=game.Players.LocalPlayer
local mouse=player:GetMouse()

local car = script.Parent.Parent.Car.Value
car.DriveSeat.HeadsUpDisplay = false

local _Tune = require(car["A-Chassis Tune"])

local _pRPM = _Tune.PeakRPM
local _lRPM = _Tune.Redline

local currentUnits = 1
local revEnd = 8

local inTac = car.Body.Dash.D.G.Tac.Needle
local inspd = car.Body.Dash.D.G.Spd.Needle
--[[
	Library
]]



local CoreLibrary = {}

function CoreLibrary.addPlayer(state, data: TypeDefinitions.PlayerData)
	local weapons = {}
	for weaponId, weaponData in pairs(Conf.weapon_system.weapons) do
		weapons[weaponId] = shallowCopy(weaponData.default_state)
	end
	
	state[data.player] = {
		equipped = nil,
		weapons = weapons,
	}
end

function CoreLibrary.removePlayer(state, data: TypeDefinitions.PlayerData)
	state[data.player] = nil
end

return CoreLibrary
---------------------------------
---Day/Night Script for Blocks---
---------------------------------


b = script.Parent

local oh,om = 6,10	-- Open Time (hours,minutes) DON'T TOUCH!
local ch,cm = 17,30	-- Close Time (hours, minutes) DON'T TOUCH!

local l = game:service("Lighting")
if (om == nil) then om = 0 end
if (cm == nil) then cm = 0 end


function TimeChanged()
	local ot = (oh + (om/60)) * 60
	local ct = (ch + (cm/60)) * 60
	if (ot < ct) then
		if (l:GetMinutesAfterMidnight() >= ot) and (l:GetMinutesAfterMidnight() <= ct) then
b.Material = ("SmoothPlastic")
b.Color = Color3.fromRGB(255, 195, 0)
		else
b.Material = ("Neon")
b.Color = Color3.fromRGB(200, 160, 0)
		end
	elseif (ot > ct) then
		if (l:GetMinutesAfterMidnight() >= ot) or (l:GetMinutesAfterMidnight() <= ct) then
b.Material = ("SmoothPlastic")
b.Color = Color3.fromRGB(255, 195, 0)
		else
b.Material = ("Neon")
b.Color = Color3.fromRGB(200, 160, 0)
		end
	end
end

TimeChanged()
game.Lighting.Changed:connect(function(property)
			if (property == "TimeOfDay") then
				TimeChanged()
			end
		end)
--[[Flip]]



	function Flip()
		--Detect Orientation
		if (car.DriveSeat.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector.y > .1 or FlipDB then
			FlipWait=tick()
			
		--Apply Flip
		else
			if tick()-FlipWait>=3 then
				FlipDB=true
				local gyro = car.DriveSeat.Flip
				gyro.maxTorque = Vector3.new(10000,0,10000)
				gyro.P=3000
				gyro.D=500
				wait(1)
				gyro.maxTorque = Vector3.new(0,0,0)
				gyro.P=0
				gyro.D=0
				FlipDB=false
			end
		end
	end

	function AWD()
			if car.DriveSeat.AWD.Value then -- SET AWD
				if _Tune.Config == "FWD" or _Tune.Config == "AWD" then for i,v in pairs(car.Wheels:GetChildren()) do if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then table.insert(Drive,v) end end end
			else --make RWD
				if _Tune.Config == "FWD" or _Tune.Config == "AWD" then for i,v in pairs(car.Wheels:GetChildren()) do if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then table.remove(Drive,3) table.remove(Drive,4) end end end
			end
		end
		
		car.DriveSeat.AWD.Changed:connect(function()
			AWD()
		end)
		
		AWD()
--generate templates



function GT()
	---Clean
	for _,v in pairs(ScrollFrame:GetChildren()) do
		if v:IsA("Frame") then
			v:Destroy()
		end
	end
	---Generate
	for _,v in pairs(CarStorage:GetChildren()) do
		local Templatecopy = Template:Clone()
		Templatecopy.Parent = ScrollFrame
		Templatecopy.CarName.Text = v.Name
		Templatecopy.BuySpawn.VehicleName.Value = v.Name
		Templatecopy.ImageFrame.ImageLabel.Image = v.Image.Value
		Templatecopy.BuySpawn.BuySpawnScript.Disabled = false
	end
end	
GT()
--Place the Shake event into ReplicatedStorage
--Place this into StarterPlayerScripts


local dropoff = 1.2 --how quickly you want the effect to fade away
local sway = 5

local cam = workspace.CurrentCamera
local amount

game.ReplicatedStorage.Shake.OnClientEvent:connect(function(times, number)
	amount = number
	for i = 1,times do
	for i = 1,sway do
		game:GetService("RunService").RenderStepped:wait()
		cam.CFrame = cam.CFrame * CFrame.Angles(amount,amount/2,0)
	end
	for i = 1,sway do
		game:GetService("RunService").RenderStepped:wait()
		cam.CFrame = cam.CFrame * CFrame.Angles(-amount,-amount/2,0)
	end
	amount = amount/dropoff
	end
end)
--[[
	Constants used throughout the testing framework.
]]



local TestEnum = {}

TestEnum.TestStatus = {
	Success = "Success",
	Failure = "Failure",
	Skipped = "Skipped"
}

TestEnum.NodeType = {
	Try = "Try",
	Describe = "Describe",
	It = "It",
	BeforeAll = "BeforeAll",
	AfterAll = "AfterAll",
	BeforeEach = "BeforeEach",
	AfterEach = "AfterEach"
}

TestEnum.NodeModifier = {
	None = "None",
	Skip = "Skip",
	Focus = "Focus"
}

return TestEnum
--- Parses all of the command arguments into ArgumentContexts
-- Called by the command dispatcher automatically
-- allowIncompleteArguments: if true, will not throw an error for missing arguments


function Command:Parse (allowIncompleteArguments)
	local hadOptional = false
	for i, definition in ipairs(self.ArgumentDefinitions) do
		local required = (definition.Default == nil and definition.Optional ~= true)

		if required and hadOptional then
			error(("Command %q: Required arguments cannot occur after optional arguments."):format(self.Name))
		elseif not required then
			hadOptional = true
		end

		if self.RawArguments[i] == nil and required and allowIncompleteArguments ~= true then
			return false, ("Required argument #%d %s is missing."):format(i, definition.Name)
		elseif self.RawArguments[i] or allowIncompleteArguments then
			self.Arguments[i] = Argument.new(self, definition, self.RawArguments[i] or "")
		end
	end

	return true
end
---------------
--// Events
---------------


workspace.Assets.Terrains.Beach.Touched:Connect(function(hit)
	if debounce == false and isAnimating == false then

		isAnimating = true
		debounce = true

		task.spawn(animateOn, OceanSound)
		animateOff(WoodsSound)

		isAnimating = false
	end
end)

workspace.Assets.Terrains.Grass.Touched:Connect(function(hit)
	if debounce == true and isAnimating == false then

		isAnimating = true
		debounce = false

		task.spawn(animateOn, WoodsSound)
		animateOff(OceanSound)

		isAnimating = false
	end
end)