Regulith is correct, you can't use variable replacers on the left side of the logic balancer in ifVariable events. It was clearly stated in the manual, but of course, people have to much pride to loving read it.
How about this?
onPromptAccept -> Client -> ifVariable ["score" ">=" "5" "2 4"]
No need for variable replacers on the left-hand side, making checking for values easier and understandable. This also means no confusion between ifVariable/ifValue since the second one isn't needed. Numbers or nonexistant variables would be taken as strings, registered variable replacers are used if the client/minigame/etc. target is used and normal variables in other cases. The right-hand side is normal, or perhaps ask Badspot to add an extra argument to events so you can have a "Target" selector and have no need for the confusing things all together.
modVariable could take special variables too if applicable - a function in the variable definition could be like this:
//%value is the value you're setting it to. %client is the one who triggered the event.
RegisterSpecialVar(GameConnection,"team","%this.tdmTeam+1","%this.setTeam(%value-1,%client);");
function GameConnection::setTeam(%this,%team,%client)
{
...
}
onActivate -> Client -> modVariable ["team" "randomNum" "3"]
onActivate -> Client -> modVariable ["score" "Multiply" "2"]
onEnterZone -> Player -> modVariable ["velz" "Multiply" "-1.5"] (trampoline or something?)
onPlayerTouch -> Player -> modVariable ["health" "Divide" "2"]
Things like the server max players and brick name wouldn't be editable, but allowing people to edit these ones would make it much more useful.