The online racing simulator
AIRIO - Advanced LFS Tracker
(2372 posts, started )
Quote from NotAnIllusion :So which car is default if a combo has both the UFR and XFR? It should be just one car, or am I mistaken?

i was under the impression that DefaultCar was for setting the default car for options like !top !near etc.

if two cars are running on the server at all times, shouldn't those options show both cars together unless specified otherwise? it works fine for me that way in lapper.
I'm not familiar with Airio so I can't say if it's different from LFSL, but to me
Quote :If you put DefaultCar=RB4 ... your server 1 will have RB4 as the default car.

implies DefaultCar is a single car which is the default for the ranking commands, regardless of which cars are allowed, in race or otherwise.
Quote from NotAnIllusion :implies DefaultCar is a single car which is the default for the ranking commands, regardless of which cars are allowed, in race or otherwise.

yeah, i just checked it... and you're right. it seems to only accept a single value. (RB4 works, but UFR+XFR doesn't) i guess that's another feature request. :doh:

...and to think i broke it somehow.
Good deduction, above. There can be only one value (car type) for DefaultCar. Now I've solved a major obstacle and implemented a feature due long ago, specifically definable car categories, such as TBO=RB4+XRT+FXO or anything else you want and using commands such as !sb tbo.

So in 2.1.8 you'll be able to say that e.g. FR=UFR+XFR and then type !sb fr to get combined table. But I see you'de be happier if simple !sb had the same results and !sb ufr and !sb xfr called specifics. So I'm thinking about adding a server-configurable StandardCars key whose value would be used instead of player's current car in case car type is not specified.

EDIT: OK, done, you may watch the progress on the changelog page.
Airio 2.1.8 is released. See the changelog for complete list of updates, here I'd like to mention just a few of the more interesting:

• Support for custom definable car categories such as TBO or GTR which can then be used in !sb (!top) lists to get combined sorted output.

• Support for layouts loading in track rotation scheme.

• An option to kick people for removing others from start grid (race end screen).

• Unix timestamp data now used in Airio STA files to ease PHP processing.

• FULL: Complete time-based licensing framework allowing to define licence levels and required server PB times for any track/car combination or generally with the possibility to limit access (race join) to individual servers by licence level.
Quote from EQ Worry :Airio 2.1.8 is released. See the changelog for complete list of updates, here I'd like to mention just a few of the more interesting:

• Support for custom definable car categories such as TBO or GTR which can then be used in !sb (!top) lists to get combined sorted output.

i miss the option to define a restricted car class, will it be implemented?
second thing: would be cool that different defines classe could have different point systems. its better to motivate the players to get the next licence.

Quote from EQ Worry :
• Support for layouts loading in track rotation scheme.

this is good for public servers, good one finally a good shortcut prevention

Quote from EQ Worry :
• An option to kick people for removing others from start grid (race end screen).

Quote from EQ Worry :
• Unix timestamp data now used in Airio STA files to ease PHP processing.

much better to handle, thx

Quote from EQ Worry :
• FULL: Complete time-based licensing framework allowing to define licence levels and required server PB times for any track/car combination or generally with the possibility to limit access (race join) to individual servers by licence level.

the way you try to handle is a bit.... don´t know how to say...
its good for a one track server, but for servers with a rotation its nearly useless.
better is a licensing system based on global points. what i wish to see too is a command waht to do if a player joins with not enough points (only spectate/kick... and when the driver trys to join multiple times without reading/learning, ban for 2 hours maybe?)

and now the configs: DAAAAAAAAAAAAAAAAAAAAAAAAH (berserk mode=1)
this is the only reason i did not use my BOUGHT copy until now because i always think i forgot something
maybe i try to sort them in another system if you want (the idiot proof)
1) Restricted car classes: Yes, I'll try to implement the possibility to create custom cars (by applying restrictions on the existing cars). Ideally these should be then handled by their custom name just like they were proper LFS cars. That means separate stats being stored, possibility to use them in !pb and !sb listings etc...

2) Licences and ranks: Yes, true, as you say the licences based purely on lap times in certain track/car combos have limited use for you. But I know other servers where this is exactly what they need. Three servers running the same combo, server 3 is open, but to drive on server 2 or server 1 you need certain lap time stored in Airio stats, and that is the required licence level.

I intend to implement a framework allowing the points to be used in much the same way as lap times. I started with lap times (aka licences) because it was a bit easier and better for testing the general principles. With points (aka ranks) there comes one more variable factor and that is what points are used - total, track, car, or track/car? I can imagine scenarios when all these might be required and I'd like to support those.

