[errors] error = "Error" no_tocfile = "A tocdata-file is expected but not found!" no_valid_teams = "No valid teams are defined in tocfile!" file_not_open = "Couldn't open file." invalid_replay = "The replay is invalid (too small)." invalid_replay_2 = "The replay is invalid (no LfS-mpr)." replay_started = "Replay doesn't start at beginning of session. Please use a complete replay!" unsupported_version = "This replay-version is currently not supported!" unknown_init_package = "Unknown initial package!" no_playerteam = "Player is not defined in teamlist/tocdata!" takeover_detected = "takeover detected. Provide tocdata!!" takeover_noteam_1 = "empty team 47/1" takeover_noteam_2 = "empty team 47/2" no_teams = "There are NO teams present! Maybe a local replay with AI?!" aifound = "An AI driver was found to join the race. This is currently not supported!" noreplay = "No replay loaded!" repnodatastart = "ERROR! race start not found!" novalidteams = "No valid teams in tocdata!" [headings] choosetype = "Leagues or single events - Choose a type." chooseleague = "So, which league do you want to see?" choosesingle = "Choose an event." chooseleagueseason = "Pick a season." choosesingleseason = "Choose an edition." choosesession = "Choose a session." [general] title = "mpRes - LfS Replay Stats" sort = "Sort:" of = "of" name = "Name" start = "Start" finish = "Finish" time = "Time" total = "Total" totaltime = "Total Time" gap = "Gap [s]" training = "Training" car = "Car" lap = "Lap" laps = "Laps" hour = "Hour" hours = "Hours" minute = "Minute" minutes = "Minutes" DNF = "DNF" DQ = "DQ" minpart = "Positioned due to absolved minimum race part." nowind = "No Wind" lowwind = "Low" strongwind = "Strong" LH = "Left Hand Drive" AU = "Auto Gearing" SH = "H-shifter" BH = "Braking Help" AC = "Auto Clutch" CV = "Custom View" ST = "Steering" noevents = "Nothing here yet :(" noleagues = "Currently no leagues available." nosingles = "Currently no single events available." league = "League" leagues = "Leagues" single = "Single Event" singles = "Single Events" eventsummary = "Currently %1$d %2$s and %3$d %4$s are available." newer = "Newer" older = "Older" current = "Current" nothingtodisplay = "No replays found to show you." unknown = "Unknown" sgrid = "Starting Grid" qtime = "Qualification Time" fulllink = "Replay and Full Stats" [weather] dawn = "Dawn" sunrise = "Sunrise" morning = "Morning" day = "Day" afternoon = "Afternoon" sunset = "Sunset" dusk = "Dusk" night = "Night" clear = "Clear" cloudy = "Cloudy" overcast = "Overcast" [blg] h1 = "Lap by Lap Chart (click to enlarge)" alt = "Lap by Lap Chart" [plg] alt = "Player Graph" [rpg] h1 = "Race Progress Chart (click to enlarge)" alt = "Race Progress Chart" [erg] h1 = "Race Result" pos = "Pos." start = "(Start)" stops = "Stops" openpens = "Open Penalties" bestlap = "Best Lap" leadlaps = "Leading Laps" tfoot = "%1$d of %2$d cars finished the race." [ergqual] h1 = "Qualifying result" tfoot = "Still no text here ..." [lbl] h1 = "Lap by Lap Analysis" pitstop = "Pitstop" exit = "Retired" TOC = "Takeover" penalty = "Penalty Lap" rejoin = "Rejoin" [menu] h1 = "Choose a race" menu = "Race Select" season = "Season" day = "Round" grid = "Grid" sessq = "Qualifying" sesss = "Sprint" sessr = "Race" lfsver = "Version" racetime = "Time" distance = "Distance" daytime = "Daytime" weather = "Weather" wind = "Wind" trackname = "Track" stattables = "Statistics Tables" result = "Result" stops = "Stops" stability = "Stability" sectors = "Best Times" flags = "Flags" pens = "Penalties" laptimes = "Lap Times" posgraph = "Lap Chart" racegraph = "Progress Chart" all = "All" [flg] h1 = "Flags" yellow = "Yellows Caused" blue = "Blues Seen" tfoot = "%1$d cars caused %2$d yellow and %3$d cars got %4$d blue flags." [pen] h1 = "Penalties" description = "Description" tfoot = "%1$d cars got a total of %2$d penalties." [pit] h1 = "Pitstops" work = "Work" time = "Time [s]" body_minor = "Minor Damage" body_major = "Major Damage" fuel = "Fuel" tyres = "Tyres (f,r)" total = "Total" tfoot = "%1$d cars made %2$d pitstops with a total time of %3$s" [sta] h1 = "Average Lap and Stability" avglap = "Average Lap" avgspeed = "Veloc." stability = "Stability" gap = "Difference [s]" tfoot = "First lap isn't considered for std. deviation." [sec] h1 = "Sector Times" time = "Time" gap = "Gap [s]" bestsec = "Best Sector" bestlap = "Best Lap" bestpossiblelap = "Best Possibe Lap" combinedbestlap = "Combined Best Lap" [graph] title = "mpRes - Race Graphs" E = "R" exit = "Retired" Pen = "P" penalty = "Penalty Laps" P = "P" pitstop = "Pitstop" T = "T" toc = "Takeover" D = "E" damage = "Engine Damage" W = "T" wheel = "Tyre Broken" rejoin = "Rejoin" lapped = "Lapped" yellow = "Caused Yellow Flag" blue = "Saw Blue Flag" graphselect = "Chart Selection" playergraph = "Lapchart - Driver" maxshowngap = "Max. Gap Shown" submit = "Send" 1ormore = "1 or more" 2ormore = "2 or more" player = "Driver" noplayer = "Driver doesn't exist!" nolaps = "Driver didn't complete a lap!" [pens] DT = "DT" SG = "SG" 30s = "30s" 45s = "45s" cleared = "Cleared" admin = "(Admin)" wrongway = "(Wrong Way)" falsestart = "(False Start)" speeding = "(Speeding)" shortSG = "(Incorr. SG)" latepit = "(Late Pitstop)" [credits] credits ="

