Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE]

Newbie Spellweaver
Joined
Feb 19, 2025
Messages
8
Reaction score
15
Hi everyone,
A few months ago I announced that I had started recreating the game 100% from scratch in the Unity engine, reusing only the game's models.

My workflow for replicating Talisman's graphics without wasting too much time was based on "ripping" the client models; basically, it involves intercepting the rendering of what I see with the client open, taking it to Blender, and rearranging bugs, cutting out models, and getting it ready to use in the engine. In a way, it was faster than remodeling everything from scratch.
Code:
Extract > Blender adjustments > Unity Engine
(It works well, but it still made/makes me waste a lot of time in Blender.)
[Back then, I posted my progress here.]

The creator of a server I play on (I won’t mention the name to preserve his DM) posted in his group that he managed to convert EVA into OBJ. He cannot share it because it is his work, which I understand and respect.
Here is a sample from him:




With only what I saw in 2 hours, I created my own version with extremely superficial knowledge of the existing private files [.EVA .EVS .EVM .DDS and other stuffs] (even though I am rebuilding the game in Unity, the only thing necessary to know is how the gameplay works in order to replicate the idea inside the engine).

Inspired by what I saw in those videos about EVA to OBJ, here is what I managed to achieve:
I have been reverse engineering Talisman Online model files with help from **OpenAI Codex** as a coding assistant. I wanted to share the current state because I think it may be useful for other people working on `.eva`, `.evs`, and related files.
My progress:
- yes, `.eva` can already be converted to `OBJ`
- weapons are working well now
- at least one mount exports in a visually coherent way
- humanoid monsters and player/class-style actors are still not solved

Current reading of the formats
My current operational reading is:

- `.eva` = actor/container
- `.evs` = skinned mesh / geometry
- `.evm` = material / texture remap
- `EV_EffectEmitter` = effect textures, not the main mesh texture

Results that already work
1. Weapons
I already have a Python script that converts weapon `.eva` files to:
- `OBJ`
- `MTL`
- extracted texture as `PNG`
Validated example:
- `iwfb05.eva`
This case opens with the texture applied correctly.
1773358477731 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums


2. Mounts
I also got a good result with:
- `ride021_1.eva`
1773362019327 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums

At the moment, this is my best non-weapon result. It exports to a visually coherent textured `OBJ`.

⚠️ Partial or failed results:
Monsters with "Humanoid" aspects and other versions.
Some tested examples:
- `mon014_e.evs`
- `mon120.eva`
- `mon110.eva`
- `ride001.eva`
- `mon191.eva`
The common problem is that the texture mapping can look right, but the geometry comes out:
- collapsed
- stretched
- twisted
- or semantically wrong even when local triangle metrics look good
So the main blocker now seems to be correct decoding of `EV_SkelSkin`, especially for:
- humanoids
- some monsters
- multi-part actors

1773362367605 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums


Important extra finding
Some `.eva` files contain **multiple `EV_SkelSkin` sections in the same actor**.
For example:
- `pf_waiting.eva`
- `mon191.eva`

So exporting only the first section is not enough in some cases. Because of that, I wrote a second exporter that combines multiple internal skinned sections into one `OBJ`.

Technical hypotheses for the broken cases
At this point I think the remaining problem is one or more of these:
- different vertex stride/layout by family
- joint remap or bone palette
- bind pose / inverse bind handling
- local vs global transform mismatch
- incomplete combination between `.eva` and external `.evs`

Translating: I do not have in-depth knowledge about the game files, I do not know if a .EVA alone already has all the information included or if it pulls, reuses, or inherits some things from already existing monsters and I may have to find everything that that EVA pulls or inherits to gather everything and make it make sense, I am still kind of lost in this.
Attached package
I am attaching an organized ZIP so anyone can download it and understand the current state quickly:
- ` `
This package includes:
- Python scripts
- notes and handoff docs
- initial setup instructions
- exported examples
- a short AI-friendly context pack for Codex, Claude Code, or another coding agent

Contents:

- `docs/`
setup, handoff notes, exporter notes, and the forum post draft
- `scripts/`
Python exporters and research tools
- `examples/`
working, partial, and failing export examples
- `research/`
asset census and auto-round summary


Best entry point:

1. docs/SETUP.md
2. docs/AI_START_HERE.md
3. docs/reverse_engineering_handoff.md


Main examples:


- weapon success: `examples/success/iwfb05/`
- mount success: `examples/success/ride021_1/`
- partial mount: `examples/partial/ride001/`
- useful broken case: `examples/failure/mon110/`

👉Minimum commands👈
Weapon:

python scripts/eva_to_obj.py model/actor/iwfb05.eva

Working mount:
python scripts/composite_actor_to_obj.py model/actor/ride021_1.eva

