The online racing simulator
AIRIO - Advanced LFS Tracker
(2374 posts, started )
Quote from EliteAti :Is it possible to make "too fast lap = kick" system in this? Because in [RSTO] series i dont want bumpdrafting to be allowed in FBM,FOX and BF1 so someone can tell me how (if) i can set up "kick" if player goes under WR on the server (or too much under WR)?

Yes, it is possible. Airio can check all split/sector/lap times and compare them to current WR. You may specify how much better than WR can a driver be in all split/sector times. In case better than allowed time is seen, the driver is "kicked for security", bacause he's seen as using speed hack.

Time checking filter is by default turned off. So first step is to turn it back on on the server where you need to check times, that means in the appropriate SRV file (or the global one if it should run on all servers). As Bunder suggests, you do this by:

CheckTime=true

Then you should define in the same SRV file how much a split/sector time can be better than current WR. By default these values are used:

# Maximum (percentage * 100) allowed time comparing to WR - integer
# 10000 = security kick on every sector/split time better than WR.
# These settings may prevent using speed hacks, if they appear.
AllowedSectrTime=9800
AllowedSplitTime=9900

The values mean that any sector time (between splits) may not be better than 98 percent of WR. Also any split and lap time may not be better than 99 percent of WR. To set custom values you need to calculate required percentages.

Well, I hope this makes sense to you. Note that all the values may be updated "live" just by saving new configs and typing !rld admin command. But to ensure the new condition is applied to all cars you need to force them to join the race (leave pits) again. The !sa command may come handy for this, it spectates all drivers.

EDIT:

Quote from EliteAti :i need to "change" WR's in the wrs.txt log, hmm.. could you tell me which one of these is FBM,FOX,FO8 and BF1 WR in the wrs.txt?

Well, I hope after reading the above you don't need to change WR time table by hand...
Quote from EQ Worry :Yes, it is possible. Airio can check all split/sector/lap times and compare them to current WR. You may specify how much better than WR can a driver be in all split/sector times. In case better than allowed time is seen, the driver is "kicked for security", bacause he's seen as using speed hack.

Time checking filter is by default turned off. So first step is to turn it back on on the server where you need to check times, that means in the appropriate SRV file (or the global one if it should run on all servers). As Bunder suggests, you do this by:

CheckTime=true

Then you should define in the same SRV file how much a split/sector time can be better than current WR. By default these values are used:

# Maximum (percentage * 100) allowed time comparing to WR - integer
# 10000 = security kick on every sector/split time better than WR.
# These settings may prevent using speed hacks, if they appear.
AllowedSectrTime=9800
AllowedSplitTime=9900

The values mean that any sector time (between splits) may not be better than 98 percent of WR. Also any split and lap time may not be better than 99 percent of WR. To set custom values you need to calculate required percentages.

Well, I hope this makes sense to you. Note that all the values may be updated "live" just by saving new configs and typing !rld admin command. But to ensure the new condition is applied to all cars you need to force them to join the race (leave pits) again. The !sa command may come handy for this, it spectates all drivers.

EDIT:



Well, I hope after reading the above you don't need to change WR time table by hand...

Thanks man. I gotta check this out now again
Yop, its working 100% fine now


Note that these kicks for "impossible" time are counted and by default 5th auto-kick from server for any reason in one day is converted to short ban for "bad behavior"...
Question on user restrictions.
Questions:

1. Is there a way to have a list of authorized users based on LFS username? (only players registered for a champ can login)

2. Is there a way to restrict the user/car combo. For example Joe can only login using FXR.

Thanks for the help.
Quote from vicbel :1. Is there a way to have a list of authorized users based on LFS username? (only players registered for a champ can login)
2. Is there a way to restrict the user/car combo. For example Joe can only login using FXR.

Hm, no, currently neither of these options is available. I can imagine adding new config item into SRV file doing this both (or maybe better yet a link to some external text file containing the required data). Just like there are prohibited names there could be allowed names (optionally with car types) and a switch to turn on/off this filter.

In any case that would require new options and checks (neither of them complicated, to be sure), but also some work on the admin part, updating configs with usernames optionaly with car types
Quote from EQ Worry :Hm, no, currently neither of these options is available. I can imagine adding new config item into SRV file doing this both (or maybe better yet a link to some external text file containing the required data). Just like there are prohibited names there could be allowed names (optionally with car types) and a switch to turn on/off this filter.

