Hello all .
Now it is possible to edit R2 tple files (properties of any NPCs, Objects or Items). It is not an final version, because I am still not implemented all arrays support, but most of values already can be changed.
Download: http://www.worldofrisen.de/english/download_86.htm
How to use:
- Extract "...\risen 2\data\common\templates.pak" using Risenaut.
- Launch Tple editor.
- Open tple file.
- Change needed values.
- Save tple file.
- Copy new tple file into "AppData\Risen2\Config" folder (not recomended, because it didn't work for some tple files) or pack it back to pak archive.
Tple editor have three types of visual editors:
- Simple editor:
[Bild: tple_simple.jpg]
- Multi-editor (for editing arrays & some complicated data types)
[Bild: tple_multi.jpg]
- Hex-editor
[Bild: tple_hex.jpg]
As you can see, here is also checkbox - "Enable HEX-editor for all PropertySets". If you will enable this, then only hex editor will be shown for all data types, even if save/load functions for needed datatype exists. So, you can change some value and then check how it will looks under HEX editor. On HEX editor window you also can import/export (load/save) binary data.
Some values (enums, scripts, bool types) already have their own "PickList" (for example you can change True to False).
---
You probably will notice that tple files also have eCTemplateProxyEntity data types (guids) -> it is guids (references to tple files).
Tple file have two guids - first one (parent) and second, lets say - "child". And seems like game works only with slave/child values (for example only child values used for refering to tple files in eCTemplateProxyEntity).
List of all parent & child tple guids you can find here: tple_guid_list.zip
If someone will have any questions, just post it here, I think that some users will be able to answer .
---
Credits: Thanks a lot to NicoDE for additional info about tple/enums/bcMatrix format, hashes & bcMatrix unit
Results 1 to 15 of 15
-
#Stand With UkraineLast edited by LordOfWAR; 02.09.2012 at 18:10.
-
-
Fantastic!
There's a small bug: If one clicks on an enum property (e.g. UseType), the program takes some seconds to load the values which leads to "Access Violation" errors when clicking on a different PropertySet in the meantime.
EDIT:
The program really should modify the three time stamps that are present in each .tple file upon saving. This is needed for overriding the instances in .lrent files.Last edited by Baltram; 27.06.2012 at 15:02.
-
This is great!
Thanks.- Macht's gut und danke für den Fisch. -
~ Phynkchen alias [>Silverback<] ~
_________________________________
Es ist sehr viel besser, wenn man mehr kann als man macht,
als wenn man mehr macht als man kann.
-
I am just updated file to v0.8 on the same download page - http://www.worldofrisen.de/english/download_86.htm
Bug should be fixed and Tple editor will update all timestamps on save .#Stand With UkraineLast edited by LordOfWAR; 28.06.2012 at 15:38.
-
-
hi looks great, however I have a few questons.
which archiv, where is this pak order?
I only tested this tool for mayby 1 min but how can I chance bonus from equipment?
I guess that I can change them in OnUseModifySkills. But unluckily this area is only aviable in hex editor. Other propertys like gold value can easy be changed because they arent in hex editor.
For example I wanted a hat with +5bulletprotection, +5musket skill and +5maximum blood. How can I do that?
Other questions:
-can I give NPC enemys new weapons?
-can I change value of skills. for example increase the critical strke change and the gold cost to learn this
-can I increase the maximum attribut level? From 10 to lets say 12. Alternative, can I reduce the amount of glory per kill.
-
Open [Steam]\SteamApps\common\risen2\data\ and choose one of the subfolders. You'll see *.pak-archives which can be extracted with risenAUT. The templates (*.tple) are placed in data\common\templates.pak
-can I give NPC enemys new weapons?
-can I change value of skills. for example increase the critical strke change and the gold cost to learn this
The gold costs are stored in the info files. Get Nico's Quest Export and open the compiled_infos.bin in data\compiled\library\. Choose an info file and you'll see "GoldCosts" somewhere. You could change this value using an hex editor, but it'd be very hard to change every value using such a tool.
-can I increase the maximum attribut level? From 10 to lets say 12.
Alternative, can I reduce the amount of glory per kill.
edit: Ok. I tried to "analyze" OnUseModifySkills Here is the important stuff:
Spoiler:(zum lesen bitte Text markieren)Code:[...] unint32_t variable_type // e. g. "int" unint32_t bla_hash // e. g. "Amount" unint32_t no_idea1 unint32_t Value unint32_t enum? // e. g. Assault "enum gESkill" unint32_t bla2_hash // e. g. It_Rif_Assault "Skill" unint32_t no_idea2 unint32_t bla3_hash // e. g. It_Rif_Assault "gESkill_Skill_Firearms_Musket" [...]
Note: The following is completely theoretical. I didn't try it ingame and I did only check a few weapons (Rifles, Shotguns and sabres). I think (hope) it work's for clothing either.
To modify the kind of bonus you have to look for enum gESkill, of course it's not shown like that. You are looking for the DWORD (=4 bytes) C5 5B 44 90, in characters it's .[D.; You should find it at (13|3), I think.
The next 4 Bytes (In the tple-Editor 1 Byte = 1 field = 2 hex-characters) should ever be 84 6B 19 0E. It says Skill.
Ignore the following DWORD (08 00 00 00) ...
... and pay attention to the next one: It controls which skill will be increased. In "It_Rif_Assault" you'll see FE D3 52 E0. If you turn the values you'll end in E0 52 D3 FE. If you search for this value in the *.ini-file of Nico's Quest Tool (without spaces!) you'll find gESkill_Skill_Firearms_Musket. I'm pretty sure that's the Musket-Skill
To modify the bonus you need to find an integer (int) and "Amount". So have a look for 30 80 88 0B @(14|2) and F9 A2 71 A7 @(1|3). Ignore the next DWORD (04 00 00 00), the following one is the Value, you want to change. You have to enter the value as a hexadecimal value. You could use this converter.
Last but not least: I have no idea which parts have to be duplicated to apply several boni to one item.
I hope it's understandable...Last edited by JFaron; 07.07.2012 at 20:54. Reason: added information
-
Hi Teron Gorefiend .
I am created tple editor by just adding "rewrite" procedures for needed data types. You can change something, but I don't know (can't be sure) where to edit needed values. But let's take a look:
Probably you are right, items skill bonus should be edited in "Skills arrays" -> I will add their support inside tple editor in next 1-2 week (currently I don't have so much time as recently )
I don't remember if there is items values (datatypes) inside tple files which can do that... Probably it can be changed in some other filetype (for example *.lrents).
You can change some basic skill values inside NPC's tple files, like - "Blood, ProtectionBlade ...". But for editing max attribut level (except blood (you can change MaxBlood value inside NPC's tple -> class gcSkills_NPC_PS -> MaxBlood)), or for editing "gold cost to learn skills" you should edit lrent or infos (bin) files.
Yes, it is possible to change it inside tple files - "tple -> class gCNPC_PS -> XP".
#Stand With Ukraine
-
I assume you have to wait until LordOfWAR implements an array editor.
The format is quite simple:Code:class bTObjArray<T> { uint32_t Count; T Array[Count]; };
The bCRuntimeClass format is already documented (starts with "GEC0"). Let's have a look at the gCItem_PS.OnPossesModifySkills in data\common\templates\Items\LegendaryItems\It_Blue_BLA_Comb.tple (one element):Code:class gCModifySkill (0xBAFAF46C), 1 { Properties { Modifier (0xDCEA4FF4), enum gESkillModifier (0xD56956B4), 0x00000008 {gESkillModifier_AddValue (0x4B7DC864), 0x00000000 (0)} Amount (0xA771A2F9), int (0x0B888030), 0x00000004 {0x00000001 (1)} Skill (0x0E196B84), enum gESkill (0x90445BC5), 0x00000008 {gESkill_Stat_Blades (0x518D5E55), 0x00000003 (3)} } Serializer { class gCModifySkill (0xBAFAF46C), 1, 0x00000000 {} class gCSkillValue (0xE37F42A1), 1, 0x00000000 {} class gCSkillValueBase (0x40D787FC), 1, 0x00000000 {} class bCObjectBase (0x84ADA072), 1, 0x00000000 {} } }
Since gCModifySkill have all the same size, hex-editing is not that complicated, ones you have exported an original entry.
ps: All registered enumeration values and hashes are documented here:
http://forum.worldofplayers.de/forum...8#post19164278
Code:[...] 0xD56956B4=enum gESkillModifier [...] 0x940D6033=gESkillModifier_AddPercentOfMax 0x4B7DC864=gESkillModifier_AddValue 0x5A4E7CF3=gESkillModifier_SetToMax 0x28843EAA=gESkillModifier_SetToValue [...] [enum gESkillModifier] gESkillModifier_AddValue=0 (default) gESkillModifier_SetToMax=1 gESkillModifier_SetToValue=2 gESkillModifier_AddPercentOfMax=3 [...]
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- ConnorLast edited by NicoDE; 08.07.2012 at 14:47.
-
Tple editor executable file updated to v0.9 on same download page .
Some part of arrays already implemeted and it is now possible to edit items skill bonus, required skills, crafting ingridients, interaction arrays and many other things:
[Bild: tple_editor_arrays.jpg]
Already parsed arrays:
Code:class bTObjArray<class bCString> class bTObjArray<class eCEntityProxy> class bTObjArray<class eCPrefabMesh> class bTObjArray<class eCTemplateEntityProxy> class bTObjArray<class gCCraftIngredient> class bTObjArray<class gCInteraction> class bTObjArray<class gCModifySkill> class bTObjArray<class gCNavOffsetPoint> class bTObjArray<class gCSkillValue> class bTValArray<class bCVector> class bTValArray<float>
Currently unpares arrays data-types:
Code:class bTRefPtrArray<class gCStateGraphState *> //Contain unknown to me serialiser data... class bTRefPropertyArray<class eCCollisionShapeBase *> //Have unknown to me "class bcMotion" as one of the properties. Empty arrays: class bTObjArray<class eCFlockingFieldObstacle> class bTObjArray<class eCWeatherOverwrite> class bTObjArray<struct gCNavigation_PS::gSTrailElement> class bTObjArray<struct gCNavigation_PS::gSVisitedNavCluster> class bTRefPropertyArray<class eCAudioEmitterShape *> class bTRefPropertyArray<class gCStateGraphEventFilter *>
#Stand With Ukraine
-
- Join Date
- Aug 2014
- Posts
- 63
"Copy new tple file into "AppData\Risen2\Config" folder (not recomended, because it didn't work for some tple files) or pack it back to pak archive."
How do I repack it? And is it necessary?Last edited by Jobesky; 23.01.2020 at 15:21.
-
Most of the time, copying your modded templates to %localappdata%\Risen 2\Config will work. But if one of the files fails (there is a small chance) or you want to release your mod, it is better to pack your templates into a new archive Risen 2\data\common\templates.p0x where 'x' is the lowest number possible (starting from 0) without overwriting an existing file. For this, use RisenPAK: Drag the folder containing your .tple files onto RisenPAK.exe and change the file extension of the resulting archive.
-
- Join Date
- Aug 2014
- Posts
- 63
Thanks dude, you're the best.
-