Skip to content

Extracting SWTOR assets with EasyMYP_20230725131251

ZeroGravitas edited this page Sep 22, 2023 · 1 revision

WARNING: EasyMYP is not compatible with the 64 bit version of SWTOR (Game Update 7.2.1 onwards) and won't be developed any further.

  • As an extraction tool, it has been superseded by the Slicers GUI app, whose usage is far simpler and faster.

  • As a .tor file inspection tool, its functionality can be reproduced with jedipedia.net's File Reader.


EasyMYP is a game assets inspecting and extracting tool that was born out of Warhammer Online fans's needs. A specific SWTOR-compatible version, sometimes alluded to as "TorMYP", was made to allow us to inspect SWTOR's .tor asset files, extract specific items or groups of items from them, and even extract the assets of a whole folder of .tor files in one go.

EasyMYP can be downloaded from this GitHub's repositories here or as part of an EasyMYP/NodeViewer/Noesis pack hosted by RealymanLP here.

To be of use, we'll need to download the most current hashes file (a file holding the list of currently identified game objects and their IDs) from here. hashes_filename.zip is the one meant for EasyMYP. Decompress the .zip file to get the hashes_filename.txt file.

EasyMYP, once unzipped, appears as a single folder that can be placed anywhere in our computers (such as, for example, the desktop folder), no installation process needed. Its interesting bits are:

  • EasyMYP.exe: that's the app as such.

  • Hash: this folder is were we place the hashes_filename.txt file, which contains a list of all the game assets that have been identified to date. This file is usually posted by fellow dataminers every time there is a new game update (not just the major ones but minor ones that introduce new Cartel Market armor gear and the like, too). There are hash file releases for the Public Test Server, too. We can simply drop the file inside the folder and overwrite any older hash file without care.

  • EasyMYP.config: it's generated when one sets things such as the destination folder where the extracted files will be placed. A human-readable XML file, it can be examined and modified manually.

  • README.txt: the app's instructions. They show up inside the app through the help menu, too.

Every time we launch EasyMYP.exe, we'll see first a brief progress bar showing that it is reading the contents of the hash file. Once done, it'll show its simple interface. Of the many options the app has, we'll use just a few ones, mainly in Archive and Files.

Extracted items' destination

An important decision to take is where to store the results of its usage, for the following reason: when exporting assets, EasyMYP won't simply ask us where to save them and then leave the files there. What it'll do is recreate the game's internal assets organization inside the folder we choose, which can easily become six or more sublevels deep. For example, the player characters' eye textures will end up located at: your chosen folder > resources > art > dynamic > player_character > face_customization > eye.

Don't let that scare you into thinking that finding the extracted material inside that mess will be difficult. On the contrary: Windows (and, if you happen to prefer it, macOS') instant desktop search is our most excellent friend, and most of times we won't have to care for the directory path at all)

So, we start by telling EasyMYP where we want to store all the extracted stuff through File > Select Extraction Folder. If we would happen to forget to do it, the app will ask us the first time we do an extraction, anyway. It can be set through the Options menu, too. Ultimately, it can even be set by opening the EasyMYP.config file in Notepad and typing the folder's directory path.

Opening and exploring the game's asset files

In Windows 10, if installed through swtor.com's installer, those are typically stored at:

C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\Assets

If installed via Steam, by default they are stored at:

C:\Program Files (86)\Steam\steamapps\common\Star Wars – The Old Republic\Assets

There, we'll find a lot of files with the .tor extension and fairly informative names.

Some hints at what's what:

  • Filenames starting with "swtor_main_art_dynamic_”: those contain body parts and armor parts the game builds our characters and companions out of. These are the ones we will be most interested in if we want to do character-related stuff.

  • Filenames containing the "_creature_" word: those refer to beasts, characters and others that are built as full body single meshes (with maybe some additional ones for capes and other physics simulation elements): say, an early Darth Malgus, an Akk Dog.

  • Filenames starting with "swtor_main_area_” and "swtor_main_art_area_”: they contain terrain and buildings’ parts: whole mountains, bridges, buildings and empty rooms; or "construction sets” involving walls, furniture, road parts, etc. It holds spaceship interiors and exteriors, too. Don't confuse them with the ones starting with "swtor_en-us_area_" without the "_art_", as those are recorded dialogue and lipsync animations.

  • Other filenames containing the "_art_" word: we can find in them weapons, ships, vehicles, "farming" items (crystals, crates, etc.).

  • There is a specific file, "swtor_main_anim_misc_1.tor", which contains the armatures necessary for posing the game's characters and NPCs.

  • There is also "swtor_main_art_misc_1.tor", which contains several default "neutral" texture files (black, white, etc.).

