Pinkstack/roblox-luau-corpus-text huggingface dataset:
-- Public Methods



function TextMaskClass:GetValue()
	return self._MaskType:ToType(self.Frame.Text)
end

function TextMaskClass:GetMaskType()
	return self._MaskType.Name
end

function TextMaskClass:SetMaxLength(len)
	self._MaxLength = len
end

function TextMaskClass:SetMaskType(name)
	local mask = MASKS[name]
	if (not mask) then
		mask = MASKS.String
		warn(WARN_MSG:format(name))
	end
	self._MaskType = mask
	self.Frame.Text = mask:Process(self.Frame.Text):sub(1, self._MaxLength)
	
	-- Add increment/decrement buttons for numeric inputs
	if name == "Number" then
		-- Initialize text to 0, consumer can override
		self.Frame.Text = 0

		self.IncrementButton = INCREMENT_BUTTON:Clone()
		self.IncrementButton.AnchorPoint = Vector2.new(1, 0)
		self.IncrementButton.Position = UDim2.new(1, 0, 0, 0)
		self._Maid:Mark(self.IncrementButton.Activated:Connect(function()
			self.Frame.Text = tonumber(self.Frame.Text) + 1
		end))
		self.IncrementButton.Parent = self.Frame
		self._Maid:Mark(self.IncrementButton)
		
		self.DecrementButton = DECREMENT_BUTTON:Clone()
		self.DecrementButton.AnchorPoint = Vector2.new(1, 1)
		self.DecrementButton.Position = UDim2.new(1, 0, 1, 0)
		self._Maid:Mark(self.DecrementButton.Activated:Connect(function()
			self.Frame.Text = tonumber(self.Frame.Text) - 1
		end))
		self.DecrementButton.Parent = self.Frame
		self._Maid:Mark(self.DecrementButton)
	end
end

function TextMaskClass:Destroy()
	self._Maid:Sweep()
end
--[[Engine]]


	--Torque Curve
	Tune.Horsepower		= 592		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 6700		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- 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		= 500		-- Clutch engagement threshold (higher = faster response)
--Если отпущена


Mos.KeyUp:connect(function(key)
	if key:lower() == string.char(48) then --Если нажата
		game.Workspace.Camera.FieldOfView = game.Workspace.Camera.FieldOfView - 1.6
		local Player1 = game.Players.LocalPlayer.Character.Humanoid
		if Player1 then
			Player1.WalkSpeed = 16
		end
	end
end)
--// Aim|Zoom|Sensitivity Customization


	ZoomSpeed = 0.23; -- The lower the number the slower and smoother the tween
	AimZoom = 60; -- Default zoom
	AimSpeed = 0.23;
	UnaimSpeed = 0.23;
	CycleAimZoom = 60; -- Cycled zoom
	MouseSensitivity = 0.5; -- Number between 0.1 and 1
	SensitivityIncrement = 0.05; -- No touchy
-- PubTypes that can be expressed as vectors of numbers, and so can be animated.


export type Animatable =
	number |
	CFrame |
	Color3 |
	ColorSequenceKeypoint |
	DateTime |
	NumberRange |
	NumberSequenceKeypoint |
	PhysicalProperties |
	Ray |
	Rect |
	Region3 |
	Region3int16 |
	UDim |
	UDim2 |
	Vector2 |
	Vector2int16 |
	Vector3 |
	Vector3int16
--	wait(7.5)


		leftTweenClose:Play()
		rightTweenClose:Play()
		model.Part.DoorStart:Play()
		wait(4)
		model.Part.DoorStart:Stop()
		model.Part.DoorStop:Play()
		model.Part.DoorHit:Play()
		wait(0.1)
		triggered=false
script.Enabled = false
------------------------------------------------------------------------
--
-- * used in luaK:dischargejpc(), luaK:patchlist(), luaK:exp2reg()
------------------------------------------------------------------------


function luaK:patchlistaux(fs, list, vtarget, reg, dtarget)
  while list ~= self.NO_JUMP do
    local _next = self:getjump(fs, list)
    if self:patchtestreg(fs, list, reg) then
      self:fixjump(fs, list, vtarget)
    else
      self:fixjump(fs, list, dtarget)  -- jump to default target
    end
    list = _next
  end
