DeMONS/3 Technology Sharing


This part of the D3 web site exists so that others might benefit from anything I might discover about the Papy Nascar racing sims supported in D3.


Shared Source Code
As promised, I have started making some of the DeMONS source code available to anyone that might want to use it. The current zip file contains code necessary to massage results files into a user-definable format. See the readme.txt file for details.

Download the file (35k)

DeMONS Data Files
This section describes the data formats of various DeMONS data files. All DeMONS data files are saved as standard Windows INI files. No registry changes are made, so everything having to do with DeMONS/3 data is contained in a data file in the folder where you've installed DeMONS.

D3LAUNCHER.INI

[HOSTS] section
NumberOfHosts The number of hosts specified. This is an integer value from 0 to x. Hosts are assigned a unique identifier (reflected in several places). Within the [HOSTS] section, you'll see something like this:

Example of data:
  NumberOfHosts=2
  0=20031101_132435
  1=20031223_195451

The keys following the "Number of hosts represents a zero-based list of host identifiers. Host identifiers are assigned by the D3Config when they're created. This unique identifier is allows D3Launcher to find and run the schedule created for the host as well as to pre-configure the sim. The identifier is based on the date/time at which the host was first created, and the string is constructed in the following order:

    YYYYMMDD_HHMMSS

This identifier is also used within the D3Launcher file to store host- specific settings, and these settings described in the next portion of this table. This identifier is used as the section name for each host.

[YYYYMMDD_HHMMSS] section
Admin

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Admin=New Host,,,,Cable/DSL,USA,Player__The,1,1,1,1,0,6,0,0,0,0,0,0,0,0,0,0,0

  • Host name

  • Boss password

  • Sierra user ID

  • Sierra password

  • Connection type

  • Locale

  • Player folder name

  • Massage results (0 or 1)

  • Host CPU ID (0 - n) where "n" is the # of CPU's in your system, minus 1

  • Run sim minimized (0 or 1)

  • Run sim with normal priority (0 or 1)

  • Run post-race batch file (0 or 1)

  • Sim ID (always 6)

  • Host is a favored host (0 or 1)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Convert results to delimited file (0 or 1)

  • Hide admins (0 or 1)

  • Hide bosses (0 or 1)

  • Not used (always 0)

Connections

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Connections=32766,42,42,1,250,0,1,1,0,42,0,0,0,100,1,0,0

  • Net server port

  • Maximum number of connections allowed (1-42)

  • Maimum field size (1-42)

  • Use latency limit (0 or 1)

  • Maimum latency allowed (0-500)

  • Allow IPX connections (0 or 1)

  • Allow TCP/IP connections (0 or 1)

  • Log on to Sierra (0 or 1)

  • Max IPX connections (0-42)

  • Max TCP/IP connections (0-42)

  • Not used (always 0)

  • Allow AI cars (0 or 1)

  • Number of AI cars allowed (0-20)

  • AI strength % (70-120)

  • Not used (always 0)

  • Not used (always 0)

  • Reserved connections for admins (0-10)

Timing

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Timing=0,1,0,0,0,0,0,1,0,0,0300,3,0,1,1,1,1,1,1,1,0,0,0,0

  • Timing style - 0=continuous loop, 1=daily, 2=specific date/time

  • Loop interval

  • Time to start - 0000-2359, limits time frame during which the server will run

  • Verify interval (0-30 minutes)

  • Limit time frame

  • From time

  • To time

  • Stop at end of eschedule (0 or 1)

  • Not used (always 0)

  • Auto start schedule when launcher is run (0 or 1)

  • Day starts - 0000-2359, defines the hour that starts the day

  • No run hours

  • Everyday (0 or 1)

  • Sunday

  • Monday

  • Tuesday

  • Wednesday

  • Thursday

  • Friday

  • Saturday

  • Repeat loop

  • Repeat loop day

  • Repeat loop time

  • Continuous loop delay - 0=immediate, 1=next 1/4 hr, 2=next 1/2 hr, 3=next hr

Lists

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Lists=0,0

  • Use invite list (0 or 1)

  • Use muzzle list (0 or 1)

NR2K3

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
NR2K3=86_f_jones.cup.car,Cup2003.lst

  • Not used (will be a car file name)

  • Not used (will be a roster name)

This data is deprecated in favor of the following lines.

