I was hoping this wasn't the best way to do it, but it seems to be. Thanks for letting me know. It actually works very well, if a bit clunky, but with one nagging problem I can't fix. The spell effect ends when the party leaves the map, as does the spell itself. This may be a limitation/feature of the cast_spell() function. In contrast, if an effect is received from a spell cast in combat the effect continues when you leave the map. Anyway, I implemented it in two different ways, and it works good with both. I use one or the other depending on the situation. 1. Cast the spell on an object, as you said. Full inventories were a problem, especially if you want multiple effects. So I put a permanent object in each player's inventory (like the tool in KOTB), and then the dummy spellcaster just grabs the tool, casts the spell on it, then reinserts it into the inventory. There's some flag setting and unsetting on the item during the process to deal with dropping and transferring, but not a big deal. 2. The second way was to just have the dummy spellcaster casts a passive buff spell on himself using cast_spell(), and then within that code put the effect directly on the pc. As I said above, the only problem is when you leave the map the spell ends.