end
-- Create the spark effect for the bullet impact


function MakeParticleFX(position, normal)
	-- This is a trick I do with attachments all the time.
	-- Parent attachments to the Terrain - It counts as a part, and setting position/rotation/etc. of it will be in world space.
	-- UPD 11 JUNE 2019 - Attachments now have a "WorldPosition" value, but despite this, I still see it fit to parent attachments to terrain since its position never changes.
	local attachment = Instance.new("Attachment")
	attachment.CFrame = CFrame.new(position, position + normal)
	attachment.Parent = workspace.Terrain
	local particle = ImpactParticle:Clone()
	particle.Parent = attachment
	Debris:AddItem(attachment, particle.Lifetime.Max) -- Automatically delete the particle effect after its maximum lifetime.
	
	-- A potentially better option in favor of this would be to use the Emit method (Particle:Emit(numParticles)) though I prefer this since it adds some natural spacing between the particles.
	particle.Enabled = true
	wait(0.05)
	particle.Enabled = false
end
--!strict
--[=[
	@function copyDeep
	@within Array

	@param array {T} -- The array to copy.
	@return {T} -- The copied array.

	Copies an array, with deep copies of all nested arrays.

	```lua
	local array = { 1, 2, 3, { 4, 5 } }

	local result = CopyDeep(array) -- { 1, 2, 3, { 4, 5 } }

	print(result == array) -- false
	print(result[4] == array[4]) -- false
	```
]=]


local function copyDeep<T>(array: { T }): { T }
	local result = {}

	for _, value in ipairs(array) do
		if type(value) == "table" then
			table.insert(result, copyDeep(value))
		else
			table.insert(result, value)
		end
	end

	return result
end

return copyDeep
--why is this not a library funciton?!


function randUniform(a, b)
	return a + math.random() * (b - a)
end

function randVector(a, b)
	return Vector3.new(randUniform(a.x, b.x), randUniform(a.y, b.y), randUniform(a.z, b.z))
end


TriggerEffect.Event:Connect(function()
	local liveBlox = CollectionService:GetTagged("blox")
	script.Parent.PointLight:SetAttribute("SpawnTime", workspace.DistributedGameTime)
	verticalBeamPS:SetAttribute("SpawnTime", workspace.DistributedGameTime)
	plasmaBeamA:SetAttribute("SpawnTime", workspace.DistributedGameTime)
	plasmaBeamB:SetAttribute("SpawnTime", workspace.DistributedGameTime)

	dustParticles:Emit(15)
	flashPS:Emit(1)
	shockwave:Emit(1)
	verticalBeamPS:Emit(8)
	verticalBeamPS.Enabled = true

	bloxParticles:Emit(100)

	plasmaBeamA.Enabled = true
	plasmaBeamB.Enabled = true

	if #liveBlox < maxBlox then
		for i = -1, 1, 1 do
			for j = -1, 1, 1 do
				for k = -1, 1, 1 do
					local bloxInstance = blox:Clone()
					bloxInstance.Transparency = 0
					bloxInstance.Parent = workspace

					bloxInstance.Position = bloxSpawnLoc.Position + Vector3.new(i * (blox.Size.x + spacing), j * (blox.Size.y + spacing), k * (blox.Size.z + spacing))

					bloxInstance.Anchored = false
					bloxInstance:ApplyImpulse(randVector(Vector3.new(-hSpeed, 0, -hSpeed), Vector3.new(hSpeed, vSpeed, hSpeed)))
					bloxInstance:ApplyAngularImpulse(randVector(Vector3.new(-0.0005, -0.0005, -0.0005), Vector3.new(0.0005, 0.0005, 0.0005)))

					bloxInstance:SetAttribute("ID", math.random())
					bloxInstance:SetAttribute("SpawnTime", workspace.DistributedGameTime)
					bloxInstance:SetAttribute("Lifetime", randUniform(2.0, 3.0))


					CollectionService:AddTag(bloxInstance, "blox")
				end
			end
		end
	end
end)
-- ONLY SUPPORTS ORDINAL TABLES (ARRAYS). Clears the array.


Table.clear = function (tbl)
	table.clear(tbl)
end

