VaM 1.x Problems with collisiontriggers for activating sounds

Threads regarding the original VaM 1.x

Bl4ckS4turn

New member
Joined
Jul 22, 2026
Messages
6
Reactions
0
Im currently working on a scene with several collisiontriggers (used to trigger voice lines). So... I possess a cube model, place a collisiontrigger that detects the cube im possessing, and sends the voice command to the Person in the scene. But the issue im having is the lack of specific information about this kind of trigger and HeadAudioSource, cuz i configured every trigger and still, some of them, in random times, plays one second of the audio clip, or just cut the voiceline mid-sentence. Sometimes it works perfectly, but even if I do everything identical to the time it worked, still fail most of the time. Some of them wont even start, or just keep conflicting with each other because of one that just froze and went silent.

The config im using in every Collisiontrigger is the following:
-( Player enters collision )
- triggers sound (via PlayNow)
- (queue)

- ( Player exits collision )
- Trigger sound (via PlayNow)
- Enable CollisionTrigger#2
- Disable collision (itself)

Basically what it does is play a voiceline when the player enter the collisiontrigger; And when exit, play another voiceline, enable the next Collisiontrigger and disable itself.
(honestly, i don't know what "queue" does in this situations due to lack of info about CTs on the internet or forums, but it worked better than just the audio alone itself.)

Is that a issue with overuse of CTs simultaneosly? Or am i missing something?
Also, sry for bad english, not a native eng speaker
 
Hey man,

The issue with "PlayNow" is that it'll cut sounds if you hit the triggers in fast succession. Let's say your audio sample is 3s but you hit the second trigger 1s after the first one, this will make it such that only 1s of you audio sample is played before being interrupted with the following one. I'd recommend you use the PlayIfClear option if you want to avoid sounds being cut like this.
The second problem I see is to use HeadAudioSource for every sound. Supposed you have VAMMoan or Life added to the Person Atom, the sounds are coming out of HeadAudioSource. Meaning that if HeadAudioSource is busy playing breathing or moaning sounds, it will not play your voice lines if "PlayIfClear" setting is used. I'd recommend you use a separate, dedicated AudioSource to play the voicelines, which can be placed close to the mouth of the Person Atom and ParentLinked to the head.

Some questions:
Are the sounds you're using from audiobundles or are they loose sound files (like .mp3)?
Did you create filters for the triggers? For example, the trigger is only activated if the collisionTrigger touches the cube, and not every object in the scene. What could be happening is that the collisionTriggers may be colliding with each other.
Did you create triggers to reactivate the collisionTrigger#1? Or is collisionTrigger#1 forever deactivated when collision ends? Same question goes for all collisionTriggers in the scene.
How many collisionTriggers are we talking about exactly?
 
Upvote 0
(honestly, i don't know what "queue" does in this situations due to lack of info about CTs on the internet or forums, but it worked better than just the audio alone itself.)
Is that a issue with overuse of CTs simultaneosly? Or am i missing something?
I think queue puts your sound file to be played directly after the current one ends, but I'd have to test, don't know for sure.
No problem in using several collisionTriggers as long as they don't infere with each other's triggers, which seems to be what's causing your problem.
 
Upvote 0
Hey man,

The issue with "PlayNow" is that it'll cut sounds if you hit the triggers in fast succession. Let's say your audio sample is 3s but you hit the second trigger 1s after the first one, this will make it such that only 1s of you audio sample is played before being interrupted with the following one. I'd recommend you use the PlayIfClear option if you want to avoid sounds being cut like this.
The second problem I see is to use HeadAudioSource for every sound. Supposed you have VAMMoan or Life added to the Person Atom, the sounds are coming out of HeadAudioSource. Meaning that if HeadAudioSource is busy playing breathing or moaning sounds, it will not play your voice lines if "PlayIfClear" setting is used. I'd recommend you use a separate, dedicated AudioSource to play the voicelines, which can be placed close to the mouth of the Person Atom and ParentLinked to the head.

Some questions:
Are the sounds you're using from audiobundles or are they loose sound files (like .mp3)?
Did you create filters for the triggers? For example, the trigger is only activated if the collisionTrigger touches the cube, and not every object in the scene. What could be happening is that the collisionTriggers may be colliding with each other.
Did you create triggers to reactivate the collisionTrigger#1? Or is collisionTrigger#1 forever deactivated when collision ends? Same question goes for all collisionTriggers in the scene.
How many collisionTriggers are we talking about exactly?
Ohhh that explains a lot actually! The person in the scene had the MacGruber Life activated (gaze + breath) so it could be that those two are conflicting...
About PlayIfClear; I tried using this in the first runs and it acted the same as PlayNow, so it could really be that the sounds are really "fighting" for space with the other plugins in the person. Also, gonna try the AudioSource gimmick later, it might work if disabling breathing don't work.

About the questions:
I'm using custom WAV files from my own pc.
Yes, i created a filter for the trigger to only collide with the cube im possessing in the moment.
No, when I need to test the scene again, I manually re-enable the CTs, for debugging intentions. But the mechanic here is basically like: at the end, activate the next CT, and disable itself, and so on the scene progress.
The first time i tried doing this, I used six CTs, but decided to start from scratch to possibly find the problem, so now I have four CollisionTriggers and one LookAtTrigger.
 
Upvote 0
I think queue puts your sound file to be played directly after the current one ends, but I'd have to test, don't know for sure.
No problem in using several collisionTriggers as long as they don't infere with each other's triggers, which seems to be what's causing your problem.
Hmm, that might be useful. Sadly, when looking at all the functions, all I have to do is try to guess what every one of them does lmao
 
Upvote 0
Ohhh that explains a lot actually! The person in the scene had the MacGruber Life activated (gaze + breath) so it could be that those two are conflicting...
Yeah, probably, try disabling and see if it solves.
About PlayIfClear; I tried using this in the first runs and it acted the same as PlayNow, so it could really be that the sounds are really "fighting" for space with the other plugins in the person. Also, gonna try the AudioSource gimmick later, it might work if disabling breathing don't work.
What you can also do instead of going through the trouble of creating a separate AudioSource is to put into the CollisionTrigger an action to deactivate Life when collision happens, and then reactivate later after a delay or something. MacGruber's LogicBricks has a Delay trigger brick which you could use to momentarily pause breathing.
I'm using custom WAV files from my own pc.
Yes, i created a filter for the trigger to only collide with the cube im possessing in the moment.
Ok, nice.
No, when I need to test the scene again, I manually re-enable the CTs, for debugging intentions. But the mechanic here is basically like: at the end, activate the next CT, and disable itself, and so on the scene progress.
Hm I see. I was wondering if maybe the triggers got disabled and then that's why no sound was played. You could put an action in the last CollisionTrigger to reactivate the first one so you don't have to go trough all the trouble.
 
Upvote 0
Yeah, probably, try disabling and see if it solves.

What you can also do instead of going through the trouble of creating a separate AudioSource is to put into the CollisionTrigger an action to deactivate Life when collision happens, and then reactivate later after a delay or something. MacGruber's LogicBricks has a Delay trigger brick which you could use to momentarily pause breathing.

Ok, nice.

Hm I see. I was wondering if maybe the triggers got disabled and then that's why no sound was played. You could put an action in the last CollisionTrigger to reactivate the first one so you don't have to go trough all the trouble.
Good news!! Turns out it really was the breathing that was causing conflict in the CTs, once disabled, everything works as intended. Thanks for the tips, it will be useful!!
 
Upvote 0
Yeah, probably, try disabling and see if it solves.

What you can also do instead of going through the trouble of creating a separate AudioSource is to put into the CollisionTrigger an action to deactivate Life when collision happens, and then reactivate later after a delay or something. MacGruber's LogicBricks has a Delay trigger brick which you could use to momentarily pause breathing.

Ok, nice.

Hm I see. I was wondering if maybe the triggers got disabled and then that's why no sound was played. You could put an action in the last CollisionTrigger to reactivate the first one so you don't have to go trough all the trouble.
Just one more question if you don't mind... I'm searching for this function that set a little delay on the execution of "Enable - Reenable" of the Breathing, but i'm not finding it. The only solution here was to disable breathing completely til I find somehting that can program a delay between the enabling and disabling.
 
Upvote 0
Good news!! Turns out it really was the breathing that was causing conflict in the CTs, once disabled, everything works as intended. Thanks for the tips, it will be useful!!
Great!
Just one more question if you don't mind... I'm searching for this function that set a little delay on the execution of "Enable - Reenable" of the Breathing, but i'm not finding it. The only solution here was to disable breathing completely til I find somehting that can program a delay between the enabling and disabling.
So, there's this plugin called LogicBricks, which is a compilation of small plugins with several features. One of them is called Delay, which you can load into scene plugins and configure actions that occur delayed to when the trigger is called. You could configure the actions in CollisionTrigger such that you have Disable Breathing -> Activate Delayed trigger in sequence.
 
Upvote 0
Great!

So, there's this plugin called LogicBricks, which is a compilation of small plugins with several features. One of them is called Delay, which you can load into scene plugins and configure actions that occur delayed to when the trigger is called. You could configure the actions in CollisionTrigger such that you have Disable Breathing -> Activate Delayed trigger in sequence.
I downloaded this plugin and tweaked with some configuration, it worked of course! What I did was to put the first action to disable breathing and play the audio, and the last action to trigger the delay (that have everything that have to be delayed in seconds inside his own set of programmed actions)
More like "it starts on the collisiontrigger, and ends in the delay trigger", which enables the breath again and activate the next trigger separately inside his own plugin after x seconds.
 
Upvote 0
I downloaded this plugin and tweaked with some configuration, it worked of course! What I did was to put the first action to disable breathing and play the audio, and the last action to trigger the delay (that have everything that have to be delayed in seconds inside his own set of programmed actions)
More like "it starts on the collisiontrigger, and ends in the delay trigger", which enables the breath again and activate the next trigger separately inside his own plugin after x seconds.
Great to know that it worked!
 
Upvote 0
Back
Top Bottom