How to edit esp files
How to edit esp files
Skyrim — программа для редактирования и создания esp файлов
Вы наверное заметили, что все моды для skyrim, добавляющие новые предметы или какой либо другой функционал содержат в себе esp файлы. Сегодня я хочу вам поведать о программе, с помощью которой можно просматривать/редактировать/создавать новые esp файлы. Это очень актуально, т.к. официальный инструмент creation kit все еще не вышел, а добавить что то новое в игру уже не в терпеж.
Эта программа SkyEdit
Она создается на добровольных началах, по-этому в ней возможны какие либо ошибки.
С помощью нее вы можете открывать esp/esm файлы плагинов и вносить в них какие-либо изменения, а так же есть возможность создавать свои плагины и привязывать к ним какие либо модели/текстуры/анимации и все что угодно.
К сожалению я сам очень далек от модо-строительства, по-этому научить вас создавать свои модификации пока что не могу, но попробую объяснить как внести какие-либо изменения в существующие плагины, а уже на основе примера вы сможете делать это сами с любыми другими плагинами.
т.к. в данный момент мы будем редактировать esp файл — нажимаем на кнопку File->Open (N+O или клик по значку папки)
В данном примере мы рассмотрим способ изменения показателя брони у кирасы (у бот перчаток и т.п. все по аналогии)
5.1 Открываем вкладку Armors
5.2 Кликаем по строке Chests
Открывается окошко со списком кирас используемых в моде:
В данной модификации 2 полностью идентичные кирасы: обычная и кольчужная, что бы было с чем сравнивать отредактируем показатель брони только 1ой, кольчужной.
6. Для этого кликаем 2 раза по строке DynastyChainCuirass и видим окно с параметрами брони:
В данном окне видим что:
Name — название брони в игре
Rating — показатель брони, в данном случае он равен 4600 — для моего персонажа со всеми перками и 100лвл он в игре при таком рейтинге показатель брони равен 65:
Value — стоимость брони
Armor type — тип брони (легкая/тяжелая/обычная)
Weight — вес брони
Body parts — в какой части тела относится (тело, голова, щит и т.д.)
Давайте изменим рейтинг брони с 4600 на 46000 (увеличим в 10 раз)
7. Для этого в поле Rating вместо значения 4600 впишем 46000:
Теперь нам необходимо что бы изменения вступили в силу, для этого переходим к следующему пункту.
8. Жмем кнопку Apply затем Save, окошко автоматически закроется.
Видим что значение поля Rating изменилось, значит все сделали правильно.
9. Сохраняем изменения. Для этого жмем File—>Save (или ctrl + s или на иконку дискеты)
Вот и все, запускаем игру и смотрим на показатель брони:
Как видим броня стала 644, вместо 65. Все получилось.
Я не знаю точной и правильной формулы по которой расчитывается показатель брони из рейтинга, но путем несложных вычислений:
для стандартного рейтинга 4600 броня была 65 и если 4600/65=
после изменения 46000/644=
Можно сделать вывод что показатель брони предмета в игре равен примерно Rating/70 — но это лишь логика, не более.
xEdit Managing Mod Files
xEdit Documentation
Main Table Of Contents
1. Introduction
2. Overview
3. xEdit Basic Use
4. ModGroups
5. Conflict Detection and Resolution
6. The Method
7. Mod Cleaning and Error Checking
8. Managing Mod Files
9. Mod Utilities
10. FO3Edit FAQ
11. Appendix
12. Cheat Sheets and Quick Reference Charts
13. Scripting Functions
14. Scripting Resources
15. Tutorials
16. xLODGen
17. DynDoLod
18. xEdit What’s New and Version Info
xEdit Managing Mod Files
Contents.
This chapter is dedicated to mod authors, and describes a number of functions and actions that xEdit provides to make mod authors lives easier and their products more standardized. Like the chapter on Mod Cleaning and Error Checking, these functions hole mod authors produce products that will be less conflicting with other mods, and will open doors to possibilities that mod authors may not have known existed. Actions like merging mods, splitting them apart into Plugin/Master pairs, adding Master file references and more are documented in the sections below.
To reference a record from ExampleMaster.ESM in Plugin.esp you need to add ExampleMaster.ESM to the MASTer list in the File Header of Plugin.esp. This allows the plugin to add/change items found in the ExampleMaster.ESM. xEdit does this by adding a new master to the MAST sub record in the file header and correctly renumbering the FormIDs in the module. This can be very handy for mod authors, as it simplifies the process down to a few mouse clicks, so the mod author can focus on more important things like modding!
In this example we showcase Saiden Storm’s Weapon Effects mod and the taylorsd’s Better Frag Grenade Physics mods, two excellent enhancements to Fallout3. Here we will add the SS Weapon Effects.esm Master file to the Better Frag Grenade Physics plugin, so that we can add one of Saiden Storm’s cool plasma blasts to a frag grenade for kicks! To start the action, select «Add Masters» from the context menu as shown:
This will present the File selection menu, from which you can Check the Master file(s) that you want to add as references in the Plugin’s header as shown:
Once xEdit adds the master file as a reference in the Plugin, you see results similar to the screenshot below showing the Messages Tab log-entry:
Note that «SS Weapon Effects.esm» has now be added to RealFragGrenade3.esp, making it possible to attach one of Saiden Storm’s Weapon Effects explosions to the grenade effect in Better Frag Grenade Physics. The View Tab shows the specific entry:
Note: If you plan to release a mod to the public, then you should ONLY do this with permission from the modauthor, in this case Saiden Storm. If you wanted to use his weapon effects in a mod of your own and release it, you need permission!
Below Elminster describes why this function is important for mod authors wanting to add master file references to their own mods:
«With FormIDs it’s important to realize that the FormIDs that xEdit shows you are NOT the ones that are actually written into the module file. The FormIDs that xEdit shows you are «load order corrected» ones, while the FormIDs in the file itself are «file specific» ones.
FormIDs are made up of 2 parts, the first byte (2 characters) is the «module index», the last 3 bytes (6 characters) are the «module specific ID».
Mapping from «file specific» to «load order corrected» FormIDs and back only affects the «module index» and leaves the «module specific ID» untouched.
An example, suppose you got a bunch of modules loaded:
And lets suppose the MAST sub record in the File Header of Plugin.esp lists:
If you now see a record in Plugin.esp that overrides a record from Fallout3.esm, then you would see a FormID like 00123456 for it. In this particular case that record would also have the same (00123456) FormID inside the Plugin.esp module file.
But if you have a record that overrides a record from MasterA.esm, e.g. with a FormID like 04ABCDEF (you can see the 04 as «module index» matches the load order of MasterA.esm) then it would be saved as 02ABCDEF in the Plugin.esp module file, because 02 is the index of MasterA.esm in the list of MASTer files in the File Header of Plugin.esp.
And an override for a record in MasterB.esm (e.g. 10654321) would be saved as 01654321 in the Plugin.esp module file because 01 is the index of MasterB.esm in the list of MASTer files in the File Header.
Last but not least, a NEW record in Plugin.esp which belongs to Plugin.esp and which xEdit would show you e.g. as 20FEDCBA gets stored as 03FEDCBA in the file (because 03 is equal to the number of entries in the MASTer list, as indices into that list start at 00, 03 is one higher then the highest valid index into that list).
You will also notice that it’s not possible to have an override record for a record from Master3.esm in Plugin.esp or in any other form reference such a record, because there is no way to map a load order corrected FormID of 15A1B2C3 to a file specific one that’s valid in Plugin.esp.
To reference a record from Master3.esm in Plugin.esp you need to add Master3.esm to the MASTer list in the File Header of Plugin.esp. But if you just go there and do that manually, then you’ve just added Master3.esm with the index 03 to the file. Which means that all the records that used to belong to Plugin.esp are suddenly considered override records for records from Master3.esm and will show up with 15xxxxxx FormIDs instead of 20xxxxxx FormIDs! A real mess.
If you instead use the Add Masters function, then xEdit will not only add then new entry into the MASTer list, it will also renumber all (file specific) 03xxxxxx FormIDs into 04xxxxxx FormIDs first to preserve their meaning (which is «this record belongs to this file»).
Load the module you would like to add the ESL flag to and click the plus by the filename to expand the contents. Click File Header, right click in the View Treeview and choose Edit to be presented with a list of Flags.
Check the box next to the ESL flag and click Ok.
Hi
I want edit one mod
i found field and value what i need to change by Skyrim Vinever but i cant (but i dont know how?)
a lot of peaple use FOMM but it need fallout i want any other way
Hi
I want edit one mod
i found field and value what i need to change by Skyrim Vinever but i cant (but i dont know how?)
a lot of peaple use FOMM but it need fallout i want any other way
You’ll also need to create spoof text files with the names of the files it’s looking for, in the locations it’s looking for them to be in. When you try to start FOMM it should come up with a «can’t find this file at this location» error. Use that to know what to name the dummy files and where to place them.
Tip: I believe Fallout3.exe and FOMM need to go in your \Skyrim\ folder (where Skyrim.exe is). Hope this helps, I tried this, but once I got all the dummy files in place, it still had an unhandled exception when trying to open plugins. It’s working for some people though.
Tip: I believe Fallout3.exe and FOMM need to go in your \Skyrim\ folder (where Skyrim.exe is). Hope this helps, I tried this, but once I got all the dummy files in place, it still had an unhandled exception when trying to open plugins. It’s working for some people though.
As i don’t know whats what with your description (i am quite new to modding) I would be very great full.
Sure can’t. I don’t have any recording software, nor is it really necessary.
7)FOMM still crashes with an unhandled exception when trying to open Skyrim.esm (For me, a lot of people are seeing success with this method. I have a feeling it’s because I’m on XP x64)
I personally have no issue opening skyrim.esm
Running Windows 7 Ultimate x64
BTW I also give TESsnip Admin rights
I’m running into a weird problem (both with TESSnip and FNVEdit). If I want to edit say the Sinderion’s Tome (ID 0010BEDF), it lists all the properties. However, two fields seem corrupt
Any idea for how to fix this?
Ok, so I could replace something like
Using string IDs seems a bit weird and convoluted, but it that method works, then it should be good enough for my purposes. I’ll test some things and see how it goes. Many thanks.
Here’s my exact steps:
And then when I check my inventory, nothing has changed. It’s the same book as vanilla.
OK, adding a master file solves this. However I’m running in another problem.
OK, adding a master file solves this. However I’m running in another problem.
Delete all records you aren’t modifying, and only keep the record(‘s) from the item(‘s) you want to change.
Edit: Forgot to mention, dont delete subrecords from the item(‘s) you are modifying, but delete ALL the other records.
That doesn’t work. If I don’t change the description, the book text will be replaced with Z 3 or similar. If I omit the description, the book will be blank.
You missed the point it would seem. I’ll try again:
Above is a tree-view of an ex Test.esp, what I was trying to tell you was to delete the BOOK(x), BOOK(y) & BOOK(z) ect ect,
keep BOOK(Book0BlackArrowV1) intact (DO NOT DELETE any Sub-records within BOOK(Book0BlackArrowV1) )
Also note that if you get the Hex editor popup when trying to change the strings you need to make sure that your string on the hex side ends with «00»,this is a null-terminator that will tell Skyrim that the string have ended.
Doing something like
Just makes the game crash upon opening the book.
I tried modifying the name of an arrow to see if it was a problem only for book, but it’s not much better. I changed only FULL: Iron Arrow to FULL: Arrow [Iron], and discarding everything except the EDID, and now Iron Arrows don’t display [both in inventory and out of inventory], i have no quiver, arrows are invisible and don’t do any damage, if I drop them I don’t see them etc.
Seems like deleting/omitting a field tells the game that the field is non-existent.
Seems like deleting/omitting a field tells the game that the field is non-existent.
Taking it from the start again:
Create a blank esp file _blank_plugin.rar 152bytes 26 downloads
Copy Group(BOOK) to the new blank esp file Test(1).rar 23.99KB 4 downloads
Delete all but the BOOK(Book0BlackArrowV1) Test(2).rar 383bytes 2 downloads
Modify sub-records Test(3).rar 419bytes 9 downloads
This is the process I personally use, this should make it clear i hope.
Anyway just to make sure I didn’t lead you in the wrong direction, I checked Test(3).rar 419bytes 9 downloads
and this is what it’s giving me ingame: Book in inventory.jpg 47.05KB 94 downloads
And here a picture of reading the book: Reading Book.jpg 53.55KB 93 downloads
If I do it with an arrow, it turns it into a nearly-non-existant entity.
You can see for yourself, only two fields are declared (EDID, and FULL), with the master file as Skyrim.esm.
This gives me this, in game.
Edit: Your Test3.rar has all the fields. You didn’t remove any of them!
If I do it with an arrow, it turns it into a nearly-non-existant entity.
You can see for yourself, only two fields are declared (EDID, and FULL), with the master file as Skyrim.esm.
This gives me this, in game.
Edit: Your Test3.rar has all the fields. You didn’t remove any of them!
Above is a tree-view of an ex Test.esp, what I was trying to tell you was to delete the BOOK(x), BOOK(y) & BOOK(z) ect ect,
keep BOOK(Book0BlackArrowV1) intact (DO NOT DELETE any Sub-records within BOOK(Book0BlackArrowV1) )
Anyway yeah you did exactly what I’ve been trying to tell you NOT to do, so yeah ArrowTest.esp is doing EXACTLY what you are telling it to do, this is what your file is telling skyrim:
leaving you with an arrow with no data except an EDID & a FULL sub-record.
This probably will be my last attempt to help on this, if you need more help understanding this you need to either find someone with better skills at teaching others or pay my ticket so I can show you in person.
Tamriel Rebuilt
You are here
Esp-QuickEditor
Introduction
The Esp-QuickEditor is an SQL-based ESP editor/utility made by Worsas, a Lead Developer for Project Tamriel.
Because the program is written in Java, it requires the Java Runtime Environment to be installed, version 8 or later. Having the Java Development Kit (JDK) installed works too.
When using the editor, make sure to back up any file you want to edit. Unlike TESAME and tes3cmd, changes overwrite the original file without warning.
Tables
You can edit ESM, ESP, and ESS files by issuing SQL commands in the upper text area. SQL is a programming language used for handling databases, which consist of one or more tables. Esp-QuickEditor treats an ESP/ESM/ESS file like a database with tables. The following tables are currently available:
Below are further convenience/shortcut tables, useful for updating references to certain objects.
Examples
SELECT Tables and Filter by Type or ID
It’s always a good idea to issue a SELECT command on a table first to see what it contains and what fields it has:
SELECT * FROM idObjects;
This can be done likewise with any of the other tables listed above and will show all entries of the selected table within the file.
Now I’d like to only see the NPCs declared in my current file:
SELECT * FROM idObjects WHERE type = ‘npc’;
Or I want to see all objects whose IDs starts with _ :
SELECT * FROM idObjects WHERE ;
UPDATE IDs and References
The first command updates the ID of the base activator. The second command makes all instances of the activator point to the new activator name.
To change the ID of an NPC from myNpc to myNewNpc in your file, an additional step is required:
UPDATE idObjects SET WHERE ;
UPDATE cellObjects SET WHERE ;
UPDATE creatureReferences SET creature = ‘myNewNpc’ WHERE creature = ‘myNpc’;
This third command ensures that any objects owned by this NPC will still belong to them after the update (the creatureReferences table keeps track of these additional references to NPCs or creatures). Likewise, if you have a script, item, sound, or whatever else whose ID you want to change, make sure to make a call that type’s respective references table to ensure that these are updated to the new ID.
Another example, this time for misc. items:
UPDATE idObjects SET WHERE ;
UPDATE cellObjects SET WHERE ;
UPDATE itemReferences SET item = ‘myNewMiscItem’ WHERE item = ‘myMiscItem’;
The last line will update the references in inventories, containers, leveled lists, etc.
Dirty Object Cleaning
Sometimes you have an unclean file with accidental changes to vanilla or Tamriel_Data objects. You can remove these dirty edits with Esp-QuickEditor, although it is more common to use TESAME.
DELETE FROM idObjects WHERE ;
This will delete your accidental object entry but will leave the instances of furn_bone_01 within your file unharmed (they are in the cellObjects table).
Flora Changes
Assets such as flora may receieve model changes that mess up existing placements. If the repositioning needed to fix each reference is predictable, the process can be automated. For a certain plant flora_floating in your file that’s 50 units too high above the ground, use the following command to lower all of its instances:
UPDATE cellObjects SET zPos = zPos-50 WHERE ;
Grass ESPs
The grass-free file is made with a similar command:
DELETE FROM cellObjects WHERE
;
Region Edits and Dirty Cell Cleaning
This will delete both the objects and the landscape of this cell from your file. (A future version of Esp-QuickEditor may feature a landscape table in case you only want to remove landscape and keep the cell objects.)
Claims and sections are typically created with a formula for their particular cells. To make these yourself, think about how an area can be split into rectangles.
Alternatively, you can delete cells by region. The following command deletes cells that aren’t in the specified western Cyrodiil regions:
DELETE from exteriorCells WHERE
region<>‘Gilded Hills Region’ AND
region<>‘Gold Coast Region’ AND
region<>‘Abecean Sea Region’;
Furthermore, you can target cells based on the number of references:
DELETE FROM exteriorCells WHERE objectCount = 0;
Removing ESM Dependencies
To remove a dependency your file has on a master file called unwanted.esm :
DELETE FROM masterFiles WHERE name = ‘unwanted.esm’;
Here is a more general command to delete multiple unwanted masters:
DELETE from masterFiles WHERE
name<>‘Morrowind.esm’ AND
name<>‘Tribunal.esm’ AND
name<>‘Bloodmoon.esm’ AND
name<>‘Tamriel_Data.esm’;
Miscellaneous Uses
You can use RAND() to target a random portion of objects:
DELETE FROM cellObjects WHERE cell=’ExampleCell’ AND RAND()
To remove the spell Almsivi Intervention from all of your NPCs:
DELETE FROM spellReferences WHERE spell = ‘almsivi intervention’
To make all interior cells in your file where sleeping is legal (dungeons and caves) 40% darker:
UPDATE interiorCells SET ambientRed=ambientRed*0.6, ambientGreen=ambientGreen*0.6, ambientBlue=ambientBlue*0.6, sunlightRed=sunlightRed*0.6, sunlightGreen=sunlightGreen*0.6, sunlightBlue=sunlightBlue*0.6 WHERE illegalToSleepHere=0;
End Note
It is up to you to figure out the other possible uses of the various references tables.
Note to SQL programmers: You will notice that support for different expressions is quite limited at this point. There are no functions, aliases, subselects, or any other advanced functions available. Only very basic SELECTs, UPDATEs, and DELETEs work. Many tables don’t allow deletions on them and there are many columns that cannot be updated. INSERTs are only possible with the cellObjects and masterFiles table at the moment.
This tutorial is edited from Worsas’ original post and may receive updates in the future.