Adding, removing and editing weapons/items in stage ARCs.
Dec 24, 2021 7:38:20 GMT 10
scoovyhd, Rosario, and 1 more like this
Post by RichardHafer on Dec 24, 2021 7:38:20 GMT 10
(I assume you already know how to open stages with the Arc-Tool. If not, just ask me and I will give you short tutorial in PM)
This is also not hard at all, you just have to understand how it works, from then on its no problemo
Here is an imgur link with screenshots. It follows in right order.
imgur.com/a/96s81XT
Here we go
I really recommend that you use the same stage as me for the tutorial, I will use the stage "Power Station" (s310) as the example here. Makes it 100000x easier to understand
So first you wanna unpack the stage you wanna edit (s310 in this case)
1. go to "stage, s310, soft" (s310\stage\s310\soft)
2. In soft folder there you will find the file called "s310_item.lot.xml", open it with any text-editor. I really recommend Notepad++ !!! Trust me, this will save work for you.
3. Now, this will be a bit confusing. So I will explain in detail. Here I explain you the structure of a item.lot file and basically all you have to edit/add. IMPORTANT!
1) Count
At the top of every item.lot file you will see
<array name="mSetInfos" type="classref" count="4">
You see the 4? Basically, when you add more items or remove items, you will have to set the count right there on how many items there currently are in the file.
Example, if you added 2 weapons/items, you gotta set it to 6. I think you know what I mean. So always keep that in mind. When you forget it the Arc-tool might crash during the repack process so you'll know that something's wrong.
This classref count shit applies to almost every other file too(enemy files, fsm, ...) So always after you are done editing the item.lot file, count the items/weapons in file and change the count number to the right amount!
2) What even is the whole Entry for a single item/weapon?
Every item/weapon Entry begins with
<classref type="1637199632">
and ends with
</class>
</classref>
</classref>
So this is what a whole weapon/item "Entry" structure looks like in a item.lot file. If you have the file open, you will understand what I mean:
(Screenshot available too)
<classref type="1637199632">
<s32 name="mID" value="0"/>
<string name="mInfoClass" value="cSetInfoItem"/>
<string name="mUnitClass" value="uIt0202"/>
<classref name="mpInfo" type="381867577">
<string name="mName" value=""/>
<string name="mParentName" value=""/>
<s32 name="mParentNo" value="13116928"/>
<u32 name="mOrder" value="4"/>
<vector3 name="mPosition" x="2516.5817871094" y="-1202.3439941406" z="-23407.0097656250"/>
<vector3 name="mAngle" x="-0.0000000000" y="0.4475550056" z="0.0000000000"/>
<vector3 name="mScale" x="1.0000000000" y="1.0000000000" z="1.0000000000"/>
<u32 name="PatternNo" value="0"/>
<u32 name="mLife" value="0"/>
<u32 name="mJumpInit" value="0"/>
<class name="mItemSet" type="1492295384">
<vector3 name="Pos" x="2516.5817871094" y="-1202.3439941406" z="-23407.0097656250"/>
<vector3 name="Ang" x="-0.0000000000" y="0.4475550056" z="0.0000000000"/>
<bool name="AutoPosition" value="true"/>
<bool name="HitAuto" value="true"/>
<bool name="NoCheckOba" value="false"/>
<bool name="NoCheckEff" value="false"/>
<classref name="Shape" type="1035932488">
<string name="Name" value=""/>
<f32 name="CheckAngle" value="0.0000000000"/>
<f32 name="CheckRange" value="0.0000000000"/>
<f32 name="CheckToward" value="0.0000000000"/>
<bool name="AngleFlag" value="false"/>
<bool name="TowardFlag" value="false"/>
<vector3 name="Cone.mCenterPos" x="0.0000000000" y="-180.0000000000" z="0.0000000000"/>
<f32 name="Cone.mHeight" value="270.0000000000"/>
<f32 name="Cone.mTopRadius" value="220.0000000000"/>
<f32 name="Cone.mBottomRadius" value="20.0000000000"/>
</classref>
<vector3 name="SetOffset" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
<s16 name="ItemFlagNo" value="-1"/>
<u16 name="ItemId" value="514"/>
<s32 name="ItemNum" value="-1"/>
<u16 name="SetType" value="0"/>
<s16 name="SetLotNo" value="-1"/>
<s16 name="SetNo" value="-1"/>
<u8 name="EffType" value="1"/>
<vector3 name="EffOffset" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
<u8 name="LevelPower" value="0"/>
<u8 name="LevelFireSpeed" value="0"/>
<u8 name="LevelReloadSpeed" value="0"/>
<u8 name="LevelBulletMax" value="0"/>
<u8 name="LevelBulrRate" value="0"/>
<u8 name="LevelCritical" value="0"/>
<u8 name="LevelThrough" value="0"/>
<u8 name="LevelRange" value="0"/>
<u8 name="LevelScope" value="0"/>
</class>
</classref>
</classref>
3) Removing item/weapon from stage
If you wanna remove something, select from <classref type="1637199632">
to the lower </classref> (just like the entry above or see screenshot) and delete. Simple!
I hope by know you kinda understand the structure of the item.lot file.
4) Adding a weapon/item
First, duplicate the last entry in the file (so you mark the last entry from <classref type="1637199632"> to the lower </classref>) and copy it, and paste it right under the last entry so we have a duplicate of it which we gonna edit to make our weapon/item spawn.
Now what you want to edit:
1. <string name="mUnitClass" value="uIt0473"/>
residentevilmodding.boards.net/thread/3989/re5-ge-arc-list
Visit the RE5 ARC LIst and go to weapons list, for example, I want to spawn here the H/K Pistol so I Will put wp10 here (uWp10)
1. <string name="mParentName" value=""/> Delete everything inbetween the quotation marks (In this stage last entry there already was nothing so we good, no need to edit)
2. <vector3 name="mPosition" x="1307.4351806641" y="-1300.0000000000" z="-22913.6503906250"/>
You will have to get a program to get the coordinates of your current character in RE5 to copy and paste them in here to make the item/weapon spawn at the Location you want.
3. <vector3 name="mAngle" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
You should fiddle around with the X, Y and Z Values only when you want your weapon to spawn in a specific angle. This requires a lot of Trial and Error since you can only see result when you actually play the stage and see if its in the Angle you want. Basically very time consuming so I just recommend to spawn your weapon in default angle like shown here (Weapons will be in angle as if they lay on ground like normal)
In case you still wanna edit them, here is what they are:
X and Z=?
Y=Rotation
4. <vector3 name="mScale" x="1.0000000000" y="1.0000000000" z="1.0000000000"/>
Pretty self-explanatory, make your weapon huge if you want when its laying around (Change the value of all to the same if you change it, so if I want my weapon to be 3x big, all xyz should be 3.0000000000)
5. <vector3 name="Pos" x="1307.4351806641" y="-1300.0000000000" z="-22913.6503906250"/>
Set the xyz values here to the exact same like the mPosition one!
6. <vector3 name="Ang" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
Set the xyz values here to the exact same like the mAngle one!
7. <bool name="AutoPosition" value="true"/>
I dont know what happens when set to false but I think always should be true.
8. <bool name="HitAuto" value="true"/>
I dont know what happens when set to false but I think always should be true.
9.
<f32 name="CheckAngle" value="0.0000000000"/>
<f32 name="CheckRange" value="0.0000000000"/>
<f32 name="CheckToward" value="0.0000000000"/>
All to zero! Already is like that here so no need to edit but some items may have it changed.
10. <s16 name="ItemFlagNo" value="-1"/>
Always at -1
11. <u16 name="ItemId" value="770"/>
Important! In here you will now define the item/weapon you wanna spawn. Go see Item ID list here: residentevilmodding.boards.net/thread/14284/entire-list-games-item-ids?page=1
12.
<s32 name="ItemNum" value="-1"/>
<u16 name="SetType" value="0"/>
<s16 name="SetLotNo" value="-1"/>
<s16 name="SetNo" value="-1"/>
If you just wanna spawn an item/weapon that is not linked to any chest or enemy, leave it like this.
If you want to link to an enemy, do like this:
<u16 name="SetType" value="1"/>
<s16 name="SetLotNo" value="1"/> (1 means this will be llinked to s310_em01)
<s16 name="SetNo" value="1"/> (1 means this will be linked to the first enemy entry of s310_em01)
13.
<u8 name="EffType" value="1"/>
0 = Default (Blue for money, Red for ammo, etc)
1 = None
5 = Green Light
6 = Red Light
14.
<u8 name="LevelPower" value="0"/>
<u8 name="LevelFireSpeed" value="0"/>
<u8 name="LevelReloadSpeed" value="0"/>
<u8 name="LevelBulletMax" value="0"/>
<u8 name="LevelBulrRate" value="0"/>
<u8 name="LevelCritical" value="0"/>
<u8 name="LevelThrough" value="0"/>
<u8 name="LevelRange" value="0"/>
<u8 name="LevelScope" value="0"/>
I think here you can change the upgrade level. Maximum value for each is the maximum upgrade level, for that weapon or item.
See last screenshot of that originally was a duplicate, now my item/weapon I edited.
Dont forget to set the "classref count" 1 number higher (in this case to 5)! Save file and repack the arc, and test in game. this is my result
I will soon make a short tutorial on how to get coordinates of your characters Position.
This is also not hard at all, you just have to understand how it works, from then on its no problemo
Here is an imgur link with screenshots. It follows in right order.
imgur.com/a/96s81XT
Here we go
I really recommend that you use the same stage as me for the tutorial, I will use the stage "Power Station" (s310) as the example here. Makes it 100000x easier to understand
So first you wanna unpack the stage you wanna edit (s310 in this case)
1. go to "stage, s310, soft" (s310\stage\s310\soft)
2. In soft folder there you will find the file called "s310_item.lot.xml", open it with any text-editor. I really recommend Notepad++ !!! Trust me, this will save work for you.
3. Now, this will be a bit confusing. So I will explain in detail. Here I explain you the structure of a item.lot file and basically all you have to edit/add. IMPORTANT!
1) Count
At the top of every item.lot file you will see
<array name="mSetInfos" type="classref" count="4">
You see the 4? Basically, when you add more items or remove items, you will have to set the count right there on how many items there currently are in the file.
Example, if you added 2 weapons/items, you gotta set it to 6. I think you know what I mean. So always keep that in mind. When you forget it the Arc-tool might crash during the repack process so you'll know that something's wrong.
This classref count shit applies to almost every other file too(enemy files, fsm, ...) So always after you are done editing the item.lot file, count the items/weapons in file and change the count number to the right amount!
2) What even is the whole Entry for a single item/weapon?
Every item/weapon Entry begins with
<classref type="1637199632">
and ends with
</class>
</classref>
</classref>
So this is what a whole weapon/item "Entry" structure looks like in a item.lot file. If you have the file open, you will understand what I mean:
(Screenshot available too)
<classref type="1637199632">
<s32 name="mID" value="0"/>
<string name="mInfoClass" value="cSetInfoItem"/>
<string name="mUnitClass" value="uIt0202"/>
<classref name="mpInfo" type="381867577">
<string name="mName" value=""/>
<string name="mParentName" value=""/>
<s32 name="mParentNo" value="13116928"/>
<u32 name="mOrder" value="4"/>
<vector3 name="mPosition" x="2516.5817871094" y="-1202.3439941406" z="-23407.0097656250"/>
<vector3 name="mAngle" x="-0.0000000000" y="0.4475550056" z="0.0000000000"/>
<vector3 name="mScale" x="1.0000000000" y="1.0000000000" z="1.0000000000"/>
<u32 name="PatternNo" value="0"/>
<u32 name="mLife" value="0"/>
<u32 name="mJumpInit" value="0"/>
<class name="mItemSet" type="1492295384">
<vector3 name="Pos" x="2516.5817871094" y="-1202.3439941406" z="-23407.0097656250"/>
<vector3 name="Ang" x="-0.0000000000" y="0.4475550056" z="0.0000000000"/>
<bool name="AutoPosition" value="true"/>
<bool name="HitAuto" value="true"/>
<bool name="NoCheckOba" value="false"/>
<bool name="NoCheckEff" value="false"/>
<classref name="Shape" type="1035932488">
<string name="Name" value=""/>
<f32 name="CheckAngle" value="0.0000000000"/>
<f32 name="CheckRange" value="0.0000000000"/>
<f32 name="CheckToward" value="0.0000000000"/>
<bool name="AngleFlag" value="false"/>
<bool name="TowardFlag" value="false"/>
<vector3 name="Cone.mCenterPos" x="0.0000000000" y="-180.0000000000" z="0.0000000000"/>
<f32 name="Cone.mHeight" value="270.0000000000"/>
<f32 name="Cone.mTopRadius" value="220.0000000000"/>
<f32 name="Cone.mBottomRadius" value="20.0000000000"/>
</classref>
<vector3 name="SetOffset" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
<s16 name="ItemFlagNo" value="-1"/>
<u16 name="ItemId" value="514"/>
<s32 name="ItemNum" value="-1"/>
<u16 name="SetType" value="0"/>
<s16 name="SetLotNo" value="-1"/>
<s16 name="SetNo" value="-1"/>
<u8 name="EffType" value="1"/>
<vector3 name="EffOffset" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
<u8 name="LevelPower" value="0"/>
<u8 name="LevelFireSpeed" value="0"/>
<u8 name="LevelReloadSpeed" value="0"/>
<u8 name="LevelBulletMax" value="0"/>
<u8 name="LevelBulrRate" value="0"/>
<u8 name="LevelCritical" value="0"/>
<u8 name="LevelThrough" value="0"/>
<u8 name="LevelRange" value="0"/>
<u8 name="LevelScope" value="0"/>
</class>
</classref>
</classref>
3) Removing item/weapon from stage
If you wanna remove something, select from <classref type="1637199632">
to the lower </classref> (just like the entry above or see screenshot) and delete. Simple!
I hope by know you kinda understand the structure of the item.lot file.
4) Adding a weapon/item
First, duplicate the last entry in the file (so you mark the last entry from <classref type="1637199632"> to the lower </classref>) and copy it, and paste it right under the last entry so we have a duplicate of it which we gonna edit to make our weapon/item spawn.
Now what you want to edit:
1. <string name="mUnitClass" value="uIt0473"/>
residentevilmodding.boards.net/thread/3989/re5-ge-arc-list
Visit the RE5 ARC LIst and go to weapons list, for example, I want to spawn here the H/K Pistol so I Will put wp10 here (uWp10)
1. <string name="mParentName" value=""/> Delete everything inbetween the quotation marks (In this stage last entry there already was nothing so we good, no need to edit)
2. <vector3 name="mPosition" x="1307.4351806641" y="-1300.0000000000" z="-22913.6503906250"/>
You will have to get a program to get the coordinates of your current character in RE5 to copy and paste them in here to make the item/weapon spawn at the Location you want.
3. <vector3 name="mAngle" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
You should fiddle around with the X, Y and Z Values only when you want your weapon to spawn in a specific angle. This requires a lot of Trial and Error since you can only see result when you actually play the stage and see if its in the Angle you want. Basically very time consuming so I just recommend to spawn your weapon in default angle like shown here (Weapons will be in angle as if they lay on ground like normal)
In case you still wanna edit them, here is what they are:
X and Z=?
Y=Rotation
4. <vector3 name="mScale" x="1.0000000000" y="1.0000000000" z="1.0000000000"/>
Pretty self-explanatory, make your weapon huge if you want when its laying around (Change the value of all to the same if you change it, so if I want my weapon to be 3x big, all xyz should be 3.0000000000)
5. <vector3 name="Pos" x="1307.4351806641" y="-1300.0000000000" z="-22913.6503906250"/>
Set the xyz values here to the exact same like the mPosition one!
6. <vector3 name="Ang" x="0.0000000000" y="0.0000000000" z="0.0000000000"/>
Set the xyz values here to the exact same like the mAngle one!
7. <bool name="AutoPosition" value="true"/>
I dont know what happens when set to false but I think always should be true.
8. <bool name="HitAuto" value="true"/>
I dont know what happens when set to false but I think always should be true.
9.
<f32 name="CheckAngle" value="0.0000000000"/>
<f32 name="CheckRange" value="0.0000000000"/>
<f32 name="CheckToward" value="0.0000000000"/>
All to zero! Already is like that here so no need to edit but some items may have it changed.
10. <s16 name="ItemFlagNo" value="-1"/>
Always at -1
11. <u16 name="ItemId" value="770"/>
Important! In here you will now define the item/weapon you wanna spawn. Go see Item ID list here: residentevilmodding.boards.net/thread/14284/entire-list-games-item-ids?page=1
12.
<s32 name="ItemNum" value="-1"/>
<u16 name="SetType" value="0"/>
<s16 name="SetLotNo" value="-1"/>
<s16 name="SetNo" value="-1"/>
If you just wanna spawn an item/weapon that is not linked to any chest or enemy, leave it like this.
If you want to link to an enemy, do like this:
<u16 name="SetType" value="1"/>
<s16 name="SetLotNo" value="1"/> (1 means this will be llinked to s310_em01)
<s16 name="SetNo" value="1"/> (1 means this will be linked to the first enemy entry of s310_em01)
13.
<u8 name="EffType" value="1"/>
0 = Default (Blue for money, Red for ammo, etc)
1 = None
5 = Green Light
6 = Red Light
14.
<u8 name="LevelPower" value="0"/>
<u8 name="LevelFireSpeed" value="0"/>
<u8 name="LevelReloadSpeed" value="0"/>
<u8 name="LevelBulletMax" value="0"/>
<u8 name="LevelBulrRate" value="0"/>
<u8 name="LevelCritical" value="0"/>
<u8 name="LevelThrough" value="0"/>
<u8 name="LevelRange" value="0"/>
<u8 name="LevelScope" value="0"/>
I think here you can change the upgrade level. Maximum value for each is the maximum upgrade level, for that weapon or item.
See last screenshot of that originally was a duplicate, now my item/weapon I edited.
Dont forget to set the "classref count" 1 number higher (in this case to 5)! Save file and repack the arc, and test in game. this is my result
I will soon make a short tutorial on how to get coordinates of your characters Position.