There are several ways.
I'd do something like this in a parallel process event on the map:
Wait 30 framesControl Variables [001: Player Steps] = StepsConditional Branch: Variable [001: Player Steps] >= Variable [002: Target Steps] Control Variables [002: Target Steps] = Variable [001: Player Steps] Control Variables [002: Target Steps] += Random(30..50)Branch EndThen set up another parallel process that does this:
Code:
Control Variables [002: Target Steps] = StepsErase Event
So you have an event that's checking every half second whether or not it should play the SE. The trigger is whether they have taken a random number of steps between 30 and 50 since the last time the SE was played. Just change those numbers around depending on how long you want to wait between SEs, and how closely you want them to be spaced. The other event just ensures that the SE doesn't play immediately when you load the map, because at the start, target steps would be 0, and later on you could leave the map and accrue the required number of steps on another map so the condition will already be met when you come back here.You could also use Play Time instead of steps, so if the player pauses for a long time in the one place, the SE will continue to play every now and then.