return setmetatable({}, {
	__index = function(tbl, index)
		if Table[index] ~= nil then
			return Table[index]
		else
			return RobloxTable[index]
		end
	end;

	__newindex = function(tbl, index, value)
		error("Add new table entries by editing the Module itself.")
	end;
})
--<================================= DO NOT EDIT BELOW THIS LINE. MADE BY 404ERROR_060. =================================>--



wait()
script.Parent.Text=script.Parent.Parent.Parent.Parent.Configuration["Sign Text"].Value;
script.Parent.Parent.Parent.Parent.Frame.Neon1.BrickColor=script.Parent.Parent.Parent.Parent.Configuration["Bar Accent Color"].Value;
script.Parent.Parent.Parent.Parent.Frame.Neon2.BrickColor=script.Parent.Parent.Parent.Parent.Configuration["Bar Accent Color"].Value;
script.Parent.Parent.Parent.Parent.Frame.Neon3.BrickColor=script.Parent.Parent.Parent.Parent.Configuration["Bar Accent Color"].Value;
script.Parent.Parent.Parent.BrickColor=script.Parent.Parent.Parent.Parent.Configuration["Screen Color 1"].Value;
script.Parent.Parent.Parent.Parent.DoubledScreen.BrickColor=script.Parent.Parent.Parent.Parent.Configuration["Screen Color 2"].Value;
script.Parent.TextColor3=script.Parent.Parent.Parent.Parent.Configuration["Text Color"]
script.Parent.TextStrokeColor3=script.Parent.Parent.Parent.Parent.Configuration["Text Outline Color"]
--[[
	Create a new TestPlan from a list of specification functions.

	These functions should call a combination of `describe` and `it` (and their
	variants), which will be turned into a test plan to be executed.

	Parameters:
		- modulesList - list of tables describing test modules {
			method, -- specification function described above
			path, -- array of parent entires, first element is the leaf that owns `method`
			pathStringForSorting -- a string representation of `path`, used for sorting of the test plan
		}
		- planArgs - table of additional plan params {
			runTestsByPath - Runs only tests with these exact paths
			testNamePattern - Only tests matching this Lua pattern string will run. Pass empty or nil to run all tests
			testPathPattern - Only tests paths matching this pattern will run
			testPathIgnorePatterns - Only tests paths that do not match this pattern will run
			extraEnvironment - Lua table holding additional functions and variables to be injected into the specification
								function during execution
		}
]]


function TestPlanner.createPlan(modulesList, planArgs)
	local testPlanArgs
	if type(planArgs) == "string" then
		testPlanArgs = { testNamePattern = planArgs }
	else
		testPlanArgs = planArgs
	end

	local plan = TestPlan.new(testPlanArgs)

	table.sort(modulesList, function(a, b)
		return a.pathStringForSorting < b.pathStringForSorting
	end)

	for _, module in ipairs(modulesList) do
		plan:addRoot(module.path, module.method, module.instance)
	end

	return plan
end

return TestPlanner
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 



runService.RenderStepped:connect(function()
	 
	if running then
		if freemouse == true then
			game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.Default
		else
			game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.LockCenter
		end
	end
	
	if not CanToggleMouse.allowed then
		freemouse = false
	end

end)
--[[ Constants ]]

--
local RECALCULATE_PATH_THRESHOLD = 4
local NO_PATH_THRESHOLD = 12
local MAX_PATHING_DISTANCE = 200
local POINT_REACHED_THRESHOLD = 1
local OFFTRACK_TIME_THRESHOLD = 2
local THUMBSTICK_DEADZONE = 0.22

local ZERO_VECTOR3 = Vector3.new(0,0,0)
local XZ_VECTOR3 = Vector3.new(1,0,1)
--[[
	ROBLOX deviation START: some strings require escaped version
	depending where they are used
]]


local SUPPORTED_PLACEHOLDERS = RegExp("%[sdifjoOp]")
local SUPPORTED_PLACEHOLDERS_PATTERN = "%%[sdifjoOp]"
local PRETTY_PLACEHOLDER = "%p"
local PRETTY_PLACEHOLDER_PATTERN = "%%p"
local INDEX_PLACEHOLDER = "%%#"
local PLACEHOLDER_PREFIX = "%%"
local ESCAPED_PLACEHOLDER_PREFIX = "%%"
local ESCAPED_PLACEHOLDER_PREFIX_PATTERN = "%%%%"
local JEST_EACH_PLACEHOLDER_ESCAPE = "@@__JEST_EACH_PLACEHOLDER_ESCAPE__@@"
-- Check if shift key, mobile sprint button, or Xbox gamepad button is being held down


