RijiN GMod — Development Update
Late July → Early August 2026
Loader builds roughly v482 → v668 · Actively maintained P2C
Late July → Early August 2026
Loader builds roughly v482 → v668 · Actively maintained P2C
Why this post exists
RijiN is not a dead paste with a storefront. The last stretch of commits is almost entirely real gameplay fixes, AC-aware undetection work, FPS, and customer privacy — not fluff. If something breaks on a modern server (ZS, TFA bases, LSAC, screengrab ACs), we dig into the wire / Lua / render path and ship a loader build.
Current shipping target for this write-up: loader v668 (includes the second-connect crash fix). Pull a fresh loader.exe from Download after purchase; do not redistribute builds.
1. Stability & crash hardening
- Second-server-connect AV fixed (v668) — Reconnecting through Server Browser could hard-crash with
0xC0000005atRijiN+0x8A568(read at-1). Root cause: a cachedEntity:GetTableLua reference wasReferenceFree'd through a destroyedILuaInterfaceafter GMod tore the client Lua state down. We now drop the cache on interface change / disconnect / begin-connect / spawn, and never free through a dead pointer. - Always-on crash MessageBox (v618) — Hard faults show a RijiN dialog even if the crash-dumps toggle was off, so customers can report with a real fault code.
- Refuse double injection (v484) — Second inject is rejected; logs which DLL is actually loaded so support tickets are not guesswork.
- Chams / AFK render safety (v652) — Keep chams Begin/EndRender paired so idle / decal edge cases do not take the process down.
- ZS / Lua paths now gate on
is_lua_ready()(signon full), not bareis_in_game(), so half-ready create-game / reconnect states do not poke GLua early.
2. Aimbot — hit what you asked for
A long stretch of this work was “the menu said Head, the bullet went Chest.” That is fixed carefully, not with another silent fallback.
- No silent hitgroup substitution (v496 / v499) — Missing head on a frame no longer quietly returns chest while still labeling the shot as head. Substitution is only allowed on an explicit last-resort pass, and it reports honestly.
- Priority hitbox honored across poses (v497) — Priority selection is respected through pose / bone paths instead of being overridden by opportunistic stand-ins.
- ZS head placement + honest above-target LOS (v655) — Steep below/above shots keep priority head off jaw/crown nonsense; skull multipoints so locks match real bullet paths. Fake “rail pass-through” shortcuts removed.
- ZS pile-up / LOS stalls (v652) — Shoot origin unstuck from solid volumes; stacked enemies handled for visibility; FOV scans crowd-limited so dense ZS rounds do not freeze the aim pipeline.
- Aimbot continuity (v643) — Autoshoot / attack stay alive when prediction misses or Lua auto-pistol would strip
IN_ATTACK. - Team filter correctness (v618) — Prefer
CPlayerResource/ Lua team over stale entity team so friend/enemy filtering matches the server.
3. Backtrack & fakeping — server-truth targeting
- Target the tick the server actually rewinds to (v493+) — Source’s lag-comp clock is not “any old history pose.” We aim at the tick the server will use, not a decorative record.
- Choose the record; do not accept the first one (v495) — Candidate selection is deliberate; fakeping shifts the center of the reachable band instead of doing nothing.
- Tick rewrite tooling (v495) — Optional “Tick rewrite (all ticks)” writes
cmd->tick_countsoStartLagCompensationstops on the chosen record. Toggleable because LSAC watches tick manipulation. - Cap rewind to server + stored history (v487) — No requesting ages the server will not honor or we cannot store.
- Clear history on network epoch change (v486) — Stale bones from a previous map / connect do not get reused.
- Fakeping acknowledgement depth held between datagrams (v490) — Depth stays consistent so backtrack geometry does not jitter every packet.
- Rapid-fire no longer nukes fakeping / backtrack state (v488–v489) — Disabling rapid fire releases shared state cleanly without wiping lag-comp setup.
- Bone provenance logging per backtrack shot (v485) — for internal diagnosis when a shot “should have landed.”
4. Nospread / recoil — real SWEP families
This is where most P2Cs fake it. We rebuilt inverses from verified Lua + prediction seed / curtime, then fixed the wire so the correction actually reaches FireBullets.
- TFA / TacRP / CW / FAS Lua SWEP nospread (v635+) — Family-specific inverses. TacRP can still drift at extreme range; that is called out honestly, not marketed as perfect.
- TFA mouse1 double-apply fixed (v667) — Holding attack ran the inverse pre-pred and post-pred → double correction. Manual fire and aimbot now share one correct path.
- Bake-dir / Context silent aim stays on the wire (v667) — TFA-style GetAimAngle / bake-dir corrections were getting wiped after Context restore. Corrected angles are re-stamped so the server sees what we computed.
- ZS nospread regressions after Lua rawget sweep (v661) —
GetTablelives on Entity meta, not Weapon meta. Base methods resolve throughweapons.Get. Angle/Vector use userdata floats — never raw table ops on userdata (that path corrupted memory historically). - Auto-pistol + aimbot autoshoot (v665 / v667) — Semi-autos fire again under autoshoot: click-refire when
Primary.Automatic == false; unknown (-1) still holds so rifles do not tap-fire. - Nospread FPS gates (v643+) — Stop probing ZS/TFA Lua every CreateMove on unrelated guns.
- No visual recoil FPS (v666–v667) — Cached
Entity:GetTable; TFA/CW/FAS NVR is OverrideView angles-only (no per-tick FindMetaTable / punch wipe / shadow spring tax). M9K ConVar pointer cached. - ZS burst-primary prediction skips (v652) — e.g. FAL rifle-auto that only queues burst Think — predicting it leaked DT and poisoned the next real shot.
5. Movement
- Autostrafe under Context silent aim (v495 / v497) — Context was capturing the strafe wish yaw as “look to restore,” so WASD directional strafe died on Context while Serverside/Clientside still worked. Wish is carried independently; finalize always applies so W/A/S/D offsets are real.
- Wish direction no longer rounded into a brake (v492) — Directional control stays smooth instead of dumping speed.
6. Visuals, FPS, anti-screengrab
- Glow / chams cost cut (v561) — Glow no longer walks the full entity list three times and composites with eight fullscreen quads. One candidate list, cheaper stencil, skip entities chams already drew, four-offset composite. Players are not drawn twice in the DPSSE chams loop.
- Player resource cache —
get_player_resourceno longerstrcmps the entity list every net update. - FOV circle restored in Present (v551)
- Anti-screengrab overhaul
render.Captureonly counts when it targets the screen — icon/thumbnail addons no longer spam warnings / get spoofed frames (v561).- Screengrab toast restored via Present-flushed pending notify (v616) — capture runs in PostRender before Present.
- ReadPixels covered; sticky COPYRT false positives reduced.
- Present overlays forced onto the swapchain so LibreCIA GrabRT stays clean (v612).
- Loader desktop screenshots removed; GMod capture path routed through
dxgidmp(v d6d88e2 era). - Low-end anti-screengrab toggle — full-scene refresh is optional because it costs FPS.
- Neck hitbox removed — HL2 has no real
HITGROUP_NECK; the synthetic band was shoulder-height and missed constantly.
7. Loader, privacy, brand
- We do not harvest Steam accounts (v0624337) — touching customer Steam accounts is bad business. Period.
- Loader desktop screenshots removed — no Error-37 style in-process D3D9 “send us your desktop” probe.
- steamid_list plumbing purged from loader_server — no RLM steamid forwarding / caches / stats hooks; wire padding kept only for packet size compatibility.
- Modules encrypted at rest; license / tamper handling hardened; cloud config slots restored (v551 / v498 era).
- Brand cutover: secretservice.club → rijin.gq (v498).
- Production shipping path with FPS gates and Themida/Oreans tooling restored for local protect builds.
8. Undetection / LSAC-facing notes (high level)
We will not publish a full bypass cookbook in public. Internally this window included:
- Client-side LSAC viewangle / movement / aim-related hook work kept on the client only — we do not hook
server.dll(listen-host false confidence). - Lua field access moved to rawget / Entity:GetTable / weapons.Get patterns so hookable
__index/__newindexpaths are not the default. - Tick rewrite is a toggle because tick-count checks exist on serious ACs.
- Screengrab / GrabRT paths cleaned so overlays do not paint into AC capture RTs.
9. Commit window (recent shipping trail)
Rough loader / changelog trail from this development block (newest first):
Code:
v668 Second-connect Lua GetTable ref AV + ZS is_lua_ready gates
v667 TFA nospread wire / mouse1 double-apply / NVR FPS / auto-pistol
v661 Lua rawget sweep + ZS nospread regression fixes (documented)
v655 ZS aimbot head placement + honest above-target LOS
v652 ZS LOS/pile-up stalls, burst-pred skips, chams AFK safety
v643 Aimbot continuity + nospread FPS gates
v635 TFA / TacRP / CW / FAS Lua SWEP nospread
v618 Team filter + always-on crash MessageBox
v616 Screengrab toast via Present flush
v612 Present overlays off GrabRT; privacy (no Steam harvest)
v561 Visual path cost cut; capture false-positive fix; neck hitbox gone
v551 Cloud configs + FOV circle; module harden
v498 Brand → rijin.gq
v497–v482 Autostrafe/Context, hitbox honesty, backtrack tick truth,
fakeping depth, rapid-fire state, m_flNextAttack, ZS raw writes
That is dozens of focused fixes in a short window — not a single “changelog.md marketing dump.”
10. What we want from you
- Download a fresh loader after major bumps (this one: aim for v668+).
- Report crashes with the RijiN fault dialog / dump path (
%USERPROFILE%\Documents\rijinX64\crash_dumps\). - Report detection privately via Support — include AC, server, time, build.
- Do not redistribute
loader.exe, private DLLs, or configs. Redistribution is a ban.
Still WIP (said plainly)
Menu polish and some rage tooling remain WIP. Priority order for this P2C is: stability → correct bullets → FPS → undetection → UI chrome.
— RijiN GMod · We ship fixes, not excuses.