WELCOME TO INFOCHEATS.NET

INFOCHEATS is a community-driven platform focused on free game cheats, cheat development, and verified commercial software for a wide range of popular games. We provide a large collection of free cheats shared by the community. All public releases are checked for malicious code to reduce the risk of viruses, malware, or unwanted software before users interact with them.

Alongside free content, INFOCHEATS hosts an active marketplace with many independent sellers offering commercial cheats. Each product is discussed openly, with user feedback, reviews, and real usage experience available to help you make informed decisions before purchasing.

Whether you are looking for free cheats, exploring paid solutions, comparing sellers, or studying how cheats are developed and tested, INFOCHEATS brings everything together in one place — transparently and community-driven.

Guide CS2 Internal Chams Glitching — Hook_DrawObject and CMaterialSystem2 Issues

byte_corvus

Expert
Expert
Expert
Expert
Status
Offline
Joined
Mar 3, 2026
Messages
779
Reaction score
457
Still seeing people struggle with internal chams in CS2, specifically when messing with the SceneObject descriptors. Someone dropped this logic recently claiming it's glitching out or completely failing to apply the VMAT overrides. If you are hooking DrawObject and your chams look like a flickering mess or don't show up at all, you're likely hitting a wall with how the game handles mesh primitives or KV3 encoding.

The source uses a standard material swap within the DrawObject detour, trying to force csgo_unlitgeneric.vfx onto the player pawns.

Technical Breakdown
  1. Material Creation: The logic uses
    Code:
    CMaterialSystem2::CreateMaterial
    with raw KV3 strings.
  2. Hooking: It detours Hook_DrawObject to intercept the rendering of animatable scene objects.
  3. State Swapping: It attempts to save original materials, apply the cham material, call the original function, and then restore the state to prevent global material corruption.

Code:
static const char s_vmat_flat_vis[] = R"(<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d}
format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
    shader = \"csgo_unlitgeneric.vfx\"
    g_tColor = resource:\"materials/dev/primary_white_color_tga_21186c76.vtex\"
    g_tNormal = resource:\"materials/default/default_normal_tga_7652cb.vtex\"
    g_tRoughness = resource:\"materials/default/default_normal_tga_b3f4ec4c.vtex\"
    g_tAmbientOcclusion = resource:\"materials/default/default_normal_tga_b3f4ec4c.vtex\"
    g_tMetalness = resource:\"materials/default/default_normal_tga_b3f4ec4c.vtex\"
    F_RENDER_BACKFACES = 1
    F_DISABLE_Z_BUFFERING = 0
    F_PAINT_VERTEX_COLORS = 1
    F_TRANSLUCENT = 1
    F_BLEND_MODE = 1
    g_vColorTint = [1.0, 1.0, 1.0, 1.0]
})";

The Problem Area
The logic here follows the Andromeda-style base. If it's glitching, check your nDataCount handling. The loop caps at 32 primitives, which might be insufficient for certain models or cause state mismatches if the primitive count exceeds your local buffer.

Code:
auto* pPrims = reinterpret_cast<CMeshPrimitive_t*>( pMaterialData );
int swapN = ( nDataCount < 32 ) ? nDataCount : 32;

// Swapping logic here...

Also, verify your patterns for CreateMaterial. Valve has been tweaking the material system headers. If your KV3ID is junk or the KeyValues3 structure is misaligned, CreateMaterial will return a null pointer or trash the heap.

Safety & Detection Notes
Internal chams are always high-visibility for VAC Live / Trust Factor if you aren't careful with your hooks. While DrawObject isn't as heavily policed as some engine-side VMTs, manual code modification in the .text section will get you flagged. Use a clean trampoline or a hardware-level hook if you're serious about account longevity.

Anyone else had to fix the primitive array count for certain player skins in the latest update?
 
Top