[Forge 1.20.1] v2.3.0-prerelease.3
Curse Maven Snippet
What's new
JCM v2.3.0-prerelease.3 for MTR 4.0.5 has been released!
This is a prerelease, focused on bug-fixes and preparation before the official release.
General
- Fix PIDS Projector unable to save selected platforms.
- Reduce performance impact when hiding vehicle display cube.
- MTR Patch: Fix a source of memory leak in MTR 4 (Vehicle/Eyecandy model)
Technical
Scripting
- Bump Rhino JS Engine to 1.9.2, see their changelog for details.
- Add
MTR.Data.getConnectedRails()to obtain a list of rails connected to either a path/rail node position. - Add
MTR.Data.getVehicleMountDetail()to obtain the player's current car index & position in car. - Add
MTR.Data.getLiftFloors()to obtain a list of stopping floors (With floor name/descriptions) from a TSC Lift. - Better error message for partial
GraphicsTexture.upload(). - TickableSoundInstance has been revised, hopefully making it more intuitive.
- Add standalone
TickableSoundInstance.play()andTickableSoundInstance.stop()method, removing the need for SoundManager. (Which doesn't manage the sound at all) - The previous
setLoopablemethod is deprecated, since it will be set tofalseonceSoundManager.stopis called, requiring the need to callsetLoopableagain.- Use
setRepeatableinstead, which preserves the state.
- Use
- You may also use
play(ctx)to associate your sound with a ScriptContext. This will auto stop your sound once the script context is disposed/errored, without the need for manual disposal.
- Add standalone
Vehicle Scripting
- Fix a bug where if the same RoutePlatform is assigned multiple times in a Route, the behaviour of data fetching will be errornous.
PIDS Scripting
- Add
pids.arrivals().length()to obtain the total arrivals available. - Breaking Changes (Not code-related) (PIDS Projector only)
- This update "nerfed" the PIDS Projector such that it will skip rendering if out of the camera's bound (In-line with other PIDS), except:
- If any of the configured X/Y/Z offset is >= 4m
- If the configured scale is >= 4x
- If explicitly configured in the PIDS Preset (Detailed below)
- This is done to conserve performance, in particular vanilla text rendering (
Text.create) can be very heavy for frame-rate. (This is not related to JS execution speed) - Please manually add a
"outOfBound": trueproperty for the relevant preset injoban_custom_resources.jsonto true if:- Your script requires constant background running.
- You experience your PIDS disappearing midway. (Note: There's some leniency for the out-of-bound rules, so e.g. a 2x1 is acceptable)
- You think the frame-rate impact of your PIDS is negligible. (e.g. AWT-drawn text)
- This update "nerfed" the PIDS Projector such that it will skip rendering if out of the camera's bound (In-line with other PIDS), except:
Translations
Thanks to the following people who have contributed translations for this release! (No particular order):
- happytbs (zh_cn)
Translations for JCM is now hosted on ZiYue's Weblate
Download:
You can download this release on Modrinth, CurseForge or GitHub
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

