Skip to content

TE_BEAMRING

wootguy edited this page Nov 29, 2025 · 4 revisions

A circular beam drawn between two moving entities. Unlike the other circular beam effects, this one can be rotated to different orientations.

Parameters

Type Name Description
CBaseEntity@ start Entity target for the beam to follow (start)
CBaseEntity@ end Entity target for the beam to follow (end)
string sprite Sprite used to draw the beam
uint8 startFrame Starting frame for the beam sprite
uint8 frameRate Frame rate of the beam sprite (FPS * 0.1)
uint8 life Time to display the beam (seconds * 0.1)
uint8 width Width of the beam / height of the torus
uint8 noise Noise amplitude of the beam (units * 0.1)
Color c Color of the beam sprite
uint8 scrollSpeed Scroll speed of the beam sprite

NetworkMessage Function

void te_beamring(CBaseEntity@ start, CBaseEntity@ end, 
    string sprite="sprites/laserbeam.spr", uint8 startFrame=0, 
    uint8 frameRate=16, uint8 life=8, uint8 width=8, uint8 noise=0, 
    Color c=PURPLE, uint8 scrollSpeed=0, 
    NetworkMessageDest msgType=MSG_BROADCAST, edict_t@ dest=null)
{
    NetworkMessage m(msgType, NetworkMessages::SVC_TEMPENTITY, dest);
    m.WriteByte(TE_BEAMRING);
    m.WriteShort(start.entindex());
    m.WriteShort(end.entindex());
    m.WriteShort(g_EngineFuncs.ModelIndex(sprite));
    m.WriteByte(startFrame);
    m.WriteByte(frameRate);
    m.WriteByte(life);
    m.WriteByte(width);
    m.WriteByte(noise);
    m.WriteByte(c.r);
    m.WriteByte(c.g);
    m.WriteByte(c.b);
    m.WriteByte(c.a);
    m.WriteByte(scrollSpeed);
    m.End();
}

Clone this wiki locally