Quote: "I have a rain post effect that I want to happen once the player spawns. I have tried placing the player start marker inside the zone, but this only works when the player leaves the zone and enters it again."
Let's take a look at the script.
;Artificial Intelligence Script
;Header
desc =
;Triggers
:state=0,plrwithinzone=1:state=1
:state=1:setposteffect=rain,state=3
:state=3,plrwithinzone=1:state=4
:state=3,plrwithinzone=0:state=0
:state=4:state=3
The issue is this. When you spawn at the start, the script is already activated but the engine is still placing the character into position. So the script assumes you are "out of the zone". That is why when you leave the zone and come back, it works.
What you need to do is apply a timer delay. In other words, if you have the zone right where the player spawns, you need to add a delay so the engine will have time to load the level, place the player into position, then when the script runs the post effect, it will say"oh the player is now in the zone" and activate the rain effect. We had a discussion
here that is very similar in nature and I explained the delay process and why post effects don't work off the start like what you and the OP of the other thread are trying to do.
So you can do one of a few things. First, move the start marker out of the zone and position so when the player spawns they will hit the zone once they start to move. Second, you can alter the script to turn the rain effect on right away. Or add a delay to the script. Adding a delay would look like this:
;Artificial Intelligence Script
;Header
desc = rain post effect
;Triggers
:state=0:etimerstart,state=1
:state=1,etimergreater=5000:state=2
:state=2,plrwithinzone=1:state=3
:state=3:setposteffect=rain,state=4
:state=4,plrwithinzone=1:state=5
:state=5,plrwithinzone=0:state=2
:state=4:state=3
The "state=0" and "state=1" lines are the delay timer. If 5 seconds is too short or too long, then you can adjust the "etimergreater=5000" to what you need.
There's no problem that can't be solved without applying a little scripting.