The rest of the stuff relates to game audio and conversations ("_bnk_"), animation and FX scripts ("_anim_"), user interface art ("_gfx_") such as all the Galactic Trade Network and Cartel Market images, abilities icons, maps, etc. They are quite interesting, actually, but we can omit them and save a lot of hard disk space.


As a recommendation: if all we are interested in so far is extracting and assembling our player characters, NPCs, and their weapons and vehicles, the .tor files relevant to our objectives seem to be all these ones:

(Posing skeletons and animations for single mesh NPCs)

  • swtor_main_anim_creature_a_1.tor
  • swtor_main_anim_creature_b_1.tor
  • swtor_main_anim_creature_c_1.tor
  • swtor_main_anim_creature_npc_a_1.tor
  • swtor_main_anim_creature_npc_b_1.tor

(Posing skeletons and animations for PCs and NPCs)

  • swtor_main_anim_humanoid_bfab_1.tor
  • swtor_main_anim_humanoid_bfns_1.tor
  • swtor_main_anim_humanoid_bmaf_1.tor
  • swtor_main_anim_humanoid_bmns_1.tor

(Other skeletons and animations)

  • swtor_main_anim_misc_1.tor

(Single mesh NPCs' meshes and textures)

  • swtor_main_art_creature_a_1.tor
  • swtor_main_art_creature_b_1.tor
  • swtor_main_art_creature_body_type_1.tor
  • swtor_main_art_creature_c_1.tor
  • swtor_main_art_creature_npc_a_1.tor
  • swtor_main_art_creature_npc_b_1.tor

(PCs and NPCs' meshes and textures)

  • swtor_main_art_dynamic_boot_1.tor
  • swtor_main_art_dynamic_cape_a_1.tor
  • swtor_main_art_dynamic_cape_b_1.tor
  • swtor_main_art_dynamic_chest_1.tor
  • swtor_main_art_dynamic_chest_a_1.tor
  • swtor_main_art_dynamic_chest_b_1.tor
  • swtor_main_art_dynamic_chest_tight_1.tor
  • swtor_main_art_dynamic_chest_tight_heavy_texture_1.tor
  • swtor_main_art_dynamic_chest_tight_light_texture_1.tor
  • swtor_main_art_dynamic_chest_tight_med_texture_1.tor
  • swtor_main_art_dynamic_chest_tightskin_texture_1.tor
  • swtor_main_art_dynamic_face_a_1.tor
  • swtor_main_art_dynamic_face_b_1.tor
  • swtor_main_art_dynamic_hand_1.tor
  • swtor_main_art_dynamic_head_1.tor
  • swtor_main_art_dynamic_leg_1.tor
  • swtor_main_art_dynamic_mags_1.tor
  • swtor_main_art_dynamic_waist_1.tor

(Misc. elements that oftentimes are needed, plus weapons, mounts, and vehicles)

  • swtor_main_art_fx_1.tor
  • swtor_main_art_misc_1.tor
  • swtor_main_art_vehicle_1.tor
  • swtor_main_art_weapon_1.tor
  • swtor_main_art_zed_1.tor
  • swtor_main_gamedata_1.tor

If we want the architectural and environmental stuff, we'd need:

(Objects, buildings, etc. on each planet. There's much cross-recycling, though)

  • swtor_main_area_alderaan_1.tor
  • swtor_main_area_balmorra_1.tor
  • swtor_main_area_belsavis_1.tor
  • swtor_main_area_belsavisdaily_1.tor
  • swtor_main_area_corellia_1.tor
  • swtor_main_area_coruscant_1.tor
  • swtor_main_area_dromund_kaas_1.tor
  • swtor_main_area_epsilon_1.tor
  • swtor_main_area_events_1.tor
  • swtor_main_area_flashpoint_a_1.tor
  • swtor_main_area_flashpoint_b_1.tor
  • swtor_main_area_hoth_1.tor
  • swtor_main_area_hutta_1.tor
  • swtor_main_area_ilum_1.tor
  • swtor_main_area_imperial_fleet_1.tor
  • swtor_main_area_korriban_1.tor
  • swtor_main_area_kotet_1.tor
  • swtor_main_area_kotfe_1.tor
  • swtor_main_area_makeb_1.tor
  • swtor_main_area_man_lobby_1.tor
  • swtor_main_area_nar_shaddaa_1.tor
  • swtor_main_area_nonplayable_1.tor
  • swtor_main_area_onslaught_1.tor
  • swtor_main_area_open_worlds_1.tor
  • swtor_main_area_ord_mantell_1.tor
  • swtor_main_area_playership_1.tor
  • swtor_main_area_pvp_1.tor
  • swtor_main_area_quesh_1.tor
  • swtor_main_area_raid_1.tor
  • swtor_main_area_republic_fleet_1.tor
  • swtor_main_area_rishi_1.tor
  • swtor_main_area_space_1.tor
  • swtor_main_area_stronghold_1.tor
  • swtor_main_area_taris_1.tor
  • swtor_main_area_tatooine_1.tor
  • swtor_main_area_tython_1.tor
  • swtor_main_area_voss_1.tor
  • swtor_main_area_yavin_1.tor
  • swtor_main_area_zed_1.tor
  • swtor_main_area_ziost_1.tor

(previous material's arrangement data)

  • swtor_main_areadat_1.tor
  • swtor_main_areadat_b_1.tor
  • swtor_main_areadat_c_1.tor
  • swtor_main_areadat_epsilon_1.tor

(Generic objects, buildings, etc.)

  • swtor_main_art_area_all_arch_a_1.tor
  • swtor_main_art_area_all_arch_b_1.tor
  • swtor_main_art_area_all_item_1.tor
  • swtor_main_art_area_bothawui_1.tor
  • swtor_main_art_area_strongholds_1.tor

(Misc. elements that oftentimes are needed, plus weapons, mounts, and vehicles)

  • swtor_main_art_decoration_frames_1.tor
  • swtor_main_art_fx_1.tor
  • swtor_main_art_harvesting_1.tor
  • swtor_main_art_misc_1.tor
  • swtor_main_art_space_combat_1.tor
  • swtor_main_art_spvp_1.tor
  • swtor_main_art_vehicle_1.tor
  • swtor_main_art_zed_1.tor
  • swtor_main_gamedata_1.tor

(We can always add new ones later on. EasyMYP will insert their extracted contents among the others)

Let's see how the app works with these files. Let’s say we open "swtor_main_art_creature_b_1.tor", which ought to contain a few animals from the game. Get to Archive > Open Archive, navigate to SWTOR’s Assets folder and open that file.

After a few seconds of processing (no progress bars 😕 ), it’ll show up in the left side pane:

We can see the contents of the file by clicking on the Archive File List tab, but it’s more interesting to see them by twirling the little + widget at its left, because it’ll show them in their hierarchical organization structure, which will reflect how they will be saved in the extraction folder that we chose (or will choose the first time we do an export).

Out of that first twirl, we’ll see that there’s a lot of files with unintelligible names, and a folder. The former are assets in that .tor file that we still don’t know what they are (they are not in the hash file yet). Those can be saved and examined: EasyMYP will put them in a subfolder with the same name as the .tor file so that things aren’t too messy.

It’s that lone folder where the really interesting stuff starts:

What we see here are folders where models (.gr2 archives) and textures (.dds archives) are stored. We can begin to get a feel of how things are organized: the "dynamic” folder contains all elements that are animated in the game. The "materials” one contains text files describing what textures correspond to which models, etc.

We should warn you that Bioware isn’t the tidiest developer ever: sometimes things are a bit disorderly, surely out of adding things to the game in ways they hadn’t anticipated before launch.

(By the way, we can open several .tor files during the same session and explore them all this way)

Exporting specific assets and groups of assets

So, we might want to export a single item:

Or a bunch of items: a whole folder, for example, which is better because sometimes the meshes and textures are in the same folder although grouped into subfolders.

Or one could just extract all the contents of the .tor file and decide what to keep and what to delete afterwards.

Exporting several whole .tor files' assets in one go

Sadly, all this isn’t the most efficient way to work if we look forward to building whole scenes with landscapes, rooms, props, pets, characters, etc., or even if we just want to recreate our player characters. At first, we used to suggest extracting the stuff from just a type of files (the character parts ones, or the architectural ones, etc.), but, frankly, everything is so spread around that one always ends up missing something and losing massive amounts of time trying to locate it.

Given that, it’s best to just batch-export all the .tor files having to do with 3d models (well, maybe we can leave the "_area_" ones out if we don't plan on using the game's buildings and exteriors).

EasyMYP has an option to extract the stuff inside all the .tor files contained in a folder:

A batch extraction of only the player character-related models will occupy around 22 GB. All the 3D models (characters, creatures, environments, spaceships, etc.) and related files will fill some 40-50 GB. An extraction of just everything, including audio files, GTN items’ icons, maps, etc. will fill about 100 GB.

How do we separate the .tor files we want to process from the ones we don’t? By temporarily putting them inside a folder (inside Assets or somewhere else), processing them, and putting them back into Assets afterwards.

So, we click on "Extract All from Folder”. TorMYP will ask us where that folder is, and we point it at it.

Then it asks us a curious question:

What does this mean? EasyMYP is offering us to extract everything ("No” option 🤨) or only the XML text files describing how the assets are organized ("Yes” option): those .xml files tell us, for example, which objects are used to build, say, a chest armor piece, and where they are and what material file is associated with them… which in turn will tell us which texture files it uses and where they are, and what color scheme file is applicable… which in turn will describe what colors the armor will use because oftentimes a same armor object shows up as different items just by changing some colors…

So, we choose "no".

(That said, maybe afterwards we might want to do a second, .xml files-only extraction, from all the .tor files in the game, saying "Yes”. These don’t ocuppy much space, help build the whole subfolder organization, and you get the certainty that you have all the .XML information about all the game assets at your fingertips just in case)

Before proceeding, EasyMYP will show a dialog window telling us what’s about to do, giving us a chance to backtrack. Then it’ll start going .tor file by .tor file. They’ll accumulate in the left side pane, which is a way to measure its progress.

A warning, though: sometimes EasyMYP crashes while processing the biggest of those files, so, it's good to keep an eye on its progress. If it happens to crash, we can move the files it already processed out of the temporary folder and back to the Assets one, then relaunch the operation. If we didn’t happen to see in which one the crash occurred, a trick to know it is to look at the contents of the folder storing the results: there ought to be subfolders with the same names as the .tor files it has processed (although some might not appear because there are no unknown files left in them). Check which was the last one, and restart from there.

This might be a memory issue. We've seen it happen in PCs with 16 GB. of RAM, and the crash usually happens when extracting the first of the big files holding the game's audio ("swtor_main_bnk_audio_1.tor"), so, it might be prudent to move those to another temporary folder to process them as a second batch job or just dismiss them.

The results of the extraction and saving some storage space

Once we are done, we can find ourselves with literally thousands of files inside a complex folder structure (a merge of all the subfolders contained in each .tor file) which can be a bit overwhelming. Actually, handling it will be far easier than it looks, because most of times we will be copypasting filenames and the like into Windows' instant search's field, and it will show us not just found filenames but, even more importantly, found .xml files mentioning those filenames without the need to dig deep inside the subfolders tree.

As we mentioned before, the really juicy stuff is in the resources folder. The others, named like the .tor files, contain assets whose IDs aren't known yet. They can be useful if there is something (an object, a texture file, etc.) that we know it should be somewhere in there but can't be found: we can try those folders with a model viewer such as Noesis or a free .dds format image viewer such as XnView or Noesis too. Then again, they could as well be deleted to free hard disk space.

Another measure to free storage space (and to ease browsing through the folders) is to delete the lower polygon count versions of the objects and their associate textures that are used when they are far away from us in the game (you might want to preserve them if you want to export to apps that would benefit from them, such as Tabletop Simulator). These objects' filenames end in ".lod.gr2", and their textures end in ".tiny.dds". To select them through Windows' desktop search you can copypaste these queries in the search field and delete the results:

".lod.gr2" ext:gr2

".tiny.dds" ext:dds

(The "ext:" bit makes sure that you are selecting the mesh and texture files and not any text file that could have been mentioning them. A warning: Windows can take its sweet time to select them all and to make a deletion: we are talking thousands of files. It's better to directly delete them instead of first moving them to the trashcan and then emptying it)

Now that we have the game assets extracted, it's time to learn how to find the ones we need to assemble characters, armor, weapons, vehicles, and environments.

Table of Contents


INTRODUCTION

IMPORTING SWTOR MODELS INTO BLENDER: A BRIEF OVERVIEW.
Check this intro first. Afterwards, you can jump directly to the guides on extracting PCs, NPCs and others.


TOOLS

No need to read this section right now: each extracting/assembling guide explains its required tools anyway.

Applications and Blender Add-on tools:

Online Tools:

Deprecated Tools:

  • EasyMYP (Windows app).
  • Noesis (Windows app).

THE COMPLETE GUIDE TO AUTO-EXTRACTING AND ASSEMBLING PLAYER CHARACTERS AND NPCs:

READ THE BROAD STROKES FIRST: YOU'LL SEE IT'S EASIER THAN YOU THINK!


ASSEMBLING GAME LOCATIONS AUTOMATICALLY:


LOCATING AND ASSEMBLING ASSETS MANUALLY:


OTHER GUIDES (WIP):


MODDING (to do)

Modding isn't working at the moment due to SWTOR's change to a 64bit codebase. It's going to take a while 🙁.


DATAMINING (to do)

  • Overview.
  • Tools.

SWTOR TECHNICAL INFORMATION:


OTHER RESOURCES:

Clone this wiki locally