Pinkstack/roblox-luau-corpus-text huggingface dataset:
--- Add a line to the command bar


function Window:AddLine(text, color)
	text = tostring(text)

	if #text == 0 then
		Window:UpdateWindowHeight()
		return
	end

	local str = self.Cmdr.Util.EmulateTabstops(text or "nil", 8)
	local line = Line:Clone()
	line.Size =
		UDim2.new(
			line.Size.X.Scale,
			line.Size.X.Offset,
			0,
			TextService:GetTextSize(
				str,
				line.TextSize,
				line.Font,
				Vector2.new(Gui.UIListLayout.AbsoluteContentSize.X, math.huge)
			).Y + (LINE_HEIGHT - line.TextSize)
		)
	line.Text = str
	line.TextColor3 = color or line.TextColor3
	line.Parent = Gui
end
--[[Weight and CG]]


	Tune.Weight			= 3001		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		15		}
	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.17			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
-- ================================================================================
-- PUBLIC FUNCTIONS
-- ================================================================================


function Engine.new(speeder)	
	local newEngine = {}
	setmetatable(newEngine, Engine)

	newEngine.Speeder = speeder
	newEngine.Main = speeder.main
	newEngine.Mass = speeder.mass
	
	-- Attachment
	local attachment = Instance.new("Attachment")
	attachment.Parent = speeder.main
	
	-- Thruster (foward/backward)
	newEngine.Thruster = Instance.new("BodyVelocity")
	newEngine.Thruster.Name = "Thruster"
	newEngine.Thruster.Parent = speeder.main
	
	-- Gyro (steering)
	newEngine.Steering = Instance.new("BodyGyro")
	newEngine.Steering.Name = "Steering"
	newEngine.Steering.Parent = speeder.main
	
	newEngine._settings = speeder._settings
	
	-- Set settings
	newEngine._SPEED = newEngine._settings.DefaultSpeed
	newEngine._BOOSTSPEED = newEngine._settings.BoostSpeed
	newEngine._PITCH = (3.5*newEngine._settings.Steering)*(math.pi/180)
	newEngine._YAW = (-4*newEngine._settings.Steering)*(math.pi/180)
	newEngine._ROLL = (2*newEngine._settings.Steering)*(math.pi/180)
	
	EngineRate = IIRFilter(0.005)
	
	StartSound:Play()
	local soundConnection
	soundConnection = StartSound.Ended:Connect(function()
		MotorSound:Play()
		soundConnection:Disconnect()
	end)
	
	return newEngine
end -- Engine:new()
--[ FUNCTION ]-



function updateMusic()
	local id = string.gsub(music.SoundId, "rbxassetid://", "")
	local success, info = pcall(mps.GetProductInfo, mps, id)
	if success then
		Frame:TweenPosition(UDim2.new(0.288, 0, 0.026, 0),"Out","Quad",.5,true) -- changing it to in
		script.Parent.Text = "Now Playing : " .. info.Name -- changing name
		if requester.Value ~= "" then
			label.Text = string.format("Song requested by: %s", requester.Value)
			label.Visible = true
		else
			label.Visible = false
		end
		
		wait(5) -- wait to close it

		Frame:TweenPosition(UDim2.new(0.288, 0,-1, 0),"In","Quad",.5,true) -- changing it to in
	end
end


updateMusic()


music:GetPropertyChangedSignal("SoundId"):Connect(updateMusic)
-- Player specific convenience variables


local MyPlayer = nil
local MyCharacter = nil
local MyHumanoid = nil
local MyTorso = nil
local MyMouse = nil


local RecoilAnim
local RecoilTrack = nil

local ReloadAnim
local ReloadTrack = nil

local IconURL = Tool.TextureId  
local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')


local FireSound

local OnFireConnection = nil
local OnReloadConnection = nil

local DecreasedAimLastShot = false
local LastSpreadUpdate = time()

local flare = script.Parent:WaitForChild("Flare")

local FlashHolder = nil


