Hello all. This is a thread for you to discuss all aspects related to modifying the classic games. Here you can find resources useful for developing mods and experimenting.
Basic File Format Documentation
ANM - Animations (Codename 47 - Blood Money) (.MAX, .ANIM etc.)
AMS - Unknown (Contracts)
GMS - Glacier Mission Script (root container, many things) (Silent Assassin - Blood Money)
LOC - Localization Strings (Silent Assassin - Blood Money)
MAT - Materials Database (Silent Assassin - Blood Money)
OCT - Physics Octree (Silent Assassin - Blood Money)
PRM - Models/Objects (Silent Assassin - Blood Money)
PRP - Model/Object Properties (Blood Money)
RMC - Room Collision Tree Data (Silent Assassin - Blood Money)
RMI - Room Inside Tree Data (Silent Assassin - Blood Money)
SGD - Static Game Level Data (Blood Money)
SGP - Sound Graph Data (Silent Assassin - Blood Money)
SND - Sounds (Silent Assassin - Blood Money)
SPK - Game Archive (lots of data and 3D stuff) (Codename 47)
PAL - Color palette (Codename 47)
LGT - Textures (Codename 47)
DXT - Texture Data (Codename 47)
SDL - Scripts (Codename 47)
SUP - Unknown (Silent Assassin - Blood Money)
TEX - Textures (Silent Assassin - Blood Money)
ZGF - Geom Files Data (Silent Assassin - Blood Money)
RESOURCES
GitHub - pavledev/GlacierTEXEditor
The new and improved Glacier TEX Editor developed by pavle. You can edit game textures from Silent Assassin, Contracts and Blood Money using this tool.
ReGlacier · GitHub
ReGlacier/ReHitman, reverse engineering the Glacier engine. I’m not exactly sure how to sum this up while doing it justice. Take a look at the roadmap yourself. The amount of developments and discoveries made is incredible to say the least. They have even more data if you look around in the Discord server.
A Blood Money model importing tool does exist, however I am refraining from linking it here as of right now. I have seen it used successfully, a mod has even been made out of it, but it triggers an alarming amount of virus warnings.
Feel free to ask if you are curious about anything.
A few things to know about Glacier TEX Editor and some pointers.
A texture you have edited and intend to import back in must be the same resolution as the original.
The textures will have to be of the same file type it was when you exported it. This goes beyond standard extensions. DDS image files can be DXT1, DXT3 etc. It must be exactly the same as the original. The editor will display all the information.
If you are having trouble using or understanding the TEX editor, please refer to this little guide below.
TEX Editor Instructions
I’m not 100% sure on some of the features of this new editor, but replacing textures in the game is easy.
Start the TEX editor and click on the “change directory” button. Navigate to where your game is installed and enter the SCENES folder. Inside this folder you will see a bunch of separate folders, each one dedicated to different levels in the game. You may enter any of the folders and you will find a selection of .zip files that vary depending on the game.
The .zip for the level itself will be labelled MAIN. Click on main, click open. Now in the TEX editor, select the drop down and select the MAIN zip again (don’t ask). All textures should load, and you can now export/import by right-clicking a texture.
I should add that not all the folders are for levels.
As of recently the .TEX doesn’t get replaced when I save, it is a newly generated file right outside of the folder that the original .TEX is actually in. I’ve had to disassemble and reassemble the .zips for my edits to work. Saving can also be very weird.
So out of curiosity I decided to make Frantz Fuchs do some other stuff than just showering and the best I could do is just copy and paste script of Fritz. Then I came up with “very funny idea” of making Frantz die after he will piss in the restaurant bathroom and edited some code, but whenever I reload scripts Frantz always appears to be t-posing outside of the hotel. Here is the code:
// Walk to pissoir
waitForNifEvent(OBS_PATHFINISHED,TrackLinkObj.WalkToAnimLocation("dummy","1stFloor\Restaurant\DentistPissing"));
// Take a leak
PlayAnimWait("Special11");
PlayAnimWait("Special11");
PlayAnimWait("Special11");
// Piss stop
Msg_InstantDeath;
}
UnknownEvent: {
inheritedHandler();
}
}
}
I’m sure the solution is very simple, but I seem to be unable to find one
The circumstances and parameters under which the script issues the death command (of the same type you’re trying to use) during the sauna sequence are very different from what’s internally going on when the script has him do his rounds across the hotel, basically.
I think you’d have to rework that part a bit to make this work, but I could be wrong. You may also need to add some extra information to the death event. On the topic of C47 modding, full guide is in the works already :)‎ featuring level editing, NPC script editing, localization editing & more.
Any of you know how to get a map model? I tried using an old tool found on XenTaX and using it on Another Life but the model is weird, seems mirrored, missing parts of the map’s geometry and some objects aren’t placed correctly it seems
solution was way simpler than I thought it is. You just gotta copy script of Fritz Fuchs without removing anything and then change the state (gotocasino) to (killed)
Quite an interesting finding. If you will make a clone of 47, that 47 will be fully (almost) controllable and you can have a different loadout for him. He can’t open doors or pick up any items tho. Npcs won’t react to his presence aswell. It is fixable with some script edits tho im sure. I’m interested if we can make it so second 47 has different movement settings so we can make kind of offline splitscreen coop or even more
Oh-- apparently this program can open .lgt files, among other hitman files, thought this would be useful as this is the only program i can find that can do this.