FauFau 2.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package FauFau --version 2.0.0
NuGet\Install-Package FauFau -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FauFau" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FauFau" Version="2.0.0" />
<PackageReference Include="FauFau" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FauFau --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FauFau, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FauFau@2.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FauFau&version=2.0.0
#tool nuget:?package=FauFau&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FauFau
FauFau is a library for manipulating FireFall's various file formats and protocols
This library was created for educational purposes only and should not be used by anyone.
Library is automatically published to NuGet: https://www.nuget.org/packages/FauFau
Contents
Most formats derive from Bitter's BinaryWrapper, so they read from a file path, a byte array or a stream with Read(...). The game file paths are relative to the client's system folder.
Static Database
| Class | Files | Notes |
|---|---|---|
StaticDB |
db/clientdb.sd2 |
Reads and writes the static database of 1297 and later, every cell as an object |
StaticDBView |
db/clientdb.sd2 |
Read-only, keeps the file in one pooled buffer and reads cells on access |
StaticDBNames |
Maps the FNV hashes of table and column names back to names, e.g. from SDBrowser's fields.txt |
|
LocalizedText |
Turns the parameter header of dblocalization::LocalizedText strings into {0} placeholders |
|
LegacyStaticDB |
db/clientdb.sdb, db/commondb.sdb |
Read-only, the database of the builds before 1297, including the scrambled one of 1265 |
Replays
| Class | Files | Notes |
|---|---|---|
Nsr |
*.nsr |
Reads and writes replays, also older, nested gzip and cut off ones |
NsrView |
*.nsr |
Read-only, keeps the unpacked replay in one pooled buffer |
NsrInfo |
*.nsr |
Reads the sections and counts the packets from a stream, without keeping them in memory |
World
| Class | Files | Notes |
|---|---|---|
Zone |
maps/*.zone |
The layers of a zone and the terrain chunks it references |
GtChunkV8 |
maps/chunks/*.gtchunk |
Terrain chunks, decompresses the layers of each LOD and sub chunk |
GtChunk_MeshData |
The collision mesh of a chunk's collision layers, plus their Havok data as raw bytes | |
GtLayer |
The layer tree that zones, chunks, world maps and environments share | |
WorldLayerIds |
The ids of the zone and chunk layers | |
ZoneBounds |
The bounds of a zone | |
ZoneSkybox |
The skybox record of a zone | |
ZoneChunkRange |
The chunk coordinates a zone covers | |
ZoneChunkRef |
A terrain chunk of a zone, from the ChunkRef and ChunkRef2 layers | |
ZonePath |
The steps of a path | |
MeldingPerimeter |
A melding perimeter and its control points | |
SubZoneRegion |
The area of a sub zone as a bitmap | |
SubZoneGrid |
The sub zone of each cell of a chunk | |
EncounterNameRegistry |
The encounter names of the props of a zone or chunk | |
WorldDir |
maps/*.worldDir |
The index of a zone's world map tiles |
WorldMap |
maps/worldmapchunks/*.worldMap |
A world map tile with its textures and geometry |
Bnv |
assetdb/*.bnv |
Environment assets, the environment layer on its own |
ScZone |
assetdb/*.scZone |
The props and environment of the 3D scenes in the UI |
Assets
| Class | Files | Notes |
|---|---|---|
AssetDb |
assetdb/ |
Folder and file names of an asset id |
BMesh, BMesh32 |
assetdb/*.bMesh |
Meshes, BMesh32 also writes version 32 |
Czi |
assetdb/*.czi, assetdb/*.czip |
Color zone index maps and patterns, the recolorable areas of a texture |
VTexIndex, VTexTile |
vt/static.vtex_idx, vt/static.vtex0 to 6 |
The virtual texture and its tiles |
VGeoIndex, VGeoPage |
vg/static.vgeo_idx, vg/static.vgeo |
The virtual geometry and its pages |
LowMipTexturePak |
vt/lowmiptextures.pak |
The smallest mips of the textures |
Client Patches
| Class | Notes |
|---|---|
Patcher |
Loads FirefallClient.exe, applies patches in memory and saves the result |
RedHandedBypass |
Skips the RedHanded anti-cheat, so the client starts without it |
UnlimitedFreeCamRadius |
Removes the radius limit of the replay free camera |
BytePattern |
Byte patterns with wildcards like 8B ?? 4?, for finding the patch locations |
Web
| Class | Notes |
|---|---|
Auth |
The user id, secret and token of the Red 5 login |
Red5Sig |
Parses, creates and verifies the X-Red5-Signature header of the client's web requests |
Utilities
| Class | Notes |
|---|---|
Checksum |
FFnv32, the hash of the static database names, and CRC-32 |
MersenneTwister |
The generator the client scrambles data with, plus Xor and Fill for its first outputs |
Compression |
Raw deflate and gzip between binary streams |
FastLz |
FastLZ decompression |
Hex |
Hex encoding into strings and spans |
EntityGuid |
Packs and parses entity guids |
WarpaintColor |
Packs the light and dark shade of a warpaint color |
Time |
Unix timestamps and the in-game time |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- SharpCompress (>= 0.50.4)
- System.IO.Hashing (>= 8.0.0)
- TMW.Bitter (>= 1.1.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.