Hi, I can answer your question.
Yes there is a way to have people register for an event without paying.
You can use one of our ticketing plugin such as WooCommerce Tickets. Then you can set the price to zero so there is no payment when someone orders a ticket and have them go through the order process of WooCommerce which would register them for an event. I would also put the price of the registration in the ticket title if you need to show that. Or you could just put it in the information. You can have multiple ticket types per event too.
https://theeventscalendar.com/shop/wordpress-wootickets/
Let me know if that helps.
Thanks