Easy-to-Understand Hexing Tutorial

Alright, I’ve decided to write my own hexing tutorial since I remember learning to hex was a bitch and there weren’t any really good tutorials. This tutorial is based on hexing Counter-Strike: Source skins because those are the only ones anybody really wants.


  1. XVI 32, Hex editor. Download it here.
  2. Any ct_urban skin.
  3. GCFScape. Google it.

Since the ct_urban is the best CS:S character, you’ll get to hex your first ct_urban.

This will not teach you how to hex a skin onto a fingerposable model. Doing so is basically the same, so learn how to do this before you start trying things with a fingerposable model.

Alright, now pay attention because I’m not answering stupid questions. This is being done on a Windows XP so if you’re on a Mac you can find another tutorial.

Extract your ct_urban skin to the Desktop. Open the folder up. There should be at least one file called “ct_urban.vtf”. This is the actual skin that gets applied over the model. If you downloaded a really fancy skin, there can be “ct_urban_glass.vtf”, “ct_urban_normal.vtf”, “ct_urban_glass_spec.vtf”, and “ct_urban_ref.vtf”. That’s the Oakley glasses texture, the normal maps, the specularity on the glasses and something else that really makes no difference if you hex it or not, respectively.

Either way, my ct_urban (Sixtoes’ Woodland Camo) has just two files: (the skin and a normal map)



This is really fucking important so don't mess this part up.

Now, pick any type of name that can represent your skin, and rename the files. TAKE NOTE: These files must keep the same amount of characters.


I renamed it from “ct_urban” to “ct_uwood”, both files. Same amount of characters.

My ct_urban did not include .vmt files. .vmt files tell the game what sort of maps to apply to the skin. If your ct_urban skin did not come with .vmt files, you need to use GCFScape to extract the original ct_urban.vmt files from the counter-strike source shared.gcf file. See another tutorial for gcf extraction.

OK. So you’ve renamed your files so they won’t overwrite the default ct_urban skin. Now you need to edit the .vmt files. Open up your ct_urban.vmt file (should ALWAYS be in the same folder as “ct_urban.vtf”.)



As you can see, I have changed the parts that say “ct_urban” to say “ct_uwood”. IF YOUR FILE DID NOT COME WITH A “CT_URBAN_NORMAL.VTF” FILE DO NOT CHANGE THE “$bumpmap” PART OF THE .VMT FILE.

Save it all and continue to step four, BUT MAKE SURE YOU RENAMED THE .VMT FILE TO HAVE THE SAME NAME AS THE .VTFs.

Alright. Now the materials are taken care of. Time to start fucking with the models.

Extract the ct_urban files using GCFScape. Again, there are other tutorials for using GCFScape, so I won’t explain how to do it. The files are found in: “models/Player/” inside the GCF file.

There should be six (6) files inside. “ct_urban.mdl”, “ct_urban.vvd”, “ct_urban.sw.vtx”, “ct_urban.dx80.vtx”, “ct_urban.dx90.vtx”, ct_urban.phy".

Now, rename all of those files to reflect whatever you renamed the materials files to be. For example, I’ve renamed mine to say “ct_uwood”.


Once you’ve got the files renamed, move to step five.

Open up your hex editor, I use XVI32. From it, go to File > Open, and choose your “ct_urban.mdl” file, which you’ve renamed. You MUST open the .mdl file for this to work.

It will show a bunch of numbers and letters. This won’t mean anything to you, and it doesn’t mean anything to a lot of people, including me.

At the very top of the right-hand section is this:


You see how it says “Player/ct_uwood.mdl”? It used to say “Player/ct_urban.mdl”, and I changed it. Do the same. This part basically tells the computer what the file’s name is.

Now, scroll all the way down to the bottom of the right hand section.


You see where it says “ACT_DIERAGDOLL”? Look at the “ct_udess” next to it (again, changed from “ct_urban”.) Do the same. (I took a screenshot of another file, instead of ct_uwood. It doesn’t really matter).

Save the file.

Time to put your files into the gmod9/garrysmod folder.

Open up your gmod9 or garrysmod (for GMod9 and GMod10, respectively) folder.

For the materials (.vtf, .vmt files), place them into “materials/models/Player/ct_urban”. If the folders aren’t there, create them.

For the models, (.mdl, .vtx, .sw.vtx, .dx80.vtx, .dx90.vtx, .phy files), place them into “models/Player/”. Again, if the folders aren’t there, create them.

For GMod9, you’ll have to write a spawn code to be placed in any list under “gmod9/settings/menu_props”. Mine is:

"#Woodland CT" "models/Player/ct_uwood.mdl"

For GMod10, navigate to “models/Player” and add “ct_uwood.mdl” to any of your spawn lists.

That’s it. If anyone has any non-retarded questions, feel free to ask. :slight_smile:

I found my hexing tutorial easy.

In retrospect, yes, but when you’re a dumbass like I was all tutorials are difficult. :stuck_out_tongue:

Lol “Easy-to-Understand Hexing Tutorial”

“Hmm…sounds good.”

First thing I see is a shit load of writing

“O SHI-”

Nah, this is gonna be helpful. I’m a total noob at hexing so this should be handy :smiley:



i don’t understand D:

It’s easy,but it’s hard,when you fuck something,like delete on word in hex file :).

i know but wheres that old easy hex program?



There is none.

there is one! i had it in gmod 9

XVI32 is the best out there, I think.

Nice tut Colosseum, not much use to me though seen as I already know how to hex :smiley:

XVI32 is good, but I prefer to use Hex Workshop.

Even mine is better :xd:

I bet.


Yeah, I learned off yours, but I wanted to write one for CS:S skins. :slight_smile:

when i done my hexed breen he’s crash the game

There is a little private thingie that randomly makes a hex for the given mdl file. I have it.

Altough this must help alot to someboy :slight_smile:

Before i read all of this i must say this sounds like it’s for hexing ragdolls. I want a custom Leet playermodel but i don’t want it to overwrite my old t_leet. Does this do that too?

To answer your question, yeah that’s what hexing does. It creates a new model out of an existing one so that it will not overwrite the existing one. On a side note, three year bump.

Yes, but i’m not entirely sure how you set up custom playermodels for CS:S.

However if your wanting to hex a GMod playermodel all you need to do (after hexing it) is make its own lua file for it to be a playermodel of its own (as in not the same as the other one).

if ( SERVER ) then
player_manager.AddValidModel( "(modelname)", "models/path/(yourmodelname).mdl" );

AddCSLuaFile( 'assassin.lua' ) ;

list.Set( "PlayerOptionsModel", "(modelname)", "models/(path)/(modelname).mdl" );

Thats the basic code, the (yourmodelname) bit is replaces with the name of the .mdl file (and the path must be the folders to mdl file is in) and the (modelname) bit is what you want it to be called in the playermodel selection window.

Hope that helps :slight_smile:

That’s what hexing is, read it before you post.

I seem to have hexed a ghost :confused:

I can spawn my new ragdoll, but he has no skin. He’s not the usual pink and black squared, he’s just see through.

Any idea what I’ve messed up?