How do you transfer an event registration from one person to another? I can't find an option that will allow me to put a new person's name in an existing registration so that the payment will follow the original registration.
Civi can't do this in the UI, but if you're comfortable using the api explorer you could. First you need to find the id of the participant record (not the contact id of the participant) and the contact id of the person you want to transfer it to. Then user the api explorer to do Participant > Create with id (of the participant record) and contact_id (of the new contact).
Participants with a login to your site can go to the event self-service page to transfer a registration. The CiviCRM blog has a post on this.
[UPDATED FOR 2021] As of CiviCRM 5.2, you can do this from the backend. On the contact's event tab, you'll have a "Transfer or Cancel" option like this:
What I've done is create a new participant status type of "Transferred" under Administer - CiviEvent - Participant Statuses. Make the Participant Status class "Negative" (so it's not in the participant count) and the Visibility "Admin" (so it can only be used via the back-end). Use the notes field to communicate what happened.
This allows event organizers to have an audit trail when you're figuring out who's paid and how (it's useful even for free events). You'd edit the first person's registration and make the status "Transferred," along with a note that Joe Smith is attending in Dave Jones's place. Then do a back-end registration for Dave Jones (or allow him to self-register with a discount code you create if you're using CiviDiscount). Also make a note on Dave Jones's participant record that he's attending in Joe Smith's place.