Model RailRoad Manager (tm), MRRM (tm), software provides model railroad Inventory, Maintenance and Waybill-based Traffic Generation. Advanced version includes Dispatcher, Fascia, Cab Panels Editor and Operations, Layout Locomotive, Turnout, Signal, Block Occupancy, and other sensor Control. Advanced edition also provides HyperThrottle Cabs that integrate rail traffic workload and layout control, Multi-layout Operations for virtual car forwarding between layouts, Remote Operations to drive trains from a distance, Web Cams, Internet features, and extended DCC support.

MRRM Configuration File

Purpose | Screen Images | Data Description | Function Descriptions | How to Use


Model RailRoad Manager is a comprehensive tool for managing your layout. Modelers have various degrees of computer sophistication. MRRM is written to support many optional capabilities to meet the needs of beginners through advanced users. The "mrrm.ini" file in the MRRM root directory is a tool to specify many of the options and settings used by MRRM. Some of these settings are automatically set within MRRM as you make feature selections. Other settings must be made in the mrrm.ini file to take effect.

Screen Images:

This figure shows the settings in an "mrrm.ini" file

Data Description:

The "mrrm.ini" file uses three major sections to direct the MRRM program features: database, user, and internet.

Database Section: dbms, servername and database variable settings are never changed for most users. These particular data settings specify the specific database and access paths to a database collocated with the MRRM program. Advanced users having a database shared among several MRRM client programs will have different settings for these variables.

swap_databases = Yes prompts you on program startup to change the MRRM database that you are using. This feature allows you to have multiple layouts managed by MRRM, though only one at a time. Alternately you could have your 'operations database off loaded between operations sessions and still use MRRM to support other 'running' situations like tests, demos, and the like.

User Section: - most users will have custom settings for one or more of these variables.

role defines the type of user for this instance or the MRRm program. This must be set to "role=end_user" unless specifically directed otherwise.

skill_level defines the complexity of the MRRM capabilities that a user will see when MRRM is running. You should set "skill_level=Beginner" until you become familiar with MRRM's menus, navigation, editing, reporting and other basic paradigms. Most Users will be satisfied with "skill_level=Intermediate" with MRRM. It offers access to a wide set of MRRM features. Once you become proficient as an Intermediate user of MRRM, you may choose to try the "skill_level=Advanced" setting. This setting is not for the faint of heart. MRRM in Advanced user mode is extremely flexible, powerful but often daunting. If you are really adventuresome, set "skill_level=BetaTester" to activate the latest but less fully tested features of MRRM.

Verbosity - tells MRRM to cut out annoying messages or to speak its mind!

initial = Yes turns on the opening splash window which you see when you first install MRRM. If you click the 'do not show again' checkbox, this setting will become "initial=No". You can reset it to "initial=Yes" if you want the splash screen to pop up again whenever you boot up MRRM.

show_min_data is a feature which Beginners may want to set to "Yes" while they are learning about the most important data elements in the Inventory and Waybill Generation parts of MRRM. A red colored text box and checkbox will display on every tabpage where the show minimum data capability can be activated. When you check one of these checkboxes, only the most important data fields are made available to see or edit. After you get familiar with MRRM, you will likely deactivate this feature by setting "show_min_data=No".

make_pda_files allows you an option to create html, text or Excel files in the 'PDA' subdirectory under the MRRM root directory for any of the reports available within MRRM. Setting "make_pda_files=Yes" offers this feature should you want these types of files. Otherwise you can only print a file to one of your printers or to a files as is normal with Windows.

learning_mode=Yes is the normal setting. Setting "learning_mode=No" makes invisible many of the Report options that you are unlikely to use once you begin to operate your layout with MRRM. "learning_mode=No" declutters many of the tabpages within MRRM. You can easily edit this setting to gain access to the Reports again.

information_alert-Off tells MRRM to be less verbose about the work it is doing for you. You may want to set "information_alert=On" while you are becoming acquainted with the functions that MRRM is performing for you and later change the state to "Off".

dispatch_audio_alerts=Yes turns on audible beep when a change occurs in a panel due to incoming feedback message from the layout