In any case that would require new options and checks (neither of them complicated, to be sure), but also some work on the admin part, updating configs with usernames optionaly with car types

Great! I hope you can implement it, as you said it does not seem too complicated.
Other way could be done manually
Hi there,

I am having a problem with track rotations using custom cars.

I have the Baby-R defined as UFB|UFR,45,0 and it is recognised when I join with the restriction so seems to be working correctly.

I am trying to rotate tracks/cars using the UF1, UFR, and UFB but it does not enforce the restriction on the UFB.

RotateTracks=SO6|5|UFB > BL2R|5|UF1 > KY2R|5|UFR

Am I doing it wrong, or does the custom car type not work as I am expecting ?
looks right to me.
Quote from Bean0 :Hi there,

I am having a problem with track rotations using custom cars.

I have the Baby-R defined as UFB|UFR,45,0 and it is recognised when I join with the restriction so seems to be working correctly.

I am trying to rotate tracks/cars using the UF1, UFR, and UFB but it does not enforce the restriction on the UFB.

RotateTracks=SO6|5|UFB > BL2R|5|UF1 > KY2R|5|UFR

Am I doing it wrong, or does the custom car type not work as I am expecting ?

You should put SO6|5|UFB > BL2R|5|UF1 > KY2R|5|UFR without spaces
like this SO6|5|UFB>BL2R|5|UF1>KY2R|5|UFR and it should work...

and for restricted cars u must define ProhibitedCars ... On our server SHDTeam UF-BR we have defined UFB|UFR 45,0 and track rotation is not changed with ufr but since we give only UFR in server setup prohibited car is UFR and allowed is UFB. so other cars are not allowed
Quote from DuleXY :You should put SO6|5|UFB > BL2R|5|UF1 > KY2R|5|UFR without spaces
like this SO6|5|UFB>BL2R|5|UF1>KY2R|5|UFR and it should work...

and for restricted cars u must define ProhibitedCars ... On our server SHDTeam UF-BR we have defined UFB|UFR 45,0 and track rotation is not changed with ufr but since we give only UFR in server setup prohibited car is UFR and allowed is UFB. so other cars are not allowed

The rotation part works fine, track/laps/car type change on race end as expected.

The problem is the combos that use UFB...they change to allow only the UFR in the garage (this is correct), but joining in an unrestricted UFR is allowed.

I cannot prohibit the UFR as it is also used as one of the cars in the rotation of combos.

The only workaround that I can see at the moment is to set global restrictions to the UFR for only the tracks used by the UFB and not to use them for the UFR at all. Of course this interferes with our other servers connected to Airio, so I would need to turn off the checking for restrictions on all other servers, which again is not ideal.
I really like the features of AIRIO, and I'm wondering if it would work for a server we're working on.

We are looking to set up seasonal autocross competitions and have some specific needs.

1) Mostly locked setups for stock classes - only a few values can be modified
2) Limited passes on an autocross layout - "3 runs and done" - competitors cannot change name/car and race again after their 3 timed runs, but can spectate.
3) Auto points tracking based on class - Class could be in the driver name ... ASP-M.Williams maybe
4) Time based auto spectate drivers after each run - Maybe 5 seconds after they cross finish
5) Race join timer based on previous car's time on course - next car can join race 25 seconds after previous car starts. The standard autocross start timer can stay at 3-5 seconds.
6) Start queue with configurable timer - This would be spectacular!

If you could, let me know if this would be possible with AIRIO. I'm not familiar with the coding behind these apps, but we are working with someone who is. Thanks!
did the airio website go down? all i get is:

Quote :The service is unavailable.

It works for me
Quote from Bean0 :I am having a problem with track rotations using custom cars. ... I am trying to rotate tracks/cars using the UF1, UFR, and UFB but it does not enforce the restriction on the UFB. ... Am I doing it wrong, or does the custom car type not work as I am expecting ?

You are right, custom cars in rotation don't work as you'd like/expect to. As I note somewhere in changelog, custom cars are simply changed to standard cars for the LFS /cars command. Sooo, as it stands now you'd have no problem rotating tracks for a custom or standard car, but you'd experience exactly the troubles you describe when trying to rotate tracks and switch between custom/standard cars.