cup
cts
gns
tptcc
These lines represent the car file selected for the server for the specified series mod. These lines only appear if a car file is specified (and can only be set if the desired mod is installed.

Example of data:
  cup=0_j_sprague.cup.car
  cts=00_03.cts.car
  gns=0_m_shepherd.gns.car
  tptcc=11_castrol.pta.car

D3League

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  D3League=^,txt,NASCAR

  • Delimiter character - used for the raw text file. This character can be anything not normally found in numeric data, but I recommend setting it to something more obscure.

  • Raw Delimited text file extention

  • Points schedule for massaged results - this string must match one of the points schedule names in the D3Points.ini file.

NumberOfRaces This value represents the number of races that are scheduled.

AddCmdLine This value represents additional commandline parameters that you want to pass to the sim that are otherwise not handled by D3. At this time, there are no additional commandline parameters that I know of.

HtmlTemplate This value represents the name of the html template file used by D3League to massage results into an html file format defined by the user.

RawTemplate This value represents the name of the raw delimited template file used by D3League to massage results into an html file format defined by the user.

[YYYYMMDD_HHMMSS_DEFAULT_RACE] section

Each host has a default race section which holds, um, default race settings. These settings are automatically applied to each new race that the user schedules. The settings described below are identical to the actual scheduled race settings, and some fields may not apply to default settings since they can't be set there.

Admin

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Admin=00/00/0000,0000,0,0,0,fast.cup.sim,1,1,0,0,,Atlanta,

  • Date to start - MM/DD/YYYY - only used with specific date/time timing style

  • Time to start - 0000-2359 - only used with specific date/time timing style

  • Use invite list (0 or 1)

  • Use muzzle list (0 or 1)

  • Use fixed setup (0 or 1) - if 1, a setup filename MUST be present

  • Fixed setup filename - just a place holder in default settings

  • Save chat log (0 or 1)

  • Save results (0 or 1)

  • Save replay (0 or 1)

  • Track number - based on track database

  • Not used (always empty)

  • Track name - just a place holder in default settings

  • Race password - just a place holder in default settings

Race

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Race=0,0,70,0,0,0,10,20,0,0,100,60,0,10,1,0,0,0,cup

  • Weather mode (0-1, 0=realistic, 1=fixed

  • Weather type (0-1, 0=clear, 1=cloudy - not used for fixed weather)

  • Temperature (40-110, not used for fixed weather)

  • Wind direction (0-7, not used for fixed weather)

  • Wind speed (0-30, not used for fixed weather)

  • Minimum rank (0-10)

  • Maximum rank (0-10)

  • Race length (5-100)

  • Allow AI (0 or 1)

  • AI number (0-20)

  • AI strength (70-120)

  • Practice time (5-120)

  • Warmup time (0-60)

  • Post-race time (0-15)

  • Not used (always 0)

  • Not used (always 0)

  • Practice mode only (0 or 1, only useful in D3Launcher)

  • Minimum LPI (0-50)

  • Series mod - string indicating series mod to be used

Realism

This is a comma-delimited string of data, with the following items included in the order shown below. For all settings that indicate "0 or 1", "0" means OFF, and "1" means ON.

Example of data:
  Realism=2,0,1,1,1,0,0,1,1,0,0,0,0,,

  • Damage mode (0-2, 0=none, 1=moderate, 2=realistic)

  • Race mode (0-1, 0=realistic, 1=arcade)

  • Allow caution flags (0 or 1)

  • Not used (always 0)

  • Not used (always 0)

  • Mechanical failures (0 or 1)

  • Double-file cautions (0 or 1)

  • Full pace lap (0 or 1)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Not used (always 0)

  • Tire wear (0-3, 0=1x, 1=2x, 2=3x, 3=4x)

  • Allow driving aids (0 or 1)

  • Allow visual aids (0 or 1)



Pinging Response Data
When Sierra pings a server, the server sends back a packet of information that the Sierra server matching service uses to display its server list. This is what I have found for the indicated sim versions.

Nascar Racing 2002 Season
NR2002 The name of the sim (and will always be this value)
1.1.0.2 The version of the sim (and will always be this value)
32766 The net_server_port value
32767 The first (or next) port available for a driver
Server Name The name of the server
Server Locale The server's locale
Connection The server's connection type
Track folder The track folder to be used for the current race
Series The series (cup, busch, cts, etc). For NR2K2, it will always be "cup".
X/Y X = number of current connections
Y = number of allowed connections
4PaaaaSQbLPccccSRdddL aaaa = practice session duration in seconds (max=5400)
b = number of qualifying laps (max = 2)
cccc = warmup session duration in seconds (max=3600)<
ddd = number of laps remaining (?) in the race

I don't yet know what the "4" at the beginning of the string represents. I can say that it has been a "4" in every response packet I've seen, so it might be a hold-over from Nascar Racing 4, but I'm not really sure.

aYFAIDCSMLW a = ??? (I've seen values from 1 to 3)
Y = Cautions ON?
F = Fixed setups ON
A = Arcade damage
I = Intermediate damage
D = Realistic damage
C = Force cockpit ON
S = Force smoke ON
M = Realistic race mode
L = Full pace lap ON
W = Realistic weather ON

This appears to be a set of realism toggles. I'm only guessing at their meanings until I've had time to verify each one.

The presence of a letter in the indicated position specifies that a toggle is turned ON, while a hyphen indicates that the toggle is turned OFF.

y or n ???
999 ???
S9999 Time remaining in current session (max is 5400)
y or n ???
y or n ???
y or n ???
999 I think this might be the maximum latency value
000a000a000a000a00 I think this might be the minimum and maximum rating allowable, as well as the minimum LPI restriction.
999 ???