local WorldToCellFunction = Workspace.Terrain.WorldToCellPreferSolid
local GetCellFunction = Workspace.Terrain.GetCell

function RayIgnoreCheck(hit, pos)
	if hit then
		if hit.Transparency >= 1 or string.lower(hit.Name) == "water" or
				hit.Name == "Effect" or hit.Name == "Rocket" or hit.Name == "Bullet" or
				hit.Name == "Handle" or hit:IsDescendantOf(MyCharacter) then
			return true
		elseif hit:IsA('Terrain') and pos then
			local cellPos = WorldToCellFunction(Workspace.Terrain, pos)
			if cellPos then
				local cellMat = GetCellFunction(Workspace.Terrain, cellPos.x, cellPos.y, cellPos.z)
				if cellMat and cellMat == Enum.CellMaterial.Water then
					return true
				end
			end
		end
	end
	return false
end
----------------------------------
------------FUNCTIONS-------------
----------------------------------



function Receive(player, action, ...)
	local args = {...}
	if player == User and action == "play" then
		Connector:FireAllClients("play", User, args[1], Settings.SoundSource.Position, Settings.PianoSoundRange, Settings.PianoSounds, args[2], Settings.IsCustom)
		HighlightPianoKey((args[1] > 61 and 61) or (args[1] < 1 and 1) or args[1],args[3])
	elseif player == User and action == "abort" then
		Deactivate()
		if SeatWeld then
			SeatWeld:remove()
		end
	end
end

function Activate(player)
	Connector:FireClient(player, "activate", Settings.CameraCFrame, Settings.PianoSounds, true)
	User = player
	Startup()
end

function Deactivate()
	coroutine.resume(coroutine.create(Shutdown))
	wait()
	if User and User.Parent then
		Connector:FireClient(User, "deactivate")
		User.Character:SetPrimaryPartCFrame(Box.CFrame + Vector3.new(0, 5, 0))
	end
	User = nil
end
--[[  Now for the rest  ]]


local Lighting = game:GetService("Lighting")
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local gamepassId = 184464896 --Put the ID of the asset here
local toolNames = {"Portal Gun"} --Must be in lighting
local toolsParent = Lighting

local function onPlayerAdded(player)
    local function onCharacterAdded(character)
        if MarketplaceService:UserOwnsGamePassAsync(player.UserId, gamepassId) then
            for i = 1, #toolNames do
                local tool = toolsParent:FindFirstChild(toolNames[i])
                if tool then
                    local clone = tool:Clone()
                    clone.Parent = player.Backpack
                end
            end
        end
    end

    if player.Character then
        onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
end

Players.PlayerAdded:Connect(onPlayerAdded)
--Precalculated paths


