I've had problems with this for years and, after trying to use various methods, I can say that OpenBOR doesn't have a simple, practical and 100% working way to deal with it, unfortunately. Everything I'm going to say is based on the last version I tested, 6330.
Beware the wall of text.
Of the two methods mentioned by
@DCurrent - and with all due respect - both have problems:
• Script method - It's not a simple solution, especially when we don't have a way to turn this effect on and off in a practical way (with a timer for example) and we have to resort to a script that will be checked all the time (ondraw, update, or use "onfall"). Even more so if we think about how sensitive the engine is to script errors.
• Change palette method - Only works if you don't use shared palette on icon. If you use it, the icon will show the wrong colors once you've switched palettes.
Some creators often add the colors of these effects to the color palette used by the characters, but I find this counterproductive.
How did I solve it?
I didn't solve 100%. I'm using a specific entity for this and I use bindentity to stick it to my character while he's in invisible animation. It was the most viable option
What are the problems with this method?
• I had to use an ENEMY type entity instead of NONE. That's because the type change in OpenBOR isn't a real change, it's more of a nickname. When you declare an entity in models and that entity has a certain type (NONE, for example), some properties remain forever.
An example is when we want to add PAIN animations to obstacles (since obstacles don't have this animation) - you declare the entity as ENEMY and then change its type.
• The problem is that the NONE type, to save resources, ignores some "subject_to" types. Even if you link them via script, the engine ignores it. So I had to use TYPE ENEMY.
• TYPE ENEMY will be counted in your GROUP
• Entities glued via bindentity don't respect the "landframe", so if you set the entity to destroy itself when it touches the ground, it won't do that and will be stuck forever. I had to put a code on my character that would search the entity by name (because the engine doesn't give it an ID) and kill it when I hit the ground
What would be the easiest way to solve this?
OpenBOR supports what other engines support: turning off and on sharing palettes on certain images, as the engine already does with shadows.
Using "fshadow", we can turn off/change the shadows during an animation and, at the end of it (or whenever we want) it goes back to being displayed in the original way.
We could have a "PALETTE NONE" command that would make the engine display the images with their original palettes (with the palettes that were loaded originally, since the engine knows this) instead of the palette the entity currently uses.