Quick answer: Construct 3 Pick by comparison condition returning zero instances even though you expect matches? Type-strict comparison — string vs number always fails; undefined values too.
Filtering enemies with HP < 50 returns nothing because HP was stored as string “25” from a CSV import.
Coerce on Import
When loading data from CSV / JSON, convert to numbers via Construct 3’s int() or float(). String "25" never compares numerically less than 50.
Default Variables
Initialize instance variables to sensible defaults (0, “”, empty array). Undefined values cause comparisons to silently fail.
Use Comparison Operators
Standard operators: =, !=, <, >, <=, >=. Strings sort lexicographically; numbers numerically. Don’t mix.
Validate Test Cases
Build a debug screen: place known-value instances, run the comparison, log results. Catches type mismatches before they hit gameplay.
Verifying
Comparisons return the expected instance subsets. Pickability works deterministically across CSV imports and procedural variables.
“Type-strict comparison. Coerce CSV imports to the right type up front.”
Build a one-time data validator at project startup — logs every instance variable that’s the wrong type.