Skip to content

Constants#

Defined in Types.hpp. Named constants for bones, keys, plugin flags, and hero IDs.

Bone IDs#

xenon::Bone — actual game skeleton indices for Entity::GetBonePos().

Constant Value Body Part
Head 17 Head
Neck 16 Neck
Chest 2 Chest
Body 81 Upper body
BodyBot 82 Lower body
Pelvis 3 Pelvis center
LPelvis 85 Left pelvis
RPelvis 95 Right pelvis
LShoulder 49 Left shoulder
RShoulder 54 Right shoulder
LElbow 14 Left elbow
RElbow 51 Right elbow
LHand 41 Left hand
RHand 71 Right hand
LShank 87 Left shin
RShank 97 Right shin
LAnkle 86 Left ankle
RAnkle 96 Right ankle
LKnee 89 Left knee
RKnee 99 Right knee
LFoot 90 Left foot
RFoot 100 Right foot

Hero-specific overrides:

Constant Value Description
BastionLHand 45 Bastion left hand
BastionRHand 55 Bastion right hand
Vector3 head = entity.GetBonePos(Bone::Head);
Vector3 rHand = entity.GetBonePos(Bone::RHand);

Body Slots#

xenon::BodySlot — body region classification indices used in Hitbox::bodySlot and returned by AimHitsHitbox().

Constant Value Region
Head 0 Head
Neck 1 Neck
Body 2 Upper torso
BodyBot 3 Lower torso
Pelvis 4 Pelvis center
LPelvis 5 Left pelvis
RPelvis 6 Right pelvis
Chest 7 Chest
LShoulder 8 Left shoulder
RShoulder 9 Right shoulder
LElbow 10 Left elbow
RElbow 11 Right elbow
LAnkle 12 Left ankle
RAnkle 13 Right ankle
LShank 14 Left shin
RShank 15 Right shin
LHand 16 Left hand
RHand 17 Right hand
RKnee 18 Right knee
LKnee 19 Left knee
RFoot 20 Right foot
LFoot 21 Left foot
Count 22 Total count
Unclassified -1 Unknown region
int slot = AimHitsHitbox(target.Index());
if (slot == BodySlot::Head)
    Log("Aiming at head");

VK Keys#

xenon::VK — virtual key codes for IsKeyDown() and ImGui::Hotkey().

Mouse Buttons#

Constant Value Key
LButton 0x01 Left mouse button
RButton 0x02 Right mouse button
MButton 0x04 Middle mouse button
XButton1 0x05 Mouse button 4
XButton2 0x06 Mouse button 5

Modifier Keys#

Constant Value Key
Shift 0x10 Shift
Control 0x11 Ctrl
Alt 0x12 Alt
Space 0x20 Spacebar
Constant Value Key
Insert 0x2D Insert
Delete 0x2E Delete

Letter Keys#

Constant Value Key
A - Z 0x41 - 0x5A A through Z

Function Keys#

Constant Value Key
F1 - F12 0x70 - 0x7B F1 through F12

Game Buttons#

xenon::GameButton — game-level button bits for PressGameButton() and ReleaseGameButton(). These inject input at the game level (not OS-level key events).

Constant Value Action
LMouse 0x1 Primary fire
RMouse 0x2 Secondary fire / scope
ScopedShoot 0x3 Scoped shoot
Interact 0x4 Interact
Skill1 0x8 Ability 1 (Shift)
Skill2 0x10 Ability 2 (E)
Ult 0x20 Ultimate (Q)
Jump 0x40 Jump
Crouch 0x80 Crouch
Reload 0x400 Reload
Melee 0x800 Melee
PressGameButton(GameButton::Jump);
// ... next frame ...
ReleaseGameButton(GameButton::Jump);

Note

These are game-level button bits, not OS virtual key codes. Use VK constants with IsKeyDown() for OS-level key queries.


Target Flags#

