New species for SWGEmu Core3 beta 0.5

Halyn

That One Guy
Staff member
Moderator
Jan 11, 2015
242
17
18
35
Empire in Flames
www.writingunderduress.com
#1
Special thanks to Phoenix. Without him, I don't know if I would've gotten this far on the species project.

Nautolan.jpg

------------------------------------
TABLE OF CONTENTS
I. INTRODUCTION
II. INSTALLATION
III. UNINSTALLATION
IV. VERSION HISTORY
V. INCLUDED FILES
VI. KNOWN ISSUES
VII. MISCELLANEOUS
VIII. CREDITS
------------------------------------
I. INTRODUCTION
This patch, which contains both server-side and client-side elements, introduces a whole list of new races to use in SWG by players. What species, you ask? Here's the full list post-installation:
Aqualish
Bith
Bothan
Chiss
Devaronian
Gotal
Gran
Human
Hutt
Ishi Tib
Ithorian
Mon Calamari
Nautolan
Nightsister
Nikto
Quarren
Rodian
Singing Mountain Clan Witch
Sullustan
Talz
Trandoshan
Twi'lek
Weequay
Wookiee
Zabrak

It's time to make the galaxy a more interesting place to be!
------------------------------------
II. INSTALLATION
Client-side installation is simple - just add species.tre to your TRE load list. If you are already using existing content, you'll need to merge certain files, such as your CRCs, to ensure compatibility.

Server-side, you'll also need to add species.tre to your load list - the caveats above about file conflicts apply. In addition, you'll need to do the following:

Replace the existing races.h file with races.h from the zip.

Replace PlayerCreationManager.cpp and ImageDesignManager.cpp with versions from the zip. This is necessary to prevent issues with hairstyles. SWGEmu, as coded, only allows one race/gender to have a hairstyle, which means Chiss and the witches would have no hair. PCM and IDM versions above disable the hair check.

The "player" folder contains the necessary LUAs. I have full confidence you can figure out how to use them.

You will also need to modify your LUAs for all equippables to include the new races as valid strings. I did not include versions of these, as you may wish to customize what species can equip what items. Clipping matters more to some people than others. If you need help, please ask.

Finally, you will need to modify the skills.iff datatable to accomodate the new species. I did not include a copy as my skills.iff is nowhere near stock otherwise, and I couldn't be bothered to create a clean one for this. Plus, a number of servers are running customized skills.iff tables anyway.

------------------------------------
III. UNINSTALLATION
Client-side, just remove the TRE files.
Server-side? I recommend you don't.

------------------------------------
IV. VERSION HISTORY
Beta 0.5 (Released June 4, 2016)

------------------------------------
V. INCLUDED FILES
species.tre - compiled files necessary for the client to use species
races.h - header file for server to enable the species for player creation
ImageDesignManager.cpp - modified version of SWGEmu's file to remove hair check for image design
PlayerCreationManager.cpp - modified version of SWGEmu's file to remove hair check for player creation
Player folder - LUA files necessary to enable the species on the server.

------------------------------------
VI. KNOWN ISSUES
*While all customization works on character creation, some options do not work on image design. In certain circumstances, this can cause the server to segfault. YOU HAVE BEEN WARNED.

*Clipping. It's everywhere.

*Certain races will turn headless when a hat or hood is equipped.

*New races do not show the proper name on the character sheet. I have not yet been able to work around this issue.

*Certain races have issues with stat migration.

------------------------------------
VII. MISCELLANEOUS
This version of the modification has been tested with the SWGEmu's Core3 server in May of 2016. It may not work properly with future publishes or even cause crashes and other trouble.

The author of this release is in no way, shape, or form liable for problems that may arise from using this content.

------------------------------------
VIII. CREDITS
Thanks again in particular to Phoenix for helping me out early on. It was invaluable in figuring out my early issues.

Also thanks to Sytner and Timbab for SIE - without it, this wouldn't have been possible for me to do. (Someone smarter than me, sure!) In the future, new versions of SIE should allow me to do even more races.

