Repository navigation
Exporting a Player Character Model
This feature allows you to export a glTF model of a player character model with customized equipment. If you ever wanted a 3D model of your (classic) EverQuest character how they looked in game with the equipment they were wearing, this can do that for you.
What doesn't work/export:
- Weapon animations (bow, whip, several epics) - this can potentially be addressed in a future update
- Particles
EverQuestDirectory - just like for all other Extractor functions you'll need a local copy of the EQ Trilogy client
ServerDatabasePath - if you want to be able to lookup equipment by name, you'll need to set this. See Setting Up a Database Connection
ExportAllAnimationFrames and ExportedAnimationTypes - whether or not you want animations included in your model, and if so, which types to include.
ExportGltfInGlbFormat - when false, it produces a .gltf file, .bin, and associated texture images separate. When true, the model is packaged as a single .glb file.
In the same directory as the Extractor, there is a file named PcEquip.json. Edit this file in a text editor (something like VS Code works well so you can get syntax highlighting/formatting). When you are done, you can overwrite the existing PcEquip.json or save it as a new file. The properties include:
Face - an integer ranging from 0 to 7. Each number represents the different face+hair combinations that were chosen at character creation.
RaceGender - three letter identifier for the player character's race and gender. Possible values: "BAF", "BAM", "DAF", "DAM", "DWF", "DWM", "ELF", "ELM", "ERF", "ERM", "GNF", "GNM", "HAF", "HAM", "HIF", "HIM", "HOF", "HOM", "HUF", "HUM", "IKF", "IKM", "OGF", "OGM", "TRF", "TRM"
Primary Name, Secondary Name, and Name properties: These are optional. If present, a lookup will be done in the database for an item that starts with the provided name that can be worn in the corresponding slot. The one exception to the slot restriction is that equipment that is Primary slot only can also be put into the Secondary slot. If multiple items are found that meet the criteria, the first result is chosen. Note that the database is quite inconsistent with its use of apostrophes (sometimes they're backticks, sometimes they're omitted, even when other items in a set include it). If you know that, for a given slot, no other item starts with that name, use a shortened version in the Name property that stops before the apostrophe. E.g. Elder Spiritist instead of Elder Spiritist's Breastplate.
Primary ID and Secondary ID: You can provide the identifier for held equipment if you know it. In the database, this is items.idfile. It will start with IT and end with a number. E.g. Blackened Alloy Bastard Sword is IT58, Aegis of Life is IT205, Enchanter epic is IT157... Primary Name and Secondary Name will be ignored if their respective IDs are present.
Each piece of worn equipment has its own Name, Material, and Color properties. Head also has an additional Velious boolean property. When true, the exported character will be wearing their respective race+gender's Velious Custom helm. If Name is not blank, the Material and Color will be overidden by the item in the database based on the provided Name.
Material - an integer that represents the material of worn equipment. Typically:
-
0is None/cloth -
1is Leather -
2is Chain -
3is Plate -
4is Monk -
10-16are Robe textures. (Chest only) -
17-23are Velious armor.
Color - Color for tinted armor. This can be represented as a color name (E.g. red or green), a 6 character hex string, prefixed with a # (like CSS color values) or by a decimal value, which is how they're stored in the database. Leave it as null for untinted.
Open a command-line prompt in the same directory as the LanternExtractor.exe. If you only use the pc argument, the exporter will reference the PcEquip.json in the same directory. Alternatively, you can also provide a path to your own json file. If you're using cmd the command to run will look like:
lanternextractor pc
or
lanternextractor pc MyCustomPcEquip.json
In PowerShell:
.\lanternextractor pc
or
.\lanternextractor pc MyCustomPcEquip.json
Extracted character models will go in the Exports folder. If you specified your own json file, it will create a folder with that filename. Alternatively, it will use the RaceGender code. Additionally, a copy of the json with a timestamp in the name will be created. If any items were queried from the database, the related data will be printed from the corresponding query results.
For more, see Examples
Given a PcEquip.json with the following content:
{
"Face": 4,
"RaceGender": "IKM",
"Primary ID": "",
"Primary Name": "Sceptre of Destruction",
"Secondary ID": "IT145",
"Secondary Name": "",
"Head": {
"Name": "",
"Material": 2,
"Color": "Blue",
"Velious": false,
},
"Wrist": {
"Name": "",
"Material": 1,
"Color": null
},
"Arms": {
"Name": "",
"Material": 2,
"Color": "#44FFAA"
},
"Hands": {
"Name": "Blood Cured",
"Material": 0,
"Color": null
},
"Chest": {
"Name": "",
"Material": 4,
"Color": null
},
"Legs": {
"Name": "Wolf Caller",
"Material": 0,
"Color": null
},
"Feet": {
"Name": "Golden Efreeti",
"Material": 0,
"Color": null
}
}The resulting model will look like:
