Ah, I see. If you need the evaluation to occur later, I suggest using a function, though it is possible to use a <<print>> to force the evaluation instead. I recommend the former more highly, but it will take a very small amount of comfort working in JavaScript. Here are some examples:
<<set $moneyEvent to {
event : 'some passage',
type : 'friend event',
etc : 'whatever else you need',
trigger : function () {
return State.variables.money <= 30;
}
}>>
<<set _event to $moneyEvent>>
<<if _event.trigger()>>
/% fire event %/
<</if>>
To use the <<print>> method:
<<set $moneyEvent to {
event : 'some passage',
type : 'friend event',
etc : 'whatever else you need',
trigger : '$money lte 30'
}>>
<<print '<<set _event to ' + $moneyEvent.trigger + '>>'>>
<<if _event>>
/% fire event %/
<</if>>
Again, the first example is more in line with how you typically want to approach a problem like this; it also gives you access to other features you might want, including arguments.
Using the <<print>> method is fine, but it has limitations and this generally isn't the best solution; forcing these sorts of evaluation, especially in a loop, is not exactly ideal in terms of performance, but YMMV.
I think this is what your asking for, but I've been having an off week, and the quality of my help and my ability to understand what's being asked for has been off, so I apologize if I'm still missing the point.