@supremegaming/ark-files
v1.0.9
Published
Read ark player profiles & tribe data from the saved files
Maintainers
Readme
ark-files
Read and parse Ark player profile and tribe files. Supports both ARK: Survival Evolved (ASE) and ARK: Survival Ascended (ASA) formats.
Install:
npm install --save ark-files
Usage
ARK: Survival Evolved (ASE) — default
const ArkFiles = require('ark-files');
let arkFiles = new ArkFiles('/path/to/my/ark/server/folder');
let players = arkFiles.getPlayers();
let tribes = arkFiles.getTribes();ARK: Survival Ascended (ASA)
const { ArkFiles, ArkBinaryFormats } = require('ark-files');
let arkFiles = new ArkFiles('/path/to/my/ark/server/folder', null, ArkBinaryFormats.ASA);
let players = arkFiles.getPlayers();
let tribes = arkFiles.getTribes();Data Structures
Players
/**
* [{
* Tribe: Tribe|false,
* PlayerName: string,
* Level: Number,
* TotalEngramPoints: Number,
* CharacterName: string,
* TribeId: Number|false,
* SteamId: Number, // ASE only
* EosId: string, // ASA only
* PlayerId: Number,
* FileCreated: string,
* FileUpdated: string
* }]
*/Tribes
/**
* [{
* Players: Players[],
* Name: string,
* OwnerId: Number,
* Id: Number,
* TribeLogs: string[],
* TribeMemberNames: string[],
* FileCreated: string,
* FileUpdated: string
* }]
*/Options
Players and tribes are cached in memory with a default valid period of 5 minutes. You can pass overrides to the constructor:
// Custom cache interval (in seconds)
new ArkFiles('/path/', (60 * 60)); // 1 hour
// ASA format with custom cache interval
const { ArkFiles, ArkBinaryFormats } = require('ark-files');
new ArkFiles('/path/', (60 * 60), ArkBinaryFormats.ASA);By default the first argument is treated as an ARK server root, and files are read from {serverRoot}/ShooterGame/Saved/SavedArks.
To point at a SavedArks directory (or any other complete files path) directly, pass absolutePath as true:
// Use the given path as-is instead of appending ShooterGame/Saved/SavedArks
new ArkFiles('/mnt/saves/SavedArks', undefined, undefined, true);
// Same with cache interval and format
const { ArkFiles, ArkBinaryFormats } = require('ark-files');
new ArkFiles('/mnt/saves/SavedArks', (60 * 60), ArkBinaryFormats.ASA, true);