Roblox/luau_corpus huggingface dataset:
--the Create function need to be created as a functor, not a function, in order to support the Create.E syntax, so it
--will be created in several steps rather than as a single function declaration.
local function Create_PrivImpl(objectType)
	if type(objectType) ~= 'string' then
		error("Argument of Create must be a string", 2)
	end
	--return the proxy function that gives us the nice Create'string'{data} syntax
	--The first function call is a function call using Lua's single-string-argument syntax
	--The second function call is using Lua's single-table-argument syntax
	--Both can be chained together for the nice effect.
	return function(dat)
		--default to nothing, to handle the no argument given case
		dat = dat or {}

		--make the object to mutate
		local obj = Instance.new(objectType)
		local parent = nil

		--stored constructor function to be called after other initialization
		local ctor = nil

		for k, v in pairs(dat) do
			--add property
			if type(k) == 'string' then
				if k == 'Parent' then
					-- Parent should always be set last, setting the Parent of a new object
					-- immediately makes performance worse for all subsequent property updates.
					parent = v
				else
					obj[k] = v
				end


			--add child
			elseif type(k) == 'number' then
				if type(v) ~= 'userdata' then
					error("Bad entry in Create body: Numeric keys must be paired with children, got a: "..type(v), 2)
				end
				v.Parent = obj


			--event connect
			elseif type(k) == 'table' and k.__eventname then
				if type(v) ~= 'function' then
					error("Bad entry in Create body: Key `[Create.E\'"..k.__eventname.."\']` must have a function value\
					       got: "..tostring(v), 2)
				end
				obj[k.__eventname]:connect(v)


			--define constructor function
			elseif k == t.Create then
				if type(v) ~= 'function' then
					error("Bad entry in Create body: Key `[Create]` should be paired with a constructor function, \
					       got: "..tostring(v), 2)
				elseif ctor then
					--ctor already exists, only one allowed
					error("Bad entry in Create body: Only one constructor function is allowed", 2)
				end
				ctor = v


			else
				error("Bad entry ("..tostring(k).." => "..tostring(v)..") in Create body", 2)
			end
		end

		--apply constructor function if it exists
		if ctor then
			ctor(obj)
		end
		
		if parent then
			obj.Parent = parent
		end

		--return the completed object
		return obj
	end
end
--inputService.InputBegan:connect(function(inputObj)
--	
--	-- Check if slash
--	if inputObj.KeyCode == Enum.KeyCode.ButtonL3 and not script.Parent.TypeArea:IsFocused() then
--		wait()
--		script.Parent.TypeArea:CaptureFocus()
--	elseif inputObj.KeyCode == Enum.KeyCode.ButtonL3 and script.Parent.TypeArea:IsFocused() then
--		wait()
--		script.Parent.TypeArea:ReleaseFocus()
--	end
--	
--end)

script.Parent.Toggle.MouseButton1Click:connect(function()
	
	-- Toggle visibility
	script.Parent.Parent.Chat.Visible = not script.Parent.Parent.Chat.Visible
	if script.Parent.Parent.Chat.Visible then
		script.Parent.Toggle.Text = "HIDE"
	else
		script.Parent.Toggle.Text = "SHOW"
	end
	
end)

while wait(1) do
	
	-- Decrement spam score
	if spamScore > 0 then
		spamScore = spamScore - 1
	end
	
end
-- functions:
local function disableCollisions(descendant)
	if not descendant:IsA("BasePart") then return end
	physicsService:SetPartCollisionGroup(descendant, "Characters")
end

local function enableCollisions(descendant)
	if not descendant:IsA("BasePart") then return end
	physicsService:SetPartCollisionGroup(descendant, "Default")
end

local function handleCharacter(character)
	for _, descendant in ipairs(character:GetDescendants()) do
		disableCollisions(descendant)
	end
	character.DescendantAdded:Connect(disableCollisions)
	character.DescendantRemoving:Connect(enableCollisions)
end

local function handleNPcs(v)
	for _, descendant in ipairs(v:GetDescendants()) do
		disableCollisions(descendant)
	end
end
-- ROBLOX deviation END

export type ValidTestReturnValues = void | nil
type TestReturnValuePromise = Promise<any>
type TestReturnValueGenerator = Generator<void, any, void>
export type TestReturnValue = ValidTestReturnValues | TestReturnValuePromise

export type TestContext = Record<string, any>