long_menus=Off - mrrm supports long and short menus for your convenience. Set long_menus=On to enable long menus. The next time you load the MRRM program, this setting takes effect.


train_car_arrival_leadtime is the number of hours and minutes that cars must be available for an otherwise eligible waybill to be included on an appropriate manifest. The default setting is 30 minutes. This simulates the time that the yardmaster needs to assemble the train, pump up the air brakes, perform safety checks and the like before releasing the train to the Conductor and Engineer.

siding_a_warning_only - MRRM will remove an otherwise eligible waybill from a manifest if there is not enough room for the car along the siding. MRRM looks at the length of the cars currently at along the siding and compares this value to the length of the siding after adjusting for cars that will be picked up by the train from the siding. When set to "siding_a_warning_only=Yes", MRRM will keep the car waybill on the manifest and leave it up to the Conductor to figure out how to manage the potential situation at the siding.

full_empty_a_warning_only - MRRM will remove an otherwise eligible waybill from a manifest if the time to load or unload as appropriate is not met by the time the train begins its manifest. If "full_empty_a_warning_only=Yes" then a train may arrive to pick up a car before it has been fully loaded (or emptied). This leaves the Conductor with the responsibility of handling a potential situation on the railroad. (Note: You need to be running by a schedule for this to be much fun)

last_maintenance_ticket=48 or any other number. This number is automatically bumped up by one every time you create a maintenance ticket. If you want to start your ticket numbers from a specific number, say annually, you can set this number at that anniversary date to the number you want less one.

last_auto_shpmt_num=900000071 or some other number - this variable is automatically bumped by one whenever the generation system automatically creates an Order into a shipment for you. You can create your shipments manually but you may not use shipments having shipment numbers in the range 900000000 through 999999999. Manually created shipments should use an alphabetic character for the first character of the shipment number.

auto_ship=Yes - tells MRRM to automatically process the shipment created from trading partner orders. If set to No you must manually click the shipment processing button(s) to process "pending" shipments

auto_order_car=Yes - Tells MRRM that if some cars needed for a shipment are not available at the Shipper or the Shipper's home yard, then MRRM will automatically process the orders for cars from other yards. If you set this variable to No then you must manually command the MRRM to try the possible yards and interchanges for the cars.needed.

schedule_stop_dwell=00:05:00 or some other time - tells MRRM that the average dwell time at a stop should default to, in this case, 5 minutes before continuing on to the next stop on the train's schedule. You can manually modify a train schedule at any time.

fascii_toggles=On - tells MRRM to allow each fascia to have toggle switches that are operational. You would typically set "fascii_toggles=Off" when a Dispatcher is controlling turnouts.

engineer_toggles=Off - tells MRRM that Engineer Cab will not have active toggles on their Cab Track Panels.

schematic_timer=On - If On tells MRRM to immediately turn on schematic updating when panel is visible on a screen

toggles_timer=On - If On tells MRRM to immediately turn on toggle updating when panel is visible on a screen

panel_intertimer_secs=1.5 - define how frequently updates are made to panels. Set longer for more prototypical responsiveness

batch_mode=Yes tells MRRM that you are performing your operation sessions without the computer on-line during the operating session. This assumes that you will create and print the switchlists, schedules and other paperwork for the session before the session begins. This is a good way to start. However, Murphy's Law is certain to be invoked during a session and this typically means some train did not get to its destination yard in time for the yardmaster to assign some of the cars to a subsequent train. In batch mode you have preprinted the switchlists expecting all trains to run in the sequence specified with the cars specified. As you gain confidence in your planning for an operation, you will want to run MRRM concurrent with the operations session so that when Murphy strikes you can adapt the 'paperwork' to the actual situation. If batch_mode=No then real time MRRM usage is assumed. This does NOT require that the layout is connected to MRRM.


layout_connected=Yes - tells MRRM that you are using an interface between MRRM and your layout. If you are not using this advanced feature, set "layout_connected=No"

layout_feedback=Yes - tells MRRM that you are using feedback from your layout for turnout changes, signal changes, block occupancy changes or transponder changes

command_accessories_using=JMRI - tells MRRM that you are the JMRIMRRM interface for commanding your turnouts, signals, lamps, motors, and other devices.


