In the examples in the Venture workshop, you'll see that actions are really just initialization code for an entity. The engine itself calls the action after the model is created or after the level containing the entity is loaded. You can attach the same action to multiple entities which is very handy.

So, typically, you have the initialization code (and in your case it could contain multiple if statements to test my.ent_ID and assign the proper synonym to each) and then the last statement in your action could be a function like update_model() or model_movement() or something. These "update" functions just run perpetually.

You can certainly make the model appear with the create method, but I think that would mean having an individual action for each model, in order to get the correct synonym assigned. You can do it, but it's a lot tougher to maintain your code that way (42 actions instead of 1). This is why I was suggesting putting that ID number into one of the first 8 skills, because you can do it in WED and assign all those models the same action. Then test for the my.skill8 (or whatever) in the action and assign the synonym there.

The reason you need a synonym for each model is that's the only way to be able to refer to a specific model later in code. If you want to make a model disappear in some function, you need to be able to say: syn_mutant_fire.invisible = ON.

The most common approach that I've seen would be to toggle the visibility in the perpetual update function that I mentioned above (and then it would be my.invisible = ON). That's slightly more complicated, but can make for more organized code, because you wind up with a set of states that you're constantly testing for. See the code for the lady character in the venture workshop and you'll see what I mean.

Again, if somebody has a better way to approach this, I'm anxious to hear it. My game has similar issues to Kman's.