Counter example mount:
python scripts/composite_actor_to_obj.py model/actor/ride001.eva
python scripts/composite_actor_to_obj.py model/actor/ride001.eva --pose-mode bind

Monster census:
python scripts/monster_research.py census
python scripts/monster_research.py auto

Manual hypothesis round:
python scripts/monster_research.py run model/actor/mon110.eva


Initial setup to reproduce the environment
Base tools:
1. VS Code

-
2. Python 3
-
3. Node.js LTS
-
Current required Python dependency:
- `Pillow`
Official links used for Codex setup:
- Codex overview:
- Codex docs:
- Codex CLI login:
Windows note:
- I built this workspace on Windows PowerShell
- the official Codex docs also provide a WSL path for better performance on Windows when needed

Recommended AI workflow
For anyone continuing this with an AI, this is the workflow I am using:
1. ask the AI to read `AI_START_HERE.md`
2. ask for a plan before any edits
3. review the plan
4. only then ask it to implement
Suggested short prompt:
Read AI_START_HERE.md and reverse_engineering_handoff.md first.
Summarize the current state, propose a step-by-step plan, and wait for approval before editing files.

What I would like community help with:
If someone is already converting everything successfully, or the vast majority, they could inform the path they are following, tips, etc. In any case, if I invest a few days it will be inevitable and I will eventually manage to do everything successfully.
If anyone knows details about `EV_SkelSkin`, especially any of these points, that would help a lot:
- local joint palette / bone map
- joint bias or remap rules
- bind pose / inverse bind data
- family-specific layout differences
- whether some actors require extra files beyond the obvious `.eva/.evs/.evm`
Status summary:
- weapons: working
- at least one mount: working
- humanoid monsters: not yet
- animation: still experimental
- main blocker: `EV_SkelSkin`

⚠️ ATTENTION, you need to run this inside the folder of a clean client.
 

Attachments

Hi everyone,
A few months ago I announced that I had started recreating the game 100% from scratch in the Unity engine, reusing only the game's models.

My workflow for replicating Talisman's graphics without wasting too much time was based on "ripping" the client models; basically, it involves intercepting the rendering of what I see with the client open, taking it to Blender, and rearranging bugs, cutting out models, and getting it ready to use in the engine. In a way, it was faster than remodeling everything from scratch.
Code:
Extract > Blender adjustments > Unity Engine
(It works well, but it still made/makes me waste a lot of time in Blender.)
[Back then, I posted my progress here.]

The creator of a server I play on (I won’t mention the name to preserve his DM) posted in his group that he managed to convert EVA into OBJ. He cannot share it because it is his work, which I understand and respect.
Here is a sample from him:




With only what I saw in 2 hours, I created my own version with extremely superficial knowledge of the existing private files [.EVA .EVS .EVM .DDS and other stuffs] (even though I am rebuilding the game in Unity, the only thing necessary to know is how the gameplay works in order to replicate the idea inside the engine).

Inspired by what I saw in those videos about EVA to OBJ, here is what I managed to achieve:
I have been reverse engineering Talisman Online model files with help from **OpenAI Codex** as a coding assistant. I wanted to share the current state because I think it may be useful for other people working on `.eva`, `.evs`, and related files.
My progress:
- yes, `.eva` can already be converted to `OBJ`
- weapons are working well now
- at least one mount exports in a visually coherent way
- humanoid monsters and player/class-style actors are still not solved

Current reading of the formats
My current operational reading is:

- `.eva` = actor/container
- `.evs` = skinned mesh / geometry
- `.evm` = material / texture remap
- `EV_EffectEmitter` = effect textures, not the main mesh texture

Results that already work
1. Weapons
I already have a Python script that converts weapon `.eva` files to:
- `OBJ`
- `MTL`
- extracted texture as `PNG`
Validated example:

This case opens with the texture applied correctly.
View attachment 297813

2. Mounts
I also got a good result with:

View attachment 297819
At the moment, this is my best non-weapon result. It exports to a visually coherent textured `OBJ`.

⚠️ Partial or failed results:
Monsters with "Humanoid" aspects and other versions.
Some tested examples:
- `mon014_e.evs`
- `mon120.eva`
- `mon110.eva`
- `ride001.eva`
- `mon191.eva`
The common problem is that the texture mapping can look right, but the geometry comes out:
- collapsed
- stretched
- twisted
- or semantically wrong even when local triangle metrics look good
So the main blocker now seems to be correct decoding of `EV_SkelSkin`, especially for:
- humanoids
- some monsters
- multi-part actors

View attachment 297820

Important extra finding
Some `.eva` files contain **multiple `EV_SkelSkin` sections in the same actor**.
For example:
- `pf_waiting.eva`
- `mon191.eva`

