The online racing simulator
Well, yesterday we gave some work to the system and I think it works fine

Some people complains about lagging, but we need to find out if that's server problem or people connection problem.

We're already gathering feedback to find the correct configuration and I have some doubts:

- The wrong driving option: When it starts counting? When LFS shows you the message? One racer told that he was spectated while recovering from a spin. We have the next config:

WrongDrivingTimeRace=5
WrongDrivingTimePrac=10

Now that I think about it, maybe he was espectated by CrashCheckDelay=1

- About the lagging: It's the LagTotal resetted at race restarting or something? We use to have long sessions of practice and one hour race every monday, so maybe LagTotal=10 it's very low... We've to test all this things


Now an idea. We'll have two main configurations, one for weekly practice and another one for monday racing. So would it be possible to implement a way of having two options for some parameters? That way you'll not need to open the config files to switch those parameters, only invoking some command as !config=1 and !config=2 and Airio will look for parameters with two values labeled 1 and 2 and loading the correct value for those ones

Anyway... people is enjoyning it a lot, when we have it configured properly it would be amazing
Quote from RocksGt :Some people complains about lagging, but we need to find out if that's server problem or people connection problem.

It is good it works a s expected.

Airio requires good communication between itself and the server. For this reason it is best to run it locally on the same computer where LFS server(s) run. Running it externaly from a different computer also works reliably though, just the buttons and messages do not appear as promptly.

Airio adds a small overhead to communication between players and the server, it is just the extra messages and buttons you may see while racing, nothing substantial, so it should not influence lagging. Only when people press Shift+i there is a larger amount of data transfered, almost 100 buttons. But of course no one calls options screen during race.

Quote from RocksGt :- The wrong driving option: When it starts counting? When LFS shows you the message? One racer told that he was spectated while recovering from a spin. We have the next config:

WrongDrivingTimeRace=5
WrongDrivingTimePrac=10

The numbers are simply seconds with the car going wrong way in race and after race. The counting starts as soon as the car starts moving wrong way. In race there is no warning message, when the set time expires the car is spectated. When not in race there is a warning displayed 5 seconds between spectating.

Note that if you have only good racers around, it may be best to completely disable this check by specifying CheckDriving=false in Airio.fil.txt file. No one will be ever spectated for wrong way driving then. Or you may set the values higher to allow for longer recovery.

Quote from RocksGt :Now that I think about it, maybe he was espectated by CrashCheckDelay=1

Oh, no, quite certainly not. This setting is related only to definition of highest possible speed and highest allowed spin. These two are by default unlimited, but admins may use it to spectate cars that crashed (in race or even after), to keep the line clear. The setting you mention just tells Airio it should wait for one more car parameters packet to check the car is really moving or spinning too fast.

Quote from RocksGt :- About the lagging: It's the LagTotal resetted at race restarting or something? We use to have long sessions of practice and one hour race every monday, so maybe LagTotal=10 it's very low... We've to test all this things

Lagging filter is one of the more complex, but basically it is watching for missing car position packets as reported by the server. The LagCount setting says how many consecutive missing position packets (sent every 0.1 seconds) are seen as lagging. The value is by default 4. When some car fails to update its position on the server for 0.4 seconds, a kind of 1 lag count is added to the player. Once this value reaches LagTotal/2, the player is warned of lagging and on LagTotal he is spectated. The accumulated lag count is zeroed on each race start and race join.

Strong word of caution: Many of the racing filters were created for short races in demo configuration. You know how it looks on demo servers. Airio helps there to keep the racing reasonable, giving crashers a hard time with limiting wrong way driving, idling, joining the race repeatedly and such. For any longer races and S1/2 configs I would suggest limiting the filters, turning them off selectively. E.g. to turn off the lagging filter you specify CheckLagging=false inside the filters file, Airio.fil.txt.

For a one-hour race I dare to suggest one more thing: Turn off all the additional filters, so that people are not spectated e.g. for speeding in pits due to a mistake. Just type !ch off before the race and all filters will turn off at once. You may restore previous configuration by typing !ch on. When I was organizing such races, this was a necessity, because people may get locked in sand and may require longer time to get out than the idling filter would allow.

Quote from RocksGt :Now an idea. We'll have two main configurations, one for weekly practice and another one for monday racing. So would it be possible to implement a way of having two options for some parameters? That way you'll not need to open the config files to switch those parameters, only invoking some command as !config=1 and !config=2 and Airio will look for parameters with two values labeled 1 and 2 and loading the correct value for those ones

Right, that idea is already implemented for several months, because defining server config(s) just once and then calling them easily is a good fearure. The bad news is it is available only in the FULL version. You may type there e.g. !si 2 and version 2 of current server config would load (!si stands for server init). You may have as many versions as you want/need. Seeing you'd like to have this I'll seriously think about moving it to FREE version to make it readily available.
I keep getting PASSWORD ERROR, even thought I know the password is right cos I've just connected to our server with that admin password
Quote from J@tko :I keep getting PASSWORD ERROR, even thought I know the password is right cos I've just connected to our server with that admin password

Hmmm, hard to guess, but I'll try. For a succesfull connection you need to set 3 things in Airio.con.1.txt file: host address, host port and host password. If address or port is incorrect, you'll see TCP error reported. It looks Airio can find the set address and port, but the connection point refuses to communicate in the expected fashion.

Are you sure you set the correct IP address and the InSim port? (Not game port, beware!) If wrong password is used, you'll see an error message in the server console. Check out the three settings again...
Quote from EQ Worry :Are you sure you set the correct IP address and the InSim port? (Not game port, beware!) If wrong password is used, you'll see an error message in the server console. Check out the three settings again...

