[Guide - Content] Adding a Planet To Core3

Lasko

Moderator
Staff member
Moderator
Joined
Feb 13, 2012
Messages
295


There are a few new files needed to add a new planet to core3, and quite a few that will need to be amended to add the new planet to the current planet list and get it working the same way the current planets do.

This guide will hopefully work you through all the files that are used to make a planet workable in the current core3 configuration.

There will be other guides on how to actually add new content to your new planet such as POI's, spawns, Bunkers, caves and buildings, missions, screenplays and the rest of the things on a planet that make it fun to explore and quest on. But... Everything starts with the actual planet.

So.... first things first. The disclaimer......

Everything I have written here has been found out by either trial and error or following other guides such as Duff's intro to planets found here. I'm no coder, so welcome feedback from ANYBODY that tries this and runs into problems, or experienced coders that see errors in my guide and can offer input to help make this a complete and correct guide to adding new planets.



Ok then....


Tools Needed

Sytner's IFF Editor

Timbab's Jawa Toolbox - Gone, but not forgotton:p


This guide assumes your familiar with using these tools and all the principles of editing and making new tre files and generally working with the server files as teaching those skills is beyond the scope of this guide. As for the tools, open them, play with them and get used to what they do and how they work.


The .TRN File


Basis for any planet is the terrain (.trn) file. Each planet has one and until there is a publicly available editor for this file, we are limited to the files that are already available in the .tre files from SOE. That being said, there are things you can do to edit the available files to change their appearance. There was a primer to this somewhere over at PSWG by Levarris, but I cant find that now.

One of the other things you can do is rename an existing planets .trn and .ws file to the name of your choice and just remove everything from that planet contained in it's snapshot file and then treat it as if it were a new planet to populate with quests, POI's, themeparks and missions etc.

While this is technically cheating, it will give you a new planet to quest on, and once all of the original cities and objects are removed it will at least give you a clean planet to quest on. Not ideal I know, but for now it's this or nothing. So assuming you'd prefer this to nothing I will continue with the guide. Or.. If you prefer nothing.... well the choice is yours:) This guide is just for documenting the process and can be used for any new or existing trn file.

Included in the .tre files are some terrain files that were never used in the game and so could be used as a base for adding new planets to your server. For this exercise we will be using the Taanab.trn Found in /terrain.


Adding Taanab

You will be creating a new .tre file to add to your system, this will contain all of the new and amended files for your planet. So create somewhere a new folder called Taanab.

Next using Sytner's IFF Editor, and working from the Pre-CU tre's, extract the taanab.trn to your new folder making sure it keeps the same file structure that's in the tre.. Whilst for this exercise you dont actually need to extract the taanab.trn, I'm including it in the guide in case you want to rename it and for completeness.

Next there are a few more files you will need to extract, rename and edit, these are crc, snapshot and datatable files. You have to extract them first as you cannot edit them while they are still packed in the original tre files.


Files To Extract

/datatable/clientregion/rori.iff - You will need to copy and rename this file, i used Rori as a base.

/datatable/environment/rori.iff - You will need to copy and rename this file. i used Rori as a base as the taanab file that exists has caused problems so best not to use it.

/datatable/travel/travel.iff - This contains the prices and starport travel points.

/misc/planet_crc_string_table.iff - For adding the CRC of your new planet.

/snapshot/rori.ws - You will need to copy and rename this file.

/terrain/environment/rori.iff - You will need to copy and rename this file.

These are all the files needed to just get your new planet working. We'll talk about the other files that will need to be amended later that will be used to add content etc. to your new planet.


Client Region file.

Just rename this file to taanab.iff. Then in Sytner's editor, open it and remove all but one of the rows. Edit the remaining row to the following:



This sets a client region at the waypoint 0, 0 with a 250m radius. The client needs at least one region otherwise it will not work. You can edit this later on when you start adding things to the planet, but for now 0, 0 is fine.


Environment File

This file sets, surprisingly enough, the environment parameters for the planet. You can have just one (called global) for the whole planet, or have different areas with very different settings. You can set things like cloud density, fog, what music plays when the weather or day, night cycle changes. It's a good file to play around with and make changes. Anyway...

Rename this to taanab.iff and edit it so that there is just one environment family name called taanab_global. It sets all of the parameters the same for the whole planet, and can be edited later if you wish.



travel.iff

