Have you tried to run the example from the Scripting Index to make sure it is working?
Names Default To Here( 1 );
Caption(
{100, 200},
"explanation",
Font( "Arial Black" ),
Font Size( 16 ),
Text Color( "blue" ),
Back Color( "yellow" ),
Spoken( 1 ),
Delayed( 1 )
);
Also, any option arguments from one Caption() function call are remembered in the next call. They act like defaults for subsequent calls. Does it fail on the first and every subsequent call, or fail only on some calls?