This guide assumes you know how to manipulate SWG .tre files, that is, examine, extract and create new .tre's with all of the files needed to add items to the Pre-CU Core. If you are not familiar with this process you REALLY should be because pretty much anything to do with adding new things to the Emu core starts with being able to do this. So check out the guides on this forum about tre file manipulation, especially Duff's guide on consolidating tre files here:
http://www.modthegalaxy.com/forums/thread-consolidating-tre-files
**EDIT**
Just noticed Kinshi's Barc tre files are in the beta release section for downloading.
Also to point out this process actually adds these items to your SWGEmu development server, it is not just a simple mod. Also thie process is very similar for all additional items you may like to add.
Right, on to the BARC
Tools needed, or at least what I used.
Edit: Just use Sytner's IFF Editor now for all editing.
Adding the Barc speeder can basically be split into three parts.
1. Tre file manipulation. Creating custom tre with the relevant Barc Speeder files and the CRC string file ammended in section 2.(Not covered in detail in this guide as it's covered elsewhere in this forum).
2. Amending the /object_template_crc_string_table.iff file to add the template CRC to the object list.
3. Scripting the Lua files which again fall into three types.
Object template file.
Player control device.
Deed file.
1. Using SIE, open the NGE TOC file /sku0.client.toc and extract the necessary files for the BARC speeder to a folder on your HD called barc.tre.
a. Start with /object/mobile/vehicle/shared_barc_speeder.iff Right click and "Export File Chain". This should grab most of the files needed but more than likely will miss some. Almost certainly you will need to grab the player control device files so.
b. Find /object/intangible/vehicle/shared_barc_speeder_pcd.iff and export file chain.
c. Finally export the file chain from /object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff and you should now be good to go.
For the sake of this exercise we'll assume your just going to make a .tre file with only one item in it and it will be called barc.tre. Once you have gathered all of the files, your almost ready to repack your custom tre, but dont compile it yet.
2. Find the file /misc/object_template_crc_string_table.iff in the Pre-CU tre files. The latest version of this file sould be in patch_14.00 (if you have not added anything to your server). Right click and export to a folder called /misc in the /barctre folder you created earlier. This file contains all of the CRC information for every object template that is currently in your Pre-CU server. There are other versions elsewhere in the .tre files but do not use an earlier version. Once extracted to your HD, open the crc editor. From the menu select file & open the /misc/object_template_crc_string_table.iff you just extracted, it should now be shown next to the editing heading. Below it there should be an empty box to add your object .iff file, of which you are going to enter three.
a. First type in the box object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff next click Add
b. Next type object/mobile/vehicle/shared_barc_speeder.iff and click Add.
c. Lastly type object/intangible/vehicle/shared_barc_speeder_pcd.iff and Add. Now click file and Save.
Double check spelling here, because if it is incorrect you speeder will not work and you will get lots of errors from your server. Also the CRCtool will not give you the option to save if you just exit so make sure you save before you do!!
Once complete, you can now pack your custom tre using SIE. This will now need to be added to both your server and client tre folder and added to the config.lua and the swgemu_live.cfg files. That completes the tre work, now just the server scripts to add.
*****NOTE*****
When copying and adding CRC's to the object_template_crc_string_table.iff file you must pay particular attention to what version your using and what has been added and what has not!!! It's very easy to omit/forget/badly screw up this file and end up with errors on both server and client.
*****NOTE2*****
When copying and adding CRC's to the object_template_crc_string_table.iff file you must pay particular attention to what version your using and what has been added and what has not!!! It's very easy to omit/forget/badly screw up this file and end up with errors on both server and client. Yes check twice at least............You get the point!!!!!!!
3i. Server Lua files.
a. Object template files. Create the following file. /object/mobile/vehicle/barc_speeder.lua Then copy into the file:
object_mobile_vehicle_barc_speeder = object_mobile_vehicle_shared_barc_speeder:new {
}
ObjectTemplates:addTemplate(object_mobile_vehicle_barc_speeder, "object/mobile/vehicle/barc_speeder.iff")
b. Add to the following file. /object/mobile/vehicle/objects.lua
object_mobile_vehicle_shared_barc_speeder = SharedCreatureObjectTemplate:new {
clientTemplateFileName = "object/mobile/vehicle/shared_barc_speeder.iff"
}
ObjectTemplates:addClientTemplate(object_mobile_vehicle_shared_barc_speeder, "object/mobile/vehicle/shared_barc_speeder.iff")
c. Add this line to the following file. /object/mobile/vehicle/serverobjects.lua
includeFile("mobile/vehicle/barc_speeder.lua")
3ii. Player Control Device Files.
a. Create the following file. object/intangible/vehicle/barc_speeder_pcd.lua Then copy into the file:
object_intangible_vehicle_barc_speeder_pcd = object_intangible_vehicle_shared_barc_speeder_pcd:new {
}
ObjectTemplates:addTemplate(object_intangible_vehicle_barc_speeder_pcd, "object/intangible/vehicle/barc_speeder_pcd.iff")
b. Add to the following file. /object/intangible/vehicle/objects.lua
object_intangible_vehicle_shared_barc_speeder_pcd = SharedIntangibleObjectTemplate:new {
clientTemplateFileName = "object/intangible/vehicle/shared_barc_speeder_pcd.iff"
}
ObjectTemplates:addClientTemplate(object_intangible_vehicle_shared_barc_speeder_pcd, "object/intangible/vehicle/shared_barc_speeder_pcd.iff")
c. Add this line to the following file. /object/intangible/vehicle/serverobjects.lua
includeFile("intangible/vehicle/barc_speeder_pcd.lua")
You can now see a pattern to whats happening here. Lastly.
3iii. Deed File.
a. Create the following file. object/tangible/deed/vehicle_deed/barc_speeder_deed.lua Then copy into the file:
object_tangible_deed_vehicle_deed_barc_speeder_deed = object_tangible_deed_vehicle_deed_shared_barc_speeder_deed:new {
templateType = VEHICLEDEED,
controlDeviceObjectTemplate = "object/intangible/vehicle/barc_speeder_pcd.iff",
generatedObjectTemplate = "object/mobile/vehicle/barc_speeder.iff",
numberExperimentalProperties = {1, 1, 1},
experimentalProperties = {"XX", "XX", "SR"},
experimentalWeights = {1, 1, 1},
experimentalGroupTitles = {"null", "null", "exp_durability"},
experimentalSubGroupTitles = {"null", "null", "hit_points"},
experimentalMin = {0, 0, 28000},
experimentalMax = {0, 0, 30000},
experimentalPrecision = {0, 0, 0},
experimentalCombineType = {0, 0, 1},
}
ObjectTemplates:addTemplate(object_tangible_deed_vehicle_deed_barc_speeder_deed, "object/tangible/deed/vehicle_deed/barc_speeder_deed.iff")
b. Add to the following file. /object/tangible/deed/vehicle_deed/objects.lua
object_tangible_deed_vehicle_deed_shared_barc_speeder_deed = SharedTangibleObjectTemplate:new {
clientTemplateFileName = "object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff"
}
ObjectTemplates:addClientTemplate(object_tangible_deed_vehicle_deed_shared_barc_speeder_deed, "object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff")
c. Add this line to the following file. /object/tangible/deed/vehicle_deed/serverobjects.lua
includeFile("tangible/deed/vehicle_deed/barc_speeder_deed.lua")
Once all this is completed, restart server and client and the BARC is now added to your server.
Please note that although the speeder is now added there is no way to actually obtain it unless you add it to your frog, create a screenplay or manually generate the item. All of these methods are covered in gudes elsewhere both here and on the Emu forums.
Complete set of BARC Lua files.
Happy speeding
*****NOTE*****
If you follow the above procedure, you will end up with the same problem as howdlej below. The main reason is that when pulling new assets from the NGE Toc files you can sometimes introduce non-compatible files to the Emu core, mainly for shaders and the like. The simplest remedy is to go through the NGE assets you have gathered and check for files that already exist in the original Emu tre's. Sounds complicated, but look at Duff's guide on tre file consolidation and it begins to explain the process.
The other thing is the naming issue..... Yeah I forgot about that one.
Any item you bring from the CU or NGE wont have a string file entry so the names will default to an error message.
The easiest way to find the string file is to open the object tre file in the SIE, in this case the "shared_barc_speeder.tre" and look down the list of XXXX chunks on the left hand side. In one of them you'll see an entry for the look at and stf text, in this case, monster detailis in "monster_name.stf.
Two choices here, copy the NGE string file or add the entry to the Pre-CU version. I'm going to cover the strings in more depth in another guide.
http://www.modthegalaxy.com/forums/thread-consolidating-tre-files
**EDIT**
Just noticed Kinshi's Barc tre files are in the beta release section for downloading.
Also to point out this process actually adds these items to your SWGEmu development server, it is not just a simple mod. Also thie process is very similar for all additional items you may like to add.
Right, on to the BARC
Tools needed, or at least what I used.
Edit: Just use Sytner's IFF Editor now for all editing.
Adding the Barc speeder can basically be split into three parts.
1. Tre file manipulation. Creating custom tre with the relevant Barc Speeder files and the CRC string file ammended in section 2.(Not covered in detail in this guide as it's covered elsewhere in this forum).
2. Amending the /object_template_crc_string_table.iff file to add the template CRC to the object list.
3. Scripting the Lua files which again fall into three types.
Object template file.
Player control device.
Deed file.
1. Using SIE, open the NGE TOC file /sku0.client.toc and extract the necessary files for the BARC speeder to a folder on your HD called barc.tre.
a. Start with /object/mobile/vehicle/shared_barc_speeder.iff Right click and "Export File Chain". This should grab most of the files needed but more than likely will miss some. Almost certainly you will need to grab the player control device files so.
b. Find /object/intangible/vehicle/shared_barc_speeder_pcd.iff and export file chain.
c. Finally export the file chain from /object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff and you should now be good to go.
For the sake of this exercise we'll assume your just going to make a .tre file with only one item in it and it will be called barc.tre. Once you have gathered all of the files, your almost ready to repack your custom tre, but dont compile it yet.
2. Find the file /misc/object_template_crc_string_table.iff in the Pre-CU tre files. The latest version of this file sould be in patch_14.00 (if you have not added anything to your server). Right click and export to a folder called /misc in the /barctre folder you created earlier. This file contains all of the CRC information for every object template that is currently in your Pre-CU server. There are other versions elsewhere in the .tre files but do not use an earlier version. Once extracted to your HD, open the crc editor. From the menu select file & open the /misc/object_template_crc_string_table.iff you just extracted, it should now be shown next to the editing heading. Below it there should be an empty box to add your object .iff file, of which you are going to enter three.
a. First type in the box object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff next click Add
b. Next type object/mobile/vehicle/shared_barc_speeder.iff and click Add.
c. Lastly type object/intangible/vehicle/shared_barc_speeder_pcd.iff and Add. Now click file and Save.
Double check spelling here, because if it is incorrect you speeder will not work and you will get lots of errors from your server. Also the CRCtool will not give you the option to save if you just exit so make sure you save before you do!!
Once complete, you can now pack your custom tre using SIE. This will now need to be added to both your server and client tre folder and added to the config.lua and the swgemu_live.cfg files. That completes the tre work, now just the server scripts to add.
*****NOTE*****
When copying and adding CRC's to the object_template_crc_string_table.iff file you must pay particular attention to what version your using and what has been added and what has not!!! It's very easy to omit/forget/badly screw up this file and end up with errors on both server and client.
*****NOTE2*****
When copying and adding CRC's to the object_template_crc_string_table.iff file you must pay particular attention to what version your using and what has been added and what has not!!! It's very easy to omit/forget/badly screw up this file and end up with errors on both server and client. Yes check twice at least............You get the point!!!!!!!
3i. Server Lua files.
a. Object template files. Create the following file. /object/mobile/vehicle/barc_speeder.lua Then copy into the file:
object_mobile_vehicle_barc_speeder = object_mobile_vehicle_shared_barc_speeder:new {
}
ObjectTemplates:addTemplate(object_mobile_vehicle_barc_speeder, "object/mobile/vehicle/barc_speeder.iff")
b. Add to the following file. /object/mobile/vehicle/objects.lua
object_mobile_vehicle_shared_barc_speeder = SharedCreatureObjectTemplate:new {
clientTemplateFileName = "object/mobile/vehicle/shared_barc_speeder.iff"
}
ObjectTemplates:addClientTemplate(object_mobile_vehicle_shared_barc_speeder, "object/mobile/vehicle/shared_barc_speeder.iff")
c. Add this line to the following file. /object/mobile/vehicle/serverobjects.lua
includeFile("mobile/vehicle/barc_speeder.lua")
3ii. Player Control Device Files.
a. Create the following file. object/intangible/vehicle/barc_speeder_pcd.lua Then copy into the file:
object_intangible_vehicle_barc_speeder_pcd = object_intangible_vehicle_shared_barc_speeder_pcd:new {
}
ObjectTemplates:addTemplate(object_intangible_vehicle_barc_speeder_pcd, "object/intangible/vehicle/barc_speeder_pcd.iff")
b. Add to the following file. /object/intangible/vehicle/objects.lua
object_intangible_vehicle_shared_barc_speeder_pcd = SharedIntangibleObjectTemplate:new {
clientTemplateFileName = "object/intangible/vehicle/shared_barc_speeder_pcd.iff"
}
ObjectTemplates:addClientTemplate(object_intangible_vehicle_shared_barc_speeder_pcd, "object/intangible/vehicle/shared_barc_speeder_pcd.iff")
c. Add this line to the following file. /object/intangible/vehicle/serverobjects.lua
includeFile("intangible/vehicle/barc_speeder_pcd.lua")
You can now see a pattern to whats happening here. Lastly.
3iii. Deed File.
a. Create the following file. object/tangible/deed/vehicle_deed/barc_speeder_deed.lua Then copy into the file:
object_tangible_deed_vehicle_deed_barc_speeder_deed = object_tangible_deed_vehicle_deed_shared_barc_speeder_deed:new {
templateType = VEHICLEDEED,
controlDeviceObjectTemplate = "object/intangible/vehicle/barc_speeder_pcd.iff",
generatedObjectTemplate = "object/mobile/vehicle/barc_speeder.iff",
numberExperimentalProperties = {1, 1, 1},
experimentalProperties = {"XX", "XX", "SR"},
experimentalWeights = {1, 1, 1},
experimentalGroupTitles = {"null", "null", "exp_durability"},
experimentalSubGroupTitles = {"null", "null", "hit_points"},
experimentalMin = {0, 0, 28000},
experimentalMax = {0, 0, 30000},
experimentalPrecision = {0, 0, 0},
experimentalCombineType = {0, 0, 1},
}
ObjectTemplates:addTemplate(object_tangible_deed_vehicle_deed_barc_speeder_deed, "object/tangible/deed/vehicle_deed/barc_speeder_deed.iff")
b. Add to the following file. /object/tangible/deed/vehicle_deed/objects.lua
object_tangible_deed_vehicle_deed_shared_barc_speeder_deed = SharedTangibleObjectTemplate:new {
clientTemplateFileName = "object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff"
}
ObjectTemplates:addClientTemplate(object_tangible_deed_vehicle_deed_shared_barc_speeder_deed, "object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff")
c. Add this line to the following file. /object/tangible/deed/vehicle_deed/serverobjects.lua
includeFile("tangible/deed/vehicle_deed/barc_speeder_deed.lua")
Once all this is completed, restart server and client and the BARC is now added to your server.
Please note that although the speeder is now added there is no way to actually obtain it unless you add it to your frog, create a screenplay or manually generate the item. All of these methods are covered in gudes elsewhere both here and on the Emu forums.
Complete set of BARC Lua files.
Happy speeding
*****NOTE*****
If you follow the above procedure, you will end up with the same problem as howdlej below. The main reason is that when pulling new assets from the NGE Toc files you can sometimes introduce non-compatible files to the Emu core, mainly for shaders and the like. The simplest remedy is to go through the NGE assets you have gathered and check for files that already exist in the original Emu tre's. Sounds complicated, but look at Duff's guide on tre file consolidation and it begins to explain the process.
The other thing is the naming issue..... Yeah I forgot about that one.
Any item you bring from the CU or NGE wont have a string file entry so the names will default to an error message.
The easiest way to find the string file is to open the object tre file in the SIE, in this case the "shared_barc_speeder.tre" and look down the list of XXXX chunks on the left hand side. In one of them you'll see an entry for the look at and stf text, in this case, monster detailis in "monster_name.stf.
Two choices here, copy the NGE string file or add the entry to the Pre-CU version. I'm going to cover the strings in more depth in another guide.