ZeroUtil Blog
Long-form guides on the tools we build and the problems they solve. Every article stays focused on what runs in your browser — no cloud uploads, no accounts, no dark patterns.
Featured guides
How to Hear Voice Comms in a FACEIT Demo (CS2)
FACEIT records both teams' voice, but only in one of the two demos a match leaves you. Which file to open, the three FACEIT commands, and the slot bitmask.
All articles
Every Way to Hear FACEIT Demo Voice Comms, Compared
Console commands, a web calculator, CS Demo Manager, a voice extractor and extensions: what each does for FACEIT demo voice and what it leaves to you.
CS2 Demo Ticks: Tick to Time, and demo_gototick
A demo tick over the demo's tick rate is a timestamp. What catches people is which tick rate, which counter the number came from, and where demo_gototick lands.
What Importing a CS2 Crosshair Code Actually Changes
A CS2 crosshair share code writes 21 cl_crosshair variables, truncates a few, and skips your scoped crosshair. Why an imported one can still look off.
SteamID64, STEAM_0 and SteamID3 Share One Account Number
STEAM_0:Y:Z, SteamID3 and SteamID64 all read one 32-bit account number. How Valve's 64-bit layout works, and what it cannot derive: a vanity URL.
Converting Mouse Sensitivity Between Games Is One Division
Every cross-game sensitivity converter runs on one division and seven numbers. Where they come from, and four places the math stops matching how aim feels.
CS2 Crosshair Share Codes: What Those 25 Characters Hold
Twenty-five characters hold eighteen bytes, twenty-one console commands, and forty-one bits that carry nothing at all. Every field, decoded and measured.
How to Hear the Enemy Team's Voice in a CS2 Demo
Whether you can hear the enemy in a CS2 demo depends on what the server recorded, not on your console. Which demos carry it, and the mask for one side.
Why tsconfig.json Allows Comments and package.json Does Not
Both files end in .json. One accepts comments and trailing commas, the other throws. The difference is not the extension - it is which parser reads the file.
How to Compare a Design to Your Build, Pixel by Pixel
Overlay the mockup on the live page and let difference blending find the drift. The method, what each blend mode is for, and what the tools here cost.
The PDF Tools Everyone Should Know
A hands-on walkthrough of the PDF tasks you hit every week: compress, merge, split, convert, OCR, and sign, with steps you can follow right now.
Why You Can't Hear Voice in Your CS2 Demo (Fixes)
Can't hear voice comms in a CS2 or FACEIT demo? The real causes - no voice in MM/Premier demos, unset tv_listen_voice_indices, reset commands - and fixes.
How to Hear Voice Comms in a CS2 Demo
Hear voice comms in a CS2 demo with tv_listen_voice_indices: which demos record voice, how the slot bitmask works, and how to isolate one player or a side.
Password Strength: What Length and Character Sets Buy You
Entropy done honestly, NIST's current 15-character floor, and measured GPU cracking speeds showing the hash function matters more than the extra characters.
Base64 Explained: What It Is, Why It Exists, and When Not to Use It
What Base64 does to your bytes, the three variants that produce most decode failures, and the places it still earns its keep.
Client-Side Image Compression: What Happens in the Browser
The real pipeline behind Canvas, OffscreenCanvas and WebCodecs, which formats a browser will and will not encode, and when you still need a server.
JSON vs JSON5 vs JSONC: What Each Parser Actually Accepts
JSON, JSON5 and JSONC share a file extension but not a definition of valid. Tested against real parsers, including one library that disagrees with itself.
Percentage Points vs Percent: 5 Mistakes That Change the Answer
A rate that falls 1% and one that falls 1 percentage point are ten times apart. That confusion, plus four more that quietly turn a correct number wrong.
Get new tools by email
New tools and the occasional deep-dive, about once a month. No spam, no sharing your address, unsubscribe in one click.