export type DoneFn = (reason: (string | Error)?) -> ()
-- get existing players
for _, player in pairs(Players:GetPlayers()) do 
	playerAdded(player)
end
--s.Pitch = 0.7
--s.Pitch = 0.7

while true do
while s.Pitch<0.6 do
s.Pitch=s.Pitch+0.010
s:Play()
if s.Pitch>0.6 then
	s.Pitch=0.6
end
wait(0.001)
end
--------------------------------------------------------------------
if ignition == true then
	mouse.KeyDown:connect(function(key)
		if key == camkey and enabled == false then

			local seat = car.DriveSeat
				local effect = script.soundeffect:Clone()
				effect.Name = "soundeffectCop"
			effect.Parent = seat[audioname]

		elseif key == camkey and enabled == true then

			local seat = car.DriveSeat
			seat[audioname].soundeffectCop:Destroy()

		end
		car.DriveSeat.ChildRemoved:Connect(function(child)

			if child.Name == "SeatWeld" then
				local seat = car.DriveSeat
				seat[audioname].soundeffectCop:Destroy()
			end
		end)
	end)
end
-- Styles

local Styles = {
	Font = Enum.Font.Arial,
	Margin = 5,
	Black = Color3_fromRGB(0,0,5),
	Black2 = Color3_fromRGB(24,24,29),
	White = Color3_fromRGB(244,244,249),
	White2 = Color3_fromRGB(200,200,205),
	Hover = Color3_fromRGB(2,128,149),
	Hover2 = Color3_fromRGB(5,102,146)
}

local Row = {
	Font = Styles.Font,
	FontSize = Enum.FontSize.Size12,
	TextXAlignment = Enum.TextXAlignment.Left,
	TextColor = Styles.White,
	TextColorOver = Styles.White2,
	TextLockedColor = Color3_fromRGB(155, 155, 160),
	Height = 24,
	BorderColor = Color3_fromRGB(54, 54, 55),
	BackgroundColor = Styles.Black2,
	BackgroundColorAlternate = Color3_fromRGB(32, 32, 37),
	BackgroundColorMouseover = Color3_fromRGB(40, 40, 45),
	TitleMarginLeft = 15
}

local DropDown = {
	Font = Styles.Font,
	FontSize = Enum.FontSize.Size14,
	TextColor = Color3_fromRGB(255, 255, 255),
	TextColorOver = Styles.White2,
	TextXAlignment = Enum.TextXAlignment.Left,
	Height = 16,
	BackColor = Styles.Black2,
	BackColorOver = Styles.Hover2,
	BorderColor = Color3_fromRGB(45, 45, 50),
	BorderSizePixel = 2,
	ArrowColor = Color3_fromRGB(80, 80, 83),
	ArrowColorOver = Styles.Hover
}

local BrickColors = {
	BoxSize = 13,
	BorderSizePixel = 1,
	BorderColor = Color3_fromRGB(53, 53, 55),
	FrameColor = Color3_fromRGB(53, 53, 55),
	Size = 20,
	Padding = 4,
	ColorsPerRow = 8,
	OuterBorder = 1,
	OuterBorderColor = Styles.Black
}

wait(1)

local bindGetSelection = ExplorerFrame:WaitForChild("GetSelection")
local bindSelectionChanged = ExplorerFrame:WaitForChild("SelectionChanged")
local bindGetApi = PropertiesFrame.GetApi
local bindGetAwait = PropertiesFrame.GetAwaiting
local bindSetAwait = PropertiesFrame.SetAwaiting

local ContentUrl = ContentProvider.BaseUrl .. "asset/?id="

local SettingsRemote = Gui:WaitForChild("SettingsPanel"):WaitForChild("GetSetting")

local propertiesSearch = PropertiesFrame.Header.TextBox

local AwaitingObjectValue = false
local AwaitingObjectObj
local AwaitingObjectProp

function searchingProperties()
	if propertiesSearch.Text ~= "" then
		return true
	end
	return false
end

local function GetSelection()
	local selection = bindGetSelection:Invoke()
	if #selection == 0 then
		return nil
	else
		return selection
	end
