The online racing simulator
AIRIO - Advanced LFS Tracker
(2373 posts, started )
Quote from EQ Worry :@ Unknown -There was a post about one very strange error, something about WebException and wrong state of object, but I can't find the post anymore (or am I simply blind?). I would hope it was some kind of strange system state, I really do not know what could cause it. If it repeats, cause and solution needs to be found...

that was me, and it was my fault.
#577 - Bub
Does it restrict the max fuel capicatity in fuel tank?
that you can max drive with 50% of fuel, so in race could be more pits?
Then it could be really greatfull =]
OK EQ i will try make some experiment.

Informaziont: with !ch off i put off all additional check, so (confirm ):
- rotatetracks
- restart mode
- blue flag spec
and ALL in srv.txt ?

But what about the car restriction in TC file ? It remain ?
Quote from Bub :Does it restrict the max fuel capicatity in fuel tank?
that you can max drive with 50% of fuel, so in race could be more pits?
Then it could be really greatfull =]

Information about fuel level in cars isnt available to server/Airio, so you cannot check/limit that. In FULL version you have the option to define custom number of required pitstops, together with pit windows and pit work that need to be done on the car (tyres changes, refuelled).
Quote from michele0676 :Informaziont: with !ch off i put off all additional check, so (confirm ):

Here are the checks that will NOT run if all additional Airio checks are turned off (using !ch off). Each check can be also turned on/off individually.

Speed, Spin, Position (restricted and limited zones), Idling, Driving (wrong way), Lagging, Flooding, Name (prohibited), Cursing, Name (doubled in stats), Text (numberplate), DriverSetup (ABS, TC), Tyres, Speeding (in pits), Camera (driver view), Address (doubled IP), Cursing, Cars (prohibited types), Licence/Rank/Rating, Lock (lap time), Join (limited count), Skin, Passengers, AI, Restrictions, CarSetup (gears, brake), Inactivity, Time (split/sector). Also races are not auto-restarted.

By omission BlueFlags check will always run, but I corrected the code now, it now belongs to the above category. Seeing this I believe checking Position using limited zones (invalidating good lap times gained by cutting) should always run, I will correct this.
#581 - Bub
k, thanks for info
OMG ... so i've to turn on !ch is i want check restrictions !
Hm, yes, currently. But I see it may not be the best/desirable behavior, because if you want to do an event, you should turn off all checks, but car limitations should still be applied. Of course you can turn off all the other checks individually (maybe using a SET file), still...

So you believe Restrictions need to be checked always, once defined? What other filters belong to this category then, always running unless expressedly and individually turned off? Maybe DriverSetup, CarSetup, ProhibitedCars, Tyres, Passengers, AI.

EDIT: MC, it was a very good note, something I was fighting with earlier. To solve the issue, I updated Airio, separated all checks into 2 categories - basic (car setup, ranks etc.) and advanced (text, speeding, lagging, ...). In normal server, both basic and advanced should run, during event only basic checks should run andthen you'll have correct car setups and only people with sufficient licence can join. No one will be kicked/spectated for speeding, idling etc...
I've a problem with Airio 2.1.2 of 500server.
In Airio.srv.txt there is NOT all this part:

# ------------------------- Driving Filters ----------------------- #

# Disallow wrong way driving - boolean
CheckDriving=false

# Time in seconds after which player is seen as driving wrong way
# and spectated in race or in practice (after race) - integers
WrongDrivingTimeRace=6
WrongDrivingTimePrac=10

# Remove idling cars in race - boolean
CheckIdling=true

# Time in seconds after which player is seen as idling - integer
# Player is warned of idling on (IdlingTime - 10) and (IdlingTime - 5).
IdlingTime=30

# Remove cars with extensive lagging during race - boolean
CheckLagging=false

# Number of missing consecutive car position packets (sent every
# 100 ms) seen as lagging and maximum number of such lags before
# spectating - integers
LagCount=20
LagTotal=80

# Disallow speeding in the pitlane - boolean
# Disallow this even after race - boolean
CheckSpeeding=false
CheckSpeedingAlways=false

# Check positions inside defined restricted/limited zones - boolean
CheckPosition=false


---

But sometime one people is spectate for lagging.
How is this possible ?
2.1.2 is OLD, I would strongly suggest updating to the latest version, 2.2.9 with 2.3.0 coming in a few days. It would basically require doing new configuration because old config files are not (mostly) supported anymore. Further updates will be relatively easy, just an option added here or moved there, no major config structure updates are coming.

