Modding SoSE

Question. The FAQ page says this game is completely "data-driven". Does this mean there will be an SDK-like release of source code? (data-driven seems to imply C++) I'm thinking about moving a EaW mod over here but I don't want another XML disaster. I do not have the beta so please excuse my ignorance on the topic.
18,068 views 16 replies
Reply #1 Top
so far most of the stuff we are able to tinker with is able to be modified via notepad..we wont know much more on how we can mod it until they release the modding tools they promised at around release time
Reply #2 Top
... we must know how to use Bits ...
Reply #3 Top
Any specs, and scripts can be easily changed using notepad. Textures are standard .dds, and .tga formats. The only thing we cant look into at the moment are the maps, and ship meshes which i am assuming the forge tools will solve that problem.
Reply #4 Top
Notepad almost always means scripting language. Scripting language usually means inflexibility. The reason I want to move it over here is because EaW was all based in XML and LUA. Therefore, I was unable to create new abilities and gameplay features (the LUA was all using pre-defined functions as well, no open-endedness). An SDK on launch day is probably asking for too much, but if all the changeable data is in a scripting/markup language like XML than this engine may not be what I'm looking for. I don't want to be stuck with "ok, take our base assets, now change the models. All gameplay mechanics are unchangeable, sorry" like I was with EaW.

edit: "Any specs, and scripts can be easily changed using notepad. " - what format are these files in? could you paste a couple lines out so I can see what you mean?
Reply #5 Top
the files are of type ".entity", but any thing that can open txt files can open them.

heres a code snippet:

TXT
CAPITALSHIP_TECHCOLONY
BEGIN
ability:0 "AbilityIonBlast"
ability:1 "AbilityTechCapitalShipColonize"
ability:2 "AbilityTargetingUplink"
ability:3 "AbilityCeaseFire"
CanBomb TRUE
HasBombingLevels FALSE
BaseDamage 60.000000
BasePopulationKilled 3.900000
BombingFreqTime 10.000000
BaseRange 3000.000000
BombTransitTime 12.000000
BombHitEffectName "Weapon_TechCapitalPlanetBombing_Hit"
BombTravelEffectName "Weapon_TechCapitalPlanetBombing_Travel"
BombMuzzleEffectName "Weapon_TechCapitalPlanetBombing_Muzzle"
NumBombMuzzleSoundIDs 1
SoundID "WEAPON_TECH_PLANETBOMB_MUZZLE"
NumBombHitSoundIDs 3
SoundID "EXPLOSION_SUB4"
SoundID "EXPLOSION_SUB4_ALT1"
SoundID "EXPLOSION_SUB4_ALT2"
MainViewIcon "MAINVIEWICON_CAPITALSHIP_TECHCOLONY"
CreationType "FROMFACTORY"
basePrice
BEGIN
credits 3000.000000
metal 400.000000
crystal 250.000000
supply 40.000000
END
BuildTime 75.000000
MaxHullPoints
BEGIN
StartValue 3150.000000
ValueIncreasePerLevel 105.000000
END
MaxShieldPoints


only part of it, but quite easy to read.
Reply #6 Top
Here is our favorite ship the Kol's current "entity" file. It has all the ships specs, Like hull/shield hit points, speed, what ability's, and weapons it can use. It is very similar to a Homeworld "ship" file. Much of the entry's in the file are pretty self explanatory. Like weapon ranges, and weapon types. They can easily be changed. The weapons have their own entity files as well. In fact much of the games assets all have similar files. All of which can be changed if we wish.

There are some entry's in the file that ill have to do some research to make sure it does what i think it does, but you get the basic drift. If we want the kol's flak cannons to fire beams we can do that. If we want the beams to fire flaks we can do that as well. If we want to change the hit points, what model it uses, or whether it has shield, or not we can do that as well. I don't think modding sins will be anything at all like EaW. More like modding Homeworld without the hardcode restrictions. The dev's have said that we can mod out the phase lanes if we wanted to. So that is a BIG plus right there.

I hope the mods don't mind me posting this. If not feel free to edit. I am just showing this as an example.