------------------------------------
DISCLAIMER: The author(s) of these files do not accept any responsibility for
anything related to them. Use at your own risk! Please ask the respective
author(s) if you want to use these files for anything else.

Want to see what else I'm working on? Check out my test server at empireinflames.com or starsider.org.
 

Attachments

Last edited:
Mar 16, 2014
51
9
8
#5
This is absolutely excellent, and very exciting.

As a concerned server host though, I must ask, what particularly causes the segfaults during the Image Design process? Is it something we can try to avoid with disabling the image design process for certain species, or is it just a risk we have to take to add this content? Also, for the species that don't have an appearance for both genders, what does the gender of that race look like when it's not supported? Or is it just not available at all for that Gender?

Thank you for all the work you put into this, it is things like this that makes SWG greater than it ever was.
 

Halyn

That One Guy
Staff member
Moderator
Jan 11, 2015
242
17
18
35
Empire in Flames
www.writingunderduress.com
#6
HelmedRaven said:
This is absolutely excellent, and very exciting.

As a concerned server host though, I must ask, what particularly causes the segfaults during the Image Design process? Is it something we can try to avoid with disabling the image design process for certain species, or is it just a risk we have to take to add this content? Also, for the species that don't have an appearance for both genders, what does the gender of that race look like when it's not supported? Or is it just not available at all for that Gender?

Thank you for all the work you put into this, it is things like this that makes SWG greater than it ever was.
Okay, on the subject of segfaults:

When I first started working on this on the old dev environment, image design caused segfaults, period, with the new races - it had to do with some null data being passed from the client. I eventually found a solution for a lot of it (which is related to the species on the character sheet not being the proper species).

When I moved to the new dev environment, my segfaults stopped completely - but AFAIK, the SWGEmu code itself should have been no different. Bad Image Design data no longer crashed the server; the ID session just didn't commit. On my current server, there are no segfaults at all associated with the new species, but I can't guarantee it'll be the same for you. I highly recommend testing before opening it up to players to use. A lot of the problems /should/ be ironed out due to the extensive work I did on the character customization datatables, but again, test before implementing.

(EDITED to add this - after all the work I did, I believe there are only two races that could potentially segfault from bad customization data - Nightsisters and SMC. Test those - specifically image design the face markings and color with an image designer, and if you have no crash, you should be crash-free.

EDITED AGAIN - forgot, Talz could do it too.)

For the races with only one gender (which is most of them), whether you choose male or female you get the same appearance, and the character that's created will have the appropriate gender for its appearance. For example, if you pick "Nightsister" and "male", the character created will still register as female.
 
Dec 8, 2011
132
0
16
#8
Not sure where I went wrong but I'm having a strange issue that I'm sure is server-side.

Anyone else getting this, where you create a character and upon creation you can walk around etc. (can't use or wear anything yet cause I never changed those luas) but once you log off you cannot log him/her back on.

If I try to log on one of them I instantly get an error saying that the select character was not found and that it's a server problem and I should contact customer support.
 
Dec 8, 2011
132
0
16
#10
Halyn said:
I've heard of other people working on their own species implementation (working from their own code, not the code I released here) having the same issue. I never personally ran into it, so I don't know what the fix is.
Now that I think about it the only thing I didn't use of yours was the skills.iff and the objects crc as I had a tone of stuff in there.  I thought I was thorough when I compared mine with yours (and it appeared I had all the same objects you had in mine).

I think I will start over from scratch and create a new server to test with.  I'll post an update here.
 
Dec 8, 2011
132
0
16
#12
After trying with a fresh ZonamaDev it all seems to work great, even using the same skills.iff file.

I'm wondering if it's my CRC. Would you be able to list what you added to yours?
 

Halyn

That One Guy
Staff member
Moderator
Jan 11, 2015
242
17
18
35
Empire in Flames
www.writingunderduress.com
#14
I went overkill on my CRC entries when I initially set it up; I'm not sure if /all/ of them are necessary, but I did it basically to ensure the new species mirrored the old ones exactly.

So, as an example for Aqualish, they have entries at:

object/creature/player/aqualish.iff
object/creature/player/aqualish_female.iff
object/creature/player/aqualish_male.iff
object/creature/player/shared_aqualish_female.iff
object/creature/player/shared_aqualish_male.iff

So for a two-gender race, I have five entries in CRC. For a single-gender, I have three (using Devaronians as an example):

object/creature/player/devaronian.iff
object/creature/player/devaronian_male.iff
object/creature/player/shared_devaronian_male.iff

It's possible one or more entries is extraneous. I simply modeled off the preexisting races.
 
Dec 8, 2011
132
0
16
#16
Well I added in the objects manually to my last objects CRC file and that seems to have done the trick :)

