JMRI: Preferences Pane

The Preferences pane is where you configure the basic operation of your JMRI application.

The screen is split into two sections: on the left hand side is a list of the Preference groups that can be set. Clicking on each item will then populate the right hand side with the various options that can be configured for that Tab.

File Locations
Start Up
Save? dialog WiThrottle
Config Profiles
Railroad Name
JSON Server
Web Server
SRCP Server
Simple Server

Perhaps the most important control is at the bottom of this section: The Save button!

Be sure to click "Save" when leaving this window. Your changes to the Preferences don't take effect until the program is stopped and restarted, so the program will prompt you to do that after saving the Preferences.


You can select any of the various JMRI layout Connections here.

JMRI v4 Connection Prefs tab Each connection has its own unique tab. To get started, first select your DCC System Manufacturer, followed by the type of Connection that you are using. You will then be presented with a series of most commonly required settings that need to be set. If you need to change some of the more advanced settings then connection then check the "Additional Connection Settings" box and this will provide you with further details.

To add an additional layout Connection, in the Connections pane click on the tab with a "+", this will then present you with a fresh connection tab. To remove a Connection, in the System Manufacturer drop down list, select (none selected) to just clear your present choices and enter new ones, or click on the small "x" in the Tab name to delete the Connection.

For more information on how to configure this for your particular hardware, see the Hardware Help pages.

Remember to press Save!


JMRI v2.14 Defaults Prefs tab

If you are using multiple connections, e.g. a LocoNet Connection and a MERG Connection, the Defaults pane lets you select which connection you want to use for a particular purpose.

The Internal connection is the default connection, however, since this is almost always undesirable, JMRI applications will notify you if the Internal connection is the default for every purpose. To silence this notification, edit the profile properties, setting the property jmri-managers.allInternalDefaults to true.

File Locations

These allow you to set the default location for where scripts and user files are loaded and saved to.

Note that when changing the "User Files Location" this will also change the default location for where the following are stored:

Dispatcher options

There's a separate Help page with information on sharing files between computers using Dropbox.

Start Up

Start Up preferences allow windows and files to be opened, scripts to be run, and additional buttons to be placed on the main window when the application starts.

Click the Add ▾ button and select the type of start up action to add. The new action will be added last.

Start up action order is important. In most cases, scripts should be the last items in the start up order. Start up order can be changed by selecting a start up item and moving it up or down in the list.

There are five types of start up actions:

Perform action
Have the program automatically execute various menu selections at startup. For example, you can have the Turnout Table automatically open, or automatically open a window for programming on the main.
Add button to main window
Add extra buttons to the main JMRI window that are connected to specific actions in menus for easy and quick access to that action.
Open file
Automatically load panel files when the program starts up. You can load as many panel files as you'd like; each will be completely loaded before the next is started.
Run script
Automatically run a scripts when the program starts up. You can run as many scripts as you'd like; each will be run to completion before the next is started. Note that any files the script depends upon need to be opened before running the script.
Set route
Set a route when the program starts. You can set as many routes as you like; each will be set in order. Note that any files the route depends upon need to be opened before setting the route.


A row of radio boxes allow you to select how the program looks. The available choices depend on what kind of computer you have, and not all of the following may be available:
  • Metal - the default Java style, usable on all computers
  • CDE/Motif - A Linux/Unix form that works well with X Windows screen managers. It's also available on (almost) all computer types.
  • Windows - only available on Microsoft Windows systems, this makes the program look as much as possible like a regular Windows application.
  • Mac OS X - only available on MacOS, this makes the program look like a Macintosh application.

In addition, this tab lets you set:
  • The font size of the GUI.
  • Whether you want to use graphics to show the state of turnouts, lights, sensors and blocks in the state column of their tables. since 4.7.4
  • How long tooltips (where available) should be shown.
Many people have contributed "internationalizations" of JMRI. This converts (much) of the text on the screen to a language other thank English. If you select your country or region and language here, then save and restart the preferences, JMRI will use an internationalization for that country and language if it's available. Items that have not been translated will continue to appear in English, so you won't miss anything. For more information on how to set this up, and particularly how to contribute new and improved translations, please see our internationalization page.
This allows you to customize the way that the JMRI System Console looks. It is possible to select from a number of pre-defined color schemes and to choose the font size and style. Also, you can choose to save both the size and location of the System Console window so that it always appears in the same place and at the same size.
JMRI v4.2 Roster Prefs tab