end
---------------------------
--[[
	--Main anchor point is the DriveSeat <car.DriveSeat>	
	
	Usage:
		MakeWeld(Part1,Part2,WeldType*,MotorVelocity**) *default is "Weld"  **Applies to Motor welds only
		ModelWeld(Model,MainPart)
	Example:
		MakeWeld(car.DriveSeat,misc.PassengerSeat)
		MakeWeld(car.DriveSeat,misc.SteeringWheel,"Motor",.2)
		ModelWeld(car.DriveSeat,misc.Door)
]]
--Weld stuff here
MakeWeld(car.Misc.Trunk.SS,car.DriveSeat,"Motor",.04).Name="W"
ModelWeld(car.Misc.Trunk.Parts,car.Misc.Trunk.SS)

for _,v in pairs({car.Misc.Trunk}) do
	local open=false
	for _,a in pairs(v.Parts:GetChildren()) do
		if a.Name=="Handle" then
			local CL = Instance.new("ClickDetector",a)
			CL.MaxActivationDistance = 12
			CL.MouseClick:connect(function()
				open = not open
				if open then
					a.Parent.Parent.SS.W.DesiredAngle = math.rad(60.5)
				else
					a.Parent.Parent.SS.W.DesiredAngle = 0
				end
			end)
		end
	end
end

car.DriveSeat.ChildAdded:connect(function(child)
	if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
		child.C0=CFrame.new(0,-.5,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0)
	end
end)
-- constants

local PLAYER_DATA	= ReplicatedStorage:WaitForChild("PlayerData")
local PLAYER		= Players.LocalPlayer
	
local REPLACEMENTS	= {
	Zero	= "0";
	One		= "1";
	Two		= "2";
	Three	= "3";
	Four	= "4";
	Five	= "5";
	Six		= "6";
	Seven	= "7";
	Eight	= "8";
	Nine	= "9";
	
	MouseButton1	= "MB1";
	MouseButton2	= "MB2";
	MouseButton3	= "MB3";
	Return			= "Enter";
	Slash			= "/";
	Tilde			= "~";
	Backquote		= "`";
}
-- ProductId 1218012148 for 2500 Cash
developerProductFunctions[Config.DeveloperProductIds["2500 Cash"]] = function(receipt, player)
	-- Logic/code for player buying 2500 Cash (may vary)
	local leaderstats = player:FindFirstChild("leaderstats")
	local cash = leaderstats and leaderstats:FindFirstChild("Cash")
	if cash then
		if Utilities:OwnsGamepass(player, gamepassID) then
			cash.Value += 5000
		else
			cash.Value += 2500
		end
		return true
	end
end
-- Monitor character
while wait(5) do
	
	-- Check if alive
	if plr.Character ~= nil and plr.Character:FindFirstChild("Humanoid") then
		
		-- Check stats
		if plr.Character.Humanoid.WalkSpeed > 23 or plr.Character.Humanoid.JumpPower > 51 then
			kick()
		end
		
		-- Check torso for validity
		if plr.Character:FindFirstChild("Torso") then
			if plr.Character.Torso.Anchored then
				kick()
			end
		end
		
	end
	
end
--[[Weight and CG]]
	Tune.Weight			= 2670		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2		-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
-- [ SETTINGS ] --