If I remember correctly, in 2.1.2 there was a separate file for defining filters, Airio.fil.txt (and Airio.fil.x.txt, where x is server number). So look for that file and definitions there. If the file's missing, then Airio uses its harcoded defaults. In any case, update is strongly recommended, many new features were added/improved since 2.1.2...
Yes EQ Worry, setting is in fil file, thank !

A questione for u: i'm going to ask 500servers to upgrade my airio.

Can i ask to overwrite only airio.exe (i think to upload the config files after edit) ?
I lost my data ?
I believe you do not have to ask, you may do the upgrade yourself using the control panel Game Updates under Airio service. This update will overwrite only EXE and PDB (debug info) files, you need to change the configuration files yourself. And when going from 2.1.2 to 2.2.9 you in fact must update the config files completely, because there's been one or two major changes to the structure and old files simply won't work. I would suggest to completely remove old configs, upload new ones from downloaded Airio archive and do completely new config (maybe with the help of items in old files). No need to do such complete reconfig with every update, but in your case it might be the best course to be sure you have all items available and at correct places/files.
OMG, each time there is something to learn.
OK i've updated to 2.2.9 !
Yes. We made a good arrangement with Franky of the 500servers and now updates are available very soon after release (withing several hours, usually even faster).

Everyone using the TCAdmin panel must be aware of one issue: The online file edit/save feature unfortunately saves the files always with ANSI encoding. In case you use non-ANSI characters in config files (e.g. in localized messages), this will lead to incorrect display, because Airio expects the data in Unicode (UTF-8) format. Until the issue is solved (by TCAdmin developers), it is best to change configs by uploading new versions from your PC with correct encoding, not by direct online editing.
Hi EQ, another problem.

I can't find the parameter with i ask to Airio to store the time in the !top in case of "slow" time.
I use Baby UFR (45% of intake res.) but time are not stored in !top because too slow.
In 2.1.2 i found a parameter that i can't find in 2.2.9.
Where is it ?
Hi! They are car settings, so you'll find it in track/car data file, TCD. Your case is the classic situation where a custom car should be used, UFB = Baby UFR. I'd suggest you do the following changes in TCD file:

CustomCars=UFB|UFR,45,0

By this you say that any UFR joining race with 45 percent intake restriction or higher and 0 added mass or higher will be reported as UFB, custom car. The major advantage is it will be perfectly valid car for Airio with separate stats and everything, just like if it was LFS car. Every commad accepting car type will recognize UFB as valid selection: !pb ufb, !sb ufb, etc...

The next step is to define how much slower this car actually is than his full-force father. It is also good to prohibit entering race with UFRs with lower restriction than 45 percent. Use something like this at some suitable place in TCD file:

Track=
Car=UFR
IntakeRestriction=45
TimeAdjustment=2000

The last value is most important; it specifies that UFB is 20 percent slower than UFR, so it is (percentage * 100) to allow fine tuning. Now you need to calculate somehow what the actual values should be, best by comparing lap times with UFR and UFB on several tracks.

If UFR laps are somewhere 150 seconds and UFB times then 170 seconds, you need to enter (170/150 - 1) * 10000 = 1333 (13.33 percent). OK?

Once the correct time adjustment value is found all the required times will be adjusted accordingly, meaning you'll need standard driving to enter stats, good driving to see good times reported, etc. All the above changes can be applied by simple !rld, no Airio restart is (ever) necessary.
Hi EQ!

Today we had a strange kick for inactivity:

A guy just joined the race as the lights were going from first to second red light - last place.

But just after the T1 he got kicked for inactivity... ???

Any clue why?
Hi, during the races same people can see the replay.
I read all the manual but i can't find a command to do that.
How can i see a replay ?
Thanks !!
Err... wrong forum, but what about opening LFS a 2nd time?
Quote from Crady :A guy just joined the race as the lights were going from first to second red light - last place. But just after the T1 he got kicked for inactivity... ???

Yup, I have a clue. Activity is not joining race once in some 25 minutes and just sitting in pits or spectating for another 25 minutes. Activity is racing, racing is passing splits and finishing laps (at least Airio thinks that).

The inactivity "timer" is reset for everyne on each split. (I had it on lap finish only, but it was not ideal.) So the guy you talk about was connected to server for more than 30 minutes (under default settings) and then was very unlucky that the check run a few seconds before he crossed a split.

