There is an easier way...
Using a triggerzone, a winzone, and a script.
Steps:
1. Place trigger where you want the player to trigger the save.
2. Apply this script to the trigger AI Main
;Artificial Intelligence Script
;Header
desc = Save game and go to next level (win)
;Triggers
:state=0:state=1
:state=1,plrwithinzone=1:pausegame,state=2
:state=2:savegame,state=3
:state=3:resumegame,activateifused=1,state=4
;End of Script
3. In the IfUsed field of the trigger, put the name of your Win Zone.
4. Place a winzone and assign the "appearifactivate.fpi" to the start script
Here is my example:
Screen #1: Starting out and will move up the path and to the right where the trigger is located.
Screen #2: Trigger is hit, and the Save Game dialog opens up, allowing me to save my game in whichever slot.
Screen #3: Once I click the slot (or click OK to overwrite a save slot), the save dialog closes and my winzone is activated, ending the level (I snapped this shot just when I heard the sound for the winzone as it started to fade).
You can alter the script to show additional huds or other information prior to the winzone appearing. Myself personally, I rather have this at the start of a level and not the end. Otherwise the user would load a saved game, then immediately be waiting additional time for the next level to load (2 loads in that time versus one load from the beginning). Just our preference.
Twitter: @NFoxMedia