Difference between revisions of "User Files"

From Grand Theft Wiki
Jump to: navigation, search
(contributions from myself, Aschratt, and Seemann)
(No difference)

Revision as of 11:42, 26 August 2018

User Files is a directory created by each Grand Theft Auto PC game. It usually is the location of setting files, replays and savegames. The User Files directory usually is located inside the My Documents directory of the Microsoft Windows operating system:

  • GTA III %USERPROFILE%\My Documents\GTA3 User Files or %USERPROFILE%\Documents\GTA3 User Files
  • GTA Vice City %USERPROFILE%\My Documents\GTA Vice City User Files or %USERPROFILE%\Documents\GTA Vice City User Files
  • GTA San Andreas %USERPROFILE%\My Documents\GTA San Andreas User Files or %USERPROFILE%\Documents\GTA San Andreas User Files

GTA Vice City

Vice City stores two additional files, the stats.html and stats.txt, that contains a dump of all statistics that can be seen in the menu. The file can be generated from the stats menu by pressing the S key. For the following formats, "\n" denotes a newline and "\t" denotes a tab character. Internally, all newline characters (0x0A) are prefixed by a carriage return character (0x0D) in order for them to be viewable on some text editing programs like Notepad. "%s" denotes a string placeholder that can change depending on the text and "%d" denotes an integer placeholder. Some text can change depending on the GXT entry. They are denoted by dotted underlines that you can hover your mouse over and see the GXT key.


This is a plain text file and can be viewed in any text editing program.


DATE: %s\n
Criminal rating:  %s (%d)\n


This format is outputted for each stat that is displayed in the menu. The first string placeholder is the stat name and the second one is the stat value or content.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n




This is an HTML document and can be viewed on any web browser and edited by any text editing program.


<title>Grand Theft Auto Vice City Stats</title>\n
<body bgcolor="#FF00CC" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">\n
<table width="560" align="center" border="0" cellpadding="5" cellspacing="0">\n
<tr align="center" valign="top"> \n
<td height="59" colspan="2" bgcolor="#FFCCFF"><div align="center"><font color="#FF00CC" size="3" face="Arial, \n
Helvetica, sans-serif">-------------------------------------------------------------------------</font><font \n
size="3" face="Arial, Helvetica, sans-serif"><br>\n
<strong><font color="#000000">GRAND THEFT AUTO VICE CITY STATS</font></strong><br><font\n
color="#FF00CC">-------------------------------------------------------------------------</font></font></div></td> </tr>\n
<tr align="left" valign="top" bgcolor="#FFFFFF">     <td height="22" colspan="2">&nbsp;</td>  </tr>\n
<tr align="left" valign="top" bgcolor="#FFFFFF"> \n
<td height="40" colspan="2"> <p><font color="#00CC00" size="2" face="Arial, Helvetica, sans-serif"><strong><font color="#009900" size="1">DATE: \n
%s</font><br>        LAST MISSION PASSED: </strong>%s<strong><br></strong> </font></p></td></tr>\n
<tr align="left" valign="top" bgcolor="#CCCCCC"> <td height="5" colspan="2"></td> </tr> <tr align="left" valign="top" bgcolor="#FFFFFF"> \n
<td height="10" colspan="2"></td> </tr> <tr align="left" valign="top" bgcolor="#FFFFFF"> \n
<td height="20" colspan="2"><font color="#FF00CC" size="2" face="Arial, Helvetica, sans-serif"><strong>Criminal rating:</strong>\n
%s (%d)</font></td>  </tr>  <tr align="left" valign="top" bgcolor="#FFFFFF"><td height="10" colspan="2"></td>  </tr>\n


This format is outputted for each stat that is displayed in the menu. The first string placeholder is the stat name and the second one is the stat value or content.

</font></strong></div></td> </tr> <tr align="left" valign="top" bgcolor="#FFFFFF">  <td height="10" colspan="2"></td> </tr>\n
<tr align="left" valign="top"><td width="500" height="22" bgcolor="#FFCCFF"><font color="#FF00CC" size="2" face="Arial, Helvetica, sans-serif"><strong>\n
%s</strong></font></td> <td width="500" align="right" valign="middle" bgcolor="#FFCCFF"> <div align="right"><strong><font color="#FF00CC">\n


</font></strong></div></td> </tr> <tr align="left" valign="top" bgcolor="#FFFFFF">  <td height="10" colspan="2"></td> </tr>\n
</table><br><table width="560" border="0"  align="center" cellspacing="0" cellpadding="5"><tr align="center" valign="middle" bgcolor="#FFCCFF"><td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><a href="http://www.rockstargames.com/vicecity">rockstargames.com/vicecity</a></font></td>\n
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><a href="http://www.rockstargames.com">rockstargames.com</a></font></td>\n
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif">&nbsp;<a href="http://www.rockstarnorth.com">rockstarnorth.com</a></font></td></tr>\n

GTA San Andreas

GTA San Andreas does also store user track information and ingame screenshots there. Also the stats.html file gets exported to this location. The user tracks themselves can be stored as shortcuts, files or subdirectories inside the directory My Documents/GTA San Andreas User Files/User Tracks.

After the directory got scanned by the game the file sa-ufiles.dat gets created. It holds an list of unterminated strings where each represents a absolute file path of an audio file. The following C++ code snippet demonstrates an easy way to parse this file:

// parse sa-ufiles.dat
void parseFile(std::string &fileName)
	// open the file with reading rights and search the end of the file
	std::fstream stream(fileName.c_str(), std::ios::in | std::ios::ate);
	// allocate an array of characters to read the whole file content
	int size = static_cast<int>(stream->tellg());
	char* buffer = new char[size];
	// search the start of the file and read it's content
	stream->read(buffer, size);
	// parse the content, return value is an vector of strings containing the file names
	std::string str(buffer);
	// delete the memory for buffering and close the stream
	delete[] buffer;

// parse the content of a sa-ufiles.dat file
std::vector<std::string> parseContent(std::string& buffer)
	// vector for the file names
	std::vector<std::string> fileNames;
	// search for the partition letter until there is no one left
	std::size_t found;
	while ((found = (buffer.find_last_of(":") - 1)) != npos)
		// push file name to the vector
		// erase this file name from the file.
	return fileNames;

Also there is an file called sa-utrax.dat, but it appears to be unused.

The player is able to create screenshots from the game using an camera. Those screenshots get stored as jpeg compressed images inside the directory My Documents/GTA San Andreas User Files/Gallery.


This page is licensed under the GNU Free Documentation Licence. This page has a separate license to the CC-BY-SA that applies to most of Grand Theft Wiki.

The full text of the GNU FDL v1.2 is here. Click the "History" button to see the full list of authors. See Grand Theft Wiki:Copyright for more detail on our copyright policy.

GNU Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
See Grand Theft Wiki:Copyright for more information.