(Note: These don't have to be the final datatypes, and there are good reasons to modify some of these). Anyway, here's another, slightly more complex, example:
First, I've removed the Select node in favor of multiple outputs from the detector. It's a holdover from Blockland-style events, but with a flexible node-style system with multiple inputs and outputs, there's no reason for it to exist. Second, I've introduced the Vector data type, which holds several numbers; Vec3 holds 3 numbers, and is used for things like position, size, rotation, and velocity. You can perform arithmetic on vectors like you could numbers, such as vector addition, vector subtraction, scalar multiplication (where a vector is multiplied by a scalar, which is just a single number), dot product, and cross product. So this node-script detects when a player collides with a brick, and inverts the player's velocity (by multiplying it by -1). This causes the player to "bounce" off the brick.
This doesn't make use of things like loops and if-then-else statements, which I'm still thinking of a way to implement elegantly. Additionally, I think there should be
Set Property (inputs: String, Any; outputs: None) and
Get Property (inputs: String, outputs: None) nodes, which can read/write arbitrary data to certain objects. For instance, you can use Set Property with inputs "cash" and 32, and then later, you can use Get Property to check if they have enough cash to buy something. You can also use this in place of Set Velocity by using "velocity" as the property name, but you need be careful, because these values do require specific data types, and you can cause an error if you're careless and try to set velocity to a String.