So exporting only the first section is not enough in some cases. Because of that, I wrote a second exporter that combines multiple internal skinned sections into one `OBJ`.

Technical hypotheses for the broken cases
At this point I think the remaining problem is one or more of these:
- different vertex stride/layout by family
- joint remap or bone palette
- bind pose / inverse bind handling
- local vs global transform mismatch
- incomplete combination between `.eva` and external `.evs`

Translating: I do not have in-depth knowledge about the game files, I do not know if a .EVA alone already has all the information included or if it pulls, reuses, or inherits some things from already existing monsters and I may have to find everything that that EVA pulls or inherits to gather everything and make it make sense, I am still kind of lost in this.
Attached package
I am attaching an organized ZIP so anyone can download it and understand the current state quickly:
- ` `
This package includes:
- Python scripts
- notes and handoff docs
- initial setup instructions
- exported examples
- a short AI-friendly context pack for Codex, Claude Code, or another coding agent

Contents:


setup, handoff notes, exporter notes, and the forum post draft

Python exporters and research tools

working, partial, and failing export examples

asset census and auto-round summary


Best entry point:

1. docs/SETUP.md
2. docs/AI_START_HERE.md
3. docs/reverse_engineering_handoff.md


Main examples:

- weapon success: `examples/success/iwfb05/`
- mount success: `examples/success/ride021_1/`
- partial mount: `examples/partial/ride001/`
- useful broken case: `examples/failure/mon110/`

👉Minimum commands👈
Weapon:


Working mount:


Counter example mount:


Monster census:


Manual hypothesis round:



Initial setup to reproduce the environment
Base tools:
1. VS Code

-
2. Python 3
-
3. Node.js LTS
-
Current required Python dependency:

Official links used for Codex setup:

- Codex overview:
- Codex docs:
- Codex CLI login:
Windows note:
- I built this workspace on Windows PowerShell
- the official Codex docs also provide a WSL path for better performance on Windows when needed

Recommended AI workflow
For anyone continuing this with an AI, this is the workflow I am using:
1. ask the AI to read `AI_START_HERE.md`
2. ask for a plan before any edits
3. review the plan
4. only then ask it to implement
Suggested short prompt:


What I would like community help with:

If someone is already converting everything successfully, or the vast majority, they could inform the path they are following, tips, etc. In any case, if I invest a few days it will be inevitable and I will eventually manage to do everything successfully.
If anyone knows details about `EV_SkelSkin`, especially any of these points, that would help a lot:
- local joint palette / bone map
- joint bias or remap rules
- bind pose / inverse bind data
- family-specific layout differences
- whether some actors require extra files beyond the obvious `.eva/.evs/.evm`
Status summary:
- weapons: working
- at least one mount: working
- humanoid monsters: not yet
- animation: still experimental
- main blocker: `EV_SkelSkin`

⚠️ ATTENTION, you need to run this inside the folder of a clean client.


your code not handle second meshes there
im still work on my tools but will take time to fix everything for eva files
 

Attachments

  • Clipboard_03-14-2026_03 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums
    Clipboard_03-14-2026_03.webp
    37.6 KB · Views: 57
  • Clipboard_03-14-2026_01 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums
    Clipboard_03-14-2026_01.webp
    135 KB · Views: 58
This is world 4 from the mobile version. Not everything works, but i will try to fix the logic and some textures too. This mean we didnt need too much to open a brand new worlds, champs, etc. Almost 80% of the game is correct rebuild.

2026-03-15 15 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums
ExportedProject - PC, Mac & Linux  - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums
 
something cool from me too.
That's really cool.
1 year ago:
1773795318637 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums


I also started exploring these graphics about a year ago. When I first got access, I had to "debug" the textures and link some others to get things minimally working. At the time, I made two demo tests, both control the character using the AWSD keys. The first test is completely bugged and was made just to test the props' animations. The second test was to make sure it was possible to recreate the classic Talisman maps, starting with Green Scarp — and yes, it is possible. You can test both versions by downloading, extracting, and clicking on STAR HERE.exe to start the demo.

Demo Test Version 01 ( )
Demo Test Version 02 ( )
 
That's really cool.
1 year ago:
I had same problem, so here a small program, that might help you extracting all textures to png for UE.
Keep in mind, that the program cannot convert all 5k at ones, but you can try with 400 each time.
The program is free, so just type dds converter. It looks like this:
1773845570486 - Talisman Online EVA/EVS reverse engineering progress: EVA to OBJ works ✅🤯[DOWNLOAD HERE] - RaGEZONE Forums
 
How is the state of this project? I've been looking for talisman online backend sources to learn some concepts
 
Back