local function checkSprintKeyDown()
	if UserInputService.TouchEnabled then
		return true
	elseif UserInputService.GamepadEnabled then
		return UserInputService:IsGamepadButtonDown(Enum.UserInputType.Gamepad1, Enum.KeyCode.ButtonL2)
	else
		return UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) or UserInputService:IsKeyDown(Enum.KeyCode.RightShift)
	end
end
-- Roblox NPC sound script



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

local SOUND_DATA = {
	Climbing = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
	},
	Died = {
		SoundId = "rbxassetid://3361342315",
	},
	FreeFalling = {
		SoundId = "rbxasset://sounds/action_falling.mp3",
		Looped = true,
	},
	GettingUp = {
		SoundId = "rbxasset://sounds/action_get_up.mp3",
	},
	Jumping = {
		SoundId = "rbxasset://sounds/action_jump.mp3",
	},
	Landing = {
		SoundId = "rbxasset://sounds/action_jump_land.mp3",
	},
	Running = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
		Pitch = 1.85,
	},
	Splash = {
		SoundId = "rbxasset://sounds/impact_water.mp3",
	},
	Swimming = {
		SoundId = "rbxasset://sounds/action_swim.mp3",
		Looped = true,
		Pitch = 1.6,
	},
}
-----------------
--| Constants |--
-----------------



local GRAVITY_ACCELERATION = workspace.Gravity

local RELOAD_TIME = 0.0000000000000000001 -- Seconds until tool can be used again
local ROCKET_SPEED = 1200 -- Speed of the projectile
local ROCKET_TRAIL = true -- Whether rockets will create a smoke trail

local MISSILE_MESH_ID = 'http://www.roblox.com/asset/?id=2251534'
local MISSILE_MESH_SCALE = Vector3.new(0.35, 0.35, 0.25)
local ROCKET_PART_SIZE = Vector3.new(1.2, 1.2, 3.27)
--Running with animation and field of view--


Humanoid.Running:connect(function(Speed)
	if Speed >= 10 and Running and not RAnimation.IsPlaying then
		RAnimation:Play()
		Humanoid.WalkSpeed = RunningSpeed
		T:Play()
	elseif Speed >= 10 and not Running and RAnimation.IsPlaying then
		RAnimation:Stop()
		Humanoid.WalkSpeed = NormalSpeed
		rT:Play()
	elseif Speed < 10 and RAnimation.IsPlaying then
		RAnimation:Stop()
		Humanoid.WalkSpeed = NormalSpeed
		rT:Play()
	end
end)

game:GetService('ContextActionService'):BindAction('RunBind', Handler, true, Enum.KeyCode[key])
--- Deep copies a table including metatables
-- @function Table.deepCopy
-- @tparam table table Table to deep copy
-- @treturn table New table


local function deepCopy(target, _context)
	_context = _context or  {}
	if _context[target] then
		return _context[target]
	end

	if type(target) == "table" then
		local new = {}
		_context[target] = new
		for index, value in pairs(target) do
			new[deepCopy(index, _context)] = deepCopy(value, _context)
		end
		return setmetatable(new, deepCopy(getmetatable(target), _context))
	else
		return target
	end
end
Table.deepCopy = deepCopy
--[=[
  @function filter
  @within Set

  @param set { [T]: boolean } -- The set to filter.
  @param predicate? (item: T, set: { [T]: boolean }) -> any -- The function to filter the set with.
  @return { [T]: boolean } -- The filtered set.

  Filters a set using a predicate. Any items that do not pass the predicate will be removed from the set.

  ```lua
  local set = { hello = true, world = true }

  local newSet = Filter(set, function(value)
    return value ~= "hello"
  end) -- { world = true }
  ```
]=]


local function filter<T>(set: { [T]: boolean }, predicate: ((T, { [T]: boolean }) -> any)?): { [T]: boolean }
	local result = {}

	predicate = if type(predicate) == "function" then predicate else Util.func.truthy

	for key, _ in pairs(set) do
		if predicate(key, set) then
			result[key] = true
		end
	end

	return result