Thanks a bunch Halyn for sharing.

Below is the list of all the objects I added in case anyone else needs to do the same.


object/creature/player/aqualish.iff
object/creature/player/aqualish_female.iff
object/creature/player/aqualish_male.iff
object/creature/player/shared_aqualish_female.iff
object/creature/player/shared_aqualish_male.iff

object/creature/player/bith.iff
object/creature/player/bith_female.iff
object/creature/player/bith_male.iff
object/creature/player/shared_bith_female.iff
object/creature/player/shared_bith_male.iff


object/creature/player/chiss.iff
object/creature/player/chiss_female.iff
object/creature/player/chiss_male.iff
object/creature/player/shared_chiss_female.iff
object/creature/player/shared_chiss_male.iff

object/creature/player/devaronian.iff
object/creature/player/devaronian_male.iff
object/creature/player/shared_devaronian_male.iff

object/creature/player/gotal.iff
object/creature/player/gotal_male.iff
object/creature/player/shared_gotal_male.iff

object/creature/player/gran.iff
object/creature/player/gran_male.iff
object/creature/player/shared_gran_male.iff

object/creature/player/hutt.iff
object/creature/player/hutt_female.iff
object/creature/player/hutt_male.iff
object/creature/player/shared_hutt_female.iff
object/creature/player/shared_hutt_male.iff

object/creature/player/ishi_tib.iff
object/creature/player/ishi_tib_male.iff
object/creature/player/shared_ishi_tib_male.iff

object/creature/player/nautolan.iff
object/creature/player/nautolan_male.iff
object/creature/player/shared_nautolan_male.iff

object/creature/player/nightsister.iff
object/creature/player/nightsister_female.iff
object/creature/player/shared_nightsister_female.iff

object/creature/player/nikto.iff
object/creature/player/nikto_male.iff
object/creature/player/shared_nikto_male.iff

object/creature/player/quarren.iff
object/creature/player/quarren_male.iff
object/creature/player/shared_quarren_male.iff

object/creature/player/smc.iff
object/creature/player/smc_female.iff
object/creature/player/shared_smc_female.iff

object/creature/player/talz.iff
object/creature/player/talz_male.iff
object/creature/player/shared_talz_male.iff

object/creature/player/togruta.iff
object/creature/player/togruta_female.iff
object/creature/player/shared_togruta_female.iff

object/creature/player/weequay.iff
object/creature/player/weequay_male.iff
object/creature/player/shared_weequay_male.iff
 
Dec 8, 2011
132
0
16
#18
I'm not sure but I believe I was missing all of them. I took my latest CRC, which would have been from the MTG server and added in the entries for Kaas and Mandalore and some I made for Taanab. When I merged yours with mine using SIE I noticed there was a lot more rows (nearly double). So instead of adding in the missing ones it appeared to add in all the CRC rows from yours.

I'm wondering if perhaps some or all of the CRC numbers were used in my original and yours?
 
Dec 8, 2011
132
0
16
#20
It does appear to be more of a combine than a merge.

Could explain why other servers are having the same issue.