I just retested my portal session with the Compatibility Mode changed from "Maximise compatibility" to "Maximise performance" and the portals no longer worked - at all. When I switched back to "Maximise compatibility" then they work perfectly.
A search of these forums revealed other posts on problems caused by using "Maximise performance". Creator pguy has just updated his EIT rule to work under the "Maximise performance" setting but there seems to be little information about what the Compatibility mode "Maximise performance" setting does (at least as far as I can find). A few posts refer to it as something for "future asset updates", whatever that means.
So I will be sticking to using the "Maximise compatibility" setting - perhaps that is the required workaround.
I will put in a bug report just in case.
Hi.
Just a short explanation about Maximise compatibility, Objects Streaming, Maximise performance options. With Tane Tane SP2/SP3/TRS2019, N3V has introduced new APIs for script for searching objects available on the route, which are intended to fully replace the old APIs in some future version. In fact Tane SP2/SP3/TRS2019 are a bi-mode Trainz version supporting both the old API and the new API, enabling content creators using scripts to update their scripted assets if needed (if they use the old APIs now declared obsolete).
These performance options, available only from TRS2019, enable to set which API will work so that the scripters can test their modifications :
with "Maximise compatibility", both APIs are available and works. In this mode TRS2019 should be compatible with all unmodified scripts from Tane SP1 and TS12.
with "Objects streaming", TRS2019 activate the new capability of objects streaming, which means that at initialisation all tiles and objects may be not fully loaded and that any object can be on memory shortage be unloaded. To be compatibile with objects streaming, the scripts needs to use the new APIs and needs to have been designed to support objects streaming (checking the object avaibility before using it, and re loading unloaded objects if needed). The old API still works, so it is a mode that permits to mix old assets not migrated that do not reference any other object (scripts not sensitive to new objects streaming) and objects migrated to new APIs for objects streaming support.
This will be the default mode for some future Trainz version (N3V may say when ? 2020 ? … ) and all scripters should now work hard to migrate their scripts to support this mode. Using this mode with assets not supporting it may give some strange results, as some objects on the route may seem to be missing (objects currently unloaded) while they are still there …
with maximise performance, we go one step further. Old API no longer works. With this option, any scripted object using the old API is no longer usable. And this enables TRS2019 to do not build internally some data structure needed for the old APIs enabling a better performance. This may be in a later future the default mode, but it is a much more longer target as it means that old legacy assets have been all migrated, and that is a lot of work for scripters and for the Content repair group (CRG).
with the last option "show errors on legacy call", it is an enhanced but less performant option than the "maximise performance" as every legacy old API call no longer supported (obsolete) will fire an exception. It is only an help for scripters to retrieve in their code all the old APIs call.
So just now, as probably you are still using a lot of assets using legacy APIs call, you should run in "Maximise compatibility" mode except for new routes and session that explicitly affirms that they are fully compatible with "objects streaming" or "maximise performance" mode, which should be the case for new routes and sessions developped for TRS2019. "Show errors on legacy calls" are only for developpers debugging their script code.
For users of my assets, even if all my assets have been migrated to use only the new APIs, only EITs and MCM supports "objects streaming" mode. All others assets will be progressivly updated to support "objects streaming" but that will take some time and will probably be finished only during 1T2019 or 2T2019.
Hope this helps understanding these new options.
Regards.
Pierre.