Battle Cutscenes
The battle cutscene library provides an interface for the relatively easy creation and setup of scripted cutscenes in battle. A cutscene object is first declared with cutscene:new, configured with the variety of configuration commands available, loaded with actions (things that happen within the cutscene) using repeated calls to cutscene:action, and finally started with cutscene:start to start the visual cutscene itself. Each battle cutscene object represents an individual cutscene.
| Loaded in Campaign | 
										 | 
								
| Loaded in Battle | 
										 | 
								
| Loaded in Frontend | 
										 | 
								
- 
							
cutscene:new(stringname, objectunit controller, [durationnumber], [functionend callback]) - 
							Creates a cutscene object. A cutscene must be given a string name, an object granting control over the player's army (to allow it to be taken away during the cutscene), a length, and, optionally, a function to call when the cutscene finishes.
							
Parameters:
1
stringName for cutscene.
2
objectEither a unitcontroller with control over the player's army, or a
script_unitscollection containing all of the player's units.3
optional, default value=nil
Cutscene duration in milliseconds. If nil or 0 is specified then the cutscene will be set to not end, and will only finish when skipped by the player or ended by an external process - see
cutscene:set_do_not_end.4
functionoptional, default value=nil
End callback. A callback is usually specified here, although not always.
Returns:
cutscenecutscene object
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 102
 
- 
							
cutscene:new_from_cindyscene(name
string,unit controller
object,end callback
[function],cindy scene
string,blend in
[number],blend out
[number]
) - 
							Creates a cutscene object that is bound to a cindyscene. When started, the scripted cutscene will automatically start the cindyscene, and will terminate when the cindyscene ends.
							
Parameters:
1
Unique name for the cutscene.
2
objectEither a
battle_unitcontrollerwith control over the player's army, or ascript_unitscollection containing all of the player's units.3
optional, default value=nil
End callback.
4
Cindy scene path.
5
optional, default value=0
Blend in time, in seconds.
6
optional, default value=10
Blend out time, in seconds.
Returns:
cutscenecutscene object
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 167
 
- 
							
cutscene:set_debug([booleanset debug], [booleanHide UI in debug mode.]) - 
							Sets the cutscene into debug mode for more output. Setting debug mode on a cutscene also allows the camera to be moved during cutscene playback, and keeps the UI visible.
							
Parameters:
1
booleanoptional, default value=true
Set cutscene into debug mode.
2
booleanoptional, default value=false
Hide UI in debug mode.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 224
 
- 
							
cutscene:enable_debug_timestamps([booleanenable timestamps]) - 
							Instructs the cutscene to output a timestamp to the console every tick. This can be useful when trying to set up timings for cutscene events.
							
Parameters:
1
booleanoptional, default value=true
enable timestamps
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 239
 
A cindy scene can be configured to send events to script, for which listeners may be established that call script functions. The function cutscene:add_cinematic_trigger_listener may be used to establish such a listener. This mechanism allows cinematic artists to more tightly control the timing of events in the cindy scene.
- 
							
cutscene:add_cinematic_trigger_listener(idstring, functioncallback) - 
							Registers a new cinematic trigger listener. When the cindy scene triggers a script event with the supplied id in script, the supplied function is called.
							
Parameters:
1
Cinematic trigger id. This should match the an id of a cinematic event triggered from a cindy scene played during this cutscene.
2
functionCallback to call.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 263
 
By adding actions to a cutscene it is instructed to perform operations at certain times after the cutscene is started. It is through cutscene actions that the narrative events in the cutscene are brought into being.
- 
							
cutscene:action(functionaction callback, numberaction time) - 
							Adds an action to the cutscene. Specify a function callback to be called, and a time after the start of the cutscene to call it in ms. If relative mode has been set with 
cutscene:set_relative_modethen the specified time should instead be relative to the previously-enqueued action.Parameters:
1
functionAction callback.
2
numberAction time in ms. This can be 0, but cannot be greater than the length of the cutscene.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 296
 
- 
							
cutscene:play_sound(battle_sound_effectsound) - 
							Instructs the cutscene to play a sound. This sound is registered to the cutscene, so that it can query its status later and also stop it if the cutscene is skipped.
							
Parameters:
1
battle_sound_effectsound
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 357
 
- 
							
cutscene:play_vo(battle_sound_effectsound, script_unittarget sunit) - 
							Instructs the cutscene to play a sound at a specified 
