Hi Chris,
Here is how I got video and html messages working.
This is based on the Horseshoe curve route and how RSC setup scripting for this route.
1) The html messages appear in a folder called En. This sits under the main scenario folder.
Sample file
<HTML>
<BODY BGCOLOR="#0000007F">
<FONT COLOR="#FFFFFF" FACE="Arial" SIZE="4">
<TABLE>
<TR valign="top">
<TD><img src="../sample1.png" alt="" width="256" height="256" /></TD>
<TD>
<FONT COLOR="#FFFFFF" FACE="Arial" SIZE="4">
<P>"Text Here"</P>
<P>"or Here"</P>
<P>"Or Here"</P>
</FONT></TD>
</TR>
</TABLE>
</FONT>
</BODY>
</HTML>
The img source points to the main scenario folder so any images must go into the scenario main folder and not the En folder.
Video ogg files need to sit in the En folder. Only image files that work seem to be png (tried Gif and jpeg don’t work).
2)The script files called scenarioscript.lua must live under the main scenario folder. luac is the compiled script.
3) In TS14 create any scenario type you want and add a driver to the stock you want the message to appear for.
Add a trigger event to this train with the default 00:00 time. Give this a name in the event trigger e.g. "StartCam".
This name will appear in the script file as well and seems to be case sensitive. Create a cinematic camera from the miscellaneous section.
Name the camera the same as the trigger event name "StartCam". There is an Object name box. Set the camera offset to 5-10 seconds and add another cinematic camera by clicking the Add control point button (Orange triangle with green cross). This adds another camera to track to.
4) Click the Script button. Next to the red flag and then click reload. This should open the script file provided it is present in the scenario folder. Will error if not found.
You can click the open folder button to open the folder to view/edit the script file.
Looking at the script and a sub section:-
------------------------------------------------
-- Fn OnEvent
-- event - name of the event
-- return - TRUE/FALSE if event handled
function OnEvent ( event )
-- Timed triggers
---------------------------
if event == "StartCam" then -- Pan around at train
SysCall ( "ScenarioManager:ShowInfoMessageExt", "495d441f-631b-4a27-a99d-578af014e436", "TPC-01.html", 20, MSG_LEFT + MSG_TOP, MSG_REG, FALSE );
SysCall ( "CameraManager:ActivateCamera", "StartCam", 0 );
SysCall ( "CameraManager:ActivateCamera", "Getsite", 0 );
return TRUE;
You can see the "StartCam" trigger event and a ScenarioManager:ShowInfoMessageExt function call.
"495d441f-631b-4a27-a99d-578af014e436" is a subkey generated from the string window. Click the strings button next to the script button.
You will see 2 sections a Key and a string section. These will be blank. Click the add string button and a new key will be generated. Of the same format as the scenario folder and scenario name. Carefully copy this string by selecting and copying and paste into the script file as shown above. I say carefully as the text box can obscure extra characters and will only copy what is visible on screen. Ensure you expand the box. Next in the strings box place the html file name e.g. TPC-01.html. Then click the close button. Or Add more key/strings if you need. You can also enter text in quotes and this will display as well.
Next click the script button and click reload (optional) then click the Compile/Generate MD5 button. This will generate the LUAC script and MD5 files.
Then just press play and the camera and message should display.
For video add the following line.
SysCall ( "ScenarioManager:PlayVideoMessage","0001-0250.ogg",0,1,0,0);
Ensure the ogg file is in the En folder. The various 0,1,0,0) seem to control things like video screen size, playback with sound, and if the script waits for the video to play first then continues.
Hope that helps I am still playing with this myself but that is what I found.

Naming trigger event

String ceation

En folder

Cinematic camera settings
full script
-----------------------------------------------
-- ScenarioScript.lua
-- 24/09/2014
-- Copyright 2014 RailSimulator.com ltd
--
-- Scenario Script WCMLN - 'Flying Camera - Thunderbirds Away'
------------------------------------------------
-- true/false defn
FALSE = 0
TRUE = 1
-- condition return values
CONDITION_NOT_YET_MET = 0
CONDITION_SUCCEEDED = 1
CONDITION_FAILED = 2
-- Message types
MT_INFO = 0 -- large centre screen pop up
MT_ALERT = 1 -- top right alert message
MSG_TOP = 1
MSG_VCENTRE = 2
MSG_BOTTOM = 4
MSG_LEFT = 8
MSG_CENTRE = 16
MSG_RIGHT = 32
MSG_SMALL = 0
MSG_REG = 1
MSG_LRG = 2
------------------------------------------------
-- Fn OnEvent
-- event - name of the event
-- return - TRUE/FALSE if event handled
function OnEvent ( event )
-- Timed triggers
---------------------------
if event == "StartCam" then -- Pan around at train
SysCall ( "ScenarioManager:ShowInfoMessageExt", "495d441f-631b-4a27-a99d-578af014e436", "TPC-01.html", 20, MSG_LEFT + MSG_TOP, MSG_REG, FALSE );
SysCall ( "CameraManager:ActivateCamera", "StartCam", 0 );
SysCall ( "CameraManager:ActivateCamera", "Getsite", 0 );
return TRUE;
end
Vtrain