[NodeMod Core]
/ .. / default
Class: default
Defined in: src/utils/util.ts:48
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:60
Creates a new NodemodUtil instance. Automatically sets up player connection tracking.
Parameters
msgService
Message service for network communication
Returns
NodemodUtil
Properties
msg
private
msg:default
Defined in: src/utils/util.ts:50
Message service for network communication
playerIpMap
private
playerIpMap:Map
<number
,string
>
Defined in: src/utils/util.ts:52
Map storing player IP addresses by entity index
Methods
setupPlayerTracking()
private
setupPlayerTracking():void
Defined in: src/utils/util.ts:65
Returns
void
forceEntityId()
forceEntityId(
entity
):null
|number
Defined in: src/utils/util.ts:93
Converts an entity reference to its numeric index. Handles both entity objects and numeric indices safely.
Parameters
entity
Entity object, numeric index, or null
null
| number
| Entity
Returns
null
| number
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?
):null
|Entity
Defined in: src/utils/util.ts:116
Converts an entity reference to an entity object. Handles both entity objects and numeric indices safely.
Parameters
entity?
Entity object, numeric index, or null
null
| number
| Entity
Returns
null
| Entity
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:144
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
null
| number
| Entity
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:181
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
text
string
Text to display on the HUD
options?
Optional positioning and color settings
null
| HudTextOptions
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:224
Parameters
text
string
Returns
string
messageClient()
messageClient(
client
,message
):void
Defined in: src/utils/util.ts:229
Parameters
client
message
string
Returns
void
messageAll()
messageAll(
message
):void
Defined in: src/utils/util.ts:233
Parameters
message
string
Returns
void
isValidEntity()
isValidEntity(
entity
):boolean
Defined in: src/utils/util.ts:240
Parameters
entity
Returns
boolean
getUserId()
getUserId(
player
):number
Defined in: src/utils/util.ts:245
Parameters
player
Returns
number
getSteamId()
getSteamId(
player
):string
Defined in: src/utils/util.ts:249
Parameters
player
Returns
string
getIpAddress()
getIpAddress(
player
):string
Defined in: src/utils/util.ts:254
Parameters
player
Returns
string
getConnectedPlayersInfo()
getConnectedPlayersInfo():
object
[]
Defined in: src/utils/util.ts:280
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:300
Clear all tracked player connection data (manual cleanup) Use this to reset the IP tracking map if needed
Returns
void
readInt32LE()
readInt32LE(
entity
,offset
):null
|number
Defined in: src/utils/util.ts:310
Read a 32-bit little-endian integer from entity private data
Parameters
entity
The entity to read from
offset
number
The byte offset to read from
Returns
null
| number
The integer value or null if buffer is invalid
writeInt32LE()
writeInt32LE(
entity
,offset
,value
):void
Defined in: src/utils/util.ts:322
Write a 32-bit little-endian integer to entity private data
Parameters
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:332
Dump all non-zero private data values for an entity (debugging utility)
Parameters
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:352
Search for specific values in entity private data (debugging utility)
Parameters
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