local t,f,n=true,false,{}
local r={
[58]={{45,44,28,29,31,32,34,35,39,41,30,56,58},t},
[49]={{45,49},t},
[16]={n,f},
[19]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19},t},
[59]={{45,44,28,29,31,32,34,35,39,41,59},t},
[63]={{45,44,28,29,31,32,34,35,39,41,30,56,58,23,62,63},t},
[34]={{45,44,28,29,31,32,34},t},
[21]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,21},t},
[48]={{45,49,48},t},
[27]={{45,44,28,27},t},
[14]={n,f},
[31]={{45,44,28,29,31},t},
[56]={{45,44,28,29,31,32,34,35,39,41,30,56},t},
[29]={{45,44,28,29},t},
[13]={n,f},
[47]={{45,49,48,47},t},
[12]={n,f},
[45]={{45},t},
[57]={{45,44,28,29,31,32,34,35,39,41,30,56,57},t},
[36]={{45,44,28,29,31,32,33,36},t},
[25]={{45,44,28,27,26,25},t},
[71]={{45,44,28,29,31,32,34,35,39,41,59,61,71},t},
[20]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20},t},
[60]={{45,44,28,29,31,32,34,35,39,41,60},t},
[8]={n,f},
[4]={n,f},
[75]={{45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73,75},t},
[22]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,21,22},t},
[74]={{45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73,74},t},
[62]={{45,44,28,29,31,32,34,35,39,41,30,56,58,23,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{45,44,28,29,31,32,33,36,37},t},
[2]={n,f},
[35]={{45,44,28,29,31,32,34,35},t},
[53]={{45,49,48,47,52,53},t},
[73]={{45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73},t},
[72]={{45,44,28,29,31,32,34,35,39,41,59,61,71,72},t},
[33]={{45,44,28,29,31,32,33},t},
[69]={{45,44,28,29,31,32,34,35,39,41,60,69},t},
[65]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,65},t},
[26]={{45,44,28,27,26},t},
[68]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,67,68},t},
[76]={{45,44,28,29,31,32,34,35,39,41,59,61,71,72,76},t},
[50]={{45,49,48,47,50},t},
[66]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66},t},
[10]={n,f},
[24]={{45,44,28,27,26,25,24},t},
[23]={{45,44,28,29,31,32,34,35,39,41,30,56,58,23},t},
[44]={{45,44},t},
[39]={{45,44,28,29,31,32,34,35,39},t},
[32]={{45,44,28,29,31,32},t},
[3]={n,f},
[30]={{45,44,28,29,31,32,34,35,39,41,30},t},
[51]={{45,49,48,47,50,51},t},
[18]={n,f},
[67]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,67},t},
[61]={{45,44,28,29,31,32,34,35,39,41,59,61},t},
[55]={{45,49,48,47,52,53,54,55},t},
[46]={{45,49,48,47,46},t},
[42]={{45,44,28,29,31,32,34,35,38,42},t},
[40]={{45,44,28,29,31,32,34,35,40},t},
[52]={{45,49,48,47,52},t},
[54]={{45,49,48,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{45,44,28,29,31,32,34,35,39,41},t},
[17]={n,f},
[38]={{45,44,28,29,31,32,34,35,38},t},
[28]={{45,44,28},t},
[5]={n,f},
[64]={{45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64},t},
}
return r
--[[_________________________________________________
	!!!Put this is StarterPack OR IT WILL NOT WORK!!!
	_________________________________________________
--]]
--Do not edit the Below unless you know what you are doing!--
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


wait(1)
while true do
		wait(0.001)
		if script.Parent.TextButton.Text ==("Click to disable Rainbow Trail")then
		fs = Instance.new("Part")
		fs.TopSurface = "Smooth"
		fs.BottomSurface = "Smooth"
		fs.Anchored = true
		fs.FormFactor = "Custom"
		fs.Shape = "Ball"
		fs.Size = Vector3.new(0.9, 1.5, 0.9)
		fs.Transparency = 0.2
		fs.CanCollide = false
		fs.BrickColor = BrickColor.Random()
		fs.CFrame = script.Parent.Parent.Parent.Character:FindFirstChild("Torso").CFrame
		fs.Parent = game.Workspace		
		game.Debris:AddItem(fs,1)
		end
	end
---WeldConstraint anything you want to move to the TargetL_Closed and TargetR_Closed MeshParts. 
---TargetL_Closed and TargetR_Closed should be anchored but child welded objects that move with TargetL_Closed and TargetR_Closed should not be anchored.
---You may move, rotate and scale the Targets but for a simple door only translation is used. 
---IntValue Speed controls the doors speed to open and close.
---After you have finished creating your door turn the transparency of Trigger, TargetL_Closed, TargetL_Open, TargetR_Closed and TargetR_Open to 1 or fully transparent.



local TweenService = game:GetService("TweenService")

local model = script.Parent

local trigger = model.Trigger

local left = model.TargetL_Closed
local right = model.TargetR_Closed

local doorTrigger = model.DoorTrigger.Value

local tweenInfo = TweenInfo.new (
	model.Speed.Value, --Time/Speed of Door Tween
	Enum.EasingStyle.Quart,  --Easing Style
	Enum.EasingDirection.InOut, --EasingDirection
	0, --Repeat Count
	false, --Reverse true
	0 --Delay
)