This file contains the travel information for travelling via shuttle to each planet. 0 in a box means you cant travel and to enable travel put a price in the box from and to. You will need to append a column first and set the following: name = taanab, column type = integer, default value = 0. You can then pick what travel points you are going to allow and enter a price in the correct box. In this table, travel is allowed from corellia only and costs 500cr.



Terrain/Environment IFF File

Not to be confused with the datatable environment file, rename this to taanab.iff and it'll set the sky etc., to the same as rori rather than the default pink sky.


Snapshot File.


I thought I'd save the best till nearly last. The snapshot file contains all of the data for the positioning and types of objects that are used to make the planet appear populated, such as buildings, caves, bunkers, scenery, towns, furniture, infact, just about everything you see placed above ground. Open a few different files to see how they are made up and differ from each other.

It is used to cut down on network traffic as the client loads all of the objects you see, say like everything in Mos Eisley, rather than the server having to send all of this information. As such, it is best to put as much as possible in this file rather than use a screenplay to load scene objects.

The one drawback at the moment though is that the server does not automatically update the database if you add anything to this file like it does for other object database files. Because of this, the only way currently to update your new snapshot file to the database is to delete the existing /bin/databases/clientobjects.db file and let the server rebuild it when it starts. Just make sure you save the server once you get to "[Core] initialized" as this is an easy file to break if it is not saved correctly before you shutdown the server.

So to edit the snapshot file.

First of all go to the snapshot file you extracted earlier and rename it to taanab.ws

Open SIE and from the new editor drop-down menu click new world snapshot editor. This will open the main editor window. Click open and navigate to your renamed snapshot file. The editor is divided into three sections. On the left is the snapshot node list, with each object having an Oject ID (OID) and it's coordinates. In the center is the pane for adding the world positioning data for each object and any child objects you wish to add. On the right is the viewing pane.

This positioning info can be found in-game by either pressing shift+ctrl+G or using the commands /dumpZoneInformation or /dumpTargetInformation. I'll leave you to get used to this but a good tip is to look at this file for an existing planet, pick an object in the left hand side click it to bring up the info on the right and go there in-game to see how it all relates. Also, look at the info on the left and get a feel for what objects are called and where they will be found in the tre's. You will need to add a starport (/object/building/military/shared_outpost_starport.iff), so note down details so you know what to fill in when the time comes.

So..... First thing you need to do is delete everything in your renamed file. So click an item in the left hand snapshot nodes section section, and click ctrl-a to highlight them all, right click and delete.. You need to remove everything as the object ID's will conflict and cause problems if you dont.

Once complete, and you have a completely empty file, you need to add a new node, so, for your starport, right click in the node pane and add new node. You can pick straight from the repo and ok once you've added it. Now add the location details in the centre pane and then save the file and close.

It would be helpful to expand the radius around the snapshot node so you can view objects in close proximity to the object you are placing. This is how I have mine set in the settings.lua

wsRadiusAroundSnapshotNodes = 120,
wsShowRadiusAroundSnapshotNodes = true,
repositoryInTab = true,

The CRC File.

Your planet needs to have a valid CRC for it to work so open a new CRC editor in the SIE and the open the /misc/planet_crc_string_table.iff you extracted and saved above, then click "Add from files". Navigate to your saved taanab.trn and click add. In the Configure prefix window that appears, you will need to remove everything before terrain and add a forward slash after it so that the example result reads: terrain/taanab.trn. Next click add, and save the file.



Build your .tre

You are now ready to build your .tre and add it to the system. There are more files that will need to be edited to make the planet appear correct but this is all you need to actually make the planet work so you can Zone in and walk about.

You can now use the SIE to pack your new .tre file so check all the files you have edited are in the correct place and pack your tre. For this exercise call it taanab.tre. When complete, copy it to your client folder and to the /tre folder on your server.

Other Serverside Files

Now you have created your tre file and added it to the client and server, there are a few files you will need to edit on the server to enable the planet and make sure to amend the swgemu_live.cfg in your client and /bin/conf/config.lua on your server to add the files.

Other files that need to be edited to make the planet work are:

/bin/conf/config.lua
/bin/scripts/managers/planet_manager.lua
/bin/scripts/managers/weather_manager.lua


In the config.lua file there are two things that need to be edited. Firstly, remove the comments (--)for taanab to enable the zone. Secondly, add the tre to the top of the tre list so your server can find it.

