That sounds like a really good way of dealing with the events. And it's nice and expandable to any other future ideas. I like it. The parser could be a bit of a tricky one to write, but not too hard.
I think you might want some common scripts though, 'pick up object' [givetoplayer(player): removeme():playoneshot(itempickedup)] for example would be used a hell of a lot.
I think you might want some common scripts though, 'pick up object' [givetoplayer(player): removeme():playoneshot(itempickedup)] for example would be used a hell of a lot.