TXT
CAPITALSHIP_TECHBATTLESHIP
BEGIN
ability:0 "AbilityGaussBlast"
ability:1 "AbilityFlakBurst"
ability:2 "AbilityAdaptiveShield"
ability:3 "AbilityLastStand"
CanBomb TRUE
HasBombingLevels FALSE
BaseDamage 65.000000
BasePopulationKilled 4.200000
BombingFreqTime 10.000000
BaseRange 3000.000000
BombTransitTime 12.000000
BombHitEffectName "Weapon_TechCapitalPlanetBombing_Hit"
BombTravelEffectName "Weapon_TechCapitalPlanetBombing_Travel"
BombMuzzleEffectName "Weapon_TechCapitalPlanetBombing_Muzzle"
NumBombMuzzleSoundIDs 1
SoundID "WEAPON_TECH_PLANETBOMB_MUZZLE"
NumBombHitSoundIDs 3
SoundID "EXPLOSION_SUB4"
SoundID "EXPLOSION_SUB4_ALT1"
SoundID "EXPLOSION_SUB4_ALT2"
MainViewIcon "MAINVIEWICON_CAPITALSHIP_TECHBATTLESHIP"
CreationType "FROMFACTORY"
basePrice
BEGIN
credits 3000.000000
metal 400.000000
crystal 250.000000
supply 40.000000
END
BuildTime 75.000000
MaxHullPoints
BEGIN
StartValue 3000.000000
ValueIncreasePerLevel 120.000000
END
MaxShieldPoints
BEGIN
StartValue 1250.000000
ValueIncreasePerLevel 135.000000
END
HullPointRestoreRate
BEGIN
StartValue 1.500000
ValueIncreasePerLevel 0.100000
END
ShieldPointRestoreRate
BEGIN
StartValue 3.000000
ValueIncreasePerLevel 0.200000
END
ArmorPointsFromExperience
BEGIN
StartValue 5.000000
ValueIncreasePerLevel 0.450000
END
MaxAntiMatter
BEGIN
StartValue 225.000000
ValueIncreasePerLevel 20.000000
END
AntiMatterRestoreRate
BEGIN
StartValue 0.750000
ValueIncreasePerLevel 0.080000
END
NameStringID "IDS_CAPITALSHIP_TECHBATTLESHIP_NAME"
DescriptionStringID "IDS_CAPITALSHIP_TECHBATTLESHIP_DESCRIPTION"
PictureBrushID "CAPITALSHIPPICTURE_TECHBATTLESHIP"
Race "TECH"
Prerequisites
BEGIN
NumResearchPrerequisites 1
ResearchPrerequisite
BEGIN
Subject "RESEARCHSUBJECT_PLANETMODULEACCESS_CAPITALSHIPFACTORYTECH"
Level 1
END
END
numRandomDebrisLarge 2
numRandomDebrisSmall 0
numSpecificDebris 1
specificDebrisMeshName "DebrisTechCapitalShipBattleship"
IconBrushID "HUDICON_CAPITALSHIP_TECHBATTLESHIP"
SmallIconBrushID "HUDICONSMALL_CAPITALSHIP_TECHBATTLESHIP"
NumWeapons 3
Weapon
BEGIN
WeaponType "Beam"
damageEnums
BEGIN
AttackType "ANTICAPITALSHIPFROMCAPITAL"
DamageAffectType "AFFECTS_SHIELDS_AND_HULL"
DamageApplyType "OVERTIME"
DamageType "ENERGY"
WeaponClassType "BEAM"
END
DamagePerBank:FRONT 90.000000
DamagePerBank:BACK 0.000000
DamagePerBank:LEFT 0.000000
DamagePerBank:RIGHT 0.000000
Range 5000.000000
PreBuffCooldownTime 10.000000
CanFireAtFighter FALSE
SynchronizedTargeting TRUE
PointStaggerDelay 0.250000
TravelSpeed 0.000000
Duration 4.000000
WeaponEffects
BEGIN
WeaponType "Beam"
BurstCount 1
BurstDelay 0.000000
MuzzleEffectName "Weapon_TechCapitalBeamHeavy_Muzzle"
NumMuzzleSoundIDs 1
SoundID ""
MuzzleSoundMinRespawnTime 0.100000
HitEffectName "Weapon_TechCapitalBeamHeavy_Hit"
HitHullEffectSoundID ""
HitShieldsEffectSoundID ""
NumBeamEffectSoundIDs 1
SoundID "WEAPON_TECHCAPITALBEAMHEAVY_TRAVEL"
BeamGlowTextureName "TechCapitalBeam_Glow"
BeamCoreTextureName "TechCapitalBeam_Core"
BeamWidth 35.000000
BeamGlowColor ffffffff
BeamCoreColor ffffffff
BeamTilingRate 3.000000
END
END
Weapon
BEGIN
WeaponType "Projectile"
damageEnums
BEGIN
AttackType "ANTICAPITALSHIPFROMCAPITAL"
DamageAffectType "AFFECTS_SHIELDS_AND_HULL"
DamageApplyType "BACKLOADED"
DamageType "PHYSICAL"
WeaponClassType "AUTOCANNON"
END
DamagePerBank:FRONT 36.000000
DamagePerBank:BACK 66.000000
DamagePerBank:LEFT 66.000000
DamagePerBank:RIGHT 36.000000
Range 5000.000000
PreBuffCooldownTime 6.000000
CanFireAtFighter TRUE
SynchronizedTargeting FALSE
PointStaggerDelay 1.000000
TravelSpeed 4000.000000
Duration 0.000000
WeaponEffects
BEGIN
WeaponType "Projectile"
BurstCount 15
BurstDelay 0.060000
MuzzleEffectName "Weapon_TechCapitalAutoCannonHeavy_Muzzle"
NumMuzzleSoundIDs 3
SoundID "WEAPON_TECHCAPITALAUTOCANNONHEAVY_MUZZLE"
SoundID "WEAPON_TECHCAPITALAUTOCANNONHEAVY_MUZZLE_ALT1"
SoundID "WEAPON_TECHCAPITALAUTOCANNONHEAVY_MUZZLE_ALT2"
MuzzleSoundMinRespawnTime 0.770000
HitEffectName "Weapon_TechCapitalAutoCannonHeavy_Hit"
HitHullEffectSoundID "WEAPONIMPACT_PHYSICALHEAVY_HITHULL"
HitShieldsEffectSoundID "WEAPONIMPACT_GENERICHEAVY_HITSHIELDS"
ProjectileTravelEffectName "Weapon_TechCapitalAutoCannonHeavy_Travel"
END
END
Weapon
BEGIN
WeaponType "Projectile"
damageEnums
BEGIN
AttackType "ANTICAPITALSHIPFROMCAPITAL"
DamageAffectType "AFFECTS_SHIELDS_AND_HULL"
DamageApplyType "BACKLOADED"
DamageType "ENERGY"
WeaponClassType "LASERTECH"
END
DamagePerBank:FRONT 54.000000
DamagePerBank:BACK 0.000000
DamagePerBank:LEFT 0.000000
DamagePerBank:RIGHT 0.000000
Range 5000.000000
PreBuffCooldownTime 6.550000
CanFireAtFighter TRUE
SynchronizedTargeting TRUE
PointStaggerDelay 0.900000
TravelSpeed 2000.000000
Duration 0.000000
WeaponEffects
BEGIN
WeaponType "Projectile"
BurstCount 1
BurstDelay 0.000000
MuzzleEffectName "Weapon_TechCapitalLaserHeavy_Muzzle"
NumMuzzleSoundIDs 2
SoundID "WEAPON_TECHCAPITALFIREBALLHEAVY_MUZZLE"
SoundID "WEAPON_TECHCAPITALFIREBALLHEAVY_MUZZLE_ALT1"
MuzzleSoundMinRespawnTime 0.100000
HitEffectName "Weapon_TechCapitalLaserHeavy_Hit"
HitHullEffectSoundID "WEAPONIMPACT_PHYSICALHEAVY_HITHULL"
HitShieldsEffectSoundID "WEAPONIMPACT_GENERICHEAVY_HITSHIELDS"
ProjectileTravelEffectName "Weapon_TechCapitalLaserHeavy_Travel"
END
END
m_weaponIndexForRange 0
mass 10000.000000
ShieldMeshName "Shield_TechBattleship"
maxAccelerationLinear 100.000000
maxAccelerationStrafe 10.000000
maxDecelerationLinear 500.000000
maxAccelerationAngular 1.000000
maxDecelerationAngular 9.999996
maxSpeedLinear 500.000000
squadTypeEntityDef:0 "SquadTechCombat"
squadTypeEntityDef:1 "SquadTechBomber"
NumSoundsFor:ONATTACKORDERISSUED 3
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONATTACKORDERISSUED_0"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONATTACKORDERISSUED_1"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONATTACKORDERISSUED_2"
NumSoundsFor:ONCREATION 1
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONCREATION"
NumSoundsFor:ONGENERALORDERISSUED 3
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONGENERALORDERISSUED_0"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONGENERALORDERISSUED_1"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONGENERALORDERISSUED_2"
NumSoundsFor:ONSELECTED 4
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSELECTED_0"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSELECTED_1"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSELECTED_2"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSELECTED_3"
NumSoundsFor:ONSTARTPHASEJUMP 3
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSTARTPHASEJUMP_0"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSTARTPHASEJUMP_1"
SoundID "CAPITALSHIP_TECHBATTLESHIP_ONSTARTPHASEJUMP_2"
MeshName "CapitalShip_TechBattleship"
ExhaustParticleSystemName "Exhaust_TechBattleship"
ExplosionName "CapitalShip0"
numFlairEffects 0
CommandPoints
BEGIN
StartValue 1.000000
ValueIncreasePerLevel 0.150000
END
weaponCooldownDecreasePerc
BEGIN
StartValue 0.000000
ValueIncreasePerLevel 0.03000
END
weaponDamageIncreasePerc
BEGIN
StartValue 0.000000
ValueIncreasePerLevel 0.10000
END
HyperspaceChargingSoundID "HYPERSPACE_CHARGEUP"
HyperspaceTravelSoundID "HYPERSPACE_TRAVEL"
EngineSoundID "ENGINE_TECHCAPITALSHIP"
formationRank 0
minShadow 0.200000
maxShadow 1.000000
END