It may happen, but only sporadically and only if he did no racing for set time.
Airio 2.3.0 is released. It is an attempt to consolidate previous development and solve some previous inconsistencies and illogicalities (if such word exists). The changelog is rather extensive this time, and also quite a few items were added to config files. Still I believe config upgrade by comparing your current and new default files will be quick, a question of a few minutes.
  • Airio checks have been divided into 2 categories, one basically about joining the race (with limitations such as time, licence, restrictions, ...), the other mostly about actual racing (idling, speeding, chatting, ...). This separation makes it easy to switch server between normal racing and event racing while keeping all race joining limits.
  • Commands such as !sb now support case sensitive nickname filtering. The filter is always the last item and starts with *.
  • New verbosity levels allow anyone to switch Airio to !silent or !noisy mode, receiving none or all global messages.
  • GUI updates consolidate more buttons into one. Try clicking them repeatedly to see what states they support. Unfortunately buttons text was changed as well, so new translations are necessary. It will take some, but hopefully short time to have 2.3 language files.
  • Limad system was updated, with configurable levels 0, 2, 4 available in FREE version and levels 1, 3, 5 added to FULL version. Level 4 may be virtual admin, driver without server pass, but with Airio admin commands available. Level 5 in FULL may be super-admin with reserved commands (e.g. !unban).
  • The !players command may be made available to everyone, while the !rep command may be disabled.
  • Drift summary (total angle, avg. velocity, time, points) may be shown on each drift end. Also some pitboard data may be shown as pitinfo in chat on each lap finish.
  • FULL version has dynamic kick/ban voting being turned on/off according to the "strength" of limads on server. The idea is to disable voting in case there are enough people to take care of troubles.
  • Other minor updates, improvements, fixes.
Enjoy, test if you like, bug reports and suggestions are always welcome!
OK EQ Worry, thanks for suggestions.
Updated at 6:00h this morning... lol

Big THX!
Hi EQ, i did this, it's just formatted ?
I calculate the % for each ufb league track, it's strange that there are so many differences from track and track

defaultcar=UFB is correct ?

---

# ----------------------- Car Customizations ---------------------- #

# Below you may create custom groups of cars for calculating points,
# car categories to be used in some listings and customized cars.
# Defined custom cars or car categories may be used in later items.

# Custom cars derived from standard cars using intake restriction
# and/or added mass. These cars will be processed by Airio as if they
# were real LFS cars, meaning they will have their own stats stored.
# Definition: CUST|STAND,INTK,MASS CUST|STAND,INTK,MASS ...
CustomCars=FX2|FXR,23,0 XR2|XRR,25,0 FZ2|FZR,20,0 UFB|UFR,45,0

# Car categories, where one abbreviation comprises several car types.
# You can create new entries using Category|Type+Type+... notation.
# Entries are separated by space and can be used in !sb, !tb and !nr
# commands.
CarCategories=STD|UF1+XFG+XRG TBO|RB4+FXO+XRT LRF|LX6+RAC+FZ5 GTR|FXR+XRR+FZR GT2|FX2+XR2+FZ2

# Groups of equal cars for points calculation. Separate groups by
# space and join cars in group by a plus.
CarGroups=XFG+XRG RB4+XRT+FXO FXR+FZR+XRR UFR+XFR RAC+LX6+FZ5 FX2+XR2+FZ2


# ======================== Car/Track Data ========================= #

# These config data are placed hierarchically: First are values valid
# for all tracks and cars, then follow values valid for all cars on
# specific track and then values for specific track/car combinations.
# Values specified later overwrite earlier values. Identation is not
# required.

# ------------------------ Global Options ------------------------- #

# Default car on all tracks
DefaultCar=UFB

# Speed measuring in splits of all tracks/cars
SpeedtrapNode=

# No speed limit on all tracks/cars
AllowedSpeed=-1

# No spin limit on all tracks/cars
MaximumSpin=-1

# General good/great time reporting
GoodTimesRel=200,100,50

# Disallowed passengers on all tracks/cars (rear)
NoPassengers=Left+Right

# Prohibited tyres on all tracks/cars
ProhibitedTyres=Knobbly

# -------------------------- BL1 Options -------------------------- #

# Following values apply only to this track
Track=BL1

# Different default car for this track
DefaultCar=FBM

# Restricted zones valid for all cars on this track
RestrictedZones=407,-690,7 + 44,575,8

# Limited zones valid for all cars on this track
LimitedZones=142,484,7

# Maximum allowed rotation in degrees per second
MaximumSpin=360

# Values for this track/car overwriting global/track ones
# Following values apply only to this track and car
Car=FBM

# Specific maximum allowed speed for FBM @ BL1
AllowedSpeed=230

# Specific good/great times for FBM @ BL1
GoodTimesAbs=7400,7350,7300

# FULL: Server recorded lap time licence levels.
# LicenceTimesAbs=

Car=XFG
AllowedSpeed=200
Car=XRG
AllowedSpeed=200