In the planet manager add the Taanab planet and the starport details. This file can be edited later to reposition the starport and other things. In the example below I have enabled weather.

Code:
taanab = {
weatherEnabled = 1,
planetTravelPoints = {
{name = "Starport", x = -3237, z = 0, y = -5707, interplanetaryTravelAllowed = 1, incomingTravelAllowed = 1},
},
planetObjects = {
}
}


For the weather_manager.lua, just copy the entries for another planet and paste in in changing the name for Taanab. You can set the weather how you wish.

That should all that is needed to get you planet up and running. There is a lot more work to do to make it as it should be, but if you now start the server hopefully you should have a working planet. Use the shuttle to get there or teleport, but you should be able to zone in at least.

Next....

Hopefully, you have now successfully set up and tested your planet and can shuttle in and out OK. If so, there are now just a few things you need to do to tidy things up.


String Files

Mainly these files are used to call descriptive text when changing zone or generally progressing through the galaxy. A chance to be creative when adding your new planet. The better you make these names, images and descriptions, the more immersive the game will feel. You will need to extract ALL of these files for your new tre and edit them with the details for your new planet.

/string/en/planet_n.stf

This is simply a list of all the planet names. The ID in the left column will be referenced by other string files to call text in-game. Just add your planet name following the convention.


/string/en/loading/"planet name here"_n.stf

This is a list of names referenced by the next string file to add text to the loading screen when you change zones.


/string/en/loading/"planet name here".stf

This file contains the descriptive text for information about the zone you are loading into. Study these files and follow the convention. They are used primarily to add some depth to the zone you are entering.


/string/en/"planet name"_region_names.stf

This contains the names of all the different regions of the planet it's for. This will show how creative you are being when you are developing your new planet. The names and also mirrored serverside in the spawn manager Lua File /bin/scripts/managers/spawn_managers/"planet_name".lua


/string/en/zone_n.stf

Simply a list of all the different zones in-game. Again follow the convention and add your planet here.


Datatable file

/datatables/loading/"planet name".iff

This file contains the data for what images are called by the loading screen when you change zones. Again this is where you can be quite creative when adding new content. The image files are located in /texture/loading/"planet name"/files.dds


Next.... Am still writing up.....



/ui/ui_planet_map.inc starport term map.
/ui/ticketpurchase.inc
 

Timbab

Administrator
Staff member
Administrator
Moderator
Joined
Oct 6, 2010
Messages
1,057
Location
Magna Germania
Didn't want to comment to not fuck up your multiposts, as they're weird on this MyBB, but great work, Lasko! :)
 

Viaron

Member
Joined
Jul 13, 2012
Messages
189
Lman, I went and pulled all of Levarris's and others old posts about planets and development I could find that the dictatorship of Project SWG Commies has hidden. Here's what I could find from a database backup:

Levarris said:
"Creating New Planets"



Introduction

Greetings all, Levarris here. Formerly the Quality Assurance Leader for ProjectSWG, I have recently stepped across the line from testing to Content Development here on the team and I wanted to share with you a little bit of what I am working on currently.

We all know what planets were in SWG, and while the long term goal is to recreate the game we love as it was, to as exact of a standard as we possibly can; This does not exclude the idea of fresh and new content that was not in the game before. So before I continue let me preface that what is shown here is merely proof of concept, to demonstrate what we may be able to do with the game as time moves along. This is not planned to be added to the game as of yet.

How does this work?



What you see in the image above is what your SWG Client reads when it is looking at the terrain, or TRN file for the specific planet you happen to be on at the time. This file calls on many other objects that are tucked away in the data files for your client to generate what you see when you are in game.

So, how do you make new planets?

When developing the game originally, SOE naturally had their own in house world building tool. Something sadly no one outside of SOE has ever seen, or ever will. But we do have the next best thing available to us. The terrain files and associated files themselves.



While it may not be as elegant as a tool, it can be just as effective with the right application in the right areas. With minor changes in the right places in these files we can actually effect major change to the terrain. How exactly this is done we will leave some mystery to it.

For this proof of concept I chose to create Dromund Kaas or an environment that is strikingly similar to it, using Rori as the start point.


Here we see Rori, unaltered in its natural state as on the Public Test Center right now.


The process begins by altering the lighting of the planet to make it darker and drearier than Rori's natural Dark and Dreary state.