script_unitin 3D space. This sound is registered to the cutscene, so that it can query its status later and also stop it if the cutscene is skipped.Parameters:
1
battle_sound_effectsound
2
script_unittarget sunit
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 372
 
- 
							
cutscene:wait_for_advisor() - 
							Instructs a running cutscene to stall its progress until the advisor has finished speaking. This is designed to be called during a cutscene action to prevent one item of advice from colliding with another piece of advice, sound, or other event that it shouldn't overlap with. Since the length of an item of advice varies from language to language, it's sensible to insert wait_for_advisor calls into a cutscene script before starting subsequent advice.
							
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 389
 
- 
							
cutscene:wait_for_vo() - 
							Instructs a running cutscene to stall its progress until any sounds started with 
cutscene:play_soundorcutscene:play_vohave finished. This is designed to be called during a cutscene action to prevent one sound from colliding with another sound or event that it shouldn't overlap with. Since the length of a localised sound varies from language to language, it's sensible to insert wait_for_vo calls into a cutscene script before starting subsequent sounds.Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 396
 
- 
							
cutscene:subtitles() - 
							Returns a subtitles object stored internally by the cutscene.
							
Returns:
subtitles
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 415
 
- 
							
cutscene:camera() - 
							Returns a camera object stored internally by the cutscene.
							
Returns:
camera
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 423
 
- 
							
cutscene:length() - 
							Returns the cutscene length in ms
							
Returns:
numberlength in ms
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 431
 
- 
							
cutscene:is_playing_sound() - 
							Returns true if any of the sounds the cutscene has been told to play with 
cutscene:play_soundorcutscene:play_voare still playing, false otherwise.Returns:
booleanis playing sound
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 439
 
- 
							
cutscene:is_playing_camera() - 
							Returns true if a scripted camera movement is currently happening, false otherwise.
							
Returns:
booleancamera moving
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 455
 
- 
							
cutscene:is_any_cutscene_running() - 
							Returns true if this or any other scripted cutscene is currently running, false otherwise.
							
Returns:
booleanany cutscene running
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 463
 
- 
							
cutscene:is_active() - 
							Returns true if this cutscene is currently running, false otherwise.
							
Returns:
booleanthis cutscene running
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 471
 
- 
							
cutscene:set_skippable(booleanskippable, [functionskip callback]) - 
							Sets the cutscene to be skippable, and optionally also sets a function to be called when the player skips the cutscene.
							
Parameters:
1
boolean2
functionoptional, default value=nil
skip callback
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 492
 
- 
							
cutscene:set_skip_camera(vectorcamera position, vectorcamera target) - 
							Sets a position/target to immediately reposition the camera at if the cutscene is skipped. This supercedes any 
Restore Cameraif set.Parameters:
1
vectorcamera position
2
vectorcamera target
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 511
 
- 
							
cutscene:set_restore_cam(numbermove time, [vectoroverride position], [vectoroverride target]) - 
							Instructs the cutscene to restore the camera to either the position it occupied when the cutscene started, or a different position/target entirely. Note that if a skip camera/target has been set with 
cutscene:set_skip_cameraand the cutscene is skipped, those positions will supercede these.Parameters:
1
numberTime over which to restore the camera in ms. Setting 0 would result in the camera cutting, setting 1000 would result in the camera panning over 1 second, and so on.
2
vectoroptional, default value=nil
Override camera position. Supply a position here to set a specific restore camera position, or leave blank to use the position of the camera at the start of the cutscene.
3
vectoroptional, default value=nil
Override camera target. Must be specified if a camera position is specified.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 551
 
The post-cutscene fade time instructs the cutscene to fade the camera from black to picture after it ends or is skipped. This is used to achieve a smooth transition back to picture if the cutscene faded to black as it ended.
- 
							
cutscene:set_post_cutscene_fade_time(numberduration, [numberduration]) - 
							Sets a duration for the post-cutscene fade time, in seconds.
							
Parameters:
1
numberNew post-cutscene fade-time. Note that unlike the majority of battle durations, camera durations (such as this) are specified in seconds.
2
numberoptional, default value=0
New post-cutscene fade-time delay. If specified, this delays the fade-in effect. Unlike the first parameter it is set in ms.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 602
 
- 
							
cutscene:set_music(stringmusic event, numberfade in, numberfade out) - 
							Sets a music sound event to play during the cutscene.
							
