Skip to main content

[NodeMod Core]

/ .. / default

Class: default

Defined in: src/native/file.ts:74

File system utilities for Half-Life engine providing safe file operations with automatic memory management. Supports loading game resources, configuration files, and provides path utilities for Half-Life directory structure.

Example​

// Load and read a configuration file
const config = nodemodCore.file.loadConfig('server.cfg');
if (config) {
console.log(`Max players\: ${config['maxplayers']}`);
}

// Check if a sound file exists
if (nodemodCore.file.isValidSoundFile('weapons/ak47-1.wav')) {
console.log('Sound file is available');
}

// Load file with automatic cleanup
const content = nodemodCore.file.readText('motd.txt');
if (content) {
console.log('MOTD\:', content);
}

// Watch a file for changes
const stopWatching = nodemodCore.file.watch('banned.cfg', (event) => {
console.log(`Banned list updated\: ${event.newSize} bytes`);
});

Constructors​

Constructor​

new default(): NodemodFile

Returns​

NodemodFile

Properties​

PATHS​

static PATHS: object

Defined in: src/native/file.ts:395

Common Half-Life server file paths.

CONFIG​

CONFIG: string = 'server.cfg'

Main server configuration file

BANNED​

BANNED: string = 'banned.cfg'

Banned players list

LISTIP​

LISTIP: string = 'listip.cfg'

IP ban list

MAPCYCLE​

MAPCYCLE: string = 'mapcycle.txt'

Map rotation cycle

MOTD​

MOTD: string = 'motd.txt'

Message of the day

EXTENSIONS​

static EXTENSIONS: object

Defined in: src/native/file.ts:411

Valid file extensions for different resource types.

MODEL​

MODEL: string[]

Model file extensions

SOUND​

SOUND: string[]

Sound file extensions

MAP​

MAP: string[]

Map file extensions

IMAGE​

IMAGE: string[]

Image file extensions

SPRITE​

SPRITE: string[]

Sprite file extensions

CONFIG​

CONFIG: string[]

Configuration file extensions

Methods​

load()​

load(filename): number[] | null

Defined in: src/native/file.ts:93

Loads a file into memory and returns the raw buffer. Remember to call free() when done to prevent memory leaks.

Parameters​

filename​

string

Path to the file to load

Returns​

number[] | null

Raw file buffer as number array, or null if loading failed

Example​

const buffer = nodemodCore.file.load('maps/de_dust2.bsp');
if (buffer) {
console.log(`Loaded ${buffer.length} bytes`);
// Don't forget to free the buffer!
nodemodCore.file.free(buffer);
}

free()​

free(buffer): void

Defined in: src/native/file.ts:104

Parameters​

buffer​

any

Returns​

void

getSize()​

getSize(filename): number

Defined in: src/native/file.ts:111

Parameters​

filename​

string

Returns​

number

compareTime()​

compareTime(filename1, filename2): number

Defined in: src/native/file.ts:116

Parameters​

filename1​

string

filename2​

string

Returns​

number

exists()​

exists(filename): boolean

Defined in: src/native/file.ts:122

Parameters​

filename​

string

Returns​

boolean

loadWithCleanup()​

loadWithCleanup<T>(filename, callback): T | null

Defined in: src/native/file.ts:128

Type Parameters​

T​

T

Parameters​

filename​

string

callback​

FileLoadCallback<T>

Returns​

T | null

readText()​

readText(filename): string | null

Defined in: src/native/file.ts:175

Reads a file as text with automatic memory management. Handles encoding detection and cleanup automatically.

Parameters​

filename​

string

Path to the text file to read

Returns​

string | null

File content as string, or null if reading failed

Example​

// Read server configuration
const motd = nodemodCore.file.readText('motd.txt');
if (motd) {
console.log('Message of the Day\:', motd);
}

// Read map list
const mapList = nodemodCore.file.readText('mapcycle.txt');
if (mapList) {
const maps = mapList.split('\\n').filter(line => line.trim());
console.log('Available maps\:', maps);
}

