In this code:
PHP Code:
$templater = vB_Template::create('ddd_mod_reputation_score');
$templater->register('threadbit_reputation_given', $threadbit_reputation_given);
$templater->register('$threadbit_reputation', $$threadbit_reputation);
$templatevalues['insert_reputation_var'] = $templater->render();
vB_Template::preRegister('FORUMHOME', $templatevalues);
When you register $threadbit_reputation, you don't want the $ in there. Also, if threadbit_reputation_given is only used in $show['threadbit_reputation_given'] you don't need to register it. So maybe try this:
PHP Code:
$templater = vB_Template::create('ddd_mod_reputation_score');
$templater->register('threadbit_reputation', $threadbit_reputation);
$templatevalues['insert_reputation_var'] = $templater->render();
vB_Template::preRegister('FORUMHOME', $templatevalues);
ETA: ...or maybe what you want is to leave in the registering of 'threadbit_reputation_given' and change the template to <vb:if condition="$threadbit_reputation_given">...