Recent posts

VSP Download / Re: vsp stats processor v1.0.5...
Last post by Krillin - February 29, 2024, 04:53:38 AM
QuoteName: vsp-core_v1.0.51.7z
Size: 1308660 bytes (1277 KiB)
CRC32: EB105392
SHA256: ea755e9ad35f3e18050543df56f2486ee4b4a65e13b4ccf5874b73d2f1bfb201
SHA1: dfde24b287d550284533336a5d10dbaf2d2cabc3
BLAKE2sp: 7c02294be27f3ccb718fca55f8a25b6e7367bca64843c5a43270b949ead1698f
XXH64: 9651775860855214

QuoteName: vsp-core_v1.0.51.rar
Size: 2381100 bytes (2325 KiB)
CRC32: 93D0AD5D
CRC64: 044E53E10E463C83
SHA256: 16fd8ccc14672e633a0d4aa7664b14c0c6c80e7d72bd937164e26c6abe8c3b0a
SHA1: 5dcca69000a48f3a80f25da0316938fd2b17432e
BLAKE2sp: b487442c0357f02ab7074cc2d4e7fa3447b653bc98927bdf27bb363e6d906ebc
XXH64: B2BA44623564D9E6

Size: 2605928 bytes (2544 KiB)
CRC32: EF54EB00
CRC64: DFBD988570896063
SHA256: 05d13a4e4b41d5893d3990d97add0314604b1287ecf988f03d388823696a1bb3
SHA1: 500ede29ac57656597ca41cf2794832c0ec6922c
BLAKE2sp: 3b69b6d8bdce4e1921f56265c8830031fb76f7c35d420fbde00e80cc4e3999eb
XXH64: 0EE24C3702B6EBA2