Aaaah exactly what I was doing - many thanks
Airio 2.1.0 FREE now contains the !sini (or !si) server inicialization command. It makes it possible to define in an external file any / and ! commands to be sent to server, making it easy to change server configuration between two or more different setups. Read more about this in Full Version manual (I'll move the description to Admin Manual when doing docs update). See also the new Airio.set.1.txt file, representing default server 1 settings.

The FULL version (that you may always check out on AirAttack servers) includes updated Drift Board display to show just the essential drifting data (angle, time, speed, score) and implements Pit Board option to show important race data on each lap end, similar to what is shown in reality: Current lap and position, lap time, name of the driver ahead and time difference, name of the driver behind and time difference.
sorry for my stupidness but who can say to me step by step how to make ranking system working.
Quote from oldnavy :sorry for my stupidness but who can say to me step by step how to make ranking system working.

Not many steps here.

The FREE Airio uses only points - for races, series (groups of races), good laps and race best laps. You may define the requested values and other conditions in SRV file(s); see the Points section there. You may see points gained in the last finished race by typing !ptr, points in current series by !pts, championship (usually one week) points by !ptc and total (usually all-time) points by typing !ptt. The shown points are by default for the current track regardless of car type, but you may type e.g. !ptc xrg to see champ point table on current track gained only in XRG. If you type !ptt 100, the listing of total points will start from position 100. You can see your (and anyone else's) current points and positions in !pb listing.

The FULL Airio adds points for improvements (making better LFSW lap time) and points for stunt actions after the race (best height and longest fast spinning achieved by cool crashing). Also the points may be turned into any kind of ranks which you desire - the points needed and the associated text are freely definable in the CFG file. With high ranks there may come certain advantages, like people of low rank being kicked for starting a vote agains much higher ranked players. But all this is only in the FULL version.
but i get message no data to display...
my points file:
# Comma separated integer points for victory and other places - string
# Limiting points for victory according to number of racers - boolean
# Any number of fixed values may be specified. If limiting is turned on,
# maximum points gained by the winner depend on starting grid size.
# If PointSystem is empty, no points are scored/calculated/stored.
PointSystem=10,8,6,5,4,3
PointLimits=false

# Comma separated values of points for good/great/top laps - integers
# Points for fastest lap in a race - integer
# Use zeroes if you do not want any points assigned for good/best laps.
PointsGood=1,2,4
PointsBest=1

# Percentage of total laps as a condition for scoring points - integer
# Player with less total laps at the race end don't score any points.
LapsPoints=1

# Number of races in a series, used in point reviews - integer
# Series points are shown by !pts, when one serie ends, another starts.
GroupRaces=100000000000000000000000000000000000000000000000000

# Comma separated points for final podium serie places - integers
# Limiting points for serie according to number of racers - boolean
PointsSerie=5,3,1
SerieLimits=false

Quote from oldnavy :but i get message no data to display...

Well, first there must be some items stored in the statistics, meaning there must be a few races finished, some points gained on the particular track you have loaded. Then all the !pt? commands should work, find some data, sort them and display.

Some notes about the settings:

PointSystem=10,8,6,5,4,3
PointLimits=false


This means the race winner always gets 10 points, even if he has started alone. With more people on start the 6th in finish gets 3 points, 7th and the following get nothing.

GroupRaces=100000000000000000000000000000000000000000000000000

Try using 0 instead of that strange number (which may, in fact, be ignored). With zero specified the races will not be grouped into series, !pts would (or should) show the same as !ptr.
Thanks for help.I restarted my pc and everything works good.And if i replace that big number by zero points not restart arfter few races?
Quote from oldnavy :Thanks for help.I restarted my pc and everything works good.And if i replace that big number by zero points not restart arfter few races?

Well, if fact setting GroupRaces to zero will restart series count after every race. I guess a bit of an explanation is needed: People get points primarily for positions in races. All such points are added into their personal best stats, saved, restored on Airio/PC restart.

Series are simply groups of races, they store (only in memory) intermediate count of the races in the series. So, when a new series starts, the intermediate points are cleared, but they are already added into players' chamionship and total data, saved. People do not lose points when series end, just new group of races starts.

Having a never-ending series does not make much sense to me, that would be equal to the points shown by !ptc or !ptt. Well, I hope it makes sense (sometimes I doubt that myself)...
Oh yeah, the thing I had:

!ptc gives an Airio error of "Attempted to divide by zero"

What have I done wrong now?
Quote from J@tko :!ptc gives an Airio error of "Attempted to divide by zero"

Ah, nice. Please send me your Airio.log file, it will be much easier to discover the cause. My bad, no doubt. Send it to eqworry(at)airio.eu. Thanks.

EDIT: Ah, right, it was rather obvious: Please use in DaysChamp in Airio.cfg.txt file any value higher than zero. But I'll update the code somehow to solve the issue for the future.
Quote from oldnavy :Thanks for help. I restarted my pc and everything works good.

Hi there, I see you run three instances of Airio for three servers. Do you realize just one Airio can control all three (or even four) servers at the same time? It will save you lots of computer memory, you will have common stats on all the servers, easier managing, simple updating, etc.

To make it possible just create Airio.con.2.txt file and Airio.con.3.txt file with data for connecting to 2nd and 3rd server. You will have only one Airio, managing 3 servers, very cool arrangement. See http://www.airio.eu/Servers.aspx.

One more note: Running several Airio instances on the same computer may mean troubles with LFSW data downloads. While one Airio delays data requests from all managed servers using a single queue, two Airios may be sending requests at the same time, one of them being refused. Note that it does not matter if you use a different PubStats key, because the service would refuse two requests from the same IP address regardless of the supplied key. I've already posted a request for some change in this behavior, sadly there's no response from Victor.
Airio 2.1.1 adds some new switches to the !show command for manual setting the personal preferences, corrects a bug not allowing to use DaysChamp=0 in Airio.cfg.txt, corrects track rotation (every race end rotates tracks now) and soves a small problem with !target command display.

One rather troublesome matter was brought to my attention: By default only lap times within 110 percent (configurable) of current WR are stored into stats. That is usually a good value, requiring some reasonable driving skills - the stat files are not full of rubbish then, only valid items. A problem appears though when you want to use e.g. intake restriction, because the target time may simply not be achievable in the car with higher restrictions, your lap times would never be saved.

One way to solve this is to raise the MaxTime value in Airio.cfg.txt file, but that would influence all tracks/cars. The more systematic approach would be to accompany the restriction with specific new lap time requirement, and I think I'll eventually go that way, create a new settings item in Airio.cfg.tc.txt file (where also car restrictions are set).
Quote from EQ Worry :Airio 2.1.1 adds some new switches to the !show command for manual setting the personal preferences, corrects a bug not allowing to use DaysChamp=0 in Airio.cfg.txt, corrects track rotation (every race end rotates tracks now) and soves a small problem with !target command display.

One rather troublesome matter was brought to my attention: By default only lap times within 110 percent (configurable) of current WR are stored into stats. That is usually a good value, requiring some reasonable driving skills - the stat files are not full of rubbish then, only valid items. A problem appears though when you want to use e.g. intake restriction, because the target time may simply not be achievable in the car with higher restrictions, your lap times would never be saved.

One way to solve this is to raise the MaxTime value in Airio.cfg.txt file, but that would influence all tracks/cars. The more systematic approach would be to accompany the restriction with specific new lap time requirement, and I think I'll eventually go that way, create a new settings item in Airio.cfg.tc.txt file (where also car restrictions are set).

gaaah, just updated my server to 2.0.9........
lets go again then..
Quote from Easy_Mike :gaaah, just updated my server to 2.0.9........
lets go again then..

Ahhh, right, very sorry for that. I suggest you read the changelog file inside the archive. I mention there all changes incl. the updates of the config files. If there are just some bug fixes, it is sufficient to overwrite the EXE and PDB files, keep your TXT files intact.

In case there is a new config item mentioned, just look it up in the appropriate file in the archive and copy it into your current config files. Constantly overwriting all configs an making them again would be too much work. Usually just overwriting the EXE (and PDB for debugging purposes) is sufficient, the config files are for people that install Airio for the first time.
i have problem with trackrotate it's not working. and here is my setup pls tell me what did i do wrong..


file: Airio.srv.4.txt
#================================================================= #
# AIRIO SERVER 1 CONFIGURATION FILE #
# ================================================================= #


# The values below overwrite default settings from basic Airio server
# configuration file named Airio.srv.txt.


TextLogo=^4SHD^1Team ^1UF-BR

#=======================Rotacija staza ==============================#
# Track rotation scheme happening on every display of race end screen.
# Number of races after which to rotate tracks by ending race - integer
# "track[|laps/-mins[|car+car+]] > track..." in the scheme - string
# Instead of laps, minutes can be set as a negative value, the race is
# then for specified number of minutes plus one lap for the leader.
RotateRaces=7
RotateTracks=BL1|6 > BL1R|6 > SO3|5 > AS2|5 > AS2R|5 > AS6|6 > AS6R|6 >AS5|6 > AS1|10 > AS1R|10

and one more thing when i issue !end command nothing happens, if i try /end it's working normal.
Quote from DuleXY :i have problem with trackrotate it's not working. and here is my setup pls tell me what did i do wrong..


file: Airio.srv.4.txt
#================================================================= #
# AIRIO SERVER 1 CONFIGURATION FILE #
# ================================================================= #


# The values below overwrite default settings from basic Airio server
# configuration file named Airio.srv.txt.


TextLogo=^4SHD^1Team ^1UF-BR

#=======================Rotacija staza ==============================#
# Track rotation scheme happening on every display of race end screen.
# Number of races after which to rotate tracks by ending race - integer
# "track[|laps/-mins[|car+car+]] > track..." in the scheme - string
# Instead of laps, minutes can be set as a negative value, the race is
# then for specified number of minutes plus one lap for the leader.
RotateRaces=7
RotateTracks=BL1|6 > BL1R|6 > SO3|5 > AS2|5 > AS2R|5 > AS6|6 > AS6R|6 >AS5|6 > AS1|10 > AS1R|10

and one more thing when i issue !end command nothing happens, if i try /end it's working normal.

i see your problem. i did it wrong to, until i read the FAQ on Airio tracker.
This is how u want it to be: Rename CAR with wanted car ex: UFR or UFR+XFR

RotateTracks=BL1|6|CAR > BL1R|6|CAR > SO3|5|CAR > AS2|5|CAR > AS2R|5|CAR > AS6|6|CAR > AS6R|6|CAR >AS5|6|CAR > AS1|10|CAR > AS1R|10|CAR


@ EQ Worry: i see a bug:

# "track[|laps/-mins[|car+car+]] > track..." in the scheme - string

Should be (to be more clear)

# "track|laps/-mins|car+car+>track..." in the scheme - string
Quote from EQ Worry :Ahhh, right, very sorry for that. I suggest you read the changelog file inside the archive. I mention there all changes incl. the updates of the config files. If there are just some bug fixes, it is sufficient to overwrite the EXE and PDB files, keep your TXT files intact.

In case there is a new config item mentioned, just look it up in the appropriate file in the archive and copy it into your current config files. Constantly overwriting all configs an making them again would be too much work. Usually just overwriting the EXE (and PDB for debugging purposes) is sufficient, the config files are for people that install Airio for the first time.

Done deal m8
up and runnin
Quote from Easy_Mike :i see your problem. i did it wrong to, until i read the FAQ on Airio tracker.
This is how u want it to be: Rename CAR with wanted car ex: UFR or UFR+XFR

RotateTracks=BL1|6|CAR > BL1R|6|CAR > SO3|5|CAR > AS2|5|CAR > AS2R|5|CAR > AS6|6|CAR > AS6R|6|CAR >AS5|6|CAR > AS1|10|CAR > AS1R|10|CAR


@ EQ Worry: i see a bug:

# "track[|laps/-mins[|car+car+]] > track..." in the scheme - string

Should be (to be more clear)

# "track|laps/-mins|car+car+>track..." in the scheme - string

i tried that.. but still when i go to end screen nothing happen just stayin in end screen.. in what cfg files do i have to change data for changing auto rotation?
-
(Easy_Mike) DELETED by Easy_Mike : spamming ..sry =)
ok, this is my setup and it works.
i havnt changed anything else.


# ----------------------------- General --------------------------- #
# Whether to spectate player for pitting (pressing Shift+P) - integer
# Could be used in races closed for midrace join to prevent pitting,
# because only spectating people cannot rejoin the race.
SpecFromPits=false
# Time (in seconds) to wait with automatic race restart - integer
# Number of players to be connected for the restart to happen - integer
RestartTime=150
RestartCons=6
# Track rotation scheme happening on every display of race end screen.
# Number of races after which to rotate tracks by ending race - integer
# "track[|laps/-mins[|car+car+]] > track..." in the scheme - string
# Instead of laps, minutes can be set as a negative value, the race is
# then for specified number of minutes plus one lap for the leader.
RotateRaces=3
RotateTracks=WE1R|3|UFR+XFR>Bl1R|4|UFR+XFR>SO1R|6|UFR+XFR>KY2R|4|UFR+XFR>FE2R|4|UFR+XFR>AS2R|4|UFR+XFR

EDIT: just spoted that u use "space" in: ..CAR > Track...
it should be ...CAR>TRACK...
Oh, nice late night discussion! Now the reason why track rotation is working for Mike and not for Duley is rather simple, I guess: Duley is using Airio 2.1.0 or earlier while Mike has 2.1.1.

My attention was just a bit earlier brought to this subject, the fact that tracks are not always rotated. By design it should rotate every time the game enters race end screen under two conditions: There is a rotation string defined and the current track is one of those found in the string. But there was a little bug there rotating tracks only under one more condition, the set number of races on that track finished. That was an inconsistency I removed in 2.1.1.

Sooo... Just download the latest version and overwrite EXE and PDB files. Then, when the two above mentioned conditions are met, tracks will always rotate.

The example of track[|laps/-mins[|car+car+]] > track... means that laps or minutes (negative value) parameter is optional and also that cars parameter is optional (but must be 3rd). And that is true. If not set, the last/current values are used. Also spaces in the string are unimportant. All the strings you mention are OK, there was just a little bug that prevented rotation every time you used /end (or people vote to end race).

I suggest you also check out the !track command showing how many races were already finished on the current track. Admins may set the number of finished races by typing !track number. Now I'll take a closer look at the !end command...

EDIT:

Awwww, I found out the !end command was advertised but the handling code not implemented. I added the necessary 3 or 4 lines of code now and updated 2.1.1 version. Note that I did not raise the version number, because it is really a minor adjustment. I just added a new item to the changelog file. I may do this occasionally, posting small updates under the same version number.
Quote from EQ Worry :Oh, nice late night discussion! Now the reason why track rotation is working for Mike and not for Duley is rather simple, I guess: Duley is using Airio 2.1.0 or earlier while Mike has 2.1.1.

No i was using 2.1.1, and we done some minor changes to our cfg files and everithing is workin like charm.. i have some wish list if its possible...

1. create some variable for specific server so it uses maxtime from best time on server not wr. problem is with cars that use some restriction, and is it possible to put restriction for specific server not for just a car or track..

example... UFR intake restriction for server 11... on other servers he can run at full speed...

AIRIO - Advanced LFS Tracker
(2384 posts, started )
FGED GREDG RDFGDR GSFDG