[NodeMod Core]
/ .. / default
Class: default
Defined in: src/enhanced/trace.ts:82
Advanced tracing and physics utilities for line-of-sight, collision detection, and spatial analysis. Provides enhanced trace operations with convenient result parsing and batch processing capabilities.
Example
// Basic line tracing
const trace = nodemodCore.trace.line([0, 0, 100], [100, 100, 100]);
if (trace?.didHit) {
console.log(`Hit something at distance\: ${trace.distance}`);
}
// Line of sight check
const canSee = nodemodCore.trace.canSee(player1, player2);
console.log(`Players can see each other\: ${canSee}`);
// Find ground below position
const ground = nodemodCore.trace.findGround([100, 100, 500]);
if (ground?.didHit) {
console.log(`Ground is at\: ${ground.hitPoint}`);
}
// Check point contents
const contents = nodemodCore.trace.pointContents([50, 50, 50]);
if (contents.isWater) {
console.log('Point is underwater');
}
Constructors
Constructor
new default():
NodemodTrace
Returns
NodemodTrace
Methods
line()
line(
start,end,options):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:109
Performs a line trace between two points with enhanced options and result parsing.
Parameters
start
number[]
Starting point [x, y, z]
end
number[]
Ending point [x, y, z]
options
TraceOptions = {}
Trace configuration options
Returns
null | EnhancedTraceResult
Enhanced trace result with additional computed properties
Example
// Basic line trace
const trace = nodemodCore.trace.line([0, 0, 0], [100, 0, 0]);
// Trace ignoring monsters
const trace2 = nodemodCore.trace.line([0, 0, 0], [100, 0, 0], {
flags\: nodemod.IGNORE.MONSTERS
});
// Hull-based trace
const trace3 = nodemodCore.trace.line([0, 0, 0], [100, 0, 0], {
hullSize\: nodemod.HULL.HUMAN,
ignore\: player
});
fromEntity()
fromEntity(
entity,target,options):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:130
Parameters
entity
number | Entity
target
Entity | number[]
options
TraceOptions = {}
Returns
null | EnhancedTraceResult
canSee()
canSee(
entity1,entity2,options):boolean
Defined in: src/enhanced/trace.ts:174
Checks if one entity has line of sight to another entity. Automatically adjusts for entity view offset and target positioning.
Parameters
entity1
Source entity or entity index
number | Entity
entity2
Target entity or entity index
number | Entity
options
TraceOptions = {}
Trace configuration options
Returns
boolean
True if entity1 can see entity2, false otherwise
Example
// Check if player can see another player
const canSee = nodemodCore.trace.canSee(player1, player2);
if (canSee) {
console.log('Player 1 can see Player 2');
}
// Check line of sight ignoring other players
const canSeeIgnoringPlayers = nodemodCore.trace.canSee(sniper, target, {
flags\: nodemod.IGNORE.MONSTERS
});
findGround()
findGround(
origin,distance):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:182
Parameters
origin
number[]
distance
number = 4096
Returns
null | EnhancedTraceResult
sphere()
sphere(
start,end,radius,options):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:190
Parameters
start
number[]
end
number[]
radius
number
options
TraceOptions = {}
Returns
null | EnhancedTraceResult
monsterHull()
monsterHull(
entity,start,end,options):TraceMonsterHullResult
Defined in: src/enhanced/trace.ts:205
Parameters
entity
start
number[]
end
number[]
options
TraceOptions = {}
Returns
texture()
texture(
entity,start,end):string
Defined in: src/enhanced/trace.ts:218
Parameters
entity
start
number[]
end
number[]
Returns
string
projectile()
projectile(
entity,ignore):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:223
Parameters
entity
ignore
null | Entity
Returns
null | EnhancedTraceResult
pointContents()
pointContents(
point):PointContentsResult
Defined in: src/enhanced/trace.ts:255
Analyzes the contents of a specific point in 3D space. Useful for checking if a position is in water, solid matter, or empty space.
Parameters
point
number[]
3D coordinates [x, y, z] to check
Returns
Detailed information about what exists at that point
Example
// Check if a position is safe for teleporting
const contents = nodemodCore.trace.pointContents([100, 200, 300]);
if (contents.isEmpty) {
console.log('Safe to teleport');
} else if (contents.isWater) {
console.log('Position is underwater');
} else if (contents.isSolid) {
console.log('Position is inside a wall');
}
// Check multiple points
const positions = [[0,0,0], [100,100,100], [200,200,200]];
positions.forEach((pos, i) => {
const result = nodemodCore.trace.pointContents(pos);
console.log(`Point ${i}\: ${result.isEmpty ? 'empty' \: 'occupied'}`);
});
enhanceTraceResult()
enhanceTraceResult(
result,start,end):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:270
Parameters
result
null | TraceResult
start
null | number[]
end
null | number[]
Returns
null | EnhancedTraceResult
multiLine()
multiLine(
traces): (null|EnhancedTraceResult)[]
Defined in: src/enhanced/trace.ts:302
Parameters
traces
({ start: number[]; end: number[]; options?: TraceOptions; } | [number[], number[], TraceOptions?])[]
Returns
(null | EnhancedTraceResult)[]
findClosestSurface()
findClosestSurface(
origin,direction,maxDistance):null|EnhancedTraceResult
Defined in: src/enhanced/trace.ts:312
Parameters
origin
number[]
direction
number[]
maxDistance
number = 4096
Returns
null | EnhancedTraceResult
traceCardinal()
traceCardinal(
origin,distance):Record<string,EnhancedTraceResult|null>
Defined in: src/enhanced/trace.ts:324
Parameters
origin
number[]
distance
number = 512
Returns
Record<string, EnhancedTraceResult | null>
isAreaClear()
isAreaClear(
center,size):boolean
Defined in: src/enhanced/trace.ts:370
Checks if a rectangular area is clear of obstacles by testing all corners. Useful for verifying if there's enough space to place objects or teleport players.
Parameters
center
number[]
Center point of the area [x, y, z]
size
number[] = ...
Dimensions of the area [width, length, height] (default: [64, 64, 64])
Returns
boolean
True if the entire area is clear, false if any part is blocked
Example
// Check if there's space for a player
const playerSize = [32, 32, 72]; // Typical player dimensions
const isClear = nodemodCore.trace.isAreaClear([100, 200, 300], playerSize);
if (isClear) {
console.log('Safe to spawn player here');
}
// Check default 64x64x64 area
const canPlaceItem = nodemodCore.trace.isAreaClear([50, 50, 50]);
normalizeVector()
normalizeVector(
vector):number[]
Defined in: src/enhanced/trace.ts:390
Parameters
vector
number[]
Returns
number[]
vectorLength()
vectorLength(
vector):number
Defined in: src/enhanced/trace.ts:396
Parameters
vector
number[]
Returns
number
vectorDistance()
vectorDistance(
v1,v2):number
Defined in: src/enhanced/trace.ts:400
Parameters
v1
number[]
v2
number[]
Returns
number