You're the best. Thank you.
fyi I had this idea but didn't try because it says "Custom Category", I thought you can only choose one. Works perfectly now.
Are you trying to change the actual reputation, or just update the displayed reputation?
You would need to make a plugin to listen for a socket event, and in the widget js send the needed data to verify the request server-side. After adjusting the reputation and sending the new rep back, you probably want to make a db key to record the last action taken, such as how core uses pid:x:upvote