Skip to main content

fl

.fl - FL Character File Format

Freelancer stores character files in standard ini file format. They may be encryped or in plain text. Freelancer will read both formats.

.fl - Encryption Algorithm

The first four bytes of an encrypted file are FLS1. The encryption algorithm is show here:

private static byte[] gene = { (byte)'G', (byte)'e', (byte)'n', (byte)'e' }; byte[] decrypt(byte[] buf) {

if (buf.Length >= 4 && buf[0] == 'F' && buf[1] == 'L' && buf[2] == 'S' && buf[3] == '1')
{
byte[] dbuf = new byte[buf.Length - 4];
for (int i = 4; i < buf.Length; i++)
{
int k = (gene[i % 4] + (i - 4)) % 256;
dbuf[i - 4] = (byte)(buf[i] ^ (k | 0x80));
}
return dbuf;
}
return buf;
}

[Player]

[Player] 
tstamp = INTEGER, INTEGER
house = FLOAT, NICKNAME
visit = HASHCODE, INTEGER
ParameterInformation
visitThe first parameter is the hashcode of the object. The second parameter is a bit field:

0x01 bit 0 - show object on nav map with no description
0x02 bit 1 - show object on nav map and show internal description
0x04 bit 2
0x08 bit 3
0x10 bit 0 - if wreck then this object has been looted
0x02 bit 1 - show object on nav map and show external description
0x04 bit 2 - show trade information if base
0x08 bit 3 - never show object on nav map

[mPlayer]

[mPlayer] 
locked_gate = HASHCODE
ship_type_killed = HASHCODE
sys_visited = HASHCODE
base_visited = HASHCODE
holes_visited = HASHCODE
vnpc = HASHCODE, HASHCODE
total_cash_earned = INTEGER
total_time_played = FLOAT
rumor = INTEGER
ParameterInformation
locked_gateHashcode of the jumpgate. Docking with this gate is prohibited.
ship_type_killedHashcode of a ship. Used to display the number of ships visited on the in game player statistics screen.
sys_visitedHashcode of a system. Used to display the number of systems visited on the in game player statistics screen..
base_visitedHashcode of a base. Used to display the number of bases visited on the in game player statistics screen.
holes_visitedHashcode of a jumphole. Used to display the number of jumpholes visited on the in game player statistics screen.
vnpcHashcode of NPC character, Hashcode of Base/Room. Used to indicate if a player has talked to a particular NPC character at base.
total_cash_earnedNot used. Always zero.
total_time_playedThe time in seconds that this character has been online.
rumorThe IDS number from the rumor entry in mBases.ini. An entry in this line indicates that this player has viewed the rumor