RequiresPlayerNearby.cs
using Sandbox;

public sealed class RequiresPlayerNearby : Component, Component.ITriggerListener
{
	int playersNearby;

	void ITriggerListener.OnTriggerEnter( GameObject other )
	{
		// did we get triggered by a player?
		var playerController = other.GetComponent<PlayerController>();
		if ( playerController is null ) return;

		// enable all children
		foreach ( var child in GameObject.Children )
		{
			child.Enabled = true;
		}

		playersNearby++;
	}

	void ITriggerListener.OnTriggerExit( GameObject other )
	{
		if ( other.GetComponent<PlayerController>() is null ) return;

		playersNearby--;

		if ( playersNearby == 0 )
		{
			foreach ( var child in GameObject.Children )
			{
				child.Enabled = false;
			}
		}
	}
}