Edit: Doh! someone beat me to it.
Reply #7 Top
hah...you have till monday before they come back with the hammer of thor XD
Reply #8 Top
oh noes code has been posted!!!

the mods will release TROGDOR the BURNiNATOR upon you, your end is near!!!

he shall "burninate" both you and your thatched-roof cottage

Reply #9 Top
Maybe if this was a game by Lucas Arts you'd be in trouble. But the Ironclad crew are actually in touch with reality. You should be safe.
Reply #10 Top
Sounds great! The language looks a little high-level but I'm confident that this will work perfectly for the mod. Thanks, guys
Reply #11 Top
high level? thats odd....to me it feels like its just a step above HW1
Reply #12 Top
maxAccelerationLinear 100.000000
maxAccelerationStrafe 10.000000
maxDecelerationLinear 500.000000

I'm going to see what happens when you equalize acceleration and deceleration...
cant wait.
Reply #13 Top

maxAccelerationLinear 100.000000
maxAccelerationStrafe 10.000000
maxDecelerationLinear 500.000000

I'm going to see what happens when you equalize acceleration and deceleration...
cant wait.


the game will bsod on you
Reply #14 Top
I think that it is a lua-based script language, which means everything is pre-defined and it'd be impossible to "create" new code. This was done with Homeworld 2, which made it difficult to modify more interesting aspects of the gameplay.
Reply #15 Top

maxAccelerationLinear 100.000000
maxAccelerationStrafe 10.000000
maxDecelerationLinear 500.000000

I'm going to see what happens when you equalize acceleration and deceleration...
cant wait.


Uhh, they will accelerate and decelerate at equal speeds???
You know 'brake' and 'go faster' at the same rate....

I think that it is a lua-based script language, which means everything is pre-defined and it'd be impossible to "create" new code. This was done with Homeworld 2, which made it difficult to modify more interesting aspects of the gameplay.


That depends on the mod tools, if they supply tools where you can create custom code, then it'd be fine using lua-based stuff, makes for fast easy modding imho

Reply #16 Top

I think that it is a lua-based script language,

Nope, lua was removed a while ago.