# -------------------------- BL2 Options -------------------------- #

Track=BL2
RestrictedZones=-20,-160,20
ProhibitedTyres=Normal+Super
MaximumSpin=360

Car=XFG
AllowedSpeed=165
GoodTimesAbs=6900,6875,6850
Car=XRG
AllowedSpeed=170
GoodTimesAbs=7000,6950,6900

# -------------------------- UFB LEAGUE Options -------------------------- #

Track=SO6
# Values for this type of car on all tracks
Car=UFR
# Defines required intake air restriction
IntakeRestriction=45
# Defines required added mass
AddedMass=0
# Defines percents to add to default required time
TimeAdjustment=1830

Track=AS1
# Values for this type of car on all tracks
Car=UFR
# Defines required intake air restriction
IntakeRestriction=45
# Defines required added mass
AddedMass=0
# Defines percents to add to default required time
TimeAdjustment=1370

Track=AS2
# Values for this type of car on all tracks
Car=UFR
# Defines required intake air restriction
IntakeRestriction=45
# Defines required added mass
AddedMass=0
# Defines percents to add to default required time
TimeAdjustment=1900

Track=FE2
# Values for this type of car on all tracks
Car=UFR
# Defines required intake air restriction
IntakeRestriction=45
# Defines required added mass
AddedMass=0
# Defines percents to add to default required time
TimeAdjustment=1280


# ---------------------- Other Track Options ---------------------- #

Track=BL2R
ProhibitedTyres=Normal+Super

Track=FE5
ProhibitedTyres=Normal+Super

Track=FE5R
ProhibitedTyres=Normal+Super

Track=FE6
ProhibitedTyres=Normal+Super

Track=FE6R
ProhibitedTyres=Normal+Super

# ----------------------- Other Car Options ----------------------- #

Track=KY1

# Empty car means the values apply to all cars on this track
Car=
MaximumSpin=360

Track=KY1R
Car=
MaximumSpin=360

# Empty track means the following values are valid for all tracks

Track=
# Values for this type of car on all tracks
Car=UFR

# Defines required intake air restriction
IntakeRestriction=45

# Defines required added mass
AddedMass=0

# Defines percents to add to default required time
TimeAdjustment=1350

# Here are time adjustments for GT2 custom cars
Car=FX2
TimeAdjustment=475
Car=XR2
TimeAdjustment=475
Car=FZ2
TimeAdjustment=475

# ------------------ Values Supported / Explained ----------------- #
Quote from michele0676 :Hi EQ, i did this, it's just formatted ?

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

DefaultCar=UFB

# -------------------------- UFB LEAGUE Options -------------------------- #

Track=SO6
Car=UFR
IntakeRestriction=45
AddedMass=0
TimeAdjustment=1830

Track=AS1
Car=UFR
IntakeRestriction=45
AddedMass=0
TimeAdjustment=1370

...


Good custom car definition, this approach has many advantages. (I think custom cars are one of the coolest Airio features, so I'm glad you're using it. )

DefaultCar definition is OK, UFB is perfectly valid entry. If you use one Airio on one server, it is no problem to define DefaultCar=UFB in TCD file. If one Airio is managing more servers, that definition should be only on one server (in appropriate Airio.srv.x.txt file), so that not all servers use UFB as default car (assigned to each new connection).

Then we have there the restrictions and time adjustments and I'm afraid that's completely wrong and it is my bad example, sorry! The correct definition should look like this:

Track=
Car=UFR
IntakeRestriction=45
AddedMass=0

Track=SO6
Car=UFB
TimeAdjustment=1830

Track=AS1
Car=UFB
TimeAdjustment=1370

Track=AS2
Car=UFB
TimeAdjustment=1900

Track=FE2
Car=UFB
TimeAdjustment=1280

First global UFR restriction is defined, so that everyone is forced to use UFB. Then it is sufficient to define time adjustments only, but for UFB and not UFR! And that's where I was wrong in the earlier example. So sorry...

Quote from michele0676 :I calculate the % for each ufb league track, it's strange that there are so many differences from track and track

Yes, there can be quite large differences, because UFB is much slower to accelerate than UFR, has lower max speed, but can take corners at the same speed as UFR. So, on short and twisty tracks, it can be about 10 percent slower, on longer tracks with straights the difference will raise to 20 percent. UFB is simply a different car.

You could settle for some average values, say 1500 (15 percent) or make it track specific, as you have it now. When you have some stats gathered, you can also define track/UFB-specific good/great times and such, but I would say that's possible only when using limited set of tracks.

Quote from JustForFunRacing :Updated at 6:00h this morning... lol

Thanks for info!

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