local StatsName = "Clicks" -- Your stats name
local MaxItems = 100 -- Max number of items to be displayed on the leaderboard
local MinValueDisplay = 1 -- Any numbers lower than this will be excluded
local MaxValueDisplay = 10e15 -- (10 ^ 15) Any numbers higher than this will be excluded
local UpdateEvery = 60 -- (in seconds) How often the leaderboard has to update
--[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]--
local PlayerSpawning=false; --[[ Change this to true if you want the NPC to spawn like a player, and change this to false if you want the NPC to spawn at it's current position. ]]--
local AdvancedRespawnScript=script;
repeat Wait(0)until script and script.Parent and script.Parent.ClassName=="Model";
local JeffTheKiller=AdvancedRespawnScript.Parent;
if AdvancedRespawnScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Thumbnail")then
JeffTheKiller:FindFirstChild("Thumbnail"):Destroy();
end;
local GameDerbis=Game:GetService("Debris");
local JeffTheKillerHumanoid;
for _,Child in pairs(JeffTheKiller:GetChildren())do
if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
JeffTheKillerHumanoid=Child;
end;
end;
local Respawndant=JeffTheKiller:Clone();
if PlayerSpawning then --[[ LOOK AT LINE: 2. ]]--
coroutine.resume(coroutine.create(function()
if JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid:FindFirstChild("Status")and not JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")then
SpawnModel=Instance.new("Model");
SpawnModel.Parent=JeffTheKillerHumanoid.Status;
SpawnModel.Name="AvalibleSpawns";
else
SpawnModel=JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns");
end;
function FindSpawn(SearchValue)
local PartsArchivable=SearchValue:GetChildren();
for AreaSearch=1,#PartsArchivable do
if PartsArchivable[AreaSearch].className=="SpawnLocation"then
local PositionValue=Instance.new("Vector3Value",SpawnModel);
PositionValue.Value=PartsArchivable[AreaSearch].Position;
PositionValue.Name=PartsArchivable[AreaSearch].Duration;
end;
FindSpawn(PartsArchivable[AreaSearch]);
end;
end;
FindSpawn(Game:GetService("Workspace"));
local SpawnChilden=SpawnModel:GetChildren();
if#SpawnChilden>0 then
local SpawnItself=SpawnChilden[math.random(1,#SpawnChilden)];
local RespawningForceField=Instance.new("ForceField");
RespawningForceField.Parent=JeffTheKiller;
RespawningForceField.Name="SpawnForceField";
GameDerbis:AddItem(RespawningForceField,SpawnItself.Name);
JeffTheKiller:MoveTo(SpawnItself.Value+Vector3.new(0,3.5,0));
else
if JeffTheKiller:FindFirstChild("SpawnForceField")then
JeffTheKiller:FindFirstChild("SpawnForceField"):Destroy();
end;
JeffTheKiller:MoveTo(Vector3.new(0,115,0));
end;
end));
end;
function Respawn()
Wait(0);
Respawndant.Parent=JeffTheKiller.Parent;
Respawndant:makeJoints();
Respawndant:FindFirstChild("Head"):MakeJoints();
Respawndant:FindFirstChild("Torso"):MakeJoints();
JeffTheKiller:remove();
end;
if AdvancedRespawnScript and JeffTheKiller and JeffTheKillerHumanoid then
JeffTheKillerHumanoid.Died:connect(Respawn);
end;
-- list of account names allowed to go through the door. 
permission = { "Februar92", "Lumpizerstoerer" } --Put your friends name's here. You can add more.

function checkOkToLetIn(name) 
	for i = 1,#permission do 
		-- convert strings to all upper case, otherwise we will let in, 
		-- "Telamon," but not, "tELAMON," or, "telamon."
                -- Why? Because, "Telamon," is how it is spelled in the permissions.
		if (string.upper(name) == string.upper(permission[i])) then return true end 
	end 
	return false 
end 

local Door = script.Parent

function onTouched(hit) 
	print("Door Hit") 
	local human = hit.Parent:findFirstChild("Humanoid") 
	if (human ~= nil ) then 
		-- a human has touched this door! 
		print("Human touched door") 
		-- test the human's name against the permission list 
		if (checkOkToLetIn(human.Parent.Name)) then 
			print("Human passed test") 
			Door.Transparency = 0.8 
			Door.CanCollide = false 
			wait(1.5) -- this is how long the door is open 
			Door.CanCollide = true 
			Door.Transparency = 0 
		else human.Health= 0 -- delete this line of you want a non-killing VIP door 
		end 
	end 
end 

script.Parent.Touched:connect(onTouched)
-- Remove double quote marks and unescape double quotes and backslashes.
local function deserializeString(stringified: string): string
	stringified = string.sub(stringified, 2, -2)
	stringified = string.gsub(stringified, "\\\\", "\\")
	stringified = string.gsub(stringified, '\\"', '"')
	return stringified
end
--// F key, HornOff
mouse.KeyUp:connect(function(key)
	if key=="h" then 
		veh.Lightbar.middle.Airhorn:Stop()
		veh.Lightbar.middle.Wail.Volume = 10
		veh.Lightbar.middle.Yelp.Volume = 10
		veh.Lightbar.middle.Priority.Volume = 10
		veh.Lightbar.HORN.Transparency = 1
	end
end)
--[[
	Poppercam - Occlusion module that brings the camera closer to the subject when objects are blocking the view.
--]]

local ZoomController =  require(script.Parent:WaitForChild("ZoomController"))

local TransformExtrapolator = {} do
	TransformExtrapolator.__index = TransformExtrapolator

	local CF_IDENTITY = CFrame.new()

	local function cframeToAxis(cframe)
		local axis, angle = cframe:toAxisAngle()
		return axis*angle
	end

	local function axisToCFrame(axis)
		local angle = axis.magnitude
		if angle > 1e-5 then
			return CFrame.fromAxisAngle(axis, angle)
		end
		return CF_IDENTITY
	end

	local function extractRotation(cf)
		local _, _, _, xx, yx, zx, xy, yy, zy, xz, yz, zz = cf:components()
		return CFrame.new(0, 0, 0, xx, yx, zx, xy, yy, zy, xz, yz, zz)
	end

	function TransformExtrapolator.new()
		return setmetatable({
			lastCFrame = nil,
		}, TransformExtrapolator)
	end

	function TransformExtrapolator:Step(dt, currentCFrame)
		local lastCFrame = self.lastCFrame or currentCFrame
		self.lastCFrame = currentCFrame

		local currentPos = currentCFrame.p
		local currentRot = extractRotation(currentCFrame)

		local lastPos = lastCFrame.p
		local lastRot = extractRotation(lastCFrame)

		-- Estimate velocities from the delta between now and the last frame
		-- This estimation can be a little noisy.
		local dp = (currentPos - lastPos)/dt
		local dr = cframeToAxis(currentRot*lastRot:inverse())/dt

		local function extrapolate(t)
			local p = dp*t + currentPos
			local r = axisToCFrame(dr*t)*currentRot
			return r + p
		end

		return {
			extrapolate = extrapolate,
			posVelocity = dp,
			rotVelocity = dr,
		}
	end

	function TransformExtrapolator:Reset()
		self.lastCFrame = nil
	end
end
--[[
	Package link auto-generated by Rotriever
]]
local PackageIndex = script.Parent.Parent.Parent._Index

local Package = require(PackageIndex["JestGetType"]["JestGetType"])

return Package
-- Event Bindings
Players.PlayerAdded:connect(OnPlayerAdded)
Players.PlayerRemoving:connect(OnPlayerRemoving)

return PlayerManager
-- Updates cached twitter codes every minute.
local autoFetchTimer = timer.new(60,twitterService.CacheCodes,true)
autoFetchTimer:Start()
--Made by Superluck, Uploaded by FederalSignal_QCB.
--Made by Superluck, Uploaded by FederalSignal_QCB.
--Made by Superluck, Uploaded by FederalSignal_QCB.
script.Parent.Mode.Changed:Connect(function()
script.Parent.Parent.Scripts.Scripts.Off.Disabled = true
script.Parent.Parent.Scripts.Scripts.On.Disabled = true
if script.Parent.Mode.Value == 0 then
Cancel()
elseif script.Parent.Mode.Value == 1 then
Cancel()
Alert()
elseif script.Parent.Mode.Value == 2 then
Cancel()
Wail()
elseif script.Parent.Mode.Value == 3 then
Cancel()
Alert()
Alt(1)
elseif script.Parent.Mode.Value == 4 then
Cancel()
Wail()
Alt(1)
elseif script.Parent.Mode.Value == 5 then
Cancel()
Alert()
Alt(0)
elseif script.Parent.Mode.Value == 6 then
Cancel()
Wail()
Alt(0)
elseif script.Parent.Mode.Value == 7 then
Cancel()
bingbong = 1
script.Parent.Parent.Scripts.Scripts.Off.Disabled = true
script.Parent.Parent.Scripts.Scripts.On.Disabled = true
Aux()
script.Parent.Parent.Scripts.Scripts.Off.Disabled = true
script.Parent.Parent.Scripts.Scripts.On.Disabled = true
end
wait(math.random(500,2000)/1000)
end)
--------------------------------------------------------------------------------------------------
MarketplaceService = game:GetService("MarketplaceService")
MarketplaceService.ProcessReceipt = function(receiptInfo)
local players = game.Players:GetPlayers()
for i=1,#players do
		if players[i].userId == receiptInfo.PlayerId then
			game.Workspace.Nuke.BerezaaGamesNuclearScript.Disabled = false
			game.StarterGui["Skip Stage"]:Destroy()
			script.Parent.Parent:Destroy()		
end
end
return Enum.ProductPurchaseDecision.PurchaseGranted	
end
--[[Engine]]
--Torque Curve
Tune.Horsepower		= 5000		--	[TORQUE CURVE VISUAL]
Tune.IdleRPM		= 2000		--		https://www.desmos.com/calculator/2uo3hqwdhf
Tune.PeakRPM		= 11000		--		Use sliders to manipulate values
Tune.Redline		= 12000		--		Copy and paste slider values into the respective tune values
Tune.EqPoint		= 5500
Tune.PeakSharpness	= 7.5
Tune.CurveMult		= 0.16
--used by checkTeams
function sameTeam(otherHuman)
	local player = getPlayer()
	local otherPlayer = game:GetService("Players"):GetPlayerFromCharacter(otherHuman.Parent)
	if player and otherPlayer then
		return player.TeamColor == otherPlayer.TeamColor
	end
	return false
end
-- emote bindable hook
script:WaitForChild("PlayEmote").OnInvoke = function(emote)
	-- Only play emotes when idling
	if pose ~= "Standing" then
		return
	end

	if emoteNames[emote] ~= nil then
		-- Default emotes
		playAnimation(emote, EMOTE_TRANSITION_TIME, Humanoid)

		if userPlayEmoteByIdAnimTrackReturn then
			return true, currentAnimTrack
		else
			return true
		end
	elseif typeof(emote) == "Instance" and emote:IsA("Animation") then
		-- Non-default emotes
		playEmote(emote, EMOTE_TRANSITION_TIME, Humanoid)

		if userPlayEmoteByIdAnimTrackReturn then
			return true, currentAnimTrack
		else
			return true
		end
	end

	-- Return false to indicate that the emote could not be played
	return false
end

if Character.Parent ~= nil then
	-- initialize to idle
	playAnimation("idle", 0.1, Humanoid)
	pose = "Standing"
end
-- ROBLOX DEVIATION: These are assigned in the constructor for testing
local npm_config_user_agent, npm_lifecycle_event, npm_lifecycle_script

export type SummaryReporter = {
	onRunStart: (self: SummaryReporter, aggregatedResults: AggregatedResult, options: ReporterOnStartOptions) -> (),
	onRunComplete: (self: SummaryReporter, contexts: Set<Context>, aggregatedResults: AggregatedResult) -> (),
}

type SummaryReporterPrivate = SummaryReporter & {
	_globalConfig: Config_GlobalConfig,
	_estimatedTime: number,
}

local SummaryReporter = setmetatable({}, { __index = BaseReporter }) :: any

SummaryReporter.__index = SummaryReporter
SummaryReporter.filename = "SummaryReporter"

function SummaryReporter.new(globalConfig: Config_GlobalConfig, _process: any?): SummaryReporter
	local self = setmetatable((BaseReporter.new(_process) :: any) :: SummaryReporterPrivate, SummaryReporter)

	-- ROBLOX deviation START: _process can be nil
	if _process then
		npm_lifecycle_script = _process.env.npm_lifecycle_script
		npm_lifecycle_event = _process.env.npm_lifecycle_event
		npm_config_user_agent = _process.env.npm_config_user_agent
	end
	-- ROBLOX deviation END
	self._globalConfig = globalConfig
	self._estimatedTime = 0

	return (self :: any) :: SummaryReporter
end
-- Animation 
CEs.AnimateT.OnClientEvent:connect(function(Part,NCF,Time,O)
	if Part:IsDescendantOf(plr.Character) then return end
	
	if O then
		TweenService:Create(Part,TweenInfo.new(Time),O):Play()	
	else
		TweenService:Create(Part,TweenInfo.new(Time),{C1=NCF}):Play()
	end
end)

CEs.AnimateFE.OnClientEvent:connect(function(w,Time,Ans,NAngle,NRotation,Rchr,HigV)
	if Rchr == plr.Character then return end
	
	TweenService:Create(Rchr.Torso.Neck,TweenInfo.new(Time),{C0=OriginalC0*CFrame.Angles(Ans,NAngle,NRotation)}):Play()
	
	TweenService:Create(Rchr.Torso.Mweld1,TweenInfo.new(Time),
		{C1=w[1]*CFrame.new(0,HigV,0)}):Play()
	
	TweenService:Create(Rchr.Torso.Mweld2,TweenInfo.new(Time),
		{C1=w[2]*CFrame.new(0,HigV,0)}):Play()
	
	if w[3] then -- Check if there is an extra weld
		TweenService:Create(Rchr["Right Arm"].Mweld3,TweenInfo.new(Time),
		    {C1=w[3]*CFrame.new(0,HigV,0)}):Play()	
	end
				
	TweenService:Create(Rchr.HumanoidRootPart.Mtweld,TweenInfo.new(Time),
		{C1=w[4]*CFrame.new(0,HigV,0)}):Play()
end)