<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vanguard11</id>
	<title>TrainzOnline - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vanguard11"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/wiki/Special:Contributions/Vanguard11"/>
	<updated>2026-11-05T08:33:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Interface&amp;diff=7306</id>
		<title>Class Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Interface&amp;diff=7306"/>
		<updated>2014-06-13T04:10:10Z</updated>

		<summary type="html">&lt;p&gt;Vanguard11: /* Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[TrainzScript Language Reference|API Hierarchy]]&lt;br /&gt;
**Interface&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The Interface class provides scripts with methods to handle the user interface.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Constants &amp;amp; Messages==&lt;br /&gt;
&lt;br /&gt;
===RGB Color Constants===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{TableHeader|width=55%|margin=15px}}&lt;br /&gt;
|bgcolor=#EEEEEE|&#039;&#039;&#039;Predefined 24 bit Red,Green,Blue color values&#039;&#039;&#039;||bgcolor=#EEEEEE|&lt;br /&gt;
|-&lt;br /&gt;
|width=375|public define int  Colour_Red = 0xFF0000||width=225|Red&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_Green = 0x00FF00||Green&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_Blue = 0x0000FF||Blue&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_Yellow = 0xFFFF20||Yellow&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_Cyan = 0xB0C0FF||Cyan&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_White = 0xFFFFFF||White&lt;br /&gt;
|-&lt;br /&gt;
|public define int  Colour_Black = 0x000000||Black&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Button Element Indices===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{TableHeader|width=55%|margin=15px}}&lt;br /&gt;
|bgcolor=#EEEEEE|&#039;&#039;&#039;Constants referring to the buttons on the Driver menu&#039;&#039;&#039;||bgcolor=#EEEEEE|&lt;br /&gt;
|-&lt;br /&gt;
|width=375|public define int  ButtonBar_Element_Close = 0||width=225|Exit button&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_Pause = 1||Pause button.&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_Save = 2||Save button.&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_Performance = 3||Performance Settings button.&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_MetricImp = 4||Imperial/Metric button.&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_Find = 5||Find button.&lt;br /&gt;
|-&lt;br /&gt;
|public define int  ButtonBar_Element_Help = 6||On Screen Help button.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Related Messages===&lt;br /&gt;
*Messages sent to and from Industry objects are listed below:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{TableHeader|width=55%|margin=15px}}&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#EEEEEE&amp;quot;|&#039;&#039;&#039;Major&#039;&#039;&#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot;|&#039;&#039;&#039;Minor&#039;&#039;&#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot;|&#039;&#039;&#039;Source&#039;&#039;&#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot; |&#039;&#039;&#039;Destination&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||MapViewOff||?||Broadcast&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||MapViewOn||?||Broadcast&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||Mouse-Enter||MapObject||Broadcast&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||Mouse-Leave||?||Broadcast&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||Set-Metric-Mode||?||Broadcast&lt;br /&gt;
|-&lt;br /&gt;
|[[Interface Messages|Interface-Event]]||Toggle-Interface||?||Broadcast&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
&lt;br /&gt;
===AdjustScore===&lt;br /&gt;
{{MethodHeader|public void AdjustScore(int delta)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;delta&#039;&#039;&#039; = Positive or negative increment to apply to score.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 AdjustScore(-5);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exception===&lt;br /&gt;
{{MethodHeader|public native void Exception(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Message to be displayed and logged when the Exception occurs.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.Exception(&amp;quot;Fatal Error&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Allows an exception to be explicitly raised by a script in the event of a major error condition.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetDecoupleMode===&lt;br /&gt;
{{MethodHeader|public native bool GetDecoupleMode(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*Returns the current decoupling mode from the Driver interface.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool dcMode = Interface.GetDecoupleMode();&lt;br /&gt;
;Notes&lt;br /&gt;
*The decouple mode can be enabled or disabled when the user clicks on the decouple icon located on the Driver button bar or presses &#039;&#039;Ctrl + D&#039;&#039;.&lt;br /&gt;
*When the interface is in decouple mode, the decouple icon will be highlighted.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetDisplayHeight===&lt;br /&gt;
{{MethodHeader|public native int GetDisplayHeight(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The height of the user&#039;s display in pixels.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int height = Interface.GetDisplayHeight();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetDisplayWidth===&lt;br /&gt;
{{MethodHeader|public native int GetDisplayWidth(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The width of the user&#039;s display in pixels.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int width = Interface.GetDisplayWidth();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetElementProperty===&lt;br /&gt;
{{MethodHeader|public native string GetElementProperty(string elementId, string propertyId)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;elementId&#039;&#039;&#039; = Element to query.&lt;br /&gt;
*&#039;&#039;&#039;propertyId&#039;&#039;&#039; = Property to query.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The value of the specified property if it exists, null otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 &lt;br /&gt;
;Notes&lt;br /&gt;
*This method is used to read element properties of browser windows in the Trainz interface such as the Minimap.&lt;br /&gt;
*See also [[#SetElementProperty|SetElementProperty()]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetInterfaceVisible===&lt;br /&gt;
{{MethodHeader|public native bool GetInterfaceVisible(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the Driver interface is visible, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool visible = Interface.GetInterfaceVisible();&lt;br /&gt;
;Notes&lt;br /&gt;
*The entire Driver mode interface can be hidden from view with the &#039;&#039;F5&#039;&#039; key.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetMapView===&lt;br /&gt;
{{MethodHeader|public native bool GetMapView(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the map view window is visible, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool visible = Interface.GetMapView();&lt;br /&gt;
;Notes&lt;br /&gt;
*The minimap can be displayed or hidden by pressing &#039;&#039;M&#039;&#039; or &#039;&#039;Control + M&#039;&#039;;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetMessageWindowVisible===&lt;br /&gt;
{{MethodHeader|public native bool GetMessageWindowVisible(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the message window at the top of the screen is visible, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool visible = Interface.GetMessageWindowVisible();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetMetricMode===&lt;br /&gt;
{{MethodHeader|public native bool GetMetricMode(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the interface is displaying metric units, false for imperial.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool imperial = !Interface.GetMetricMode();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetObjectiveBarVisible===&lt;br /&gt;
{{MethodHeader|public native bool GetObjectiveBarVisible()}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the Driver objective panel is visible, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool objectivesShown = Interface.GetObjectiveBarVisible();&lt;br /&gt;
;Notes&lt;br /&gt;
*The objective bar visibility can be toggled with the &#039;&#039;F6&#039;&#039; key.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetScore===&lt;br /&gt;
{{MethodHeader|public int GetScore(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The current score.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int score = GetScore();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetTimeStamp===&lt;br /&gt;
{{MethodHeader|public native string GetTimeStamp(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*A real time timestamp in seconds.&lt;br /&gt;
;Syntax&lt;br /&gt;
 string timestamp = Interface.GetTimeStamp();&lt;br /&gt;
;Notes&lt;br /&gt;
*Returns the current time expressed as seconds elapsed since midnight on January 1, 1970 UTC.&lt;br /&gt;
*The return value is a string as Trainzscript does not support any extended integer types.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetWaybillWindowVisible===&lt;br /&gt;
{{MethodHeader|public bool GetWaybillWindowVisible()}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the Waybill Window is displayed, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool waybillVisible = GetWaybillWindowVisible();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HasUnseenMessages===&lt;br /&gt;
{{MethodHeader|public native bool HasUnseenMessages(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if there are messages intended for the Driver message window which have not been displayed, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 if (Interface.HasUnseenMessages()) Interface.SetMessageWindowVisible(true);&lt;br /&gt;
;Notes&lt;br /&gt;
*There are unseen messages if the message window is invisible yet messages have been received.&lt;br /&gt;
*This is indicated to the user by the highlighted microphone icon on the Driver button bar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HighlightButtonBarElement===&lt;br /&gt;
{{MethodHeader|public native void HighlightButtonBarElement(int buttonIndex, bool state)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;buttonIndex&#039;&#039;&#039; = One of the [[#Button Element Indices|Button Element Index]] values defining the button to highlight.&lt;br /&gt;
*&#039;&#039;&#039;state&#039;&#039;&#039; = True to turn highlighting on, false to turn it off.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.HighlightButtonBarElement(ButtonBar_Element_Pause,true);&lt;br /&gt;
;Notes&lt;br /&gt;
*Turns highlighting for a button on the Driver Menu either on or off.&lt;br /&gt;
*This method allows a button on the Driver Menu found in the top left corner of the screen to be highlighted as if the mouse cursor was hovering above that button.&lt;br /&gt;
*Note that the Driver Menu is not always visible, but you can explicitly show it with [[#ShowDriverButtonMenu|ShowDriverButtonMenu()]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Log===&lt;br /&gt;
{{MethodHeader|public native void Log(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text string to print to log file.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.Log(&amp;quot;Session ended&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Prints a string of text to the &#039;&#039;jetlog.txt&#039;&#039; log file.&lt;br /&gt;
*See also [[#Print|Print()]].&lt;br /&gt;
*Disabled by default in TS12. See [[CCG/Modelling: TrainzOptions File]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LogCallStack===&lt;br /&gt;
{{MethodHeader|public native void LogCallStack(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text string to be included with the call stack and printed to the log file.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.LogCallStack(&amp;quot;Call Stack Contents&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LogResult===&lt;br /&gt;
{{MethodHeader|public void LogResult(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text string to be included with the result and printed to the result log.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.LogResult(&amp;quot;Result Appended&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Print===&lt;br /&gt;
{{MethodHeader|Print()}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text string to print to log file and to the message window.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.Print(&amp;quot;Session ended&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Prints a string of text to the &#039;&#039;jetlog.txt&#039;&#039; log file and echoes it to the messag window.&lt;br /&gt;
*See also [[#Log|Log()]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ResetResults===&lt;br /&gt;
{{MethodHeader|public void ResetResults()}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.ResetResults();&lt;br /&gt;
;Notes&lt;br /&gt;
*Clears the result log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetAlert===&lt;br /&gt;
{{MethodHeader|public native void SetAlert(string message, string iconTexture, float duration, int colour)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text of message to display.&lt;br /&gt;
*&#039;&#039;&#039;iconTexture&#039;&#039;&#039; = Icon for alert, use an empty string for no icon.&lt;br /&gt;
*&#039;&#039;&#039;duration&#039;&#039;&#039; = Time in seconds to keep the alert displayed.&lt;br /&gt;
*&#039;&#039;&#039;colour&#039;&#039;&#039; = Color of alert text as a 24 bit RGB or as one of the [[#RGB Color Constants|RGB Color Constants]].&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetAlert(&amp;quot;Train Halted due to leaves on line&amp;quot;,&amp;quot;&amp;quot;,10.0,Interface.Colour_Red);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetDecoupleMode===&lt;br /&gt;
{{MethodHeader|public native void SetDecoupleMode(bool enabled)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;enabled&#039;&#039;&#039; = Use true to enable decoupling, false to prevent.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetDecoupleMode(false);&lt;br /&gt;
;Notes&lt;br /&gt;
*The driver interface decoupling mode can be enabled or disabled using the icon on the Driver button bar or by keypress &#039;&#039;Ctrl + D&#039;&#039;.&lt;br /&gt;
*When the interface is in decouple mode, the decouple icon will be highlighted.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetElementProperty===&lt;br /&gt;
{{MethodHeader|public native void SetElementProperty(string elementId, string propertyId, string value)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;elementId&#039;&#039;&#039; = Element to update.&lt;br /&gt;
*&#039;&#039;&#039;propertyId&#039;&#039;&#039; = Property to update.&lt;br /&gt;
*&#039;&#039;&#039;value&#039;&#039;&#039; = New value to set.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetElementProperty(elementId,propertyId,value);&lt;br /&gt;
;Notes&lt;br /&gt;
*This method is used to modify element properties of browser windows in the Trainz interface such as the Minimap&lt;br /&gt;
*See also [[#GetElementProperty|GetElementProperty()]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetHelperIconScale===&lt;br /&gt;
{{MethodHeader|public native void SetHelperIconScale(float scale)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;scale&#039;&#039;&#039; = Scale factor to apply to on screen junction icons etc, range 0.5..1.0&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetHelperIconScale(0.5); // set to 50% of default size&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetMapView===&lt;br /&gt;
{{MethodHeader|public native void SetMapView(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetMapView(true);&lt;br /&gt;
;Notes&lt;br /&gt;
*The user can show or hide the map view window by pressing &#039;&#039;M&#039;&#039; or &#039;&#039;Ctrl + M&#039;&#039; on the keyboard&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetMessageWindowVisible===&lt;br /&gt;
{{MethodHeader|public native void SetMessageWindowVisible(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 if (Interface.HasUnseenMessages()) Interface.SetMessageWindowVisible(true);&lt;br /&gt;
;Notes&lt;br /&gt;
*See Also [[#GetMessageWindowVisible|GetMessageWindowVisible()]] and [[#HasUnseenMessages|HasUnseenMessages()]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetMetricMode===&lt;br /&gt;
{{MethodHeader|public native mode SetMetricMode(bool useMetric)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;useMetric&#039;&#039;&#039; = Use true to select metric units, false to select imperial.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetMetricMode(false);&lt;br /&gt;
;Notes&lt;br /&gt;
**See also [[#GetMetricMode|GetMetricMode()]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetObjective===&lt;br /&gt;
{{MethodHeader|public native void SetObjective(string message, string iconTexture)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Text for objective message.&lt;br /&gt;
*&#039;&#039;&#039;iconTexture&#039;&#039;&#039; = Icon to display, use an empty string to omit the icon.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetObjective(&amp;quot;Line closed ahead&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*This method will cause the driver objective panel to become visible.&lt;br /&gt;
*The User can hide or show the panel at their discretion.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetObjectiveBarVisible===&lt;br /&gt;
{{MethodHeader|public native void SetObjectiveBarVisible(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetObjectiveBarVisible(false);&lt;br /&gt;
;Notes&lt;br /&gt;
*The Driver objective bar can be toggled between invisible and visible by pressing the &#039;&#039;F6&#039;&#039; key.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetObjectiveIcon===&lt;br /&gt;
{{MethodHeader|public native void SetObjectiveIcon(string iconTexture)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;iconTexture&#039;&#039;&#039; = Icon to display, use an empty string to remove a previous icon.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetObjectiveIcon(&amp;quot;&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*The image file to use as the icon must be a 32x32 *.tga image.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetResults===&lt;br /&gt;
{{MethodHeader|public native void SetResults(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = String to display in results box.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetResults(&amp;quot;Result text to display&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Displays the results of a scenario.&lt;br /&gt;
*This method will change the activities menu to the results screen and fill out the results box with the given string.&lt;br /&gt;
*The results will be visible when the user closes the activity module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetScore===&lt;br /&gt;
{{MethodHeader|public native void SetScore(string message)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039; = Message to display in the activity bar.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetScore(&amp;quot;Score&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetTooltip===&lt;br /&gt;
{{MethodHeader|public native void SetTooltip(Browser tooltip)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;tooltip&#039;&#039;&#039; = Browser to use as a tooltip window, if null the current tooltip will be removed.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetTooltip(tooltip);&lt;br /&gt;
;Notes&lt;br /&gt;
*Sets the tooltip that should follow the mouse around.&lt;br /&gt;
*This method specifies that tooltip should follow the mouse.&lt;br /&gt;
*Any existing tooltip will be replaced.&lt;br /&gt;
*If this Browser is released, it will be removed automatically.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetWaybillWindowVisible===&lt;br /&gt;
{{MethodHeader|public void SetWaybillWindowVisible(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.SetWaybillWindowVisible(false);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ShowDriverButtonMenu===&lt;br /&gt;
{{MethodHeader|public native void ShowDriverButtonMenu(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.ShowDriverButtonMenu(true);&lt;br /&gt;
;Notes&lt;br /&gt;
*Showing and hiding is not immediate, there may be a delay before it slides on or off.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ShowObjective===&lt;br /&gt;
{{MethodHeader|public native void ShowObjective(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.ShowObjective(true);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ShowOnScreenHelp===&lt;br /&gt;
{{MethodHeader|public native void ShowOnScreenHelp(bool visible)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;visible&#039;&#039;&#039; = Use true to display and false to hide.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.ShowOnScreenHelp(true);&lt;br /&gt;
;Notes&lt;br /&gt;
*This method performs the same function as the &#039;&#039;Show On-screen Help&#039;&#039; menu item in Driver which is used to display or hide names on map objects such as junctions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===WarnObsolete===&lt;br /&gt;
{{MethodHeader|public native void WarnObsolete(string warning)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&#039;&#039;&#039;warning&#039;&#039;&#039; = Message to log to &#039;&#039;jetlog.txt&#039;&#039; at the first time this method is called.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 Interface.WarnObsolete(&amp;quot;Method is obsolete&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Generates a runtime warning that a given function or usage is obsolete.&lt;br /&gt;
*The warning goes to the JetLog.txt file and is not visible to the casual user within Trainz. &lt;br /&gt;
*Only one warning is generated for any given warning string.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Code Examples==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Methods==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
[[Category:Script Class]]&lt;/div&gt;</summary>
		<author><name>Vanguard11</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7305</id>
		<title>CCG/Modelling: TrainzOptions File</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7305"/>
		<updated>2014-06-13T04:07:06Z</updated>

		<summary type="html">&lt;p&gt;Vanguard11: /* TrainzOptions File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TrainzOptions File==&lt;br /&gt;
The &#039;&#039;&#039;trainzoptions.txt&#039;&#039;&#039; file specifies a number of settings for Trainz, and for a default installation of it is found in the C:\Program Files\Auran\TS2009 directory.  It is a standard text file and may be edited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; As a creator, you may have an asset placed in a map, and you would like to find the creator for that asset.&lt;br /&gt;
&lt;br /&gt;
While the asset name may be shown in the Surveyor menu and then the item located in CMP, it is sometimes useful to have the kuid of the asset displayed in the bottom right corner of the Surveyor screen when you select the asset, (use the get tool in the Surveyor menu for that object type).&lt;br /&gt;
&lt;br /&gt;
By adding the following line to the trainzclassicoptions.txt file, the kuids of a placed and selected object will displayed in Surveyor:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-showkuids&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; When testing a traincar asset or track configuration in Driver, sometimes it is helpful if the locomotive moves a faster speed than normal. This is achieved by adding the following line to the trainzcoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-debug&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Driver, use the arrow keys or speed dial to set the speed and direction, then hold down the Shift key. The train will move around the track at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; When creating, Trainz has to be loaded regularly to test the models. To speed up loading time, you can disable the introduction screens by entering the line in the trainzoptions.txt file:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-intro=disable&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; To determine the coordinates for the viewpoints to be used for a cabin cameralist, five values are required:&lt;br /&gt;
:0,0,0,0,0 =left/right, front/back, up/down, yaw, pitch.&lt;br /&gt;
&lt;br /&gt;
To determine these variables, add the following line to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-freeintcam&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pan around the interior in Driver, using arrow keys and mouse. Viewing co-ordinates are displayed at the bottom left of the screen. Make sure you include any negative sign for coordinates where appropriate when entering them in CCP for the config.txt file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; As of TS12, writes to the Jetlog.txt file through Interface.Print() and Interface.Log() calls are disabled. If you are debugging your scripts, you can enable writes to the Jetlog.txt by enabling the following lines to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptlogging&amp;lt;/font&amp;gt;&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptmessagelogging&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These will enable writes from Interface.Log() and Interface.Print() respectively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to start the commands with a &#039;&#039;&#039;hyphen (-)&#039;&#039;&#039; and save the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[CCG/Modelling: Chunky Mesh Track|Previous Page]] . . . . [[CCG/Modelling: ViewPoints in Surveyor|Next Page]]&lt;br /&gt;
&lt;br /&gt;
==Return to CCG Index==&lt;br /&gt;
[[Content Creator&#039;s Guide]]&lt;/div&gt;</summary>
		<author><name>Vanguard11</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7304</id>
		<title>CCG/Modelling: TrainzOptions File</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7304"/>
		<updated>2014-06-13T04:06:47Z</updated>

		<summary type="html">&lt;p&gt;Vanguard11: /* TrainzOptions File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TrainzOptions File==&lt;br /&gt;
The &#039;&#039;&#039;trainzoptions.txt&#039;&#039;&#039; file specifies a number of settings for Trainz, and for a default installation of it is found in the C:\Program Files\Auran\TS2009 directory.  It is a standard text file and may be edited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; As a creator, you may have an asset placed in a map, and you would like to find the creator for that asset.&lt;br /&gt;
&lt;br /&gt;
While the asset name may be shown in the Surveyor menu and then the item located in CMP, it is sometimes useful to have the kuid of the asset displayed in the bottom right corner of the Surveyor screen when you select the asset, (use the get tool in the Surveyor menu for that object type).&lt;br /&gt;
&lt;br /&gt;
By adding the following line to the trainzclassicoptions.txt file, the kuids of a placed and selected object will displayed in Surveyor:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-showkuids&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; When testing a traincar asset or track configuration in Driver, sometimes it is helpful if the locomotive moves a faster speed than normal. This is achieved by adding the following line to the trainzcoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-debug&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Driver, use the arrow keys or speed dial to set the speed and direction, then hold down the Shift key. The train will move around the track at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; When creating, Trainz has to be loaded regularly to test the models. To speed up loading time, you can disable the introduction screens by entering the line in the trainzoptions.txt file:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-intro=disable&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; To determine the coordinates for the viewpoints to be used for a cabin cameralist, five values are required:&lt;br /&gt;
:0,0,0,0,0 =left/right, front/back, up/down, yaw, pitch.&lt;br /&gt;
&lt;br /&gt;
To determine these variables, add the following line to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-freeintcam&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pan around the interior in Driver, using arrow keys and mouse. Viewing co-ordinates are displayed at the bottom left of the screen. Make sure you include any negative sign for coordinates where appropriate when entering them in CCP for the config.txt file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; As of TS12, writes to the Jetlog.txt file through Interface.Print() and Interface.Log() calls are disabled. If you are debugging your scripts, you can enable writes to the Jetlog.txt by enabling the following lines to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptlogging&amp;lt;/font&amp;gt;&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptmessagelogging&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These will enable writes from Interface.Log() and Interface.Print() respectively.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to start the commands with a &#039;&#039;&#039;hyphen (-)&#039;&#039;&#039; and save the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[CCG/Modelling: Chunky Mesh Track|Previous Page]] . . . . [[CCG/Modelling: ViewPoints in Surveyor|Next Page]]&lt;br /&gt;
&lt;br /&gt;
==Return to CCG Index==&lt;br /&gt;
[[Content Creator&#039;s Guide]]&lt;/div&gt;</summary>
		<author><name>Vanguard11</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7303</id>
		<title>CCG/Modelling: TrainzOptions File</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=CCG/Modelling:_TrainzOptions_File&amp;diff=7303"/>
		<updated>2014-06-13T04:06:07Z</updated>

		<summary type="html">&lt;p&gt;Vanguard11: /* TrainzOptions File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TrainzOptions File==&lt;br /&gt;
The &#039;&#039;&#039;trainzoptions.txt&#039;&#039;&#039; file specifies a number of settings for Trainz, and for a default installation of it is found in the C:\Program Files\Auran\TS2009 directory.  It is a standard text file and may be edited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; As a creator, you may have an asset placed in a map, and you would like to find the creator for that asset.&lt;br /&gt;
&lt;br /&gt;
While the asset name may be shown in the Surveyor menu and then the item located in CMP, it is sometimes useful to have the kuid of the asset displayed in the bottom right corner of the Surveyor screen when you select the asset, (use the get tool in the Surveyor menu for that object type).&lt;br /&gt;
&lt;br /&gt;
By adding the following line to the trainzclassicoptions.txt file, the kuids of a placed and selected object will displayed in Surveyor:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-showkuids&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; When testing a traincar asset or track configuration in Driver, sometimes it is helpful if the locomotive moves a faster speed than normal. This is achieved by adding the following line to the trainzcoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-debug&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Driver, use the arrow keys or speed dial to set the speed and direction, then hold down the Shift key. The train will move around the track at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; When creating, Trainz has to be loaded regularly to test the models. To speed up loading time, you can disable the introduction screens by entering the line in the trainzoptions.txt file:&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-intro=disable&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; To determine the coordinates for the viewpoints to be used for a cabin cameralist, five values are required:&lt;br /&gt;
:0,0,0,0,0 =left/right, front/back, up/down, yaw, pitch.&lt;br /&gt;
&lt;br /&gt;
To determine these variables, add the following line to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-freeintcam&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pan around the interior in Driver, using arrow keys and mouse. Viewing co-ordinates are displayed at the bottom left of the screen. Make sure you include any negative sign for coordinates where appropriate when entering them in CCP for the config.txt file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; As of TS12, writes to the Jetlog.txt file through Interface.Print() and Interface.Log() calls are disabled. If you are debugging your scripts, you can enable writes to the Jetlog.txt by enabling the following linex to trainzoptions.txt file.&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptlogging&amp;lt;/font&amp;gt;&lt;br /&gt;
:&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;-enablescriptmessagelogging&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These will enable writes from Interface.Log() and Interface.Print() respectively.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to start the commands with a &#039;&#039;&#039;hyphen (-)&#039;&#039;&#039; and save the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[CCG/Modelling: Chunky Mesh Track|Previous Page]] . . . . [[CCG/Modelling: ViewPoints in Surveyor|Next Page]]&lt;br /&gt;
&lt;br /&gt;
==Return to CCG Index==&lt;br /&gt;
[[Content Creator&#039;s Guide]]&lt;/div&gt;</summary>
		<author><name>Vanguard11</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=1825</id>
		<title>&quot;mesh-table&quot; container</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=%22mesh-table%22_container&amp;diff=1825"/>
		<updated>2011-04-01T05:17:30Z</updated>

		<summary type="html">&lt;p&gt;Vanguard11: /* orientation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;quot;mesh-table&amp;quot; container is a top-level [[config.txt file]] entry used by various [[Content Types]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The mesh-table is a list of mesh subcontainers with no standalone tags. Each mesh subcontainer uses the following format. Tags are parsed in a standardised format, but not all [[Content Types]] support the full range of tags. Each mesh derives its name from the subcontainer&#039;s tag name. These names are used to refer to specific meshes from within the mesh-table and also from script.&lt;br /&gt;
&lt;br /&gt;
=Supported Tags=&lt;br /&gt;
Each mesh subcontainer supports the following tags. Each tag is shown here with its default value.&lt;br /&gt;
&lt;br /&gt;
 mesh-asset &amp;lt;NULLKUID&amp;gt;&lt;br /&gt;
 mesh &amp;quot;&amp;quot;&lt;br /&gt;
 anim &amp;quot;&amp;quot;&lt;br /&gt;
 lod-level 255&lt;br /&gt;
 mesh-season 255&lt;br /&gt;
 att &amp;quot;&amp;quot;&lt;br /&gt;
 att-parent &amp;quot;&amp;quot;&lt;br /&gt;
 opacity 1.0&lt;br /&gt;
 position 0,0,0&lt;br /&gt;
 orientation 0,0,0&lt;br /&gt;
 auto-create 0&lt;br /&gt;
 use-parent-bounds 0&lt;br /&gt;
 animation-loop-speed 0&lt;br /&gt;
 light 1&lt;br /&gt;
 critical-animation 1&lt;br /&gt;
 effects&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 night-mesh-base &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====mesh-asset====&lt;br /&gt;
Allows assets to be used as &#039;mesh libraries&#039;, the following container specifies that the mesh required (and its optional animation) is located in the root folder of &amp;lt;kuid:1234:5678&amp;gt;.  CMP does not check for the existence of these files so you must ensure that they are present before using this tag.&lt;br /&gt;
&lt;br /&gt;
 mesh-table {&lt;br /&gt;
   submesh {&lt;br /&gt;
    mesh-asset &amp;lt;kuid:1234:5678&amp;gt;&lt;br /&gt;
    mesh &amp;quot;meshname.im&amp;quot;&lt;br /&gt;
    anim &amp;quot;meshname.kin&amp;quot;&lt;br /&gt;
    att &amp;quot;a.point&amp;quot;&lt;br /&gt;
    att-parent &amp;quot;default&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====mesh====&lt;br /&gt;
The ‘main’ mesh name. This may include a sub-path; &lt;br /&gt;
ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows.&lt;br /&gt;
&lt;br /&gt;
Use .im files exported from 3dsmax (as opposed to .pm.) or reference an .lm file if you wish your asset to have ‘Level of Detail’ mesh reduction.&lt;br /&gt;
&lt;br /&gt;
Level of detail is a process of using different model meshes, depending on how far the viewer is from the model. A finer mesh is used for close up viewing in Trainz.&lt;br /&gt;
&lt;br /&gt;
====anim====&lt;br /&gt;
The animation file (.kin) exported from 3dsmax. This may include a sub-path.&lt;br /&gt;
&lt;br /&gt;
====lod-level====&lt;br /&gt;
The object LOD level at which this mesh is displayed. The default value (255) indicates that this mesh is visible at all detail levels.  See also [[KIND Mesh]] for the &#039;mesh-detail-level&#039; tag.&lt;br /&gt;
&lt;br /&gt;
====mesh-season====&lt;br /&gt;
The season index for which this mesh is displayed. The default value (255) indicates that this mesh is visible in all seasons.  See also [[&amp;quot;Season-selector&amp;quot; container]].&lt;br /&gt;
&lt;br /&gt;
====att====&lt;br /&gt;
The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).&lt;br /&gt;
&lt;br /&gt;
====att-parent====&lt;br /&gt;
The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.&lt;br /&gt;
&lt;br /&gt;
====opacity====&lt;br /&gt;
opacity x (float 0.0 - 1.0 default 1.0)&lt;br /&gt;
&lt;br /&gt;
Specifies the overall transparency of a mesh. Values other than 0.0 or 1.0 employ alpha blending and a value of 0.0 has the same effect as hiding the mesh.&lt;br /&gt;
&lt;br /&gt;
Note that this tag is buggy in TS2009 prior to SP4.&lt;br /&gt;
&lt;br /&gt;
====position====&lt;br /&gt;
position X,Y,Z  (in metres, default 0,0,0) &lt;br /&gt;
&lt;br /&gt;
Specifies the location of a mesh relative to its insertion point.&lt;br /&gt;
&lt;br /&gt;
====orientation====&lt;br /&gt;
orientation X,Y,Z  (radians default 0,0,0)&lt;br /&gt;
&lt;br /&gt;
Allows a submesh to be rotated relative to its insertion point.  To reverse a mesh by 180 degrees about the Z axis, add the tag:&lt;br /&gt;
&lt;br /&gt;
orientation 0,0,3.14159&lt;br /&gt;
&lt;br /&gt;
A coconut is awarded to the programmer who decided that the parameters to this tag should be in radians.&lt;br /&gt;
&lt;br /&gt;
====auto-create====&lt;br /&gt;
The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.&lt;br /&gt;
&lt;br /&gt;
====use-parent-bounds====&lt;br /&gt;
When enabled, this tag indicates that render culling should occur using the whole object&#039;s bounding box rather than this mesh&#039;s bounding box. Bounding boxes on individual meshes may not update correctly when animation moves the object&#039;s geometry any significant distance from the bind position. This flag can help mitigate such effects, at a tiny performance penalty.&lt;br /&gt;
&lt;br /&gt;
====animation-loop-speed====&lt;br /&gt;
This tag must be here if the asset is to animate when placed. If this tag is not here when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in 3dsmax.&lt;br /&gt;
&lt;br /&gt;
====light====&lt;br /&gt;
&#039;&#039;TBD&#039;&lt;br /&gt;
&lt;br /&gt;
====critical-animation====&lt;br /&gt;
&amp;quot;critical-animation&amp;quot; indicates that this mesh&#039;s animation generates events which are critical to the script system&#039;s behavior. If your asset is not scripted, does not use scripted animation events, or only uses the events for display purposes and will not break if the occasional event is missed, this tag should be set to &#039;&#039;false&#039;&#039;. Leaving this flag set to &#039;&#039;true&#039;&#039; is a &#039;&#039;&#039;significant&#039;&#039;&#039; performance penalty.&lt;br /&gt;
&lt;br /&gt;
====night-mesh-base====&lt;br /&gt;
This night mesh is linked to the specified mesh and is visible only at night. It is invisible if the specified mesh is invisible, (if the auto-create 0 line were used so the specified mesh can be controlled by script).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Effects Container=&lt;br /&gt;
The effects container also contains a list of effect subcontainers. The effect subcontainers support the following generic tags.&lt;br /&gt;
&lt;br /&gt;
 kind &amp;quot;&amp;quot;&lt;br /&gt;
 name &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The effect subcontainers support additional tags depending on the effect kind. The following effect kinds are supported:&lt;br /&gt;
&lt;br /&gt;
* [[Corona Effect]]&lt;br /&gt;
* [[Name Effect]]&lt;br /&gt;
* [[Attachment Effect]]&lt;br /&gt;
* [[Animation Effect]]&lt;br /&gt;
* [[Texture-Replacement Effect]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mesh-Table Example=&lt;br /&gt;
The following is an example of a simple mesh-table which implements two levels of detail.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default-lod0&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod0.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 0&lt;br /&gt;
   }&lt;br /&gt;
   default-lod1&lt;br /&gt;
   {&lt;br /&gt;
     mesh &amp;quot;example-lod1.im&amp;quot;&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     lod-level 1&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container]]&lt;/div&gt;</summary>
		<author><name>Vanguard11</name></author>
	</entry>
</feed>