This page documents every CutScript action and how they interact/function/work in this game. Explanations are relatively brief, due to the fact every base action the game already has are very simple.
Notice: this article is still a work-in-progress. Not every action is listed at the moment, but will eventually be a complete article. At the moment, it is complete enough for beginners.
The formatting is as follows: <action> <variables> (<optionalvariables>) - <description>
<action> is the literal name of the action that you must type in order to utilize the action.
<variables> is any required inputs that must be given in order for the action to behave properly.
(<optionalvariables>) is any optional inputs that can be given in order to change how the action can behave. Do not include the ()
- is a separator to declare when the action name is done being represented in text.
<description> will explain in text how the action is intended to act, and what it does. It can also provide additional information that may not be obvious at first glance.
NoBypass - Prevents the cutscene from being skipped
Debug - Makes the cutscene save the game upon being executed. Not recommended to use, since if it saves while a cinematic cutscene is playing and the player loads a save, the game will crash. You should use SaveGame 1 in OnExit instead to avoid a game-crash
SaveBookmark - Does nothing, except logging that it does nothing
SetProp Actor=<tag> <var>=<value> - The single most powerful action in all of CutScript. This action is capable of changing <var>'s value to equal <value> in real-time. Example (changes Shrek's health to 50): SetProp Actor=Shrek Health=50
Comment <string> - If the cutscene is cinematic (possessing the camera), will display the text <string> at the top of the screen. Calling Comment without an input will cause the text to disappear instead. This can be used for either debugging or easy custom subtitles
Cue <name> - Queues <name>, which satisfies a WaitForCue
WaitForCue <name> - Waits until cue <name> is called from any Sequence
Sleep <time> - Halts the current Sequence for <time> seconds
FadeActor A=<a> (Time=<time> R=<r> G=<g> B=<b> bDestroy=<bool> Actor=<tag> Linear EaseFrom EaseTo EaseBetween) - Fades the possessed actor, but can be used globally if you specify the <tag> of the actor. <a> represents the opacity of the object (a value of 0 is fully transparent and a value of 255 is fully opaque), <time> is the speed at which this transitions happens in seconds, <r> <g> <b> specifies the RGB display values for the actor (127 being the default values), <bool> specifies whether the actor should be completely destroyed after the fade finishes, <tag> specifies which actor to fade (typically used from within a Main Sequence), and Linear EaseFrom EaseTo EaseBetween can be used to specify the ease type
Fade A=<a> (Time=<time> R=<r> G=<g> B=<b> bFlash=<bool> Linear EaseFrom EaseTo EaseBetween) - Does the same thing as FadeActor, but instead fades the screen and replaces bDestroy=<bool> with bFlash=<bool> which specifies whether the fade should flash
FadeIn - An alias for Fade but sets A=0 and uses EaseBetween
FadeTo - An alias for Fade
Flash - An alias for Fade which sets Time=0.08, R=255, G=255, B=255 and bFlash=True
GotoMenu <library>.<class> - Opens up a menu. Example (opens the main menu): SHGame.ShFEGUIPage
LockCamTo <tag> (Yaw=<yaw> Pitch=<pitch> Roll=<roll> Speed=<speed> Tightness=<tightness>) - Locks the current player's camera to look at the actor with the tag <tag>. <yaw> <pitch> <roll> specifies the cone at which the player can look away from <tag> (default is Pitch=2000 Yaw=2000 Roll=0), <speed> specifies the speed at which the camera will be moved back (should the player look outside of the view cone [default is 7]) and <tightness> is the tightness of the view cone (default is 10).
UnLockCamTo <tag> - Unlocks the current player's camera from the actor with the tag <tag>.
PlayMusic <name> (Fade=<fade> Loop=<bool> Stab) - Plays the music track <name> from ..\Music\. <fade> specifies the amount of time in seconds it will take for the music to transition in, <bool> specifies whether the track will infinitely loop and Stab will cause the music track to play as a stab
PlaySound <name> (Volume=<volume> Pitch=<pitch> Attenuate=<bool1> No3D=<bool2>) - Plays the sound <name> from ..\Sounds\soundeffects.uax. Depending on where this action is used determines how the sound position will be handled (using it on anything other than Camera or Main will play the sound at the location of that Sequence's possessed pawn). <volume> specifies the volume level, <pitch> specifies the pitch of the sound, <bool1> specifies whether the sound should attenuate and <bool2> specifies whether the sound should play in 3D or not
Say <name> (Pawn=<tag>) - Plays a dialog line from ..\Sounds\AllDialog.uax and displays a subtitle of the dialog at the bottom of the screen (this dialog appears regardless of whether the camera or the current player is possessed). <tag> specifies which pawn exactly should be focused on for talking
SayTo - An alias for Say
Shake Magnitude=<magnitude> Time=<time> Decay=<decay> - Shakes the screen with a magnitude of <magnitude> for a time for <time> seconds with a decay of <decay> (decay is the factor of how much the magnitude goes down over time)
SendActorCommand <OnExitCommand> - Â Essentially OnExit, but without using an OnExit sequence. Example: SendActorCommand Donkey Follow Shrek
SetGameState <GSTATE> - Temporarily changes the GameState to <GSTATE>. This isn't known to be helpful since no actors can dynamically respond to a GameState change after a level is done loading. Example: SetGameState GSTATE010
SloMo <timescale> - Sets the time scale of the game to <timescale>. This is cheat protected, meaning this will do nothing after a save-load. If you need to bypass the cheat protection, use SetProp instead. SetProp example: SetProp Actor=LevelInfo TimeDilation=0.5
StopMusic (Fade=<fade>) - Stops the current music that is playing. <fade> specifies the amount of time in seconds the music will fade out
Trigger <event> - Fires to event <event>
WaitForEvent <condition> - This action is unfortunately broken, and instead of waiting until a specified event is fired, it actually checks whether <condition> is true or not. This condition is handled through the TriggeredCondition actor and <condition> must be the tag of the actor. If the condition is true, the Sequence continues. If the condition is false, the Sequence permanently stops (a CutScript using WaitForEvent CANNOT be a cinematic cutscene, because if it is, the whole game can be softlocked)
WaitForSay - Waits until the current dialog is finished being said
WaitForSound - Waits until the current sound being played is finished
ChangeLevel <level> - Opens the level <level>
TurnTo <tag> (Time=<time> Rate=<rate> Follow) - Makes the actor turn toward the actor with the tag <tag>. <time> will attempt to make the turn take as long as <time> in seconds, <rate> specifies the turning rate multiplier and Follow will make the actor continuously TurnTo <tag>
Face <tag> - An alias of TurnTo that makes the TurnTo instant
LookAt <tag> (StayLocked) - Makes the actor's head turn to look toward the actor with the tag <tag>. If StayLocked is specified, the actor will continue to look at <tag>
Jump <tag> - Pushes the actor toward the actor with the tag <tag>. Does not cause the actor to be tossed up in the air, but you can always use SetProp for this. It's recommend to use a bounce pad and a Teleport instead of this
MoveTo <tag> - Makes the actor run toward the actor with the tag <tag>
RunTo - An alias for MoveTo
WalkTo - An alias for MoveTo that makes the actor walk instead of run
PlayAnim <animname> (Rate=<rate> Tween=<tween> Frame=<frame> Channel=<channel> Loop HoldLastFrame) - Makes the actor play animation <animname>. <rate> specifies the rate it plays at (a rate of 1.0 is the default speed), <tween> specifies the tweening rate applied to the animation (how sudden the transition is between what the actor's animation was and what we're changing it to now), <frame> specifies the frame at which the animation should start at, <channel> specifies what animation channel to play the animation on, Loop will cause the animation to loop (don't use a WaitForAnim alongside this), and HoldLastFrame will pause the animation when it ends
WaitForAnim - Waits until the current animation being played on the actor has finished
Teleport <tag> - Teleports the actor to the actor with the tag <tag>
SetFocus <tag> - Similar to TurnTo, this makes the pawn turn toward the actor with the tag <tag>. This hasn't been found to be more useful than TurnTo, so I recommend TurnTo
FlyTo <tag> Time=<time> (Speed=<speed> X=<xOffset> Y=<yOffset> Z=<zOffset> YawStep=<yaw> PitchStep=<pitch> RollStep=<roll> SplinePoint=<splinetag> Linear EaseFrom EaseTo EaseBetween Absolute Relative TurnWithActor DontTurnWithActor StayLocked DontStayLocked * DontBlock) - Flies to the actor with the tag <tag> in a time of <time> seconds. <speed> (if specified) makes the time it takes for the camera to finish moving depend on how far the actor with the tag <tag> is, <xOffset> <yOffset> <zOffset> specifies the positional offset to apply from the original FlyTo point, <yaw> <pitch> <roll> specifies the rotational offset from the original FlyTo point, <splinetag> is used to specify a halfway FlyTo point (similar to <tag>), Linear EaseFrom EaseTo EaseBetween can be used to specify the ease type, Absolute Relative specifies whether the camera should move relative to a pawn or not (using Absolute specifies it should not, and Relative specifies it should), TurnWithActor DontTurnWithActor specifies whether the camera should turn the same way <tag> currently is, StayLocked DontStayLocked specifies whether the camera should lock onto <tag> (good if <tag> is a moving point) and * DontBlock specifies whether this action should not be considered Latent. This action can technically be used from within other Sequence Types.
WaitForFlyTo - Waits until the current FlyTo is finished
TargetFlyTo - An alias for FlyTo, but instead of flying to <tag>, the camera will look at <tag>
FOV Angle=<angle> Time=<time> (Linear EaseFrom EaseTo EaseBetween) - Changes the camera's field of view (FOV) to <angle> within a time of <time> seconds. Linear EaseFrom EaseTo EaseBetween specifies the ease type
GoHome <tag> Time=<time> (*) - Makes the camera fly to the actor's camera with the tag <tag> within a time of <time> seconds. * specifies whether this action should not be considered Latent
FollowSpline <splinename> Start=<startsplinetag> Dest=<destsplinetag> Time=<time> (Speed=<speed> Accel=<acceleration> EaseFrom EaseTo EaseBetween Align) - Follows a specified spline path created with multiple KWInterpolationPoint's (you need 3 at a minimum for this to work). Uses spline path <splinename>, starting from <startsplinetag>, then ending at <destsplinetag>. <time> specifies how long this action should last in seconds, <speed> (if specified) makes the time it takes for the camera to finish moving depend on how far the actor with the tag <destsplinetag> is, <acceleration> is the acceleration at which the camera will fly at, EaseFrom EaseTo EaseBetween specifies the ease type of the camera and Align specifies whether the camera should align itself with the spline path or not. This action can technically be used from within other Sequence Types.
SaveGame <int> - Saves the current game to slot <int>. If <int>=1, will save to the current game slot
ChangeLevel <name> - Changes the current level to <name>
<label> CompanionStates <command> - Makes the actor with the label <label> run the OnExit command <command> (?)
<tag1> Follow <tag2> - Makes the actor with the tag <tag1> follow the actor with the tag <tag2>
<tag1> StopFollowing <tag2> - Makes the actor with the tag <tag1> stop following the actor with the tag <tag2>
<tag1> WaitInCorral <tag2> - Makes the actor with the tag <tag1> walk to, then wander within the corral with the tag <tag2>
<tag> SwitchControlToMe - Switches the current player's control to the pawn with the tag <tag>
<tag> OnEvent <event> - Runs the OnEvent() function on the pawn with the tag <tag> with the event <event>. Read more about OnEvent() here.
<tag> GoHome - Similar to GoHome used on the camera, but is more simple; makes the camera go to the actor with the tag <tag>, but targets the camera of that particular actor
<tag1> FightWithLeadChar <tag2> - Makes the actor with the tag <tag1> assume that they are following a leading character currently, and should focus on attacking the actor with the tag <tag2>
<tag> TriggerActor <event> - Makes the actor with the tag <tag> fire an event to <event>. Shrek as the <tag> is a generally good practice
<tag> Trigger <event> - An alias for TriggerActor
<tag1> LeadActor <tag2> <routetag> - Makes the actor with the tag <tag1> lead the actor with the tag <tag2> while taking the route with the tag <routetag>. This is helpful in chase sequences or tutorial sequences