This allows you to change the way that information and warning messages are displayed in JMRI.
It will also allow you to configure a default responses and the question being displayed.


JMRI v4.7 Roster Prefs tab
The DecoderPro programmer allows you to select how much or how little to display of the decoder content using configurable "Programmers". You can choose the Basic or Comprehensive interface when choosing your Locomotive decoder, but this provides a convenient place to set a default so you don't have to select it each time you open a decoder.

This section also has checkboxes for options:

  • "Show empty Programmer tabs": This lets you decide whether the DecoderPro programmer will display empty panes (tabs). Some people like to see them, even though they're empty; some people would prefer not to see them, so they don't keep trying to open and look at them. We provide this preference so you can choose.
  • "Show CV numbers in tool tips": If you allow the mouse cursor to "hover" over a value in DecoderPro, a tool tip pops up with more information. Checking this box includes the CV number in that tool tip. Some people want to know the CV number, other people want DecoderPro to handle CVs entirely invisibly, so we provide an option to let you choose.
  • "Allow caching when writing index CVs for read or write operations": Some decoders require that specific values be written to "index" CVs before certain other locations can be read or written. QSI and ESU decoders use this extensively. When doing a lot of reads or writes, for example an entire decoder, the index CVs can end up being written with the same value many times in a row. When selected, this option allows DecoderPro to skip (save time on) writes of the same index value that are otherwise redundant. Don't use this (or use it only in combination with the following operation) if you have reliability problems writing decoders, as proper operation of this option depends on reliable writes.

    More detail: A single bad write with this option off trashes one CV; writing a bad index with this option off trashes the CV that was supposed to be written and the wrong one addressed by the bad write, but the write to the next CV in the sequence is OK due to the redundant next write of the index; writing a bad index with this option on leaves that badly-written index value in place, so writes a sequence of bad CV values. Bottom line: If working with a complicated decoder with lots of CVs, you need a reliable programming connection, see next option.

  • "When possible, confirm CV writes by following this with a read": When selected, DecoderPro will read each CV after writing it. If the value doesn't match, it marks the write as failed.

    If you're having intermittent trouble writing to a decoder, this may improve reliability. If DecoderPro is never able to properly write, this won't help; it only helps if the problem is occasional, and retrying will get it right more often than not.

    Some DCC systems will check for a "write acknowledge pulse" from the decoder before declaring the write a success. Those are almost as reliable as this, and much faster. So if you're using one of those DCC systems, this might not be needed. On the other hand, if you're using a DCC system that "writes blind", with no check, this might be really useful. To tell if you have one of those, try writing CVs with the locomotive off the track. If DecoderPro thinks the write succeeded, then the DCC system is writing blindly, without checking.

    This doesn't help (but doesn't hurt) if you can't read back the decoder. Most DCC systems can't read during ops mode programming, for example. Some command stations (Digitrax DB150) can't read from the decoder. In those cases, this option just asks the command station to write without reading back.

These options are stored with the preferences for future use. A new DecoderPro Roster window will pick up new values of the options, without having to close and restart the program.
Normally, the Roster is stored in a standard location as part of the Preferences directory. This option lets you move that somewhere else.

To configure it, click the "Set..." button and follow the directions.

The "Reset" button restores it to the default location. Note that this just changes where the program looks. If you've stored roster information elsewhere and want it back in the default location, you have to move the files there yourself.

You can also enter a default value for the "Owner" field in DecoderPro roster entries here. This fills in the value for new entries, which can save you a little bit of typing. It has no effect on existing entries, even if changed.


This Preference pane tab lets you select whether the extended Throttle features are available, and which ones can be used.


If selected, listens for a packet to be sent from the connected mobile device. If WiThrottle Server does not receive any communication in the chosen time, the affected JMRI throttle will idle its train.

The chosen time is approximate; the response may be a few seconds earlier or later.

