Please note that this is pretty much a negative criticism post, rather than a balanced review as mentioned in this thread. Also be aware that stuff posted here may be highly subjective.
Please feel free to criticise this post, however.
Plugin Reviewed:OUGC Custom Reputation Plugin Version: 1.0.1 (last updated 25th November 2012)
Plugin Author:Omar G.
Adding to our collection is the 5th OUGC plugin! The nice prefix littered virtually everything, which I struggle to pronounce, demonstrates the author's intent on trying self improve!
The plugin is called something to do with reputations, but I'm going to call it post ratings, as it seems to be a more accurate description (ratings are associated with posts & users, not just users).
So one of the first things you notice is that this package includes screenshots. Now before you moan about a >500KB download package, this one happens to be under 100KB - nice one!
Nonetheless, there's a fair bit more code than I'm willing to go through, so yeah...
How to use the rating interface isn't obvious in any way - you've got an icon, then a "x [number]"; not only is this difficult to see that it's meant to be clicked on, the fact that the icon and number links and their respective functions isn't obvious. You can toggle the rating you've chosen by clicking on the icon, although this isn't exactly obvious either (there's no visual indication (not even in a tooltip) on whether clicking the icon will add to the reputation or remove from it). Note that, however, you can't change your rating by clicking on another icon - you need to 'unrate' the post by clicking on the rating you originally specified (and this can be difficult to tell since there's no visual indication) and then click the other rating. For example, if there's two ratings, "Good" and "Bad", and you originally rated a post as "Bad" but now want to change it to "Good", you have to click "Bad" first (to unrate the post), then click "Good" (to rate the post) - you can't simply click "Good" and have the rating carry across.
Rating interface does not work with Javascript disabled (seems like a bug as opposed to intentional behaviour). Interestingly, turning off the AJAX setting makes it fail to work as well, regardless of whether Javascript is enabled or not
I'd perform the first post check before running the query. I'm not entirely sure of the reason behind checking whether "$post['pid'] != $thread['firstpost']" as this will always be true if not on the first page of the thread.
The ougc_customrep_log table seems to mostly query on the rid,pid columns - there really should be indexes on these; one would presume that pid,uid should be a unique key as you can't vote for more than once for each post. The good thing about identifying these uniques is that it could help one simplify something like
On postbit, the plugin loads ALL votes, and does a summation + check for current user voting on this. This can potentially be problematic if there happens to be a large number of votes.