So, the rank (points) based system very similar to licence (time) based system is coming. It will be just as flexible, with full customization supported. The current rank system (we're talking here about FULL version only) will be updated/modified for the more flexible framework.

I think there'll be the standard (customizable) sanctions for trying to join a server with insufficient licence or rank - 2 spectates, then kick, all with accompanying explaining messages. 5 kicks = short ban, 12 hours, the lowest possible in LFS.

3) Configs: I'm not sure what makes you berserk? The files have been merged, items are grouped, every item is explained. All new keys are mentioned in changelog so that you may just copy them from default config files into your current ones, update (unless you missed last like 5 to 10 versions) is a matter of 3 to 5 minutes.

I realize some items (especially in the track/car section of the CFG file) are more complicated to set up properly because of the inter-dependencies, but that is a price for the very flexible setup options you get. If anyone runs into some troubles, I'm always around to explain how things work. But surely specifying special settings for tracks and cars requires some thinking, it is relatively easy to make an error resulting with unexpected behavior.

Quick Question:

Can Airio be run on Linux server using Mono?
Sure, just type mono Airio.exe from the Airio directory. My tracker was running on debian lenny 64.
Quote from Cr45h :Can Airio be run on Linux server using Mono?

Yes, I know of several cases where Airio runs under Linux/Mono without problems...
Airio 2.1.9 is released. Again, for complete changes read the changelog, but here's summary of the updates:

1) Support for custom cars definitions using restrictions. Custom cars have new names and are processed just like if they were new standard LFS cars, meaning they have their own settings and stats. Basically they may be used anywhere in Airio where other cars are supported. A player is seen as joining in custom car type if intake restriction and added mass exactly match the defined requirements. This feature allows to store separate stats for restricted car types (with new names assigned). It is available also in the FREE version, so anyone can create e.g. "Baby FBM" (say FBB) cars even for demo use.

2) New !car command shows what car type each driver currently uses (last joined with), naturaly including custom car types. This info is not (as far as I know) otherwise available directly in LFS, althought it is sometimes necessary.

3) FULL version contains updated ranking system (based on total points). This highly customizable new system may be used to lock access to servers or just to certain car types on some servers by rank level required.

4) Unfortunately there's one change that may not be as popular. Some sections and items were moved from CFG file into a new separate TCD (track/car data) file. The whole arrangement is more logical in this way: CFG = items common to the running instance, all its servers. TCD = all data about tracks and cars (incl. custom cars, car categories). SRV = items definable on individual servers (filters).

Take care, if you have any questions do not hesitate to ask here or using a private message.
Outstanding job. Custom cars definitions is just what we have been waiting for for a long time. Thanks.
Thx... excelent job
There's been for some time the requirement to store stats according to restrictions used. It took me some time to realize that custom cars (with their own names) provide a perfect solution. And using the existing Airio framework they were not, in fact, as complicated to implement.

In the default config files you'll find definitions of three GT2 cars (used in some existing leagues) like this:

CustomCars=FX2|FXR,23,0 XR2|XRR,25,0 FZ2|FZR,20,0

They are also combined into one category (see the last item):


This makes commands such as !sb gt2 available. The command will show only GT2 cars (that is custom-defined FX2+XR2+FZ2) while !sb gtr would give you completely different output. The same is true for !tb fz2 and !tb fzr, they are simply different types of cars.

To make race points assigned uniformly for certain equal car types there's also an extended default definition of car groups:


Well, in the newest version (please download 2.1.9 again, I did a very small update there) the above item could be more easily written as:


Simply put, once you define custom car or car category, you may use it. Note that custom car and category names are always required to have exactly 3 characters. Also note that all the things mentioned here are available in the FREE version.

This is not true for customizable licences and ranks though which allow you to create CTRA-like systems where players can join races on another server only when they have sufficient ranks, lap times or both. And you may limit this also on specific car type level, such as allowing to use TBOs only until certain rank (number of total points) is gained, then also GTRs will be available, all on the same server or on different servers, as you wish. But these things are reserved for the FULL version only.

This is the error i get...

And same error with mono on linux...
Right. I guess you understand that picture does not give me much info. I do not know what you are trying to do nor where the error appeared, so I can only guess:

Did that error appear when you were trying to import LFS Lapper data from a PB.txt file? Currently I can't think of any other place where date/time string is being converted (but I might have overlooked something).

Anyway, if it really happens when importing Lapper data, well, I guess you can try to send me the PB.txt file to eqworry[at] and I'll see what other nice date/time string format is used there.

If that is not the case, send me please the Airio.log file, then I'll have much more data available.

In fact, i've just started Airio with minimal cfg (following _Config.txt file, just to try it).

This is the log...

