When testing with the "value_check" predicate for the condition of score 0, it also includes every entity having no score. This doesn't happen if the predicate "entity_scores" or the command "execute if score ... matches 0" is used.
How to reproduce:
/scoreboard objectives add testsb dummy
Using the following predicate (value_check.json):
{
"condition": "minecraft:value_check",
"value": {
"type": "minecraft:score",
"target": "this",
"score": "testsb"
},
"range": 0
}
This works as expected: => Test failed
/execute if score @s reddi.vm matches 0
This is faulty: => Test passed
/execute if predicate testns:value_check
This is also faulty for non entity scores (noscorepred.json):
{
"condition": "minecraft:value_check",
"value": {
"type": "minecraft:score",
"target": {
"type": "minecraft:fixed",
"name": "noscore"
},
"score": "testsb"
},
"range": 0
}
This is faulty: => Test passed
/execute if predicate testns:noscorepred
And in comparison (entity_scores.json):
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"testsb": 0
}
}
This works again as expected: => Test failed
/execute if predicate testns:entity_scores
Linked issues
Comments 4
Related, but different; that's about tab list reset score displaying as 0, whereas this is about reset score being treated as 0 in predicates.
Please check if MC-133451 describes your issue.