<?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=Slenderman8888</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=Slenderman8888"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/wiki/Special:Contributions/Slenderman8888"/>
	<updated>2026-11-05T07:03:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Talk:ACS_Coupling_System&amp;diff=44330</id>
		<title>Talk:ACS Coupling System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Talk:ACS_Coupling_System&amp;diff=44330"/>
		<updated>2025-04-15T21:35:38Z</updated>

		<summary type="html">&lt;p&gt;Slenderman8888: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Establish standard positions for hoses, cables, etc ==&lt;br /&gt;
There should be an official set of XYZ positions on where to place cables and hoses for each state to allow for seamless compatibility between stock. From my experience it seems like some creators just pick their own positions with the result being incorrect connections.&lt;br /&gt;
On my own traincars that feature ACS connections, I have based all my cable and hose placements off of Peter Hicks&#039; Aircon Mk2 coaching stock. I propose that the hose and cable positions of these coaches should be used to define a set of uniform standard positions on where hoses should go when in the &amp;quot;connected&amp;quot; positions. --[[User:Slenderman8888|Slenderman8888]] ([[User talk:Slenderman8888|talk]]) 07:35, 16 April 2025 (AEST)&lt;/div&gt;</summary>
		<author><name>Slenderman8888</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=ACS_Coupling_System&amp;diff=43605</id>
		<title>ACS Coupling System</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=ACS_Coupling_System&amp;diff=43605"/>
		<updated>2024-11-25T22:07:04Z</updated>

		<summary type="html">&lt;p&gt;Slenderman8888: Added missing staggered RCH option, as seen on Peter Hicks&amp;#039; Mk2&amp;#039;s and Bloodnok&amp;#039;s Mk3a&amp;#039;s.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Introduction===&lt;br /&gt;