xenon::TargetFlags — bitmask flags for FindBestTarget() and FindBestTargetInFov().

Constant Value Description
Enemy 0x01 Only enemies
Team 0x02 Only teammates
Visible 0x04 Only visible entities
LowHP 0x08 Prioritize low health

Combine with bitwise OR:

Entity target = FindBestTargetInFov(100.f, Bone::Head,
    TargetFlags::Enemy | TargetFlags::Visible);

Outline Types#

xenon::OutlineType — outline type constants for Entity::SetOutline().

Constant Value Description
Visible 1 Outline when entity is in line of sight
Occluded 2 Outline when entity is behind walls (wallhack)

Plugin Flags#

xenon::PluginFlags — bitflags for XENON_PLUGIN_INFO.

Constant Value Description
None 0 No capabilities
HasOverlay 1 << 0 Plugin has an on_render overlay
HasMenu 1 << 1 Plugin has an on_menu settings UI
HeroSpecific 1 << 2 Plugin is for a specific hero only

Combine with bitwise OR:

PluginFlags::HasOverlay | PluginFlags::HasMenu
PluginFlags::HasOverlay | PluginFlags::HasMenu | PluginFlags::HeroSpecific

Skill IDs#

xenon::SkillId — lookup IDs for GetLookupSkill().

Constant Value Description
UltCharge 0x00F8 Ultimate charge percentage
SojournCharge 0x00F6 Sojourn railgun charge
IllariCharge 0x0651 Illari solar rifle charge
HanzoCharge 0x00C9 Hanzo bow draw charge
SombraAmmo 0x0C41 Sombra ammo count
float charge = GetLookupSkill(SkillId::SojournCharge);

Note

Only IDs listed above are currently cached. Unknown IDs return 0.0.


Hero State#

xenon::HeroState — bitmask flags returned by GetHeroState().

Constant Value Description
Ulting 0x1 Ultimate ability is active
Reloading 0x2 Currently reloading
uint32_t state = GetHeroState();
bool isUlting = (state & HeroState::Ulting) != 0;
bool isReloading = (state & HeroState::Reloading) != 0;

Hero IDs#

xenon::HeroId — hero pool IDs for hero-specific plugins.

Constant Hero
Reaper Reaper
Tracer Tracer
Mercy Mercy
Hanzo Hanzo
Torbjorn Torbjorn
Reinhardt Reinhardt
Pharah Pharah
Winston Winston
Widowmaker Widowmaker
Bastion Bastion
Symmetra Symmetra
Zenyatta Zenyatta
Genji Genji
Roadhog Roadhog
Cassidy Cassidy
Junkrat Junkrat
Zarya Zarya
Soldier76 Soldier: 76
Lucio Lucio
Dva D.Va
Mei Mei
Ana Ana
Sombra Sombra
Orisa Orisa
Doomfist Doomfist
Moira Moira
Brigitte Brigitte
WreckingBall Wrecking Ball
Ashe Ashe
Baptiste Baptiste
Sigma Sigma
Echo Echo
Kiriko Kiriko
Sojourn Sojourn
JunkerQueen Junker Queen
Ramattra Ramattra
Lifeweaver Lifeweaver
Illari Illari
Mauga Mauga
Venture Venture
Juno Juno
Hazard Hazard
Freja Freja
Wuyang Wuyang
Vendetta Vendetta
Emre Emre
Domina Domina
Anran Anran
Mizuki Mizuki
JetpackCat Jetpack Cat

Training bots:

Constant Description
TrainingBot1 Training bot variant 1
TrainingBot2 Training bot variant 2
TrainingBot3 Training bot variant 3
TrainingBot4 Training bot variant 4
// Hero-specific plugin
XENON_PLUGIN_INFO("widow_aim", "Widow Aim", "Me", "Aim for Widow", "1.0",
    HeroId::Widowmaker,
    PluginFlags::HasOverlay | PluginFlags::HeroSpecific)