It's as simple as this! (FIXED per release of 3.0, you can't use this to detect 3.0 anymore) This is because Scratch 3.0 changes the output of "unknown" boolean custom input blocks to be false (in Scratch 2.0, it returns 0). (An "unknown" custom block input is just any input block that's not placed within the stack of a custom block that has an input whose name is the same as the input block.)