&lt;br /&gt;
There are many and varied problems with the existing BlueStar standard - but the main ones are the inflexibility beyond the initial application (coupling mineral wagons and transition era locos), and the rather arcane numeric values put into the config.txt.&lt;br /&gt;
&lt;br /&gt;
A more readable, more flexible, and preferrably easily extensible datastructure in the config.txt was needed, and some way of standardising the logic (at the very minimum, an include file, but preferrably a library). It needed to support many more different types of coupler, vehicles with different couplers on each end, and so on. &lt;br /&gt;
&lt;br /&gt;
The ACS System is an extension of the BlueStar coupling standard for TRS models (effectively BlueStar V2) and provides for the effect of working couplings on rolling stock. From version 5 of the ACSLib ACS vehicles are compatible with older BlueStar/CoupleStar ones. &lt;br /&gt;
&lt;br /&gt;
To add ACS couplings it is necessary to edit the asset config file, add attachment points to the mesh (see below for an alternative which can sometimes be used) and to create a script or edit the existing one. Due to the fact that you need access to the source files of the asset and to be able to script it is an advanced technique that cannot easily be carried out by an end-user.&lt;br /&gt;
&lt;br /&gt;
For couplers implemented as meshes in the mesh-table (usually but not always animated), position and orientation tags can be used to locate the attached meshes:&lt;br /&gt;
&lt;br /&gt;
*For front couplings the tag &#039;position 0,Y,0&#039; should be added.&lt;br /&gt;
*For back couplings two tags are needed, &#039;position 0,Y,0&#039; and orientation &#039;0,0,3.14159&#039;&lt;br /&gt;
*in both cases the value Y is 0.46 metres inboard of the Y value of limfront and limback respectively.&lt;br /&gt;
&lt;br /&gt;
===The Attachment Points===&lt;br /&gt;
&lt;br /&gt;
All of the coupler, hoses and cables are attached to two points, one on the face of the front buffer beam (a.couple0) and one on the face of the rear beam (a.couple1). a.limfront should be 0.46m forward of a.couple0 and a.limback 0.46m rearward of a.couple1. a.couple0 and a.couple1 must be at x=0 and z=0.&lt;br /&gt;
&lt;br /&gt;
Create a.couple0 in top view and move it into position. Then clone and position it to create a.couple1 and rotate it 180°. The Y axis of the two coupler points should point towards 0,0,0.&lt;br /&gt;
&lt;br /&gt;
[[File:Acs attachments.png|border|middle|x375px]]&lt;br /&gt;
&lt;br /&gt;
===The Config File===&lt;br /&gt;
First off, here is an example config.txt fragment: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extensions {&lt;br /&gt;
  max_permitted_speed-60850 &amp;quot;125mph&amp;quot;&lt;br /&gt;
  active-coupling-standard-60850 {&lt;br /&gt;
    version-major &amp;quot;2&amp;quot;&lt;br /&gt;
    version-minor &amp;quot;0&amp;quot;&lt;br /&gt;
    brakes &amp;quot;air&amp;quot;&lt;br /&gt;
    front {&lt;br /&gt;
      coupler &amp;quot;knuckle|screwlink|hook&amp;quot;&lt;br /&gt;
      gangway &amp;quot;gangway&amp;quot;&lt;br /&gt;
      airbraketype &amp;quot;single&amp;quot;&lt;br /&gt;
      airbrakeside &amp;quot;left&amp;quot; &lt;br /&gt;
      vacbrake &amp;quot;none&amp;quot;&lt;br /&gt;
      multiple-working &amp;quot;none&amp;quot;&lt;br /&gt;
      heating-type &amp;quot;electric&amp;quot;&lt;br /&gt;
      rch &amp;quot;high&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    back {&lt;br /&gt;
      coupler &amp;quot;knuckle|screwlink|hook&amp;quot;&lt;br /&gt;
      gangway &amp;quot;gangway&amp;quot;&lt;br /&gt;
      airbraketype &amp;quot;single&amp;quot;&lt;br /&gt;
      airbrakeside &amp;quot;left&amp;quot; &lt;br /&gt;
      vacbrake &amp;quot;none&amp;quot;&lt;br /&gt;
      multiple-working &amp;quot;none&amp;quot;&lt;br /&gt;
      heating-type &amp;quot;electric&amp;quot;&lt;br /&gt;
      rch &amp;quot;high&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, what does all this do, and what are the options?&lt;br /&gt;
====Extension Container====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extensions {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is for TRS2006 compatibility - it&#039;s all going in the extensions container. This does work in TRS2004 as well. Watch for the caveat at the end though...&lt;br /&gt;
&lt;br /&gt;
====Max Permitted Speed====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      Max_Permitted_Speed-60850 &amp;quot;125mph&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not strictly part of the coupling code, but may as well mention it. This is for the Max Permitted Speed rule to tell how fast this vehicle should be permitted to travel. It will tell both AI drivers and the human driver (via the Custom HUD rule) what the maximum permitted speed is for the train they are driving, based on information from each vehicle. (And in a future version of the rule, more stuff too...)&lt;br /&gt;
====ACS Container====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      active-coupling-standard-60850 {&lt;br /&gt;
        ...&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the container within which all the config information will be held.&lt;br /&gt;
&lt;br /&gt;
====ACS Version====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        version-major &amp;quot;2&amp;quot;&lt;br /&gt;
        version-minor &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version numbers. This is useful when later code needs to read earlier format config files. Should make extending the standard a lot easier.&lt;br /&gt;
&lt;br /&gt;
====Braking System====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        brakes &amp;quot;air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defines what type of braking system is fitted to this vehicle. Options are:&lt;br /&gt;
*&amp;quot;air&amp;quot;&lt;br /&gt;
*&amp;quot;vac&amp;quot;&lt;br /&gt;
*&amp;quot;dual&amp;quot;&lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
This is independant of what hoses are available - unbraked but through piped stock is an entirely possible combination, and is representable.&lt;br /&gt;
&lt;br /&gt;
====Position====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        front {&lt;br /&gt;
          ...&lt;br /&gt;
        }&lt;br /&gt;
        back {&lt;br /&gt;
          ...&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Containers for the front and back of the vehicle. &#039;Front&#039; is defined as &amp;quot;the a.limfront end&amp;quot;, and &#039;back&#039; &amp;quot;the a.limback end&amp;quot;. Available options for both are the same, so I&#039;ll describe them just once.&lt;br /&gt;
====Coupler Type====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          coupler &amp;quot;knuckle|screwlink|hook&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What type of coupler do we have on this end of the vehicle? Options are:&lt;br /&gt;
* &amp;quot;hook&amp;quot; -- connects to screwlink/instanter/3link/hst-emergency-bar.&lt;br /&gt;
* &amp;quot;3link&amp;quot; -- connects to hook.&lt;br /&gt;
* &amp;quot;instanter&amp;quot; -- connects to hook.&lt;br /&gt;
* &amp;quot;screwlink&amp;quot; -- connects to hook.&lt;br /&gt;
* &amp;quot;hst-emergency-bar&amp;quot; -- connects to hook.&lt;br /&gt;
* &amp;quot;bar-full&amp;quot; -- connects to &amp;quot;bar-none&amp;quot;. Half of a handed pair for when one vehicle has the entire bar coupling.&lt;br /&gt;
* &amp;quot;bar-none&amp;quot; -- connected to by &amp;quot;bar-full&amp;quot;. The other half of the handed pair.&lt;br /&gt;
* &amp;quot;bar&amp;quot; -- connects to self only. Used when both vehicles have half the bar coupling.&lt;br /&gt;
* &amp;quot;knuckle&amp;quot; - standard knuckle coupler.&lt;br /&gt;
* &amp;quot;tightlock&amp;quot; -- different to a standard knuckle, refers to a knuckle style coupler often fitted to multiple unit trains that also include electrical connections.&lt;br /&gt;
* &amp;quot;wedgelock&amp;quot; -- London Underground coupler.&lt;br /&gt;
* &amp;quot;bsi&amp;quot; -- Found on Sprinter DMUs and derived designs.&lt;br /&gt;
* &amp;quot;dellner&amp;quot; -- Also compatible with scharfenberg coupling.&lt;br /&gt;
* &amp;quot;scharfenberg&amp;quot; -- Also compatible with dellner coupling.&lt;br /&gt;
* &amp;quot;(other string identifier)&amp;quot; -- Any string that is not recognised from the above list is assumed to be a symmetrical meet-in-the-middle type of coupler.&lt;br /&gt;
&lt;br /&gt;
Certain couplers are purely compatible with other identical couplers, others are inter-compatible. Some produce handed pairs - e.g. a 3 link chain couples to a hook, and wagons with this coupling are typically fitted with both a hook and a chain.&lt;br /&gt;
&lt;br /&gt;
Multiple coupler options can be specified, and are separated with a vertical bar character. The earlier option is used in preference, so list the best coupler option first.&lt;br /&gt;
&lt;br /&gt;
A typical unfitted freight wagon with a 3 link coupling is specified as &amp;quot;3link|hook&amp;quot;. A vehicle fitted with a knuckle, screwlink and hook (e.g. a swingknuckle fitted locomotive) is specified as &amp;quot;knuckle|screwlink|hook&amp;quot;. A BR coaching stock dropknuckle (a knuckle and a hook, but no chain) is specified as &amp;quot;knuckle|hook&amp;quot;. If the vehicle also has an emergency screwlink which is not permanently fitted, then &amp;quot;knuckle|hook|screwlink&amp;quot; would be appropriate -- this would cause ACS to prefer the chain type coupler from the adjacent vehicle rather than using the emergency screwlink, which would only be used when necessary. A Victorian Railways transitional coupler (which has a chain and a knuckle, but no hook) is specified as &amp;quot;knuckle|3link&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dellner and Scharfenberg couplings are treated as compatible, so a dellner will also couple to a scharfenberg.&lt;br /&gt;
&lt;br /&gt;
If your coupler type isn&#039;t listed, define a standard name for it, and start using it. ACS supports arbitrary extension - any new coupler it hasn&#039;t seen before will be treated as a symmetrical coupler. ACS will tell you if it has connected to an identical coupler on the adjacent vehicle.&lt;br /&gt;
&lt;br /&gt;
If you need a new handed pair type (where the coupler on the end of one wagon is not the same as that on the end of another), then you will need to contact the ACS author to get one added.&lt;br /&gt;
&lt;br /&gt;
====Gangways====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          gangway &amp;quot;gangway&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passenger gangway between vehicles. Options are:&lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
*&amp;quot;rubbing-plate&amp;quot;&lt;br /&gt;
*&amp;quot;gangway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is really intended for coaching stock - it is assumed that all gangways are compatible. I&#039;ve been considering a &#039;one piece&#039; gangway option - to aid with the centre of multiple unit trains, where there is no separation point (it will help with deciding which vehicle should display the gangway) - but I&#039;m not sure whether this is of sufficient benefit to include, as it involves a whole new set of logic here that most people won&#039;t use, and for the cases it is interesting, the same person has made both vehicles, and can therefore do it themselves... Comments please.&lt;br /&gt;
====Pipes for Air Brakes====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          airbraketype                      &amp;quot;single&amp;quot;&lt;br /&gt;
          airbrakeside                      &amp;quot;left&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Brake pipes for air brakes. Options for airbraketype are: &lt;br /&gt;
*&amp;quot;twin&amp;quot;&lt;br /&gt;
*&amp;quot;single&amp;quot;&lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
Twin is the UK standard two pipe air brake system (train pipe and brake pipe). Single is the US standard air brake system where reservoirs are charged from the brake pipe rather than the train pipe (this has appeared on some modern freightcars for reasons unknown, so is included). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Options for airbrakeside are:&lt;br /&gt;
*&amp;quot;left&amp;quot;&lt;br /&gt;
*&amp;quot;right&amp;quot;&lt;br /&gt;
Most traincars (UK, US, etc.) use left-sided airbrakes, so airbrakeside &amp;quot;left&amp;quot; will generally be used, but the right option was added to support both left and right-handed brake pipes on Australian content.&lt;br /&gt;
&lt;br /&gt;
====Pipes for Vac Brakes====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          vacbrake &amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Brake pipes for Vacuum brakes. Options are: &lt;br /&gt;
*&amp;quot;twin&amp;quot;&lt;br /&gt;
*&amp;quot;single&amp;quot;&lt;br /&gt;
*&amp;quot;high&amp;quot;&lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Single is the UK default for fitted stock, high connections seems to be the standard on UK steam locos. Twin pipes (operating at two different vacuum levels) has been tried in the UK - and while not much fitted stock has the twin pipe system, most air brake, through vac piped stock seems to have two vac pipes.&lt;br /&gt;
====Multiple Working Cables====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          multiple-working &amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiple working connections. Options are: &lt;br /&gt;
*&amp;quot;(color)-(shape)&amp;quot; -- e.g. &amp;quot;blue-star&amp;quot; or &amp;quot;red-diamond&amp;quot;, etc&lt;br /&gt;
*&amp;quot;AAR&amp;quot; -- as used on GM locos&lt;br /&gt;
*&amp;quot;SR27&amp;quot; -- bagpipes&lt;br /&gt;
*&amp;quot;(other identifier string e.g. classname)&amp;quot;&lt;br /&gt;
====Train Heating====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          heating-type &amp;quot;electric&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Coach heating. Options are: &lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
*&amp;quot;steam&amp;quot;&lt;br /&gt;
*&amp;quot;electric&amp;quot; -- standard ETH&lt;br /&gt;
*&amp;quot;dual&amp;quot; -- both Steam and standard ETH&lt;br /&gt;
*&amp;quot;southern-electric&amp;quot; -- The Southern, who pioneered electric train heating in the UK, fitted heating that was compatible with their DC powered EMUs, and thus ran from the same voltage as the DC power supply. When the rest of BR went ETH, different standards were adopted, resulting in the Southern having a different and incompatible ETH standard...&lt;br /&gt;
&lt;br /&gt;
====Lighting Control Cables====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          rch &amp;quot;high&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Through wiring for lighting control, to the Railway Clearing House standard. Also used more recently for other things - e.g. remote control via various methods - including TDM. I believe it is also used for signals to control doorlocks on stock so fitted - though I could be wrong on this. Options are:&lt;br /&gt;
*&amp;quot;high&amp;quot; -- positioned as is fairly standard on coaching stock&lt;br /&gt;
*&amp;quot;low&amp;quot; -- positioned as is fairly standard on streamlined locos, e.g. the front of a DVT, or a cl90&lt;br /&gt;
*&amp;quot;staggered&amp;quot; -- positioned on coaching stock where one cable is mounted higher than one on the opposite side, e.g. Mk2d-Mk2f and Mk3a coaching stock&lt;br /&gt;
*&amp;quot;none&amp;quot;&lt;br /&gt;
====Notes====&lt;br /&gt;
For all of these where &amp;quot;none&amp;quot; is an option, entirely missing out that line is equivalent to stating &amp;quot;none&amp;quot;. This should make stock which doesn&#039;t use most of the features much more palatable to produce. This will also help when extending the standard - as new features will automatically be assumed to be not present on stock built to older standards...&lt;br /&gt;
&lt;br /&gt;
That&#039;s all very well and good, but how is this supposed to be backwards compatible with the old bluestar standard?&lt;br /&gt;
&lt;br /&gt;
I&#039;m making the code fall back to reading the old config entries if it can&#039;t find the new ones. The real problem is that new stock will also have to include config.txt entries for the old bluestar, so that old vehicles know what to do when they couple to this one. Yes, this means that the old tags will never actually go away, but at least TRS2006 doesn&#039;t whinge about them so hard as of SP1...&lt;br /&gt;
&lt;br /&gt;
===The Script===&lt;br /&gt;
&lt;br /&gt;
Basic ACS handler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void ACShandler(Message msg)&lt;br /&gt;
  {&lt;br /&gt;
    if(msg.dst == me)&lt;br /&gt;
    {&lt;br /&gt;
      // tokenize msg.minor into (&#039;|&#039;) separate strings&lt;br /&gt;
      string[] callback = Str.Tokens(msg.minor, &amp;quot;|&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (callback.size() &amp;gt;= 3)&lt;br /&gt;
      {&lt;br /&gt;
        if (callback[1] == &amp;quot;back&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
          if(callback[0] == &amp;quot;coupler&amp;quot;)&lt;br /&gt;
          {&lt;br /&gt;
            if(callback[2] != &amp;quot;none&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
              //backCoupled = true;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
              //backCoupled = false;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (callback[1] == &amp;quot;front&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
          if(callback[0] == &amp;quot;coupler&amp;quot;)&lt;br /&gt;
          {&lt;br /&gt;
            if(callback[2] != &amp;quot;none&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
              //frontCoupled = true;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
              //frontCoupled = false;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        TrainzScript.Log(&amp;quot;ERROR: ACS Library returned invalid callback \&amp;quot;&amp;quot; + msg.minor + &amp;quot;\&amp;quot; - not divisible into at least 3 parts!&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Slenderman8888</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Create_an_Interactive_Session&amp;diff=9949</id>
		<title>HowTo/Create an Interactive Session</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Create_an_Interactive_Session&amp;diff=9949"/>
		<updated>2017-08-30T21:15:02Z</updated>

		<summary type="html">&lt;p&gt;Slenderman8888: /* Penalising Derailments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Trainz [[session|&amp;quot;Session&amp;quot;]] concept is very powerful and yet also easy enough that anyone can create their own Sessions. The simplest Session involves adding consists to a route, assigning some AI orders, and setting a few basic startup settings for the session in the default rules.&lt;br /&gt;
&lt;br /&gt;
This document is a quick introduction to sessions aimed at getting people to think beyond this most basic level of session, and to take more advantage of the power and flexibility of the session concept.&lt;br /&gt;
&lt;br /&gt;
It assumes you are familiar with Driver and basic Surveyor usage including placing scenery and trains. If you aren&#039;t familiar with these concepts, then you may need a more basic introduction to Trainz [[Driver]] and [[Surveyor]] and go through the [[HowTo/Create your first Session]] tutorial. For an overview of Session Rules and how they operate, check out [[Session_Rules_Overview]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Creating an interactive session=&lt;br /&gt;
&lt;br /&gt;
You might be interested in our latest Twitch TV video tutorial [https://youtu.be/sI6jzb3i4Tw HERE] on session creation.&lt;br /&gt;
&lt;br /&gt;
In the routes menu, find the route &#039;Springfield Industrial District&#039; (you may have to unselect &#039;show only favorite routes&#039;). This example uses this route because it&#039;s small, and it is built-in with Trainz 12. Show the sessions, and then click &#039;new session&#039;.&lt;br /&gt;
&lt;br /&gt;
Place a CHN ND5-1 on one of the turntable tracks, and a CHN G70K tanker in the yard next to the turntable.&lt;br /&gt;
&lt;br /&gt;
==Setting the initial startup options==&lt;br /&gt;
&lt;br /&gt;
Now open the &#039;Edit Session&#039; dialog on the main menu. Change the session name and type something in for the description.&lt;br /&gt;
&lt;br /&gt;
You should have something that looks roughly like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-1.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
If you are using [[TS2010]], remove the &#039;ConsistDataHandler&#039; and &#039;QuickDrive&#039; rules. Nice though they are, we don&#039;t want the player of this session to be able to arbitrarily create new vehicles. To delete the rule, click on it to select it, and then click the &#039;Delete&#039; button.&lt;br /&gt;
&lt;br /&gt;
Note: If you are using [[TS12]] or [[Trainz Simulator Mac]], you won&#039;t have &#039;startup options&#039; - &#039;[[QuickDrive]]&#039; has taken over this role. So instead of deleting those two rules, edit the &#039;QuickDrive&#039; rule (highlight it and click the &#039;Edit&#039; button), and tick the &amp;quot;Gameplay Session&amp;quot; option in the QuickDrive options. Save the changes.&lt;br /&gt;
&lt;br /&gt;
==Adding a displayed score==&lt;br /&gt;
&lt;br /&gt;
Add the [[Display Custom HUD Rule]] - click &#039;add&#039;, find &#039;Display Custom HUD&#039; in the list, select it, and click the tick button.&lt;br /&gt;
&lt;br /&gt;
Add a [[Variable Modify Rule]]. Once you&#039;ve added this, click the &#039;Edit&#039; button, and you can set the rule properties. Anything you can click on is underlined. Click on &#039;Add&#039;, and set this to &#039;Change&#039;. Also set the number to &#039;0&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-2.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
Confirm these changes by clicking the tick button on the &#039;Properties&#039; dialog.&lt;br /&gt;
&lt;br /&gt;
Add a [[Variable Show Rule]].&lt;br /&gt;
&lt;br /&gt;
==Checking the user makes a train correctly==&lt;br /&gt;
&lt;br /&gt;
Add a [[Consist Check Rule]]. Select &#039;Complete whenever a train matching the description exists&#039;. This opens up several more options. Under &#039;Specific Vehicles&#039;, click the plus, and add our ND5. Repeat this and add the G70K as well. Also tick &#039;Enforce strict exclusive checking&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-3.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
&#039;Enforce strict exclusive checking&#039; will make the consist check rule check the consist more thoroughly - so if someone picks up too many vehicles in the yard, it won&#039;t trigger.&lt;br /&gt;
&lt;br /&gt;
Confirm these changes by clicking the tick button on the &#039;Properties&#039; dialog.&lt;br /&gt;
&lt;br /&gt;
Finally, Add a &#039;Variable Modify&#039; rule at the bottom, under &#039;Consist Check&#039;. We will click the right arrow button once to indent the rule one level to the right.&lt;br /&gt;
&lt;br /&gt;
This means this rule will not take effect immediately, but will be triggered by the &#039;Consist Check&#039; rule, when the consist exists.&lt;br /&gt;
&lt;br /&gt;
Now tick the &#039;Edit Session&#039; dialog.&lt;br /&gt;
&lt;br /&gt;
==Driving your first session==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s try this out in Driver now.&lt;br /&gt;
&lt;br /&gt;
Click on the Driver button next to the main menu. Save the session. (If it asks to save the map, you&#039;ve done something wrong - did you place the trains in the wrong layer?)&lt;br /&gt;
&lt;br /&gt;
In Driver, you should see the &#039;Custom HUD&#039; panel, and in it, an extra field labelled &#039;Score&#039;. It should be zero.&lt;br /&gt;
Take the ND5 over to the G70K tanker, and couple up to it. If the rules are set up right, &#039;Score&#039; should change to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-4.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
==Adding a pickup task at an industry==&lt;br /&gt;
&lt;br /&gt;
Okay, let&#039;s take this a stage further. Go back to surveyor, and set the current layer to the session layer in the layers tab.&lt;br /&gt;
&lt;br /&gt;
==Configuring an industry==&lt;br /&gt;
&lt;br /&gt;
Configure &#039;Palmer Chemicals&#039;, by clicking on the industry track (between the two arrows) with the question mark icon from the &#039;scenery&#039; tab. This is a &#039;multiple industry new&#039; track. As this is a new session, it won&#039;t have any configuration yet - so we&#039;ll need to add some. See [[HowTo/Configure an Interactive Industry]] for details.&lt;br /&gt;
&lt;br /&gt;
==Checking the user uses the industry==&lt;br /&gt;
&lt;br /&gt;
Go back to the &#039;Edit Session&#039; dialog. At the bottom, add a &#039;Resource Check&#039; rule. Edit the resource check rule.&lt;br /&gt;
&lt;br /&gt;
Pick the &#039;Watch Vehicle Queue&#039; option. Within this, set &#039;CHN G70K Tanker&#039; as the target object. Set the queue to be &#039;liquid&#039; (there should be only one option). Set the product to be Aviation Fuel. Set the amount to be &#039;72040&#039; (you can actually type in &#039;99999&#039; and it&#039;ll autocorrect to the maximum size of the queue if it&#039;s larger than what the queue can hold). Ensure &#039;Complete when the designated queue equals or exceeds required amount&#039; is set. It should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-5.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
Tick the Properties dialog.&lt;br /&gt;
&lt;br /&gt;
Now add a &#039;Variable Modify&#039; rule below the [[Resource Check Rule]], configure it to add one to the variable &#039;score&#039;, and indent it one step to the right. Your session rules should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-6.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
==Testing the extended session==&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s try this out in Driver. Couple the ND5 to the tanker as before. The score should update to 1 when you do this. Now take the wagon up the hill to Palmer Chemicals.&lt;br /&gt;
&lt;br /&gt;
Stop the wagon next to the three pink tanks, and wait for it to load. Once it is loaded, the score should update to 2.&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-7.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
==Adding a delivery task at an industry== &lt;br /&gt;
&lt;br /&gt;
And another stage. Go back to surveyor, and reselect the session layer.&lt;br /&gt;
&lt;br /&gt;
Go to the airport, and in it&#039;s properties, set it&#039;s Aviation Fuel queue to start at Zero and consume Zero.&lt;br /&gt;
&lt;br /&gt;
Now in &#039;Edit Session&#039;, add another &#039;Resource Check&#039; rule to the bottom of the list. Configure this one to watch an industry queue on &#039;Local Airport&#039;. There will be several queues here - you want &#039;av_in_q&#039;, with product &#039;Aviation Fuel&#039;. We&#039;re going to watch for 144000 units, and complete when the queue equals or exceeds the required amount.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Session-tutorial-8.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
Underneath and indented beyond this, we&#039;re going to need another Variable Modify rule.&lt;br /&gt;
&lt;br /&gt;
When we test this in Driver, we&#039;ll need to fill the tanker twice - and deliver two loads. Only at the second load will the score go to 3.&lt;br /&gt;
&lt;br /&gt;
==Checking vehicles are left in designated places==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Adding instructions==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Penalising Speeding==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Penalising Passing Red Signals==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Penalising Derailments==&lt;br /&gt;
click the add button in session rules and look for the rule &amp;quot;wait for derailment&amp;quot; add this in your session rules. this rule detects when a train derails then add a child rule end session since a derailment will mean the locomotive will no longer work end the session now&lt;br /&gt;
&lt;br /&gt;
==Adding a &#039;session complete&#039; achievement==&lt;br /&gt;
&#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Hints and Tips=&lt;br /&gt;
&lt;br /&gt;
Some background information you may find useful.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
TS2010 introduced the concept of layers to Trainz, and when working on a session, you will need to use them. The key thing is that this allows you to add most types of Trainz assets to the session, which previously could only be used in a route. As well as the usual Traincars, this can be scenery objects, trackside objects, even splines.&lt;br /&gt;
&lt;br /&gt;
A good tip is to lock the route layer(s). This will help prevent accidental editing of the route layers.&lt;br /&gt;
&lt;br /&gt;
Pay particular attention to layers if you use the &#039;quicklaunch&#039; feature to launch Driver direct from Surveyor and return to Surveyor afterwards. The layer you had selected before probably won&#039;t still be selected afterwards, so you&#039;ll need to check it every time you return from Driver.&lt;br /&gt;
&lt;br /&gt;
==&#039;Base session&#039; assets==&lt;br /&gt;
&lt;br /&gt;
Some routes come with a &#039;base session&#039;. This generally has pre-configured settings for industries and other scripted assets in it. You may find, should your chosen map depend heavily on multiple industry assets or other similar scripted content, that you may need to base your session on a &#039;base session&#039; asset, rather than creating a new session.&lt;br /&gt;
&lt;br /&gt;
In this case, the default rules list may differ - as it may have been created in a different version of Trainz, or the route creator may have decided to change a few things. Feel free to add any missing rules you want, or remove extras you don&#039;t.&lt;br /&gt;
&lt;br /&gt;
==Default rules==&lt;br /&gt;
&lt;br /&gt;
In the &#039;Edit Session&#039; dialog in TS2010, we have six rules by default.&lt;br /&gt;
* &#039;[[Startup Options Rule]]&#039; allows us to specify the control mode for the session, the weather, the start time, and a few other bits&#039;n&#039;pieces.&lt;br /&gt;
* &#039;[[Driver Setup Rule]]&#039; allows us to assign drivers to trains, and optionally give those drivers AI orders.&lt;br /&gt;
* &#039;[[Driver Commands Rule]]&#039; allows us to specify what orders can be assigned to AI drivers in the session.&lt;br /&gt;
* &#039;[[Clean up Derailed Trains Rule]]&#039; will mop up derailed vehicles.&lt;br /&gt;
* &#039;[[ConsistDataHandler Rule]]&#039; is used by QuickDrive&lt;br /&gt;
* &#039;[[QuickDrive Rule]]&#039; provides the quick drive interface that allows you to create consists and so on in Driver.&lt;br /&gt;
&lt;br /&gt;
TS12 and Trainz Simulator Mac does not have &#039;Startup Options&#039; - &#039;QuickDrive&#039; now performs that role.&lt;br /&gt;
&lt;br /&gt;
As a general rule, for a pre-planned interactive session, you probably don&#039;t want to permit the human driver to issue AI orders, or to be able to use the features of QuickDrive.&lt;br /&gt;
&lt;br /&gt;
However, you probably want to be able to issue AI orders to background AI traffic while making the session, and you&#039;ll certainly need to fix those orders later when it turns out they don&#039;t quite do what you wanted them to. If you turn them off now, you&#039;ll have to turn them back on again when doing these operations - so my advice would be to only turn them off (by unticking them all) in &#039;Driver Commands&#039; at the end of the creation process, once the session is finished. It&#039;ll get too annoying to keep turning them on and off when you need to fix problems with the background AI otherwise.&lt;br /&gt;
&lt;br /&gt;
With TS2010, QuickDrive will unfortunately have to be removed from the rules list. It&#039;d be way too easy for people to cheat using it.&lt;br /&gt;
&lt;br /&gt;
With TS12 and Trainz Mac, it is possible to disable the advanced features of quickdrive, but still use it&#039;s better Cab/DCC mode selection screen - simply tick the &#039;Gameplay Session&#039; checkbox in the QuickDrive options. This will deny the player access to the parts of QuickDrive which would cause problems in an interactive session.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Session_Rules_Overview]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Slenderman8888</name></author>
	</entry>
</feed>