Change the port number to use. Ensure your firewall software allows this port to be used.
Only change the Port Number after stopping WiThrottle Server if there is a chance mobile devices are still connected.
Allowed Controls
Check these boxes to allow specific features to be controlled by mobile devices. This will let you to limit what users have the ability to control.
  • Track Power - Select whether mobile devices connected through this WiFi interface can control track power.
  • Turnouts - Select whether mobile devices can control turnouts.
  • Routes - Select whether mobile devices can control routes.
  • Consists - If selected, mobile devices can build & break "Advanced Consists".
    • NMRA Format - These consists may perform better for building and controlling with WiFi devices.
    • DCC Brand-Specific - These consists should perform better when built with a WiFi device, but controlled by a throttle from the DCC manufacturer of your system.
The "Save" button at lower left puts any changed settings into effect. For a connected throttle to use the new settings, you'll have to restart JMRI (and then restart WiThrottle) as instructed by the dialog.

Config Profiles

JMRI Configuration Profiles make it easy to set up your JMRI applications to work with different setups. Each profile specifies one set of Preferences. You can then select which one to use.

For more information, see the Configuration Profiles help page.

JSON Server

The JMRI JSON server is used by applications on other computers, including tablets and phones, to connect to JMRI to operate your railroad.

On this pane you can specify the port for the connection (usually left at default) and how often the server checks for whether the connection has failed via a heartbeat message.

Railroad Name

The Railroad Name tab lets you specify the name of your model railroad (module), as it is used by several server protocols.

Web Server

The JMRI Web Server lets you connect to JMRI from a web browser on your computer, tablet or phone and work with your railroad.

This tab lets you control what the web server provides. For more information, see the Web Server Preferences pane page.

SRCP Server

The JMRI SRCP server is a standard way of connecting "client" user programs to a "server".

On this pane you can specify the port for the connection (usually left at default).

Simple Server

JMRI Simple Server is part of JMRIClient, a method to remotely connecting one JMRI program to another.

On this pane you can specify the port for the connection (usually left at default).


This tab sets parameters used in computing routes and speed changes for Warrants and for controlling the events that warranted trains may encounter.

Speed Name Tables

When an automatically running train encounters a Signal aspect that calls for a speed change, the speed map table provides the information of what the speed change should be. Other parameters control the way the speed change is made.

Aspect Speed Name Table

The Aspect Speed Name Table maps the speed names found in the aspects definition of a signal system to a value. It is important that all the speed names used in your signal system be listed in the Speed Map Table. Rows can be added or deleted to conform to the Signal System aspects.

The value associated with a speed name can be interpreted in four different ways and there are four radio buttons for you to choose the meaning of the value.

Choosing the interpretation is a matter of what you want to happen when a warranted train reaches a signal or block aspect. Percent Normal will always make the train change speed and Percent Throttle most likely will also. The last two choices are the most prototypical, but if the train is already within the speed limit called for, no speed change will occur.

Head Appearance Name Table

The Head Appearance Table is used when Signal Heads are used as signals. It maps signal head appearance names to aspect speed name which in turn are mapped by the Aspect Speed Name table to values that interpret speed limits.

Layout Scale and Search Depth

It is important that the correct Layout Scale is chosen since it is needed to convert throttle settings and track speeds to and from scale speeds.
The Max Number of Blocks in Route is the depth to which JMRI will search for a route when defining a warrant. This is a global value that can be overridden when creating a warrant.

Ramping Speed changes

The smoothness for slow down and speed up are done by stepping up and down with two "ramp" parameters; the throttle increment per step and the time interval of each step. These two parameters are paired to make a "stair step" pattern for changing speed. Generally, they are paired in that a small throttle increment should be done in a short time interval and a large increment in a longer time. When setting them, the time interval should be long enough for the speed increment to complete given the momentum you have programmed into your decoders.

You should experiment by watching how NX Warrants start and end or by issuing "Stop" and "Resume" commands to a recorded warrant.

Throttle Factor

The value of Throttle Setting/Speed Factor along with Layout Scale adjusts a throttle setting to be a layout track speed. The Throttle Factor set here is a global default.

For more information on Warrant speed parameters, see Modifying Warrant Speeds and follow its links.

Merging Speed Profiles

In Release 4.9.2 Warrant compute a track speed when traversing a path with known length and known throttle setting. These measurements are made for each address that is rub under a warrant and are kept for the entire layout session. When JMRI is quit, at shutdown. These Session Speed Profiles can be merged into their Roster Speed Profiles. The following choices are available at shutdown.