Parameters:
1
stringMusic event name.
2
numberFade in time in ms.
3
numberFade out time in ms.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 636
 
- 
							
cutscene:set_music_resume_auto_playback(booleanset auto playback) - 
							Sets the sound system to return to automatically selecting music events after the cutscene ends. Only takes effect if a custom music track has been set with 
cutscene:set_music.Parameters:
1
booleanset auto playback
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 672
 
- 
							
cutscene:set_relative_mode() - 
							Sets relative mode for enqueuing actions on the cutscene. With relative mode enabled, the time specified for each action is relative to the previously-added action, rather than absolute from the start of the cutscene. Relative mode is disabled by default.
Relative mode must be set before any actions are enqueued withcutscene:action.Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 699
 
- 
							
cutscene:set_is_ambush([booleanis ambush], [booleanteleport units on end]) - 
							Sets up the cutscene as an intro cutscene of an ambush battle. This must be set if the cutscene is being shown over an ambush scene.
							
Parameters:
1
booleanoptional, default value=true
Set to true to enable ambush behaviour.
2
booleanoptional, default value=false
Set to true to teleport the ambushed units to the end of their ambush path once the cutscene ends.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 726
 
- 
							
cutscene:set_do_not_end([booleando not end]) - 
							Sets the cutscene to not end naturally. A cutscene set up in this manner may only be ended by being skipped or by an external script.
							
Parameters:
1
booleanoptional, default value=true
do not end
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 766
 
- 
							
cutscene:set_should_disable_unit_ids([booleandisable unit ids]) - 
							Sets whether unit ID uicomponents should be disabled during the cutscene. By default they are disabled, but by supplying 
falseas an argument this function can be used to make them display.Parameters:
1
booleanoptional, default value=true
disable unit ids
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 778
 
- 
							
cutscene:suppress_unit_voices([booleansuppress voices]) - 
							Sets whether to suppress unit voices during the cutscene duration. By default they are disabled - enabling them (by supplying 
falseas an argument) will cause units to audibly respond to orders given during the cutscene.Parameters:
1
booleanoptional, default value=true
suppress voices
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 790
 
- 
							
cutscene:set_should_enable_cinematic_camera([booleanenable cinematic camera]) - 
							Sets whether to enable the cinematic camera during the cutscene. By default it is enabled, but it can be disabled by supplying 
falseas an argument to this function. The cinematic camera allows the camera to clip through terrain, so disable cinematic camera in circumstances where the path of the camera cannot be guaranteed (e.g. panning from a position relative to a unit to a fixed position, if there's a risk there'll be a hill in the way).Parameters:
1
booleanoptional, default value=true
enable cinematic camera
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 807
 
- 
							
cutscene:set_wait_for_advisor_on_end([booleanwait for advisor]) - 
							Sets whether to wait for the advisor to finish before ending the cutscene. This is akin to calling 
cutscene:wait_for_advisorat the end of the cutscene - the termination of the cutscene is delayed until the advisor has finished speaking. By default, cutscenes do not wait for the advisor to finish before ending.Parameters:
1
booleanoptional, default value=true
wait for advisor
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 819
 
- 
							
cutscene:set_wait_for_vo_on_end([booleanwait for sounds]) - 
							Sets whether to wait for any sounds registered with 
cutscene:play_soundorcutscene:play_voto finish before ending the cutscene. This is akin to callingcutscene:wait_for_voat the end of the cutscene - the termination of the cutscene is delayed until all registered sounds have finished playing. By default, cutscenes do not wait for registered sounds to finish before ending.Parameters:
1
booleanoptional, default value=true
wait for sounds
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 831
 
- 
							
cutscene:set_close_advisor_on_end([booleanshould close advisor]) - 
							Sets whether to close the advisor at the end of the cutscene. By default this behaviour is enabled (so the advisor closes), supply 
falseas an argument to disable it.Parameters:
1
booleanoptional, default value=true
should close advisor
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 843
 
- 
							
cutscene:set_close_advisor_on_start([booleanshould close advisor]) - 
							Sets whether to close the advisor when the cutscene begins. By default this behaviour is enabled, supply 
falseas an argument to disable it.Parameters:
1
booleanoptional, default value=true
should close advisor
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 855
 
- 
							
cutscene:enable_ui_on_end([booleanshould enable ui]) - 
							Sets whether the cutscene should re-enable the UI when it finishes. By default the cutscene re-enables the UI - supply 