sensor_feedback_using=Loconet tells MRRM that sensor feedback will be received from a Loconet.

block_occupancy_feedback=Yes - you are using BODs

occupancy_id=Yes - says that you do want to track specific Consists as they move from BOD to BOD across your layout. Dispatchers, Conductors, and Yardmasters can initialize this information. Thereafter, MRRM will attempt to track the Consist. Consist data may include the Consist ID, Train number, Manifest Number (if using MRRM switchlists), Marks and Number of the lead locomotive of the Consist, and the current direction (Westbound or Eastbound) of the Consist.

use_os_bods=No - not yet supported by MRRM.


turnout_command_capture=Yes - MRRM will listen to the layout for turnout commands sent to the layout from panels or throttles (if permitted), or other sources. If MRRM issues the command and this feature is set to 'Yes' then MRRM will not update its internal status amd dependent panels until the command listener notifies MRRM.

turnout_feedback=Yes - Similar to turnout_command_capture but the associated listener for this capability awaits messages from specialty feedback devices you have added to your turnouts. Not yet available!

turnout_closed_aspect=Green - allows control of color associated with turnout closed aspect. Not yet available

turnout_thrown_aspect=Flash - allows control of color associated with turnout thrown aspect. Not yet available

milliseconds_inter_turnout=125 - tells MRRM, when it sequentially issues turnout commands, such as a route, to insert a delay of the specified number of milliseconds between turnout commands to allow layout devices to recharge capacitors or to avoid FIFO buffer overflows.

turnout_without_signal_update=Yes - MRRM will not process the signal impact of a turnout change command. Use this, for example, when JMRI signal control is used exclusively on your layout. Set to 'No' to let MRRM to assess impact of some/all turnout changes on signals.


transponder_activity_feedback=Yes - tells MRRM that you are using Digitrax transponders and want to have a listener report transponder messages to MRRM for processing.


signal_head_feedback-Yes - tells MRRM to specify signal listener to notify MRRm when signal change command messages are heard. MRRM will then update its database and update aspects on visible Panels using those signals.

1stSE8cSignalHeadOddAddress=257 - specifies 'turnout' address of first SE8c signal head so MRRM can differentiate between a signal head changes versus turnoout changes, routes, etcetera which may share the 'turnout address space'

cascade_signals=Yes - tells MRRM to process the impact of a signal change on other signal heads if you are using MRRM's signal processing rules instead of or in addition to JMRI signal rules.

single_track_mainline=Yes - tells MRRM to activate single mainline rules installed into JMRI. Basically these rules help to enforce control sections where a runaround track 'parallels' a section of the mainlline and thus provides a place to 'park' a train while another uses the signal track mainline and the unused control section track to move forward. The dispatcher can effect control by appropriately setting the signal flow controls on a panel or otherwise overriding the signal aspect.

Internet Section:

internet_use=Off tells MRRM that you do not have an internet connection while MRRM is running

mrrm_server_url="some url" - tells MRRM the internet address of the Multi-Layout Operations Server that you and you Railroad Partners will be using.

jmri_server_url="some url" - tells MRRM the internet address of the railroad that you will be commanding or receiving feedback messages from. This url is set in MRRM when you select the railroad to command in the Engineer HyperThrottle or Dispatcher Manifest Status tabpages. You may only command one railroad at a time with a single copy of the MRRM program.

jmrimrrm_debug=Yes causes MRRM to popup a window whenever it commands the layout connected. The popup window disappears when the JMRIMRRM servlet response is received. Normally this should happen in a flash. If communications breaks down the popup window will generally stay up on the screen.

jmri_feedback_poll_or_listen=poll - tell MRRM to poll jmri to get recent changes 'heard' on the layout and to update MRR's database and using processes. Currently MRRM polls every 250 milliseconds.

(To comment out a line in the "mrrm.ini" file, preface it with the string "rem ")

Function Descriptions:

There are no automated functions for this feature of MRRM beyond commanding configuration options after start up.

How to Use:

Change the settings, for example with MS Notepad, to invoke the options you want to use before booting up the MRRM application.

Return to Top of Page