09.04.14 17.28.45 Starting program...
09.04.14 17.28.45 Starting Web thread...
09.04.14 17.28.45 Web thread started...
09.04.14 17.28.45 Reading WR table...
09.04.14 17.28.45 WR table read...
09.04.14 17.28.45 Reading configs...
09.04.14 17.28.45 Common configs read...
09.04.14 17.28.45 Reading data...
09.04.14 17.28.45 Users data file not found - Airio.sta.un.txt
09.04.14 17.28.45 Requesting LFSW WR data...
09.04.14 17.28.45 #1 Starting new instance...
09.04.14 17.28.45 #1 Reading server configuration...
09.04.14 17.28.45 #1 Opening connection...
09.04.14 17.28.46 #1 Requesting MultiInfo...
09.04.14 17.28.46 #1 Connected to : PLZ TEST server - 0.5Z3 - S2
09.04.14 17.28.46 #1 Airio tracker v. 2.1.9 connected to server...
09.04.14 17.28.46 #1 Requesting RaceStart...
09.04.14 17.28.46 #1 Reading track data...
09.04.14 17.28.46 #1 Current track : BL1R - L:323 SF:21 S1:107 S2:236
09.04.14 17.28.46 #1 Requesting AutoXInfo...
09.04.14 17.28.46 #1 Reading cross data...
09.04.14 17.28.46 #1 Timers created...
09.04.14 17.28.46 #1 Requesting Connections...
09.04.14 17.28.46 #1 Creating player : host
09.04.14 17.28.47 #1 AIR ERROR: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s)
at LiveForSpeed.InSim.Airio.Datas.Load(Player ply) in c:\Development Files\LFS_Airio2\Datas.cs:line 668
at LiveForSpeed.InSim.Airio.Airio.NewConnection_Handler(Connection sender, NewConnection c) in c:\Development Files\LFS_Airio2\Inits.cs:line 364
09.04.14 17.28.48 #1 Requesting Players...
09.04.14 17.28.49 LFSW WR data not downloaded...
09.04.14 17.28.51 #1 State, connections, players read...
09.04.14 17.28.51 #1 Buttons created...
09.04.14 17.28.51 #1 Reading track data...
09.04.14 17.28.51 #1 Current track : BL1R - L:323 SF:21 S1:107 S2:236
09.04.14 17.28.51 #1 Race starting...
09.04.14 17.28.51 #1 Reading cross data...
09.04.14 17.28.51 #1 State updated, race restarted...
09.04.14 17.28.51 #1 Handlers registered...
09.04.14 17.28.51 Entering main loop...

Now that is much better! Turns out it was my bad after all. Please download 2.1.9 again, replace the EXE and PDB files as they were updated. There should be no more such error. Sorry!


I thought there was my problem..

Well... Downloading it right now

I'll keep u informed

BTW, great work mate!! :smileyrai
LOL, thanks, but it doesn't look like a great work to me when it throws error right at the start. It seems Italian date/time settings are substantially different from the rest of the world. But it is great you pointed this deficiency out, now a bullet-proof method is used, guaranteed to work even for Martians.

About Italian, i'm translating the language txt file...

ASAP I'll finish, what I have to do to make it usable and/or add it to language pack?
GREAT news about Italian translation! If you want to enable it on your server, just put the created file into Airio folder and type !rld on any server with Airio connected. No need to stop the application and run it again! Then press Shift+i and try to select the IT option – (almost) everything should change into Italian. I say almost because there are some new lines (even buttons) that are not part of the supplied MSG.EN file, but that are relatively easy to add. If you to make the translation available to everyone, please send the file to me and I'll make it part of the language pack. Worhy addition that would be! Oh, please just make sure you use shortest descriptions/translations possible or they will be cut in some cases which does not look nice.
If i've one airio with under 3 server, there is a way to count point only in one of this three server ?

These string:

# ----------------------------- Points ---------------------------- #

# 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.

# 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.

# 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.

# Number of races in a series, used in point reviews - integer
# Series points are shown by !pts, when one serie ends, another starts.
# Use zero if you do not want to group races into series.

# Comma separated points for final podium serie places - integers
# Limiting points for serie according to number of racers - boolean

# FULL: Points for any LFSW PB improvement - integer

# FULL: Display of stunt actions after the race - boolean
# FULL: Points for stunt actions after the race - integer

# FULL: Points for each lap in case low number of people race - integer
# FULL: Maximum number of people racing for support points - integer

Are stored in Airio.srv.txt

If i toggle from Airio.srv.txt and i insert in Airio.srv.3.txt, point system work only for server 3 ?
Some question....
Is it possible to restrict car usage on one server to custom car.

I have defined UFB|UFR 45,0 and i want only this UFB car to be allowed on server. Currently i can use ufr with no restriction or ufb with restriction and have mixed race. If i put UFR restriction to INT.45% i lose UFB car group since they are same..

I hope u didn't get confuset ....

AIRIO - Advanced LFS Tracker
(2372 posts, started )