When I was addig custom cars support I wanted full custom cars support in rotation, achieved by changing prohibited cars string. But I'd run into certain difficulties so for the time being I decided to go the quick and dirty way. But seeing you (and sure others) need to switch the car types, I'll look at this feature once more.

Quote from bunder9999 :did the airio website go down?

Yes, it was temporarily out of service, but it is really a provider responsibility which I can do little about.

Quote from TouringBubble :1) Mostly locked setups for stock classes - only a few values can be modified
2) Limited passes on an autocross layout - "3 runs and done" - competitors cannot change name/car and race again after their 3 timed runs, but can spectate.
3) Auto points tracking based on class - Class could be in the driver name ... ASP-M.Williams maybe
4) Time based auto spectate drivers after each run - Maybe 5 seconds after they cross finish
5) Race join timer based on previous car's time on course - next car can join race 25 seconds after previous car starts. The standard autocross start timer can stay at 3-5 seconds.
6) Start queue with configurable timer - This would be spectacular!

Well, well, this is complicated. I try to develop Airio as a flexible racing system with features that may be required by many. What you need is high customization and some very specific features. I'll try to comment shortly on some of those:

1) Very hard or impossible to achieve. InSim does not report much about car setup, the only usable parameter there being symmetric wheels (and maybe TC/ABS). You can't read detailed settings, much less compare them to some default.

2) Could be done, joining or changing car/name would mean a kick.

3) You could create classes using custom cars. Such have their separate complete stats incl. scored points (on each track/layout).

4) Surely possible (but I don't see the reason?).

5) Something could be done, but it will make exact timing basically impossible to achieve. The only exact times are reported by your LFS instance to server and then from server to Airio. It is not possible to stop the time for someone and while certain solutions are usable (e.g. artifically reduce the reported split/lap times by start delay value), they may prove to be rather complicated and inexact.

6) I'm not sure what this is. I have a request already for (maybe) something similar, specifically delayed start (with countdown) allowing for some shuffling on start grid. But then point 5 applies.

Problem with some of the above needs is they are highly specific. I have barely enough time to add (and also correct) features that are required/used by many. Now I'm not sure now how to close my response in some positive fashion. I'd certainly like to support your needs, but they should be universal and flexible enough.
Thanks for the reply ... yes, I know that these needs are rather specific.

As far as the start queue ... I meant a way for multiple drivers to basically "get in line" to race. So, say 5 drivers want to start, they would be queued and they would pop on to the start once the previous driver is that 25-30 seconds in to their run. This feature would help with confusion at the start line and should also get rid of the "car-in-car" bug.

And, as far as the auto-spectate, that's because we only have 3 or 4 cars on course at a time. We don't want any trouble from people finishing and deciding to loop around to run again in the middle of someone else's run. Since their race is technically finished, doing this would not result in a wrong way kick.

Again, thanks for the responses and answers to my questions. This info will really help us with developing a server for our needs.
@ Bean0

I think I solved the troubles you mentioned (rotation with custom cars). Now the track/car changes not only convert custom cars into standard ones for the /cars command, but also manipulate automatically with prohibited cars string. So, if you use UFB in rotation string /cars=UFR would be sent but at the same time UFR will be a prohibited car and only UFB will be available. To have both, you need to specify UFR+UFB as new track cars. On the other hand if you specify just UFR, all custom cars derived from this one will be prohibited.

I believe this would be the expected behavior with custom cars acting as if they were real ones. All the above explained is also valid for the !/cars limad/admin command. I'm not particularly happy about manipulating with prohibited cars string, because it may lead to some confusion about current server state, but of course !rld may always be used to get back to default state according to config files.

It would be nice of you to download the latest 2.2.1 compile, just overwrite EXE and PDB files and test if everything acts as it is supposed to. Also in this compile I solved a thing about rotation that troubled me a bit, basically the hidden impossibility to use the same track twice in rotation. With current version this is no more the case, you may have the same track in rotation as many times as you wish.

@ TouringBubble

No InSim application can make cars to appear on grid (join race), that always requires (I think) driver's action. InSim may only e.g. spectate a driver that has joined the race out of order (which would have to be communicated by messages).
I jsut tested and the rotation is working as I roiginally expected, and as you have described above.