local DoorState = {
	["Closed"] = 1,
	["Opening"] = 2,
	["Open"] = 3,
	["Closing"] = 4,
}

local doorState = DoorState.Closed 
local playersNear = {}

local tweenL = TweenService:Create(left, tweenInfo, {CFrame = model.TargetL_Open.CFrame})
local tweenR = TweenService:Create(right, tweenInfo, {CFrame = model.TargetR_Open.CFrame})

local tweenLClose = TweenService:Create(left, tweenInfo, {CFrame = model.TargetL_Closed.CFrame})
local tweenRClose = TweenService:Create(right, tweenInfo, {CFrame = model.TargetR_Closed.CFrame})

local function StartOpening()
	doorTrigger.CanTouch = false
	print("False")
	doorState = DoorState.Opening
	model["Door"]:Play()

	tweenL:Play()
	tweenR:Play()
	wait(7)
	doorTrigger.CanTouch = true
	print("True")
end

local function StartClosing()
	doorState = DoorState.Closing
	--model["Door"]:Play()

	tweenLClose:Play()
	tweenRClose:Play()
end

local function tweenOpenCompleted(playbackState)
	if(next(playersNear) == nil) then
		StartClosing()
	else
		doorState = DoorState.Open
	end
end

local function tweenCloseCompleted(playbackState)
	if(next(playersNear) ~= nil) then
		StartOpening()
	else
		doorState = DoorState.Closed
	end
end

tweenL.Completed:Connect(tweenOpenCompleted)
tweenLClose.Completed:Connect(tweenCloseCompleted)

local function touched(otherPart)
	if(otherPart.Name == "HumanoidRootPart" ) then
		local player = game.Players:FindFirstChild(otherPart.Parent.Name)
		if(player) then
			--print("touch")
			playersNear[player] = 1
			if(doorState == DoorState.Closed) then
				StartOpening()
			end
		end
	end
end
--[[Susupension]]


	Tune.SusEnabled		= true		-- works only in with PGSPhysicsSolverEnabled, defaults to false when PGS is disabled
	
	--Front Suspension
	Tune.FSusDamping	= 50		-- Spring Dampening
	Tune.FSusStiffness	= 9000		-- Spring Force
	Tune.FSusLength		= 1 		-- Suspension length (in studs)
	Tune.FSusMaxExt		= .3		-- Max Extension Travel (in studs)
	Tune.FSusMaxComp	= .3		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.FWsBoneLen		= 1			-- Wishbone Length
	Tune.FWsBoneAngle	= 10			-- 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	= 50		-- Spring Dampening
	Tune.RSusStiffness	= 9000		-- Spring Force
	Tune.RSusLength		= 1			-- Suspension length (in studs)
	Tune.RSusMaxExt		= .3		-- Max Extension Travel (in studs)
	Tune.RSusMaxComp	= .3		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.RWsBoneLen		= 1			-- Wishbone Length
	Tune.RWsBoneAngle	= 10			-- 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		= "Really black"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness
-- Make signal strict


setmetatable(Signal, {
	__index = function(_tb, key)
		error(("Attempt to get Signal::%s (not a valid member)"):format(tostring(key)), 2)
	end,
	__newindex = function(_tb, key, _value)
		error(("Attempt to set Signal::%s (not a valid member)"):format(tostring(key)), 2)
	end,
})

