Проверил. Работало все, кроме загрузки, число пассажиров не менялось.
Что нужно для готовой к употреблению версии:
- Работа со скриптованным ПС. Через GetProperties(). Сразу предлагаю вариант:
Используется тег и именем scripteddoors, содержащий строку с форматом doors [d1] [d2] [d3] ..., где [d1], [d2], [d3] — номера открытых дверей, нечетные для левых, четные для правых.
В контейнере scripteddoorsconfig в extensions для каждого номера двери содержится скорость посадки/высадки, пассажиров/сек.
Примерный алгоритм: при остановке поезда триггер проверяет все (для пригородного — только вошедшие в его зону) вагоны в поезде, если нет ни одного со скриптованными дверьми — ждем сигнала T.
Иначе каждую секунду проверяем каждый вагон, в каждом вагоне проверяем открытые двери, через них загружаем количество пассажиров, указанное в конфиге.
- Невозможно точно определить конечную станцию, поэтому я предлагаю при двойном нажатии T выводить браузер с вариантом выгрузить все.
- Количество пассажиров на станции должно определяться временем суток. Вроде такого:

- Должны быть месседжы "PassStationTrigger": "TrainStopped", "LoadStarted", "LoadCompleted", "LoadEnded" от триггера к поезду, для того, чтобы сценаристы имели возможность контролировать насколько хорошо машинист выполняет расписание и обслуживает пассажиров.
- Для ИИ нужны команды. Значит, нужно предусмотреть хэндлеры.
- В GetProperties должен быть признак для КЛУБа. Насчет этого стоит связаться с Александром

Если ты занят, я могу доработать твой вариант по 1, 2, и 5 пунктам как наиболее важным.