Skip to content

Development

T342 edited this page Dec 18, 2025 · 3 revisions

Hello there! These pages are for the development and current knowledge of how to decompile, read, and assemble different things such as the .mdl files.
Thankfully, VALVe has documented these in great detail (at least the old ones) so that we are able to try and do what we can.

This project is by no means small in any sort. So extensive knowledge of anything related to these may be necessary.

Warning

These pages are written along-as-we-go. Meaning, that eventually another idea may come sooner or later in different parts.
This may also result in parts of this aligning with old ideas and knowledge that was made obvious sooner or later.

The project

Source toSource2 reimporter will be a large project, there is no doubt about that.
The current goal is to make porting models from Source1 to Source2 as simple and easy as possible with as little external steps as possible.
(external steps being, using ModelDoc for anything other then compiling the model, using other modding tools, ext)

Its target use is for those wanting to use models in Source 2 filmmaker, but cant since the model library is stuck with the original Source Filmmaker.
Making it easy to use, then also hopefully user friendly to those not experienced with Source modding may make this a nice tool.
Then also, it will allow those who want to use S2FM more freely, since they now can easily port models over.

Potential issues

There are a lot of pointers, different values for things that need to be re-translated, and so much more.
Then also, there are different versions of MDL that need to be detected and sent to the correct script/system that will CORRECTLY read it.
For example: there is MDL44 for Team fortress 2, and MDL 49 for Titanfall extensions (take this with a grain of salt though)

The system itself in mind

How is the system itself supposed to be translating the files from Source1 to Source2?\ Currently, the idea is that we can just directly transfer it into Source2 format. (S2 format being .vtex, .vmdl, and others)

Well, the current idea in mind is that we take the data from the files, and find the closest pointer.
Though if a pointer needs to be transformed, then we need to add extra steps that can re-create the value into something that will work with the new pointer.

Clone this wiki locally