Then the Sky is turned into something more fitting the desired parameters.


We then modify the terrain textures and replace them with the desired appearance.



Radial flora are then replaced with suitable replacements, or new textures altogether.


The end result is you have a planet that looks almost unrecognizable in comparison to the original.

[youtubeLb8[/youtube4]Conclusions[/SIZE]

Eventually we would love to see new worlds added to the game, in time we may be able to accomplish this in a realistic way.


Levarris said:
Buildout Files: Explained



So here is the general Idea:

Picture the above table as the map of a planet. Divided into 64 sections in a grid.

Each Grid Section is 2048 x 2048 meters.

So, if you are looking for the objects of a specific area, take the coordinates of that location, and look them up within datatables/buildout/areas_tatooine.iff

Then once you've located the proper file.

Take note that the coordinates within the buildout file the represent within the 2048x2048 area of the buildout itself and not the global coordinates on the planet.

So for example, in tatooine6_2.iff


Looking at the highlighted object. it is given with coordinates of px= 1679.91 and pz=1946, these coordinates are offsets from the "origin" coordinates of the buildout.



The "origin" coordinates are not the center of the grid-section of the buildout file, but the bottom left corner. In other words the x1 and z1 coordinates.

So in this case 2048, -6144.

Then to get the actual coordinates in game of the object in the buildout, just add the coordinates given in the buildout to the origin coordinates and you get your location.

3727, -4198: White Thranta Shipping Bunker
 

duffstone

Member
Joined
Sep 13, 2013
Messages
188
yeah, I was waiting to see the guide completed before commenting... I had hoped to be 1st on this one too...

But great work here. I could say more but... wow... don't think there's any need. keep it up folks!
 

Lasko

Moderator
Staff member
Moderator
Joined
Feb 13, 2012
Messages
295
Thanks for posting Levarris's primer Via:)

Updated guide to include /terrain/environment/planet.iff
 

Takhomasak

Member
Joined
Aug 17, 2014
Messages
230
Awesome, also, Sytner posted this map of Taanab for the planetary map.

I got really deep into this several weeks ago, but RL caught up with me... hadn't touched Taanab since.

Sticking point with me has been getting the shuttle to actually come to Taanab...


Here's something I've been thinking about, too, in regards to doing some terrain modification. I'm still not skilled enough to do hex editing, but I see how the .TRN files work now, can read them...

and I'm thinking... camps modify the terrain temporarily... can't we use this code to do some expedited world design? Perhaps even make ingame objects/commands that modify the terrain on the fly?

I've searched through the client and server files to see where this is... but like I said, haven't really been able to work on the game in several weeks.
 

Pake

Member
Joined
Dec 8, 2011
Messages
147
Awesome post, thanks for sharing. I was able to get Taanab to have a shuttle and could travel to and from Cnet.

I can't seem to figure out how to get it to use the Taanab world map. It appears to be using the Talus world map.

Any suggestions?
 

Pake

Member
Joined
Dec 8, 2011
Messages
147
Got the world map working, for some reason the client was crashing when I put in the new image before. Seems to work now. Just need to figure out why waypoints dont work and I should be good to go.
 

Pake

Member
Joined
Dec 8, 2011
Messages
147
Got it figured out. It would appear something may have changed since Lasko and Duff's guides were posted, or I may have just read it wrong.

For step where you add the CRC file you need to leave the Prefix line completely blank and also select the "Remove file extension" button so the Example result line is just taanab. After changing that waypoints seem to work properly.
 

drdax

Member
Joined
Jun 11, 2015
Messages
133
A little help here on adding a planet or updating a .ws : question on clientobject.db and restarting

from above..." delete the existing /bin/databases/clientobjects.db file and let the server rebuild it when it starts"

1. when i do this and run ./core3 it doesn't complete startup.. it listsall the DBs as closed then halts...
2. when i use run_dev... it overwrites my config file to the default (takes out my entries on new planet), but starts up - but no new planet

I feel i have tried afew combinations and I amreally stuck.

Can someone list out the steps for server side tasks and commands ?

Please and Thanks !
 

drdax

Member
Joined
Jun 11, 2015
Messages
133
Update : Solved
Found my issue:
1. Rebuilt tre
2. Deleted client objects.db
3. Do not Build or Run_Dev

Seemed to be the steps, thanks for reading And I hope it helps someone else
 
Top Bottom