If the checksums differ then from above, there is a good chance the file is corrupted or has been modified. Discard the file, try again, or e-mail Krillin about the issue.
VSP Download / Re: Media Files (UPDATED 8/4/2...
Last post by Krillin - February 28, 2024, 10:54:32 PM
The second media file left is the media files for Q3A (Quake 3 / Arena). Now this will be a reminder of all that remains. This contains all the QUAKE 3 / QUAKE 3 ARENA / EXCESSIVE / PLUS mapset and weapons.
VSP Download / Media Files (UPDATED 8/4/2023)
Last post by Krillin - August 04, 2023, 11:47:01 PM
For over a decade there has been a requests for collecting the original media files for VSP as ours have gotten corrupted over decades of SMF updates. We kept them posted as a reminder and that reminder went UNANSWERED. So last month (July 2023) they were taken down. The only media file left is the media files for HalfLife (HL). Now this will be a reminder of all that remains now.
Downloads / Widescreen 16:10 Menus Offset ...
Last post by Krillin - July 02, 2021, 08:59:01 AM
This WAS posted at steam community SEVERAL times, and several times it has been taken down. Due to file corruption from my hosting company. I am looking for a new one at this point!

Being as the Engineers / Developers are no longer doing anything to CS 1.6 or CZ these days. We had to come up with a solution for our Screen Interface for our games with a 16:10 RATIO. I am happy to say we did, and did so successfully.

Attached to this post below,, are all the files needed to fix the offsets MOTD + Menus for players with Widescreen 16:10 aspect ratio monitors.

If by some chance these files don't work for you, just delete them and they will go back to square one. (Use with caution with the new HD update in March of 2013, deleting these files can leave your interface blank.)

Place the contents of the /resource folder contained in the .zip file attachment into your "../../counter-strike/cstrike" or "../../condition-zero/czero" installation folder(s). Overwrite the existing files when needed, or make a backup copy of the originals.

You use these files at your own risk. But we assure you there isn't any risk at all. These files are modified from the counter-strike.gcf files delivered to you from steam. Only modified the specific Numeric Values to place the required items on our screens properly. Nothing is inserted into these files or contain anything extra.

Hope you enjoy the 2 days of dabbling around and 14 months of bullshit and runaround from STEAM's NON-TECH SUPPORT and LAME-O DBA's who conveniently lost my account between January and April of 2008 when we hadn't heard any progress of our findings! That is because steam conveniently deleted ALL support tickets on my and many others accounts.

Added screenshots of the layout for the Before MOTD/Select Team And After MOTD/Select Team.


Reason for Edit: Fixed the download, made it easier for players to unzip, cut & paste and go. The no hassle method. Added more info and link to steam forums, tested on Condition-Zero and past. Minor grammar and flow corrections. Updated Links seeing as forum entries were DELETE/REMOVED (first one above). Re-posted in two forums this time around.

Our Apologies for those who are looking for this fix, we did not know the files were missing. This is now been resolved. 7/2/2021
Help / Re: php is changing 7.2 gives ...
Last post by Krillin - March 03, 2021, 10:54:53 PM
So I thought this was a simple fix, but it was the wrong fix. This has been fully addressed properly according to PHP 7 documentation regarding this issue. Though Class and Function still cannot have the same names, there is a right fix for this and it has been implemented in V.S.P. v0.50 properly along with a lot of other fixes.

Help / Re: [HELP] PHP Warning: Illega...
Last post by Krillin - February 22, 2021, 12:17:22 PM
A second reply gave us a clue as to what was needed to in order to get the "savestate" function working once again. I believe this has broken since PHP 7 came out, we just never knew it.

At a user named "kicken" came back and said that the line where the issue was happening #979, needed to be replaced with;

Well, I tired that. Nothing changed, except the error message went away. In verifying the /logdata/ folder, nothing was being created in it telling me this was not the fix. So I replaced the line #957 with the above. No change there either. I tired a few more other things, just taking some guesses and nothing seemed to work the way it needed to.

So, I stared at the screen for a few and thought to myself. Yes, it needs they array. So I added the given line above the problem line #979. Saved it, copied the saved file to the production server. Ran the file, and to my surprise, you see the information about Hash file not found. Two lines I have not seen in a very long time. The savestate function is working once again!

One user did warn that this may cause other issues. And he was right. Because this statement is only stated in the "parser-options" section, if SAVESTATE 1 is NOT ran, the error message appears with the 'trackID' now.

Thanks the two users are thanked for their assistance in the _Docs/ChangeLog.html file. (One of the changes coming to vsp-core_v0.50).

Best Regards,
Help / Re: [HELP] PHP Warning: Illega...
Last post by Krillin - February 21, 2021, 10:02:57 AM
Was given a first attempt to fix this, but the solution was to change a line to code that is already posted on line #957 of vsp.php.


Back to waiting for another response, even though the function was posted with the line in there.

Help / Re: [HELP] PHP Warning: Illega...
Last post by Krillin - February 20, 2021, 08:08:59 AM
I reached out to the wonderful people at for assistance. I will post back here for the record.
Help / PHP Warning: Illegal string of...
Last post by Krillin - February 19, 2021, 11:19:27 AM
First off, I am NOT a programmer, but I have no problem diving into anything when it comes to web code. But for a few weeks I have been tracking down a few unknown issues and I do not know where to get help except here.

I have researched the "PHP Illegal String Offset" and thought the offset was caused by an array set as an string. But the string is not set in the array for the savestate (see below). I have not started tracking down the 'trackID' issue yet. Savestate is really important function as it prevents log files from being run for player stats a second time. Saving the savestate in a database is a very dumb idea for those who have log files for every map change like in HL1 - CS or CZ or HL2 CS:S and CSGO game mods like we do. I am stuck and cannot find or figure out a solution for these issues.

Here are the problems I am trying to solve to get the new version out. There are two warnings issued with VSP 0.50 and PHP v7.3.27, this could also bring VSP into PHP 8.0.2 (I hope). I will test PHP 8 after this is solved first.

Quote from: VSP.PHP CLIPHP Warning:  Illegal string offset 'savestate' in vsp.php on line 979
here is line 979.

Here is the function this traces to:
function F92261ca6()
    global $V51d3ee44;
    if (cIS_SHELL) {
        if (!isset($_SERVER['argc'])) {
            echo "Error: args not registered.\n";
            echo " register_argc_argv may need to be set to On in shell mode\n";
            echo " Please edit your php.ini and set variable register_argc_argv to On\n";
    } else {
        if (get_magic_quotes_gpc()) {
        $V51d3ee44=F126ba7b1("vsp.php ".$V4f96c5a0);
    global $V0f14082c;
    if ($V51d3ee44['argc']>1) {
        for ($V865c0c0b=1;$V865c0c0b<$V51d3ee44['argc']-1;$V865c0c0b++) {
            if (strcmp($V51d3ee44['argv'][$V865c0c0b], "-a")==0) {
                if ($V0f14082c['action']!='clear_db') {
                    Facf3bf61("error: invalid action");
            if (strcmp($V51d3ee44['argv'][$V865c0c0b], "-n")==0) {
            if ($V865c0c0b+1 > $V51d3ee44['argc']-2) {
                Facf3bf61("error: no value specified for option ".$V51d3ee44['argv'][$V865c0c0b]);
            if (strcmp($V51d3ee44['argv'][$V865c0c0b], "-p")==0) {
                for ($V363b122c=$V865c0c0b;$V363b122c<$V51d3ee44['argc']-1;$V363b122c=$V363b122c+2) {
                    $V0f14082c['parser-options'][$V51d3ee44['argv'][$V363b122c]]=$V51d3ee44['argv'][$V363b122c+1]; //This is link 979
            } elseif (strcmp($V51d3ee44['argv'][$V865c0c0b], "-c")==0) {
            } elseif (strcmp($V51d3ee44['argv'][$V865c0c0b], "-l")==0) {
                if (preg_match("/(.*)-(.*)/", $V0f14082c['log-gamecode'], $Vb74df323)) {
            } else {
                Facf3bf61("error: invalid option ".$V51d3ee44['argv'][$V865c0c0b]);
    } else {
        Facf3bf61("error: logfile not specified");
    if (!isset($V0f14082c['action'])) {
        if (!isset($V0f14082c['logfile'])) {
            Facf3bf61("error: logFile not specified");
        if (!isset($V0f14082c['log-gamecode'])) {
            Facf3bf61("error: logType not specified");
    if (!isset($V0f14082c['config']) || preg_match("/\\.\\./", $V0f14082c['config']) || !is_file($V55d5b418.$V0f14082c['config'])) {
    } else {
    echo "max_execution_time is ".ini_get("max_execution_time")."\n\n";
    echo "[command-line options]: ";
    if (isset($V0f14082c['parser-options']['savestate']) && $V0f14082c['parser-options']['savestate']) {
        $Vb3521e13="writetest_".md5(uniqid(rand(), true));
        $V2880b5ba = fopen('./logdata/'.$Vb3521e13, "wb");
        if (!$V2880b5ba || !fwrite($V2880b5ba, "* WRITE TEST *\n")) {
            echo "Error: savestate 1 processing requires logdata/ directory to be writable.\n";
            echo " Enable write permissions for logdata/ directory (chmod 777)\n";

I did a var_dump in the variable used in $V0f14082c and the savestate option is NOT in the array (and I am thinking it should be), the savestate option is in the variable $V51d3ee44[5]. The fact the savestate variable is NOT in $V0f14082c array has me concerned as this is supposed to be passed from parserOptions from the CLI, and the array prints out as "savestate => 0" when "savestate 1" was passed to vsp and I DO NOT know how to get the option in $V0f14082c.

array(6) {
  'parser-options' =>
  string(1) "g"
  'prompt' =>
  'log-gamecode' =>
  string(2) "hl"
  'log-gametype' =>
  string(0) ""
  'logfile' =>
  string(6) "./logs"
  'config' =>
  string(27) "pub/configs/cfg-default.php"

array(2) {
  'argv' =>
  array(7) {
    [0] =>
    string(7) "vsp.php"
    [1] =>
    string(2) "-l"
    [2] =>
    string(2) "hl"
    [3] =>
    string(2) "-p"
    [4] =>
    string(9) "savestate"
    [5] =>
    string(1) "1"
    [6] =>
    string(6) "./logs"
  'argc' =>



Quote from: VSP.PHP CLIPHP Warning:  Illegal string offset 'trackID' in vsp.php on line 1038
here is line 1038


Here is the function this traces back to:
function F68c076b3()
    global $V0f14082c;
    global $V51d3ee44;
    if (preg_match("/^ftp:\\/\\//i", $V0f14082c['logfile'])) {
    $V0f14082c['parser-options']['trackID']=$GLOBALS['cfg']['parser']['trackID']; // This is link 1038
    if (isset($GLOBALS['cfg']['db']['adodb_path'])) {
    } else {
    foreach ($GLOBALS['player_ban_list'] as $V7fa3b767 => $V36190f8a) {
    $GLOBALS['V9c1ebee8'] = &ADONewConnection($GLOBALS['cfg']['db']['adodb_driver']);
    global $V9c1ebee8;
    if (!$V9c1ebee8->Connect($GLOBALS['cfg']['db']['hostname'], $GLOBALS['cfg']['db']['username'], $GLOBALS['cfg']['db']['password'], $GLOBALS['cfg']['db']['dbname'])) {
        echo "Attempting to create/connect to database {$GLOBALS['cfg']['db']['dbname']}\n";
        $GLOBALS['V9c1ebee8'] = null;
        $GLOBALS['V9c1ebee8'] = &ADONewConnection($GLOBALS['cfg']['db']['adodb_driver']);
        global $V9c1ebee8;
        $V9c1ebee8->Connect($GLOBALS['cfg']['db']['hostname'], $GLOBALS['cfg']['db']['username'], $GLOBALS['cfg']['db']['password']);
        if (!$V9c1ebee8->Connect($GLOBALS['cfg']['db']['hostname'], $GLOBALS['cfg']['db']['username'], $GLOBALS['cfg']['db']['password'], $GLOBALS['cfg']['db']['dbname'])) {
            echo " - failed to create/connect to database {$GLOBALS['cfg']['db']['dbname']}\n";
        echo " - database created\n";
    if (isset($V0f14082c['action']) && $V0f14082c['action']=="clear_db") {
        if (cIS_SHELL && $V0f14082c['prompt']) {
            echo "Are you sure you want to clear the database {$GLOBALS['cfg']['db']['dbname']} @ {$GLOBALS['cfg']['db']['hostname']}? (y/n)\n";
        } else {
        if ($Vd0cf705f=='y' || $Vd0cf705f=='Y') {
            foreach ($sql_destroy as $V7fa3b767 => $Vac5c74b6) {
            print "{$GLOBALS['cfg']['db']['table_prefix']}* tables in {$GLOBALS['cfg']['db']['dbname']} @ {$GLOBALS['cfg']['db']['hostname']} has been cleared\n";
    foreach ($sql_create as $V7fa3b767 => $Vac5c74b6) {
        if ($V7fa3b767==0) {
    if (!is_dir("pub/games/{$GLOBALS['cfg']['game']['name']}")) {
        echo "Error: The variable \$cfg['game']['name'] is not set properly in config file.\n";
        echo " Edit your config file ({$V0f14082c['config']})\n";
        echo " Read the comments beside that variable and set that variable properly.\n";
    if (!file_exists("vsp-{$V0f14082c['log-gamecode']}.php")) {
        Facf3bf61("error: unrecognized logType");
    if (!isset($GLOBALS['skillset'])) {
        echo "Skill Definitions not found.\n";
        echo " "."pub/games/{$GLOBALS['cfg']['game']['name']}/skillsets/{$GLOBALS['cfg']['skillset']}/{$GLOBALS['cfg']['skillset']}-skill.php"."\n";
    $V21d8a920 = new F622a322a();
    $Vae2aeb93 = new F02ac4643();
    eval("\$V3643b863 = new VSPParser$V8db265ff(\$V0f14082c['parser-options'],\$V21d8a920,\$Vae2aeb93);");

trackID above is pending as this is passed with $cfg from the default config file even though it seems to be okay as the GUID we are testing logs with are present in the player database accordingly.

Help / Re: php is changing 7.2 gives ...
Last post by Krillin - September 13, 2020, 08:44:40 PM
Quote from: Krillin on December 13, 2018, 08:32:11 AM
Quote from: JohnDory on November 12, 2018, 08:20:44 AM
PHP has been updated, now we have to use v7.2 and get the following errors [24-Oct-2018 17:57:09 UTC][24-Oct-2018 17:57:10 UTC] PHP Deprecated:  Methods with the same name as their class will not be constructors in a future version of PHP; VSPParserWET has a deprecated constructor in /home/harry/public_html/et/stats/hh/vsp-wet.php on line 2

[24-Oct-2018 17:57:10 UTC] PHP Warning:  Use of undefined constant UTC - assumed 'UTC' (this will throw an Error in a future version of PHP) in /home/harry/public_html/et/stats/hh/vsp.php on line 401

Any chance of a fix ?
Sorry or the delay. But the error messages you are showing here are NOT critical to the functionality of the engine. The error message is just a warning of a depreciated (soon to be disabled) function. I will look into the issue. Thank you for the information.

Wow, this proved to be an easy fix. The first error was simple, but with nothing to work with, I cannot be certain this fix will work. Basically this is broken down to the fact that in PHP7 Class and Functions cannot have the same name, so the function was shortened and renamed being as a function is set on a per mod bases where as a class is a variable set globally so changing the function name should prove to be harmless.

As for the second issue listed here indicates an issue with php.ini which is the server configuration of the timezone. This is not an error I can address using a module. The coding is proper as it is used to generate a "timestamp" for when the logs were ran or updated. If you are on a host normally users can create their own php.ini files to set certain settings for their liking.

There needs to be more done to the code to bring this module up to date and bring the browser rendering up to HTML5 standards. So please give me some time to address this last part so that I can post the v0.49 accoridingly.

vsp_core_v0.49 to be published with these addressed. If there are any issues please let me know and I will address them, if the problem is solved, please mark this [SOLVED] in the title. If I do not hear back within a month, I will make this change myself.

Best Reagrds,