strange but my 'DriftLapAction' doesn't work:
any help?
#####################################################################
#
# This is sample script for LFSLapper.
#
# Use non-formatting text editor such as notepad to modify script.
#####################################################################
# Lines beginning with '#' are comments and are ignored by program.
# Lines beginning with TAB are considered as part of last key line.
# If more keys with same name exist, value of last one in file will be used.
# That way it's possible to override commands. See at end of this file.
# In all text responses you can also use colors:
# ^0 - black
# ^1 - red
# ^2 - green
# ^3 - yellow
# ^4 - blue
# ^5 - violet
# ^6 - cyan
# ^7 - white
# ^8 - no color
# If using also unicode characters, save script as unicode text document.
# Global variables, that can be used in any action:
# {ShortTime} - Local time of server in short form
# {LongTime} - Local time of server in long form
# {ShortDate} - Local date of server in short form
# {LongDate} - Local date of server in long form
# {ShortTrackName} - Current track name in short form
# {LongTrackName} - Current track name in long form
#
# Symbol replacements:
# {colon} - symbol ':'
# {at} - symbol '@'
# {vbar} - symbol '|'
###################################
# General options
###################################
# Host IP. When more network interfaces are present, set it to IP of your host.
Host = 127.0.0.1
# Insim UDP port.
# Before starting LFSLapper you must configure LFS server to use this port for InSim.
# You can do that in command line when starting LFS (/insim=29999) or in talk window of LFS (/insim 29999).
Port = 29999
# Change Password to match Admin password on LFS server.
# Usually this is the only value that needs to be modified for this default script to work.
Password = 'not telling'
TrackInfoFile = trackInfo.cfg
TCPmode = true
# Identification for connect to PubStat : To obtain PubStatIdk go to www.lfsworld.net, select My LFSW Setting and select tab Pubstat Access
# The better way is obtain and idk, send login and pass on net it's not safe
#PubStatIdk =
# Message that is shown to players when they connect to server. Use '|' for new line.
# {Posqual} - Position on pre-qualification
# {Groupqual} - Group pre-qualification
# {Posabs} - Position on pre-qualification
# {SessLaps} - Number of laps on current car and track for session
# {TotalPitTime} - Total Time stop in pit place
# {Laps} - Number of Lap on current track and default Car
# {Car} - Default car, because at this time, Lapper don't know your car
# {ShortTrackName} - Current short Trackname
ConnectMsg =
^7Welcome to S1 Drift, powered by ^1LFSLapper! ^7dr(qual mode)|
^2Type ^7!help ^2after leaving garage to see commands.|
Total laps done on {Car}/{ShortTrackName} = {Laps}-^7This session = {SessLaps}|
^7Your actual friendly Position (all visitors) {colon} ^7{Posabs}|
^2Your actual League prequalify Position {colon} {Posqual}|
^6Estimate Pool {colon} {Groupqual}|
# Enable if you want to show control of players when leaving the garage.
ShowPlayerControl = true
# Private Message that are send on spb.
# Message on lower split : Message on upper split
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {CurSplit} - Relative Time to begin of split and end of split
# {BestSplit} - Relative Time on best Split
# {DiffSplit} - CurSplit - BestSplit
# {BestSpeed} - Best to begin of lap to this split
# {Tpb} - Théorical PB
# {Posqual} - Position on pre-qualification
# {Groupqual} - Group pre-qualification
# {Posabs} - Position on pre-qualification
# {SessLaps} - Number of laps on current car and track for session
# {TotalPitTime} - Total Time stop in pit place
# {Laps} - Number of laps on current car and car
# {Car} - Current car of Player
# Only for LastSplit ( End of Lap ) you can use
# {AvgSpeed} - Average Speed for this lap
# {typ} - = "Sess" if split PB of Session
# = "PB" if split PB of PB file
# {UnitSpeed} Unit of the Speed of the player connected
ShowSplitPB = true
PrivMessSpb1Up = {typ} ^7SP1{colon} {CurSplit} ^1({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpb1Low = {typ} ^7SP1{colon} {CurSplit} ^2({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpb2Up = {typ} ^7SP2{colon} {CurSplit} ^1({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpb2Low = {typ} ^7SP2{colon} {CurSplit} ^2({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpb3Up = {typ} ^7SP3{colon} {CurSplit} ^1({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpb3Low = {typ} ^7SP3{colon} {CurSplit} ^2({DiffSplit}) ^7=>TPB{colon}{Tpb}
PrivMessSpbLastUp = {typ} ^7SPL{colon} {CurSplit} ^1({DiffSplit}) ^7=>TPB{colon}{Tpb} Avg:{AvgSpeed} {UnitSpeed}
PrivMessSpbLastLow = {typ} ^7SPL{colon} {CurSplit} ^2({DiffSplit}) ^7=>TPB{colon}{Tpb} Avg:{AvgSpeed} {UnitSpeed}
# RefreshHandicapUser : allow Lapper to refresh HandicapUsers on each outgoing pits, Usefull if HandicapUsers is a file and this change frequently by extern program
# HandicapUser : is a list of racer and her handicap
# if you prefix with & , You can indicate a file name who contain list of racer, one racer per line ex : HandicapUsers = ./userfile.txt
# if you prefix with @, You can list username separated with , ex : HandicapUsers = @Gai-Luron,gwendoline,_-ALUCARD-_,lagamel
# You can specify the required Handicap of player in the username Mass and Intake restriction
# ex : Gai-Luron:100:10
# Indicate 100kg of mass handicap and 10% of intake restriction, this value are used in OnToLowHandicap
# In demo mode use nickname
#RefreshHandicapUser = true
#HandicapUsers = &./your_hand.flt
#HandicapUsers = @Gai-Luron:100:20,gwendoline:100:30,_-ALUCARD-_,lagamel:50:10,lister88,c-quad,shimanofr,bruno7529,boby5,kevinb,edgar,berlioz,la tortue,neron59,eur-can,stff,2psbob,oliv76000
# RefreshQualUser : allow Lapper to refresh QualUsers on each outgoing pits, Usefull if QualUsers is a file and this change frequently by extern program
# QualUser : is a list of racer who participe at qualification, required for function !nearqual !topqual and !statsqual
# if you prefix with & , You can indicate a file name who contain list of racer, one racer per line ex : QualUsers = ./userfile.txt
# if you prefix with @, You can list username separated with , ex : QualUsers = @Gai-Luron,gwendoline,_-ALUCARD-_,lagamel
# You can specify the required Handicap of player in the username Mass and Intake restriction
# ex : Gai-Luron:100:10
# Indicate 100kg of mass handicap and 10% of intake restriction, this value are used in OnToLowHandicap
# In demo mode use nickname
# You can specify the scheme of group of this qualification using a special username called DefGroup
# Defgroup Take 3 argument separated with ';'
# 1 - Is the number Max of Group for this qualification
# 2 - Is the number max of user per group
# 3 - Is the minimum of user in the last group, recalc previous group as possible if number is low
# If you ommit scheme of groups, the group of qualification do not appear
RefreshQualUser = true
#QualUsers = &./your_file.flt
QualUsers = @DefGroup:5;5;2,Gai-Luron,MataGyula,nesrulz,gwendoline,_-ALUCARD-_,lagamel,lister88,c-quad,shimanofr,bruno7529,boby5,kevinb,edgar,berlioz,la tortue,neron59,eur-can,stff,2psbob,oliv76000
# Action to do on race restarts.
# If more actions, separate them with '|'.
#RaceStartAction = /msg ^3Please, brake in time !
RaceStartAction = /rcm ^3Please, brake in time !|/rcm_all
# Default car to show, when no car is specified in !top or !drf command.
#DefaultTopCar = UF1
DefaultTopCar = XFG
#DefaultTopCar = XRG
#DefaultTopCar = XRT
#DefaultTopCar = RB4
#DefaultTopCar = FXO
#DefaultTopCar = LX4
#DefaultTopCar = LX6
#DefaultTopCar = RAC
#DefaultTopCar = FZ5
#DefaultTopCar = MRT
#DefaultTopCar = XFR
#DefaultTopCar = UFR
#DefaultTopCar = FOX
#DefaultTopCar = FO8
#DefaultTopCar = FXR
#DefaultTopCar = XRR
#DefaultTopCar = FZR
#DefaultTopCar = BF1
# How much time will big text messages last (text that is started by rcm_all command).
# In milliseconds.
MessageTime = 5000
# Whether to use usernames instead of nicknames for authentication of users executing AutoAction.
UseUsernameForAuthentication = true
# Actions that are executed on received messages. Use '|' for next pattern/action pair and to separate pattern from action.
# If more actions or patterns, separate them with ':'.
# Use @ sign at end of patterns, if you wish to specify users, that are allowed to execute action.
# Use & sign at end of patterns, if you wish to specify a file containing users, that are allowed to execute action. users separate by \n
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {*} Rest off command line
AutoAction =
hoho|/msg ^3What's so funny, {Nickname}?|
unnamed|/msg no name no game:/kick unnamed|
!test|/rcm {Nickname} is testing...:/rcm_ply {Nickname}|
!ban@Gai-Luron|/ban {*}|
!kick@Gai-Luron|/kick {*}
# Actions that are executed on schedule. Use '|' for next schedule/action pair and to separate schedule from action.
# If more schedules or actions, separate them with ':'.
# To escape ':' type '\:' if you want ':' in your message.
#
# ssmmhhddMMYYYY
#ScheduledAction = 0 * * * * * : 30 * * * * *|/msg Kicking time (every 30 seconds)!:/kick unnamed
ScheduledAction =
0 0 0 * * * |/rcm Midnight warning to all working men!:/rcm_all|
0 0 0 1 1 * |/rcm Happy New Year!:/rcm_all
# Private multiline messages to send to player. Use '|' for next pattern/message pair and to separate pattern from message. Use ':' for new line.
# Possible variables to use:
# {UserName} - Username of driver that sent message
# {Nickname} - Nickname of driver that sent message
# {Laps} - Number of laps on current car and track
# {SessLaps} - Number of laps on current car and track for session
# {TotalPitTime} - Total Time stop in pit place
# {Car} - Car of current player or default car if in spectate mode
# {ShortTrackName} - Current short Trackname
# {TotalPitTime} - Total time of pitting
# {*} = Rest of command line ( argument )
AutoMsgPrivate =
!ver|/ver|
!cleanspb:!razspb|/cleanspb|
!spb|/spb|
!hand|/hand {*}|
!statsqual|/statsqual {*}|
!dstats|/dstats {*}|
!stats|/stats {*}|
!nearqual|/nearqual {*}|
!near|/near {*}|
!topqual|/topqual {*}|
!top|/top {*}|
!drf|/drf {*}|
!laps|Laps done on {Car}/{ShortTrackName} = {Laps}, session = {SessLaps}|
!pit|Time in pitting {TotalPitTime}|
!track|Track in use {colon} {ShortTrackName} = {LongTrackName}|
!time|Server time clock reference {colon} {LongTime}|
!help|
^2Commands list:
^3!top ^8[table offset] [3-letter car name] ["filter" pattern]:
^3!drf ^8[table offset] [3-letter car name] ["filter" pattern]:
^3!stats ^8[playername pattern]:
^3!dstats ^8[playername pattern]:
^3!near ^8Gap with 14 pilots near you on rank:
^3!spb ^8Split times and TPB (Theorical PB):
^3!razspb ^8Restart new spb session (eg when changing car):
^3!track ^8Name of actual track:
^3!time ^8Server time (to leagues mettings):
^3!ver Version of LFSLapper:
^2Special leagues commands:
^3!topqual ^8Rank to pilots specified on *.flt file:
^3!statsqual ^8Actual Position on prequalify session:
^2New functions:
^3!laps ^8Total laps number + session laps number:
^3!hand ^8Handicap by pilot ordered by league-host admin:
^3!pit ^8Total pit stop time:
^3Shft+i ^8Configure your display messages
# Actions to execute when player teleports to pits by options or SHIFT+S.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
#EnterPitAction = /msg {Nickname}^8 teleported to pits !
# Actions to execute when player spectates or disconnects (leaves race).
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
#LeaveRaceAction = /msg {Nickname}^8 leaves race !
###################################
# Pitting penalties
###################################
# Actions to execute when player gets drive-through penalty.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
DriveThroughPenaltyAction = /msg {Nickname}^1 Dont try this at home|/rcm ^1WARNING-KICK POSSIBLE|/rcm_ply {Username}|/spectate {Username}
# Maximum Drive-Through penalties to tolerate.
MaxDriveThroughPenalties = 1
# Actions to execute when player gets stop-go penalty.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
StopGoPenaltyAction = /msg {Nickname}^1 kicked to fast drive on pit|/rcm ^1WARNING-BAN POSSIBLE|/rcm_ply {Username}|/kick {Username}
# Maximum Stop-Go penalties to tolerate.
MaxStopGoPenalties = 0
# Actions to execute when player gets 30 seconds penalty.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
Time30PenaltyAction = /msg {Nickname}^1 kicked to fast drive on pit|/rcm ^1WARNING-BAN POSSIBLE|/rcm_ply {Username}|/kick {Username}
# Actions to execute when player gets 45 seconds penalty.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
Time45PenaltyAction = /msg {Nickname}^1 kicked to fast drive on pit|/rcm ^1WARNING-BAN POSSIBLE|/rcm_ply {Username}|/kick {Username}
###################################
# FTP transfer
###################################
# Results files can also be transferred to FTP server.
# Define following parameters to use this feature.
#FtpServer = your ftp server
#FtpLogin = your login
#FtpPasswd = your password
#FtpRemotePath = your remote dir
####################################
# Flooding options
####################################
# Actions to execute, when player writes many lines within defined amount of time.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
FloodAction = /msg {Nickname}^3 kicked to flood|/kick {Username}
# Maximum number of consecutive lines allowed.
MaxFloodLines = 4
# Maximum time between two consecutive lines in milliseconds to count as flooding.
MaxFloodLinesTime = 5000
####################################
# Spinning detection options
####################################
# Minimum angle velocity to trigger action. Possible values: 0 - 720.
MinAngleVelocity = 250
# Action to execute when angle velocity is higher than MinAngleVelocity.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {AngleVelocity} - Angle velocity in degrees
#AngleVelocityAction = /spectate {Nickname}|/msg {Nickname} ^3 removed from track for wrecking
AngleVelocityAction = /msg ^1Danger! ^8{Nickname} ^2lost control!
#MaxNbInStunt is max time (in 100 ms) allowed in stunt mode before MaxNbInStuntAction is executed. If -1 No MaxNbInStuntAction are activated.
MaxNbInStunt = 20
MaxNbInStuntAction = /spectate {Nickname}
####################################
# handicap action
####################################
# Actions to execute, when handicap of player is less than specified in qualusers infos.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {H_Mass} - User mass required
# {H_TRes} - User Intake restriction required
OnToLowHandicap =
/spectate {Nickname}|
/msg {Nickname}^3 spectated for to low handicap|
/msg ^3need {H_Mass}kg and {H_TRes}% of intake restriction!
####################################
# Idling options
####################################
# Actions to execute, when speed of player is zero for defined amount of time.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
OnIdleAction1 = /msg {Nickname}^3 is idle ! Spectate in 10 seconds
OnIdleAction2 =
/spectate {Nickname}|
/msg {Nickname}^3 spectated for non-activity! track cleared
# Idle timeout for OnIdleAction1 in seconds.
OnIdleTimeout1 = 20
# Idle timeout for OnIdleAction2 in seconds.
OnIdleTimeout2 = 30
####################################
# Drifting options
####################################
# Actions to do on new personal best drift lap.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {DriftScore} - Drift score
# {Car} - Car used
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of Lap on current track and Car
# {TotalPitTime} - Total Time stop in pit place
#DriftPBAction = /rcm {Nickname}^3 made new PB: ^7{DriftScore} ^3pts!|/rcm_all
DriftPBAction = /msg {Nickname}^3 made new PB: ^7{DriftScore} ^3pts!
# This is filepath of file containing collected data.
# Will be created if it doesnt exist yet.
# You must ensure read/write access to this path.
DriftDatabase = ./DriftPB.txt
# Actions to do to when total lap drift score is higher or equal to MinimumDriftScore.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {DriftScore} - Drift score
# {Car} - Car used
# {SessLaps} - Number of laps on current car and track for session
# {TotalPitTime} - Total Time stop in pit place
# {Laps} - Number of Lap on current track and Car
DriftLapAction = /msg {Nickname} ^3drifted to ^7{DriftScore} ^3pts
# Private message to get on end of each drift.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {DriftScore} - Total drift score
# {LastDriftScore} - Last drift score
# {Car} - Car used
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of Lap on current track and Car
# {TotalPitTime} - Total Time stop in pit place
PrivateMessageOnDriftScore = Score: ^7{DriftScore} ^3+{LastDriftScore}
# Action to execute on good drift score.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {LastDriftScore} - Last drift score
# {Car} - Car used
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of Lap on current track and Car
# {TotalPitTime} - Total Time stop in pit place
GoodDriftScore = 3000
GoodDriftAction = /msg {Nickname} ^3made excellent drift: ^7{LastDriftScore} ^3pts
# Minimum drift score required.
MinimumDriftScore = 1000
# Actions to do at end of lap if MinimumDriftScore is not achieved.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {DriftScore} - Drift score
# {Car} - Car used
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of Lap on current track and Car
# {TotalPitTime} - Total Time stop in pit place
DriftTooLowAction = /msg {Nickname}^3 scored too low ({DriftScore} pts)|/spectate {Nickname}
#DriftTooLowAction = /msg {Nickname}^3 scored too low ({DriftScore} pts)
# Minimum speed in km/h to maintain. Driving below that speed will reset score.
MinimumDriftSpeed = 25
MinimumDriftAngle = 15
MaximumDriftAngle = 100
####################################
# Hotlapping options
####################################
# This is filepath of file containing collected data.
# Will be created if it doesnt exist yet.
# You must ensure read/write access to this path.
Database = ./PB.txt
# Action to do on new personal best lap.
# PBQualAction for the racer who make qualif ( in QualUser )
# PBAction the other racer
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {LapTime} - Lap time achieved
# {Car} - Car used
# {Posqual} - Position on pre-qualification
# {Groupqual} - Group pre-qualification
# {Posabs} - Position on pre-qualification
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of Lap on current track and Car
# {TotalPitTime} - Total Time stop in pit place
# {AvgSpeed} - Average Speed for this lap
# {UnitSpeed} Unit of the Speed of the player connected
#PBAction = /msg New PB by {Nickname}^8 ({Car}): {LapTime}
PBAction = /msg New PB by {Nickname}^8 ({Car}): {LapTime}|/msg Friendly rank {colon} {Posabs}|/msg Session laps done = {SessLaps}|/msg Total laps done (server) = {Laps}|/msg Average speed {colon} {AvgSpeed} {UnitSpeed}|/rcm Friendly {Car}rank {colon} ^7{Posabs}|/rcm_ply {Username}
PBQualAction = /msg League - New QT by {Nickname}^8 {colon} {LapTime}|/msg Friendly rank (all visitors) {colon} ^7{Posabs}|/msg ^2Qualify pos. {colon} {Posqual}|/msg ^6Actual Pool {colon} {Groupqual}|/msg Average speed {colon} {AvgSpeed} {UnitSpeed}|/rcm {Nickname} ^2Pos:{Posqual}-Pool:{Groupqual}|/rcm_All
####################################
# Acceleration options
####################################
# At which speed to start and stop measuring time. In km/h.
AccelerationStartSpeed = 1
AccelerationEndSpeed = 100
AccelerationStartSpeedMph = 1
AccelerationEndSpeedMph = 60
# Maximum acceleration time in seconds to show private message.
AccelerationPrivateMaxTime = 10
# Message to show to players.
# Possible variables to use:
# {AccelerationStartSpeed} - Starting speed
# {AccelerationEndSpeed} - Ending speed
# {AccelerationTime} - Acceleration time achieved from start to end speed
# {UnitSpeed} Unit of the Speed of the player connected
AccelerationPrivateMessage = ^3{AccelerationTime}^8 seconds to {AccelerationEndSpeed} {UnitSpeed} !
####################################
# Pitting
####################################
# Private Message that are send on pitting ( begin and end ).
# Message on lower split : Message on upper split
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {Tpb} - Théorical PB
# {Posqual} - Position on pre-qualification
# {Groupqual} - Group pre-qualification
# {Posabs} - Position on pre-qualification
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of laps on current car and car
# {Car} - Current car of Player
# {PitTime} - Time stop in pit place ( only for EndPitPrivMess )
# {TotalPitTime} - Total Time stop in pit place
# {Work} - Work on pit ( only for BeginPitPrivMess )
BeginPitPrivMess = Pit begin! Work : {Work}
EndPitPrivMess = Pit finished in {PitTime} - Total Pit : {TotalPitTime}!
# Action to do on pitting ( begin and end ).
# Message on lower split : Message on upper split
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {Tpb} - Théorical PB
# {Posqual} - Position on pre-qualification
# {Groupqual} - Group pre-qualification
# {Posabs} - Position on pre-qualification
# {SessLaps} - Number of laps on current car and track for session
# {Laps} - Number of laps on current car and car
# {Car} - Current car of Player
# {PitTime} - Time stop in pit place ( only for OnEndPit )
# {TotalPitTime} - Total Time stop in pit place
# {Work} - Work on pit ( only for OnBeginPit )
OnBeginPit = /msg {Nickname}^8 go to pit
OnEndPit = /msg {Nickname}^8 quit pit in {PitTime}
####################################
# Overriding options
####################################