Using RNG with a seminar with multiple optional sessions I just installed the RNG module and have been playing around with it a bit - but I'm still unsure as to the best way to set it up for my situation.

I help to organize several seminar events a year that run for about three time blocks a day, and each time block has up to 10 different, optional sessions to sign up for.

Each registrant can only register for one session each time block, and each session needs to have a variable maximum number of registrants allowed as they're all held in different rooms of varying sizes.

I think I've sussed out that each session will need it's own event, so that I can define a maximum number. But I'm not sure how to tag certain events/sessions as belonging to a specific time block, and then how to ensure each user can only sign up for one session in each block and that once a session has reached max it will be disabled/greyed out/removed as an option.

Thanks for your time, and thanks for the great module!
What you have so far sounds good, and you're on the right path by setting each seminar to be an RNG event. Unfortunately there is no "conference track" support built in, so you will have to write some code to prevent new registrations based on predefined constraints.

What I would do is add a date field on each session, then another field indicating which track each session is on.

RNG uses the entity reference plugin system to determine if a user is eligible for each event. What you can do is create a hook_query_alter implementation in a custom module. In that hook, you can determine which event the query is for. Then with partial assistance from the RNG API, determine if there are any events the user is registered with the same constraints as the queried event. If you want to allow the user then you do no modifications to the query. If you want to prevent the user from registering, you can add on a condition hack which never evaluates such as $query-&gt;condition('uid', NULL, 'IS NULL');

I understand this solution may be complex, especially if you are not a coder or familiar with Drupal 8 API's. Check out UserRNGSelection.php for some inspiration.

Side note: I am maintainer of RNG.