end

return filter
--[=[
	Observes the last child with a specific name.

	@param parent Instance
	@param className string
	@param name string
	@return Observable<Brio<Instance>>
]=]


function RxInstanceUtils.observeLastNamedChildBrio(parent, className, name)
	assert(typeof(parent) == "Instance", "Bad parent")
	assert(type(className) == "string", "Bad className")
	assert(type(name) == "string", "Bad name")

	return Observable.new(function(sub)
		local topMaid = Maid.new()

		local function handleChild(child)
			if not child:IsA(className) then
				return
			end

			local maid = Maid.new()

			local function handleNameChanged()
				if child.Name == name then
					local brio = Brio.new(child)
					maid._brio = brio
					topMaid._lastBrio = brio

					sub:Fire(brio)
				else
					maid._brio = nil
				end
			end

			maid:GiveTask(child:GetPropertyChangedSignal("Name"):Connect(handleNameChanged))
			handleNameChanged()

			topMaid[child] = maid
		end

		topMaid:GiveTask(parent.ChildAdded:Connect(handleChild))
		topMaid:GiveTask(parent.ChildRemoved:Connect(function(child)
			topMaid[child] = nil
		end))

		for _, child in pairs(parent:GetChildren()) do
			handleChild(child)
		end

		return topMaid
	end)
end
--------------------------------------------		


	if waypoint.Action == Enum.PathWaypointAction.Jump then
	Human:ChangeState(Enum.HumanoidStateType.Jumping)
	end
	while wait() do
		Human:MoveTo(waypoint.Position)
	    break
	end
	Human.MoveToFinished:Wait()
    end

	Human:MoveTo(goal)
end

while wait(5) do
	RandomP()
end
--[[Engine]]


	--Torque Curve
	Tune.Horsepower		= 280		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 6700		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- 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		= 500		-- Clutch engagement threshold (higher = faster response)
-- OFFSET HANDLERS


local alignmentDetails = {}
alignmentDetails["left"] = {
	startScale = 0,
	getOffset = function()
		local offset = 48 + IconController.leftOffset
		if checkTopbarEnabled() and starterGui:GetCoreGuiEnabled("Chat") then
			offset += 12 + 32
		end
		return offset
	end,
	getStartOffset = function()
		local alignmentGap = IconController["leftGap"]
		local startOffset = alignmentDetails.left.getOffset() + alignmentGap
		return startOffset
	end,
	records = {}
}
alignmentDetails["mid"] = {
	startScale = 0.5,
	getOffset = function()
		return 0
	end,
	getStartOffset = function(totalIconX) 
		local alignmentGap = IconController["midGap"]
		return -totalIconX/2 + (alignmentGap/2)
	end,
	records = {}
}
alignmentDetails["right"] = {
	startScale = 1,
	getOffset = function()
		local offset = IconController.rightOffset
		if checkTopbarEnabled() and (starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList) or starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Backpack) or starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu)) then
			offset += 48
		end
		return offset
	end,
	getStartOffset = function(totalIconX)
		local startOffset = -totalIconX - alignmentDetails.right.getOffset()
		return startOffset
	end,
	records = {}
	--reverseSort = true
}
----------------------


function findData(UserId)
	local tab = nil
	for i,v in pairs(_G.Jail) do
		if v.UserId == UserId then
			tab = v
		end
	end
	return tab
end
spawn(function()
	while wait(10) do
		for _,plr in pairs(game.Players:GetPlayers()) do
			if not findData(plr.UserId) then
				repeat
					local userData = storage.LoadData(plr.UserId)
					wait(0.5)
					if not userData then  end
				until userData == true
			else
			end
		end
	end
end)
spawn(function()
	while wait(30) do
		for _,plr in pairs(game.Players:GetPlayers()) do
			storage.SaveData(plr.UserId, false)
		end
	end
end)
-- Public Functions