return {
	new = Signal.new,
	Wrap = Signal.Wrap,
	Is = Signal.Is,
}
--[[**
	ensures value is an integer

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]


function t.integer(value)
	local success, errMsg = t.number(value)
	if not success then
		return false, errMsg or ""
	end
	if value%1 == 0 then
		return true
	else
		return false, string.format("integer expected, got %s", value)
	end
end
-- ROBLOX deviation: omitted fileExists and cleanup



local function toMatchSnapshot(...)
	local args = { ... }
	local this: types.Context = args[1]
	local received: any = args[2]
	local propertiesOrHint: any = args[3]
	local hint: ConfigPath = args[4]

	local matcherName = "toMatchSnapshot"
	local properties

	local length = select("#", ...)
	-- ROBLOX deviation: all the length parameters are one more than upstream because
	-- the this parameter isn't counted in upstream
	if length == 3 and typeof(propertiesOrHint) == "string" then
		hint = propertiesOrHint
	elseif length >= 3 then
		if typeof(propertiesOrHint) ~= "table" or typeof(propertiesOrHint) == nil then
			local options: JestMatcherUtils.MatcherHintOptions = {
				isNot = this.isNot,
				promise = this.promise,
			}
			local printedWithType = printWithType("Expected properties", propertiesOrHint, printExpected)

			if length == 4 then
				options.secondArgument = "hint"
				options.secondArgumentColor = BOLD_WEIGHT

				if propertiesOrHint == nil then
					printedWithType = printedWithType
						.. "\n\nTo provide a hint without properties: toMatchSnapshot('hint')"
				end
			end

			error(AssertionError.new({
				message = matcherErrorMessage(
					matcherHint(matcherName, nil, PROPERTIES_ARG, options),
					"Expected " .. EXPECTED_COLOR("properties") .. " must be an object",
					printedWithType
				),
			}))
		end

		-- Future breaking change: Snapshot hint must be a string
		-- if (arguments.length === 3 && typeof hint !== 'string') {}

		properties = propertiesOrHint
	end

	return _toMatchSnapshot({
		context = this,
		hint = hint,
		isInline = false,
		matcherName = matcherName,
		properties = properties,
		received = received,
	})
end
-- Current UI layout


local CurrentLayout;

function ChangeLayout(Layout)
	-- Sets the UI to the given layout

	-- Make sure the new layout isn't already set
	if CurrentLayout == Layout then
		return;
	end;

	-- Set this as the current layout
	CurrentLayout = Layout;

	-- Reset the UI
	for _, ElementName in pairs(UIElements) do
		local Element = UI[ElementName];
		Element.Visible = false;
	end;

	-- Keep track of the total vertical extents of all items
	local Sum = 0;

	-- Go through each layout element
	for ItemIndex, ItemName in ipairs(Layout) do

		local Item = UI[ItemName];

		-- Make the item visible
		Item.Visible = true;

		-- Position this item underneath the past items
		Item.Position = UDim2.new(0, 0, 0, 20) + UDim2.new(
			Item.Position.X.Scale,
			Item.Position.X.Offset,
			0,
			Sum + 10
		);

		-- Update the sum of item heights
		Sum = Sum + 10 + Item.AbsoluteSize.Y;

	end;

	-- Resize the container to fit the new layout
	UI.Size = UDim2.new(0, 200, 0, 40 + Sum);

end;

function UpdateUI()
	-- Updates information on the UI

	-- Make sure the UI's on
	if not UI then
		return;
	end;

	-- References to inputs
	local TransparencyInput = UI.TransparencyOption.Input.TextBox;
	local ReflectanceInput = UI.ReflectanceOption.Input.TextBox;

	-----------------------
	-- Update the UI layout
	-----------------------

	-- Figure out the necessary UI layout
	if #Selection.Parts == 0 then
		ChangeLayout(Layouts.EmptySelection);
		return;

	-- When the selection isn't empty
	else
		ChangeLayout(Layouts.Normal);
	end;

	-- Get the common properties
	local Material = Support.IdentifyCommonProperty(Selection.Parts, 'Material');
	local Transparency = Support.IdentifyCommonProperty(Selection.Parts, 'Transparency');
	local Reflectance = Support.IdentifyCommonProperty(Selection.Parts, 'Reflectance');

	-- Update the material dropdown
	MaterialDropdown.SetOption(Material and Materials[Material] or '*');

	-- Update inputs
	UpdateDataInputs {
		[TransparencyInput] = Transparency and Support.Round(Transparency, 2) or '*';
		[ReflectanceInput] = Reflectance and Support.Round(Reflectance, 2) or '*';
	};

end;

function TrackChange()

	-- Start the record
	HistoryRecord = {
		Before = {};
		After = {};
		Selection = Selection.Items;

		Unapply = function (Record)
			-- Reverts this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Send the change request
			Core.SyncAPI:Invoke('SyncMaterial', Record.Before);

		end;

		Apply = function (Record)
			-- Applies this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Send the change request
			Core.SyncAPI:Invoke('SyncMaterial', Record.After);

		end;

	};

end;

function RegisterChange()
	-- Finishes creating the history record and registers it

	-- Make sure there's an in-progress history record
	if not HistoryRecord then
		return;
	end;

	-- Send the change to the server
	Core.SyncAPI:Invoke('SyncMaterial', HistoryRecord.After);

	-- Register the record and clear the staging
	Core.History.Add(HistoryRecord);
	HistoryRecord = nil;

end;
--model.Part.Touched:Connect(function(player)


wait(10)
	if triggered==false then
		triggered=true
		leftTweenOpen:Play()
		rightTweenOpen:Play()
		model.Part.DoorStart:Play()
		wait(4)
		model.Part.DoorStart:Stop()
		model.Part.DoorStop:Play()
		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
	end
--[=[
	@param ... any
	@return args: table
	Serializes the arguments and returns the serialized values in a table.
]=]


function Ser.SerializeArgs(...: any): Args
	local args = table.pack(...)
	for i,arg in ipairs(args) do
		if type(arg) == "table" then
			local ser = Ser.Classes[arg.ClassName]
			if ser then
				args[i] = ser.Serialize(arg)
			end
		end
	end
	return args
end
--doEvent()


print(lowered)
return
end

function raise()
print("raising")
	repeat
	wait()
		for i = 1, #a do
			if a[i].className == "Part" then
				if a[i].Mesh.Offset.Y < .5 then
				a[i].Mesh.Offset = a[i].Mesh.Offset + Vector3.new(0, .01, 0)
				end
			end
		end
	until(script.Parent.Bar.Mesh.Offset.Y >= .5)
lowered = false
--- Drag this into "StarterCharacterScripts"



function OnDeath()
	for _,p in pairs(game.Players:GetPlayers()) do
		local Gui = script.DNGui:Clone()
		Gui.Parent = p.PlayerGui
		Gui.TextLabel.Text = script.Parent.Name.. " was killed."
		Gui.Script.Disabled = false
	end
end
script.Parent.Humanoid.Died:Connect(OnDeath)
-- K is a tunable parameter that changes the shape of the S-curve
-- the larger K is the more straight/linear the curve gets


local k = 0.35
local lowerK = 0.8
local function SCurveTranform(t: number)
	t = math.clamp(t, -1, 1)
	if t >= 0 then
		return (k*t) / (k - t + 1)
	end
	return -((lowerK*-t) / (lowerK + t + 1))
end

local DEADZONE = 0.1
local function toSCurveSpace(t: number)
	return (1 + DEADZONE) * (2*math.abs(t) - 1) - DEADZONE
end

local function fromSCurveSpace(t: number)
	return t/2 + 0.5
end

function CameraUtils.GamepadLinearToCurve(thumbstickPosition: Vector2)
	local function onAxis(axisValue)
		local sign = 1
		if axisValue < 0 then
			sign = -1
		end
		local point = fromSCurveSpace(SCurveTranform(toSCurveSpace(math.abs(axisValue))))
		point = point * sign
		return math.clamp(point, -1, 1)
	end
	return Vector2.new(onAxis(thumbstickPosition.X), onAxis(thumbstickPosition.Y))
end
--// # key, ManOff


mouse.KeyUp:connect(function(key)
	if key=="h" then 
		veh.Lightbar.middle.Man:Stop()
		veh.Lightbar.middle.Wail.Volume = 10
		veh.Lightbar.middle.Yelp.Volume = 10
		veh.Lightbar.middle.Priority.Volume = 10
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
		veh.Lightbar.MANUAL.Transparency = 1
	end
end)