falseas an argument to prevent it from doing so. This can be useful for scripts which have turned off the UI and don't want cutscenes re-enabling it.Parameters:
1
booleanoptional, default value=true
should enable ui
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 868
 
- 
							
cutscene:set_end_callback(end callbackfunction) - 
							Sets or changes the callback that is called when the cutscene is ended.
							
Parameters:
1
end callback
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 880
 
- 
							
cutscene:set_call_end_callback_when_skipped([booleanshould call callback]) - 
							Sets whether the cutscene should call the end callback (supplied when the cutscene is created with 
cutscene:new) when skipped. By default the cutscene does call this callback - supplyfalseas an argument to prevent it from doing so.Parameters:
1
booleanoptional, default value=true
should call callback
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 893
 
- 
							
cutscene:set_should_release_players_army([booleanshould call callback]) - 
							Sets whether the cutscene should release script control of the player's army when finishing. By default the cutscene does release this control - supply 
falseas an argument to prevent it from doing so. This is useful for scripts that may want to restrict the player's control of their army and don't want cutscenes un-restricting it.Parameters:
1
booleanoptional, default value=true
should call callback
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 905
 
- 
							
cutscene:set_show_cinematic_bars([booleanshow bars]) - 
							Sets whether the cutscene should show cinematic bars while playing. By default the cutscene does show cinematic bars - supply 
falseas an argument to prevent it from doing so.Parameters:
1
booleanoptional, default value=true
show bars
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 917
 
- 
							
cutscene:set_should_hide_ui([booleanhide UI]) - 
							Sets whether the cutscene should show hide the UI while playing. By default the cutscene does hide the UI - supply 
falseas an argument to prevent it from doing so.Parameters:
1
booleanoptional, default value=true
hide UI
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 929
 
- 
							
cutscene:set_should_restore_ui_hiding_on_end([restore hidingboolean]) - 
							Sets whether cutscene should restore any pre-existing scripted ui hiding state when the cutscene ends. By default this state is restored - supply 
falseas an argument to prevent it from doing so.Parameters:
1
optional, default value=true
restore hiding
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 941
 
- 
							
cutscene:set_steal_input_focus([booleansteal input]) - 
							Sets whether the cutscene should steal input focus while playing, preventing player input. By default the cutscene does steal input - supply 
falseas an argument to prevent it from doing so.Parameters:
1
booleanoptional, default value=true
steal input
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 953
 
- 
							
cutscene:start() - 
							Starts the cutscene. After this point it cannot be configured further.
							
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 1000
 
- 
							
cutscene:show_custom_cutscene_subtitle(stringsubtitle key, stringstyle, numberduration, [booleanforce]) - 
							Streams a line of subtitles. Use this method of subtitle display within an 
cutscene:actionto animate the appearance of the supplied text over a supplied duration. Once a subtitle is shown with this function, it can later be hidden withcutscene:hide_custom_cutscene_subtitles(which is also called automatically when this function is called, to hide any subtitles already visible).
This functionality is provided by an extension to thetext_pointersystem. As this behaviour is controlled by script, which only updates every 1/10th second, blocks of characters may appear at the same time instead of each character individually. This system should probably be moved into code at some point.Parameters:
1
stringSubtitle key, from the scripted_subtitles table.
2
stringText pointer style, from the valid entries in
text_pointer:set_style. "subtitle_with_frame" is in use by existing quest battles but more styles may be available.3
numberTime the text takes to stream on-screen in ms.
4
booleanoptional, default value=false
Force display of the subtitles. Setting this to true overrides the user's subtitle preference.
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 1359
 
- 
							
cutscene:hide_custom_cutscene_subtitles([booleanhide immediately]) - 
							Hides any visible custom cutscene subtitles. The hide effect will be animated, unless 
trueis passed in as a single argument which hides the subtitles immediately.Parameters:
1
booleanoptional, default value=false
hide immediately
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 1406
 
- 
							
cutscene:show_esc_prompt([booleanshould show]) - 
							Shows or hides a "Press ESC to continue" subtitle prompt. Intended to be called during an 
cutscene:action.Parameters:
1
booleanoptional, default value=false
should show
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 1418
 
- 
							
cutscene:skip() - 
							Causes the cutscene to skip. This function is called internally when the ESC key is pressed, but it may also be called externally while the cutscene is running.
							
Returns:
nil
defined in ../../Warhammer/working_data/script/_lib/lib_battle_cutscene.lua, line 1458