About this script - the basics

mpRes is a php-script, designed to analyze multiplayer replays gathered from the racing simulation Live for Speed and to produce statistics out of them. A great deal of the data thereby produced is long known to the community as the InSim-tool Live for Stats written by Gai-Luron offers similar features and is widely used to display race statistics. The features offered by mpRes are thus inspired by that tool.

A second basis for this script was the work done by MikeB during the development of his tool mprEdit. Thanks to MikeB - who published his results - we gained a little understanding to the inner structure of LfS multiplayer replays apart from the documented replay headers. I was able to hook on here and to discover one or two interesting things.

The idea - acknowledgements

Arrived at that point emerged the idea to create statistics directly out of a replay. This was mainly due to two reasons:

Especially the first point was a result of my teammate Jogy's experience with the CityLiga. At this point I'd like to really thank him first of all for his eternal patience and also for his enthusiasm towards this project. He never lost both of them, although I kind of buried him in thoughts and problems from time to time and although my own motivation to finish this project went exponentially towards 0 at some point in time which is reflected in the long development period that now lasts around 2 years. Also I'd like to thank the whole CityLiga, who agreed - inmidst a running season - to use the first edition of this script and thus be my personal β-testers.

The target audience

This script is designed especially for leagues that want to or must display whole seasons of results and for organizers of big single events, particularly those where takeovers are included and/or rejoining the race (possibly maintaining already done laps) is allowed.

As this script uses some predefined (via config-file) values that determine the outcome of it, I explicitly do not recommend parsing through random replays. For this purpose the abovementioned tool Live for Stats surely is the better choice.

Differences to ingame results

Out of various reasons the results gained by using this script can - and are to some extent meant to - differ from those obtained from LfS itself. These differences are mainly as follows:

"