getGameDir()​

getGameDir(): string

Defined in: src/native/file.ts:189

Returns​

string

joinPath()​

joinPath(...parts): string

Defined in: src/native/file.ts:196

Parameters​

parts​

...string[]

Returns​

string

normalizePath()​

normalizePath(path): string

Defined in: src/native/file.ts:200

Parameters​

path​

string

Returns​

string

getExtension()​

getExtension(filename): string

Defined in: src/native/file.ts:204

Parameters​

filename​

string

Returns​

string

getBasename()​

getBasename(filename): string

Defined in: src/native/file.ts:209

Parameters​

filename​

string

Returns​

string

getDirectory()​

getDirectory(filename): string

Defined in: src/native/file.ts:216

Parameters​

filename​

string

Returns​

string

buildResourcePath()​

buildResourcePath(type, name): string

Defined in: src/native/file.ts:222

Parameters​

type​

string

name​

string

Returns​

string

resourceExists()​

resourceExists(type, name): boolean

Defined in: src/native/file.ts:236

Parameters​

type​

string

name​

string

Returns​

boolean

loadResource()​

loadResource(type, name): number[] | null

Defined in: src/native/file.ts:242

Parameters​

type​

string

name​

string

Returns​

number[] | null

loadMultiple()​

loadMultiple(filenames): object

Defined in: src/native/file.ts:248

Parameters​

filenames​

string[]

Returns​

object

freeMultiple()​

freeMultiple(buffers): void

Defined in: src/native/file.ts:263

Parameters​

buffers​

{[key: string]: number[] | FileLoadResult; } | number[][]

Returns​

void

isValidModelFile()​

isValidModelFile(filename): boolean

Defined in: src/native/file.ts:278

Parameters​

filename​

string

Returns​

boolean

isValidSoundFile()​

isValidSoundFile(filename): boolean

Defined in: src/native/file.ts:283

Parameters​

filename​

string

Returns​

boolean

isValidMapFile()​

isValidMapFile(filename): boolean

Defined in: src/native/file.ts:288

Parameters​

filename​

string

Returns​

boolean

loadConfig()​

loadConfig(filename): {[key: string]: string; } | null

Defined in: src/native/file.ts:317

Loads and parses a configuration file with key=value format. Supports comments starting with // or # and handles empty lines.

Parameters​

filename​

string

Name of the configuration file

Returns​

{[key: string]: string; } | null

Parsed configuration object, or null if loading failed

Example​

// Load server configuration
const config = nodemodCore.file.loadConfig('server.cfg');
if (config) {
const maxPlayers = parseInt(config['maxplayers'] || '16');
const serverName = config['hostname'] || 'Unnamed Server';
console.log(`Server\: ${serverName}, Max Players\: ${maxPlayers}`);
}

// Load custom plugin config
const pluginConfig = nodemodCore.file.loadConfig('myplugin.cfg');
if (pluginConfig?.enabled === '1') {
console.log('Plugin is enabled');
}

watch()​

watch(filename, callback, interval): () => void

Defined in: src/native/file.ts:367

Monitors a file for changes using periodic polling. Returns a function to stop monitoring.

Parameters​

filename​

string

File to monitor

callback​

FileWatchCallback

Function called when file changes

interval​

number = 1000

Check interval in milliseconds (default: 1000)

Returns​

Function to stop monitoring

(): void

Returns​

void

Example​

// Watch configuration file for changes
const stopWatching = nodemodCore.file.watch('server.cfg', (event) => {
console.log(`Config changed! Old size\: ${event.oldSize}, New size\: ${event.newSize}`);
// Reload configuration
const newConfig = nodemodCore.file.loadConfig('server.cfg');
});

// Stop watching after 10 minutes
setTimeout(() => {
stopWatching();
console.log('Stopped watching file');
}, 600000);