Thanks for the quick fix
Is it possible to choose what penalty to give for false starts? Did a quick search on it, but couldn't find any info.
Quote from arco :Is it possible to choose what penalty to give for false starts? Did a quick search on it, but couldn't find any info.

I'm afraid thats's not possible. Penalties for false start are given by LFS server (or game) itself. I believe it is drive-through for small jump, spectate for large one. It would be possible to change the small jump penalty to something else (from clearing it to spectating the driver), but the spectating for large jump is hard-coded and I don't think we can do anything about it.
Ah ok, I see. Thanks anyway for the reply.
Question on stats file format
This is just a question ...

Could the stats files be generated in a record-by-line basis, with the fields being comma or tab delimited?

I think this change inn format would facilitate the processing of the file(s) by third party apps.
Safety Racer Check Function
Hello.
Thank you for the race in Airio Dev yesterday. That was fun. :-)
Airio is a very good tool. I'm a fan of Airio.
Good design and good function, easy interface.

Now, when I join any race, I have always think same problem.
I want to be a fair race. But a few malicious Crasher destroy the race many time.
Many racer get feel bad.

[Problems]
- I don't know who hit me.(MAP of LFS have not the name of the racer)
- Only abandon the race and SPECTATE can determine who bumped me.
- We don't know who is danger or safety racer.

I was finding the tool to solve these problems.
That tool is Drive_LFSS.
http://www.lfsforum.net/showthread.php?t=48220

But that is not available now.
http://www.lfsforum.net/showthread.php?t=50232
We can't get Drive_LFSS.

However, this tool keep on use in Aleajecta FBM server.
We can see that function there.

[Very good point]
- When a racer join the course, displays safety percent and speed rank.
(Maybe count bad driving, hit other car...)

[QUESTION]
Can Airio go have functions like this?

Airio has already have many settiong for bad driving and bad chat.
Penalty for spec, kick, and ban.

But banned crasher creates new demo account and come again.
Join race and only when he will lost the race, he gets be a CRASHER.

If we can know new join racer's [safety percent] and [speed rank],
we can pay attention for him.
Quote from vicbel :Could the stats files be generated in a record-by-line basis, with the fields being comma or tab delimited? I think this change inn format would facilitate the processing of the file(s) by third party apps.

Aaaah, sorry, I missed this question. Well, surely it could be done, but I do not see what advantage it would bring. I feel line-separated stat files are just as good as tab-separated. Am I wrong?

Quote from jolzen :Now, when I join any race, I have always think same problem. I want to be a fair race. But a few malicious Crasher destroy the race many time. Many racer get feel bad.
...
[Very good point]
When a racer join the course, displays safety percent and speed rank. (Maybe count bad driving, hit other car...)
...
[QUESTION]
Can Airio go have functions like this?
...
If we can know new join racer's [safety percent] and [speed rank], we can pay attention for him.

Right, hi, I see what you mean. The main problem is coming up with a reliable detection of who caused the crash. InSim offers only limited set of data and currently I do not see an easy way to get good crasher detection.

Also obvious crashers are easy to discover. If someone crashes on purpose he will not stay long on any server with admins around (or, to a certain extent, on server with voting allowed).

But many, many crashes are caused by accidents - risky driving, game lags. Small touch between two cars may lead to awful results, cars flying, hitting other cars, everyone spinning, toppling.

Anyway, I've been asked earlier for some use of yellow flags caused and I'll try to implement some simple measurement using this indication soon. It will simply count yellow flags caused per finished lap and while it will never be perfect indicator (because you cause yellow flag also when you are crashed, not by your fault), once the value gets accumulated it could be reasonably usable.

Such a "safety rating" could be displayed when a new driver connects or something, it could also be used later to limit race joins or anything else. But my experience tells me that too many limits quickly lead to an empty server. On the other hand full server (demo or licensed) will always lead to crashes, even when there's no crasher around and all people have good lap times.

As for speed rank, you may at any time see best lap times of all connected people by typing !tm. In case youre interested in server-only times, use !tms. On the other hand !tmw will display only LFSW times. The best lap time may be optionally shown on each new connection (using LFSW option) and the FULL version also allows to assign licences to lap times so that you always know what driver level is joining. Get overview by typing !lice or just !lc.

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