Compatibility
Minecraft: Java Edition
Links
Creators
Details
STAY TUNED FOR A NEW (and a better...) JOANNET LIBRARY!
This library is NOT compatible with MTR 4, only MTR 3.
Built-in Features
fetch(url: String)
⚠️ Internal use only. Do not use.
Performs a GET request using the provided URL.
function fetch(url) { return response }
fetchDepartures(stationID: String, url: String, port: Number, secure: Boolean)
Requires fetch() to be imported.
Retrieves the next departures from a station using its code. Optional parameters allow you to set a custom base URL, port, and HTTPS mode. If all three are null, it defaults to:
http://localhost:8888/arrivals?stationId=<stationID>
function fetchDepartures(stationID, url, port, secure) { return Array<Object> }
fetchDeparturesFromPlatform(stationID: String, platformID: String, url: String, port: Number, secure: Boolean)
Requires fetch() to be imported.
Gets the next departures from a specific platform of a station. URL, port, and HTTPS are optional. Defaults to:
http://localhost:8888/arrivals?stationId=<stationID>
function fetchDeparturesFromPlatform(stationID, platformID, url, port, secure) { return Array<Object> }
fetchFirstDepartureFromPlatform(stationID: String, platformID: String, url: String, port: Number, secure: Boolean)
Requires fetch() to be imported.
Returns only the first upcoming departure for a specific platform. Same URL behavior as above.
function fetchFirstDepartureFromPlatform(stationID, platformID, url, port, secure) { return Object }
fetchMTRData(url: String, port: Number, secure: Boolean)
Requires fetch() to be imported.
Fetches all MTR data and combines the dimensions into one object. Optional base URL, port, and HTTPS settings apply. Defaults to:
http://localhost:8888/data
function fetchMTRData(url, port, secure) { return Object }
formatStop(stationName: String)
Formats a station name by trimming whitespace, removing emojis, and replacing single pipe characters.
If the name has multiple parts, extra names are grouped in parentheses.
- Example 1:
"East Hills||Pittsburgh|East"→"East Hills (Pittsburgh/East)" - Example 2:
"West Ham 🍖||Stewie||South 🧭"→"West Ham (Stewie, South)"
function formatStop(stationName) { return String }
getCurrentFormattedTime()
⚠️ DEPRECATED: Use getTime(ms) instead.
Returns the current time as "HH:MM".
function getCurrentFormattedTime() { return String }
getCurrentStation(dataset: Object, stationID: String)
⚠️ DEPRECATED: Dataset functions will be removed in future versions.
Returns the station data for a given station ID from the provided dataset.
Fails if the station is not found or if stationID is not a string.
function getCurrentStation(dataset, stationID) { return Object }
getRemainingMinutes(arrivalTime: Number)
Returns the number of minutes remaining until the given arrival time.
Returns 0 if there's an error or if arrival is in less than 1 minute.
Fails if arrivalTime is undefined or not a number.
function getRemainingMinutes(arrivalTime) { return Number }
getStationData(xPos: Number, zPos: Number, url: String, port: Number, secure: Boolean)
Requires fetchMTRData() to be imported.
Returns the closest station to the given coordinates. URL, port, and HTTPS are optional. Defaults to:
http://localhost:8888/data
⚠️ Important: The MTR API won't list a station unless a route serves it. Place this script only after service has started.
function getStationData(xPos, zPos, url, port, secure) { return Object }
getStationsOfRouteFrom(dataset: Object, routeName: String, stationName: String)
⚠️ DEPRECATED: Dataset functions will be removed in future versions.
Returns a list of the remaining stations on a route from a given station.
Route and station names must match exactly with those in the MTR API.
function getStationsOfRouteFrom(dataset, routeName, stationName) { return Array<String> }
getTime(ms: Number?)
Returns the time in "HH:MM" format.
If ms is null, returns the current system time.
getTime(1750843821742)→"11:30"getTime(null)→"09:35"(e.g. if run on June 25, 2025 at 09:35:14)
function getTime(ms) { return String }
Troubleshooting
Q: The scripts run slowly or produce errors on some models.
A: Low-spec computers may struggle with multiple script models. Try reducing the number of active models in the render area or lower their refresh rate.
More info: https://wiki.minecrafttransitrailway.com/mtr_addon:nte:js:eyecandy
Q: The model doesn't appear in the resource pack.
A: Reload the resource packs in-game using F3 + T.
Q: getStationData() does not return the nearest station.
A: Has the station already been assigned to a route and started service?
The MTR API won't recognize it until active service is detected.