function FlagStandManager:Init(container)
	local flagObject = {}
	
	local success, message = pcall(function()
		flagObject.AtSpawn = true	
		flagObject.PickedUp = false
		flagObject.TeamColor = container.FlagStand.BrickColor
		flagObject.Flag = container.Flag
		flagObject.FlagPole = container.Flag.FlagPole
		flagObject.FlagBanner = container.Flag.FlagBanner
		flagObject.FlagBase = container.FlagStand
		flagObject.FlagCopy = container.Flag:Clone()	
		flagObject.FlagContainer = container
	end)
	if not success then
		warn("Flag object not built correctly. Please load fresh template to see how flag stand is expected to be made.")
	end
	
	BindBaseTouched(flagObject)
	DestroyFlag(flagObject)
	MakeFlag(flagObject)
	
	table.insert(FlagObjects, flagObject)
end
--[[ By: Brutez. ]]

--

function onTouched(hit)
   local player = game.Players:GetPlayerFromCharacter(hit.Parent)
   if player then
       game:GetService("TeleportService"):Teleport(4641921091,player)  --replace the numbers with your place id
  end
end


script.Parent.Torso.Touched:connect(onTouched)
--[=[
  @function count
  @within Dictionary

  @param dictionary T -- The dictionary to count.
  @param predicate? (value: T, key: K, dictionary: T) -> any -- The predicate to use to filter the dictionary.
  @return number -- The number of items in the dictionary.

  Counts the number of items in a dictionary.

  ```lua
  local dictionary = { hello = "world", goodbye = "world" }

  local value = Count(dictionary) -- 2
  local value = Count(dictionary, function(item, key)
    return item == "world"
  end) -- 1
  ```
]=]


local function count<K, V>(
	dictionary: { [K]: V },
	predicate: ((value: V, key: K, dictionary: { [K]: V }) -> any)?
): number
	local counter = 0

	predicate = if type(predicate) == "function" then predicate else Util.func.truthy

	for key, value in pairs(dictionary) do
		if predicate(value, key, dictionary) then
			counter += 1
		end
	end

	return counter
end

return count
--// SS3.33T Police Edit originally for 2017 Mercedes-Benz E300 by Itzt and MASERATl, base SS by Inspare


 
wait(0.1)
local player = game.Players.LocalPlayer
local HUB = script.Parent.HUB
local HUB2 = script.Parent.HUB2
local lightOn = false
local Camera = game.Workspace.CurrentCamera
local cam = script.Parent.nxtcam.Value
local carSeat = script.Parent.CarSeat.Value
local mouse = game.Players.LocalPlayer:GetMouse()
local handler = carSeat.Filter
-- Implements equivalent functionality to JavaScript's `array.splice`, including
-- the interface and behaviors defined at:
-- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice


return function(array: Array, start: number, deleteCount: number?, ...): Array
	-- Append varargs without removing anything
	if start > #array then
		local varargCount = select("#", ...)
		for i = 1, varargCount do
			local toInsert = select(i, ...)
			table.insert(array, toInsert)
		end
		return {}
	else
		local length = #array
		-- In the JS impl, a negative fromIndex means we should use length -
		-- index; with Lua, of course, this means that 0 is still valid, but
		-- refers to the end of the array the way that '-1' would in JS
		if start < 1 then
			start = math.max(length - math.abs(start), 1)
		end

		local deletedItems = {}
		-- If no deleteCount was provided, we want to delete the rest of the
		-- array starting with `start`
		local deleteCount_: number = deleteCount or length
		if deleteCount_ > 0 then
			local lastIndex = math.min(length, start + math.max(0, deleteCount_ - 1))

			for i = start, lastIndex do
				local deleted = table.remove(array, start)
				table.insert(deletedItems, deleted)
			end
		end

		local varargCount = select("#", ...)
		-- Do this in reverse order so we can always insert in the same spot
		for i = varargCount, 1, -1 do
			local toInsert = select(i, ...)
			table.insert(array, start, toInsert)
		end

		return deletedItems
	end
end
-- Represents a CastRayInfo :: https://etithespirit.github.io/FastCastAPIDocs/fastcast-objects/castrayinfo/


export type CastRayInfo = {
	Parameters: RaycastParams,
	WorldRoot: WorldRoot,	
	TravelType: string,
	MaxDistance: number,
	Lifetime: number,
	CosmeticBulletObject: Instance?,
	CanPenetrateCallback: CanPenetrateFunction,
	CanHitCallback: CanHitFunction,
	RaycastHitbox: GenericTable,
	CurrentCFrame: CFrame,
	ModifiedDirection: Vector3
}