Ok let’s think about how you could do this just with formit, or nearly so. But, it can be challenging working with an already implemented site (when you don’t know exactly how the original developer set things up).
Ok so as I remember you are comfortable with tvs? Correct me if I am wrong.
Anyway let’s talk about what your forms are doing.
What might help you learn more is to find this form and copy paste it over here. You have to put three single ticks above and below the code
So what I think you could do is put a counter as a posthook in the formit call in that form. Each event would have a counter, a tv for each, and when the event registration is successful, the posthook will add 1 to the counter. Will you have a de-registration page as well? Then the counter would just subtract one.
In order to prevent over subscription, on the page where the form appears you could poll the data in the tvs to see if they have met your maximum. If they do, you could switch out the form for another bit of content letting them know that they can’t register, or the form could easily be disabled but still appear. That’s another bit of code but still not too tough to just query those tvs. That would likely be a custom snippet on the page the form is on, at top, above the form in the code.
Hmm, now I am re-thinking the above, it would be better to disable only the option of the filled event, but let’s see what’s possible for now. Anyway you can prevent over-registration
The counter for the tv is a pretty easy bit of code, I am sure someone will provide it, once we drill down to your solution and start building it up. But we will need more info, first off how your form handles the event data.
The counter would be really simple, I don’t know this coding myself but its just GET tv named [[+event]]Subscription and add one to the result, with the tvs called event1Subsciption event2Subsciption and so on, where [[+event]] is supposed to be the prefix of the tv, so here event1 event2