Quick Reply
Search this Thread
Top Secret Researcher
Original Poster
#1 Old 20th Aug 2026 at 8:51 PM Last edited by Pideli : 20th Aug 2026 at 9:32 PM.
Default Making an interaction non-interruptible on recipient side
How do I make an interaction non-interruptible?
I'm making a spell, and the objective is that once the caster has cast it on the recipient, the caster receives reagents, and the recipient is supposed to get a motive drop. It works fine except that I can quickly cancel the interaction on the recipient side once it's cast if the sim is busy with something else, so the caster still gets the reagents, but the recipient doesn't need to get the motive drop. I want to force the motive drop by making the recipient non-interruptible.

The problem is, I can't figure it out no matter what I do. I've tried setting "my non-interruptible = 1" on the bhav of the interaction that's getting pushed to the recipient, and "stack object's non-interruptible = 1" on the bhav that pushes that interaction, and on the bhav that calls the bhav that pushes the interaction. I can't figure out where to put it. Even if I put it in this "Interaction - Spell" which is the first interaction (on the caster's side), the stack object is apparently not a person (I got an error). I'm editing an existing mod so I don't understand how everything works and the stack object changing all of the time in "Interaction - Spell" is especially confusing.

I believe the screenshots provided are the most relevant ones but what do I know, I started modding yesterday
The version of "Interaction - Spell" in the screenshot doesn't throw an error but I can still cancel the interaction so adding "stack object's non-interruptible = 1" didn't do anything.
Screenshots
Top Secret Researcher
#2 Old 21st Aug 2026 at 1:05 AM Last edited by jonasn : 21st Aug 2026 at 2:11 AM.
Set my non-interruptible on the receiver's side. It will be active until the end of the interaction. You can only cancel an interaction at the point where there is a wait for notify, or the interaction ends, and any walking will be also be stopped or skipped. My non-interruptible has to be set after the receiver's interaction has begun, and before he is about to walk or idle waiting. You cannot do this on the caster's side because you would then have to wait for the receiver to enter his interaction. He will do so a moment later. Do not have Wait for Notify if you expect this to be uncancellable, and don't need pushed nested interaction.

I really works. Look at how a coffee cup is dropped, and he will walk a kilometer to a table without being stopped.

If your spell consists of multiple interactions for the receiver, then they can be non-interruptible each separately. Maybe you can also lower the motives on the caster's side instead.

Monitor what is going on with charles object editor. When the selected person is non-interruptible, his priority will be shown as 200 + actual priority (300 for max). Check if Hurry speed perhaps persists to the next interaction.

If you don't want to cancel the intection before it starts, set its icon to null in push: fourth operand flag 1, icon object in fifth operand equal to 0 instead of an actual object. Then you can't click on it to cancel. It being at max priority, can't be wiped by other interactions of equal or lower priority.
Top Secret Researcher
Original Poster
#3 Old 21st Aug 2026 at 2:58 PM Last edited by Pideli : 21st Aug 2026 at 3:34 PM.
Thank you so much! So maybe it's better if I just lower the receiver's motives on the caster's interaction so that the receiver doesn't even need to get an interaction pushed to them at all? All I want is that the motive drop is unavoidable after the spell has been cast.

EDIT: I did that and it actually worked!! I can't believe it! Much better than the push interaction - hurry sequence. Thanks for the tip! Wouldn't have thought of it otherwise. I practically screamed when I saw I made it work on the first try Usually I do something wrong.
Top Secret Researcher
#4 Old 21st Aug 2026 at 4:20 PM
Maybe in such a situation you want an "ouch" reaction. Then you'd have to wait for him to get out of his object like a chair or bubble blower, which can take a while, and synchronize.

I am almost sure that you were cancelling before the interaction had even begun. So having no icon would prevent that like pregnancy/fitness/farting.
Top Secret Researcher
Original Poster
#5 Old 21st Aug 2026 at 5:16 PM
Thanks, that's too complicated for me though, SimAntics is not intuitive at all I tried making it so the spell can only be cast on supernaturals but when checking if it's a vampire in the guardian bhav, the game kept complaining that stack object is missing no matter what parameter I used. I'm just gonna give up for now I've done the bare minimum. Who the player can cast on is a decision the player can make. And reactions from the victim would be cool but it seems like too much effort. It's been bugging too much for such a simple interaction. Maybe when I'm more experienced.

Oh, and yes I was cancelling on the receiver's side before the interaction begun and I didn't want the power to do that. So not getting an interaction in the first place but dropping the motives anyway was the way to go!
Top Secret Researcher
#6 Old 22nd Aug 2026 at 3:24 AM
Reactions like "worry", "embarassed" or "pee pants" can come later when the caster has finished. You might have changed the stack object earlier to something else. If you have a social plugin with CT - Object Menu, then the target person is in param 0. It could be somewhere else; and the stack object is likely the object where the interaction is taken from and not the perosn. You can check most supernaturals all at once with 3 lines from person data flags. Servo is separate, and alien requires reading its skin.

temp 0 := stack object's person data flags 1 (0x54)
temp 0 and= 0x745 // active werewolf
if temp 0 == 0 // not supernatural
Top Secret Researcher
Original Poster
#7 Old 24th Aug 2026 at 8:01 PM
No luck in trying to check stack object. I'm getting "stack object must be a person" error all of the time when I test. Why aren't variables labeled in this "programming language"?? That's what makes it so terribly difficult, you have to guess what is what all of the time!! It's insane! I can't find the sim variable anywhere so then it's basically game over. I'm trying to do it in the Interaction - Spell Test (guardian bhav) since that decides whether the interaction is even shown, right? So I don't know how the CT - Object Menu will help me at all. (But feel free to enlighten me )
Screenshots
Top Secret Researcher
#8 Old 24th Aug 2026 at 11:06 PM
Locals and params can be labelled. It is up to the mod author to do so.

It is unclear to me how this interaction is invoked. The meaning of params can change. Putting a new interaction on a person often requires a roundabout way of doing it, where the stack object is set to a helper object containing the new code, and the person may be passed in another way. Show me your package or the other mod that you took as a base.
Back to top