Skip to main content

[NodeMod Core]

/ .. / default

Class: default

Defined in: src/utils/util.ts:68

Comprehensive utility class providing helper functions for entity management, player communication, and low-level entity data manipulation. Includes automatic player connection tracking and various convenience methods for common server operations.

Example​

// Send chat message to player
const player = nodemod.players[0];
nodemodCore.util.sendChat('Welcome to the server!', player);

// Show HUD text with custom styling
nodemodCore.util.showHudText(player, 'Health\: 100', {
x\: 100, y\: 200, r\: 255, g\: 0, b\: 0
});

// Get player connection info
const playerInfo = nodemodCore.util.getConnectedPlayersInfo();
playerInfo.forEach(info => {
console.log(`${info.name} (${info.steamId}) from ${info.ipAddress}`);
});

// Debug entity data
nodemodCore.util.dumpOffsets(player, 1000);

Constructors​

Constructor​

new default(msgService): NodemodUtil

Defined in: src/utils/util.ts:80

Creates a new NodemodUtil instance. Automatically sets up player connection tracking.

Parameters​

msgService​

default

Message service for network communication

Returns​

NodemodUtil

Properties​

msg​

private msg: default

Defined in: src/utils/util.ts:70

Message service for network communication

playerIpMap​

private playerIpMap: Map<number, string>

Defined in: src/utils/util.ts:72

Map storing player IP addresses by entity index

Methods​

setupPlayerTracking()​

private setupPlayerTracking(): void

Defined in: src/utils/util.ts:85

Returns​

void

forceEntityId()​

forceEntityId(entity): number | null

Defined in: src/utils/util.ts:113

Converts an entity reference to its numeric index. Handles both entity objects and numeric indices safely.

Parameters​

entity​

Entity object, numeric index, or null

number | Entity | null

Returns​

number | null

Entity index number or null if invalid

Example​

const player = nodemod.players[0];
const playerId = nodemodCore.util.forceEntityId(player);
console.log(`Player ID\: ${playerId}`);

forceEntityObject()​

forceEntityObject(entity?): Entity | null

Defined in: src/utils/util.ts:136

Converts an entity reference to an entity object. Handles both entity objects and numeric indices safely.

Parameters​

entity?​

Entity object, numeric index, or null

number | Entity | null

Returns​

Entity | null

Entity object or null if invalid

Example​

const entityObj = nodemodCore.util.forceEntityObject(1);
if (entityObj) {
console.log(`Entity name\: ${entityObj.netname}`);
}

sendChat()​

sendChat(message, target): void

Defined in: src/utils/util.ts:164

Sends a chat message to a specific player or all players. Automatically handles multi-line messages by splitting on newlines.

Parameters​

message​

string

Message text to send (supports newlines)

target​

Target player entity/index, or null for all players

number | Entity | null

Returns​

void

Example​

// Send to specific player
const player = nodemod.players[0];
nodemodCore.util.sendChat('Welcome back!', player);

// Send multi-line message
nodemodCore.util.sendChat('Line 1\\nLine 2\\nLine 3', player);

// Broadcast to all players
nodemodCore.util.sendChat('Server announcement', null);

showHudText()​

showHudText(entity, text, options?): void

Defined in: src/utils/util.ts:201

Displays HUD text to one or more players with optional styling. Supports both simple text display and advanced positioned text with colors.

Parameters​

entity​

Target entity, array of entities, or entity index

number | Entity | Entity[]

text​

string

Text to display on the HUD

options?​

Optional positioning and color settings

HudTextOptions | null

Returns​

void

Example​

// Simple HUD message
nodemodCore.util.showHudText(player, 'Health\: 100');

// Styled HUD message at specific position
nodemodCore.util.showHudText(player, 'LOW HEALTH!', {
x\: 100, y\: 300, r\: 255, g\: 0, b\: 0
});

// Show to multiple players
nodemodCore.util.showHudText([player1, player2], 'Round starts soon');

rainbowizeString()​

rainbowizeString(text): string

Defined in: src/utils/util.ts:250

Parameters​

text​

string

Returns​

string

messageClient()​

messageClient(client, message): void

Defined in: src/utils/util.ts:255

Parameters​

client​

Entity

message​

string

Returns​

void

messageAll()​

messageAll(message): void

Defined in: src/utils/util.ts:259

Parameters​

message​

string

Returns​

void

isValidEntity()​

isValidEntity(entity): boolean

Defined in: src/utils/util.ts:266

Parameters​

entity​

Entity

Returns​

boolean

getUserId()​

getUserId(player): number

Defined in: src/utils/util.ts:271

Parameters​

player​

Entity

Returns​

number

getSteamId()​

getSteamId(player): string

Defined in: src/utils/util.ts:275

Parameters​

player​

Entity

Returns​

string

getIpAddress()​

getIpAddress(player): string

Defined in: src/utils/util.ts:280

Parameters​

player​

Entity

Returns​

string

getConnectedPlayersInfo()​

getConnectedPlayersInfo(): object[]

Defined in: src/utils/util.ts:306

Gets detailed information about all connected players. Includes entity references, names, IDs, and network information.

Returns​

object[]

Array of player information objects

Example​

const players = nodemodCore.util.getConnectedPlayersInfo();
console.log(`${players.length} players connected\:`);

players.forEach(player => {
console.log(`${player.name} (${player.steamId}) from ${player.ipAddress}`);

// Check if player is admin
if (isAdminSteamId(player.steamId)) {
nodemodCore.util.sendChat('Welcome back, admin!', player.entity);
}
});

clearPlayerTracking()​

clearPlayerTracking(): void

Defined in: src/utils/util.ts:326

Clear all tracked player connection data (manual cleanup) Use this to reset the IP tracking map if needed

Returns​

void

readInt32LE()​

readInt32LE(entity, offset): number | null

Defined in: src/utils/util.ts:336

Read a 32-bit little-endian integer from entity private data

Parameters​

entity​

Entity

The entity to read from

offset​

number

The byte offset to read from

Returns​

number | null

The integer value or null if buffer is invalid

writeInt32LE()​

writeInt32LE(entity, offset, value): void

Defined in: src/utils/util.ts:348

Write a 32-bit little-endian integer to entity private data

Parameters​

entity​

Entity

The entity to write to

offset​

number

The byte offset to write to

value​

number

The integer value to write

Returns​

void

dumpOffsets()​

dumpOffsets(entity, maxOffset): void

Defined in: src/utils/util.ts:358

Dump all non-zero private data values for an entity (debugging utility)

Parameters​

entity​

Entity

The entity to dump data for

maxOffset​

number = 10000

Maximum offset to check (default 10000)

Returns​

void

searchOffsets()​

searchOffsets(entity, searchValue, start, maxOffset): void

Defined in: src/utils/util.ts:378

Search for specific values in entity private data (debugging utility)

Parameters​

entity​

Entity

The entity to search

searchValue​

number

The value to search for

start​

number = 0

Starting offset (default 0)

maxOffset​

number = 2000

Maximum offset to search (default 2000)

Returns​

void