Step 1 - Use the Flag module
I'd definitely use the Flag module for what you're trying to achieve. To allow authorized users (to use such flag) to flag relevant nodes. Maybe you want to limit them to only selected content types also.
Step 2 - Add a field to a Flag to specify the points
However, to also implement those points to nodes that get flagged, you should configure the flag (you only need 1 flag!) by attaching a field to such flag. Such field can then be used to enter, or select, any of the allowed values of points you want to be granted (appointed) to a node that gets flagged by such flag.
However when doing so, make sure to also be aware about (and do) what is described in Attaching fields to flags, i.e.:
Administration > Structure > Flags page. Click the Edit link for the Flag. Scroll down to the Display Options box and select the Confirmation Form radio button.
Step 3 - Add some 'Total points' field to your nodes
Define some other field in the content types for the nodes you want to use these points for, which will contain the total number of points. And which will get updated each time a node gets flagged with '+X' (or '-Y') points, as explained in the next step.
Step 4 - Use the Rules module to maintain the value of the 'Total points'
The Rules module integrates extremely well with the Flag module. So it should be fairly simple to create a rule to maintain the value of the 'Total points'. Here is a blueprint (to avoid writing an entire manual ...) of this rule:
- Rules Event: when a node is flagged (with the flag you created in step 1)
- Rules Conditions: whatever you might need (if anything), on top of what is not yet covered by the way you configured the flag.
- Rules Action(s): Perform some Rules Actions that use the value of the points as specified by the user who flagged the node, and then adds that to the current value of the 'Total points' field. For an example of such calculation, refer to this answer to the question about "How to add up all items of a field collection field using Rules?". In your case here, you don't need the 'loop' (you're not processing a field collection, only 2 fields for which you want to calculate the sum of it).
Using Flag (with 1 extra field) and Rules, and by adding a field (for 'Total points') to relevant content types, the above is how you can create something similar to what User Points can do, though with a summary like so:
an API for
users to gain or lose points
for selected nodes
performing certain actions on your site.
And btw ... zero custom code involved ...