Entrenchment Ability Mods

I've been trying to create and implement new abilities for cap ships for a couple days now but I cant seem to get them to work even though I follow all the steps I know: creating a new file with a different name, etc.  Is there a specific thing I have to do to get the new ability to correctly implement?  Im pretty stuck, either when I try to enable the mod the game freezes or it mini dumps and I get error messages telling me that the ability is not found, even though its sitting in the gameinfo folder for the mod.  Ive tried updating the entity.manifest files to reflect the new addition but that produced even more errors, especially after I tried adding the new ability to the game info folder for Entrenchment itself...oops... X| .  Any suggestions?

74,343 views 23 replies
Reply #1 Top

This is a copy/paste of what i posted in your related thread... It answers this question.  Main suggestion before you plow into the following text is... Don't change any files while they're still in the main entrenchment directory :)

 

quoting me -

"Here are some tips to help you with this:

A.) Make sure you reduced the "count" under "capitalshipinfo" in whichever "player.entity" file you changed to match the number of remaining capital ships listed in that file

B.) Make sure you didn't leave any empty newlines in place of the 4 removed capital ship entries in said Player file

Aside.) As a test, I made a tiny (1 file in a "GameInfo" folder within a "TestMod" folder within the "Sins ent 1.01 ModPath" folder, and nothing else) mod that stripped the phase of all capital ships except the battleship.  Loaded it ingame by itself, and it loaded perfectly and reduced my selection appropriately

C.) In your first post you say "i  changed the fleet size to 350". If by this you mean "I changed the remaining capital ship's fleet supply requirement = 350", then that's fine.  It causes no issues whatsoever

Aside2.) I added to my mod's GameInfo folder an edited "CAPITALSHIP_PHASEBATTLESHIP.entity" to require 350 fleet, and it worked without any issues.

D.) I have added 1 ability (with 2 supporting buffs), and 2 research subjects to my ent 1.01 mod, and here's what I had to keep in mind to make them all work:

D1.) If you add any custom descriptions/names to your custom abilities, you'll need to add a "String" folder to your "TestMod" folder; copy over the ENTRENCHMENT string file "English.str"; append your new string entries to the end (or add to the beginning); and increase the count at the top by however many entries you added.   Failure to add your strings won't crash the game, but it would give you something like "string not found" in-game instead of a name and description.

D2.) ALL new ".entity" files created solely by you (not IL) (whether abilities, buffs, frigates,capitalships,researchsubjects,etc...) must have their full names (meaning "name"+".entity") added to your own copy of the entrenchment "entity.manifest" file (this file should be placed in the root of your mod folder. meaning it is Beside the "GameInfo" and "String" folders, not within either). You get this base file from "SinsInstall\Entrenchment".  The entries do not have to be in alphabetical order (I'd insert them at the top of the file, so you can easily find them in the future).  Once their names are added to the file, increase the count at the top of the file by however many you added.

D3.) When copying and renaming existing ability/buff .entity files for use as a template in your custom files keep in mind a few things:   "Ability" files almost always point to a related "Buff" file.  You'll need to update that line of the "Ability" file to point at the new(renamed) "buff" file.   Many buffs (although not the gaussblast one) have a buffSpawner/buffTarget set of "buff" files.  The "bufftarget" entity file usually has an end condition that checks for the "buffSpawner"'s continued existence (and ends if it's no longer around). Again, update these names to the new ones you've changed them to. Otherwise you'll have affects that end immediately :). It took me forever to figure out why my "disabled phasedrive" effect was ending within 1 second of applying to an enemy ship :)  The crazy thing was that if that ship was being affected by the original phase chargeup delay (which my affect was checking for), my affect would then "stick".

D4.) Objects etc in ent 1.01 support 5 abilities true, but starbases and capital ships can only display the buttons/icons for 4 of these.  The ramifications of this are that whatever you put in "ability:4" (which is #5) must be a passive ability (you don't need to click it for it to work) because its button/icon will be overwritten by either the starbases "upgrade-management" button, or the capital ships "ability-management" button.    For starbases, it's simply a matter of moving the passive "Phase Destabalization" ability into "ability:4", and putting your custom ability into its old spot. Capital ships that have Passives can do the same thing (move one of the passives to "ability:4", and put your new ability in the old spot).   Caps without passives though are SOL (unless you're adding a custom passive of course, then just slap that bad-boy in "ability:4" directly)

 

Finally, I should reiterate the great point Teal made.... make changes a little bit at a time, and load the game in between each.  This will let you know exactly what causes the issue as soon as it's introduced.

Hopefully this helps you out a bit, if you need clarification/examples for any particular detail just let me know! :)  "

+1 Loading…
Reply #2 Top

You have been an absolutely huge help.  I think with the reduced caps thing i was leaving an extra line after or before when I deleted them X| , yay for silly errors.  I have yet to try to mess with abilities again using your advice but I will do so soon and I'll let you know how it goes or if I have any other questions.  Again, thanks  :grin: .

Reply #3 Top

Two questions, first when I try making a new ability the game tells me that the Buff file is not found, even though its definitely there.  What do I need to have for the game to recognize this.  Second, I dont really understand how the Strings work.  If I'm adding a new one, is one string the three lines (string, value, description) or is each line a String.  Thanks for the help.

 

Edit:

I have updated the entity.manifest file to reflect the additions of the abilities and have double checked that the count is right.  The problem still occurs

Reply #4 Top

Question 1:  i think an example would work best for this one.  I remember you mentioning wanting to make a beefed up gaussblast custom ability, so I'll walk you through the steps I would take to make a custom one (but I won't edit anything, just make a 2nd gaussblast called gaussblast2  with a custom name and description).  First I'll answer question 2 though cuz it's short and sweet:  your first guess was right (1 string is all three lines )

____________________String file explanation______________________

1st line is: StringInfo{enter}  no spaces!;

2nd line is: {tab}ID{space}"{the reference name you type in files to use it}"{enter};

and 3rd line is: {tab}Value{space}"{what  you want to show ingame}"{enter}

example:

StringInfo                                                    This signals the BEGINNING of a new string entry
{tab}ID "IDSPlayerAINameTech0"                   This is what's referenced in a file to use this string
{tab}Value "Nitheim Rebels"                          This is what shows up in game  

For every complete entry, the count at the top must be increased by 1 (so the above example would add 1 not 3). If you ever get mod-crazy and add a ton of strings but forget how many you actually added, just load the file in a program that returns counts on searches and search for "StringInfo" {match case} and voila there's the number to put at the top. (so long as you haven't typoed of course and started one with something like "sTrinGinfo") (I use 010 editor which is free for like 10 days or 30 uses or something at first... In case you're worried you got the count wrong and want to verify)

Also, make sure that the last line of all files (.entity files, the english.str file etc...) has an {enter} after it (so you have one empty new line at the end of the file)

_____________end of string file explanation________________________________

I'll actually give the other example in a 2nd post for readability

Reply #5 Top

Ok. Here's a walkthrough for making a custom GaussBlast ability and adding it to 1 capital ship (we'll add it to the vasari's capital battleship "CAPITALSHIP_PHASEBATTLESHIP.entity")  

Go ahead and actually make this with me so you can make sure you've got it down:

1.) Make a new folder anywhere named "TestMod" Within this, make 2 new folders called "GameInfo" and "String"  Verify you use the same case as I type, the game doesn't seem to make a distinction in all cases, but if you scrutinize for case, you might catch any typoes.

2.) Get a hold of STRing versions of the following ent1.01 (or whatever version you're making this for) files and copy them to where I specify:

2a.)"AbilityGaussBlast.entity", "BuffGaussBlast.entity", and "CAPITALSHIP_TECHBATTLESHIP.entity" to "TestMod\GameInfo"

2ab.)rename the ability and buff files now by adding a "2" to the end of both (before the ".entity" of course)

2b.)"English.str" to "TestMod\String"

2c.)"entity.manifest"  to "TestMod"

2cb.)open "entity.manifest" now and add the following two lines to the beginning of it and increase count by 2:

entityName "AbilityGaussBlast2.entity"
entityName "BuffGaussBlast2.entity"                 Make sure you don't accidentally add any empty newlines

3.)  Open "AbilityGaussblast2.entity", and make the following changes:

3a.)buffType "BuffGaussBlast"    ---->  buffType "BuffGaussBlast2"

nameStringID "IDS_ABILITY_GAUSSBLAST_NAME"   -->  nameStringID "IDS_ABILITY_GAUSSBLAST2_NAME"
descStringID "IDS_ABILITY_GAUSSBLAST_DESCRIPTION" --> descStringID "IDS_ABILITY_GAUSSBLAST2_DESCRIPTION"

Save and close the file

4.) no change is necessary for "BuffGaussBlast2.entity". Don't edit it to increase power until you've successfully loaded this test mod

5.) Open your English.str file and go to the bottom.  Put your cursor in the blank newline at the bottom, and paste this:

StringInfo
 ID "IDS_ABILITY_GAUSSBLAST2_NAME"
 Value "Potentially Uber Gauss Rail Gun"
StringInfo
 ID "IDS_ABILITY_GAUSSBLAST2_DESCRIPTION"
 Value "This is a custom gauss ability. It will be really powerful later"                     

make sure to hit enter after you paste so the file will have that extra empty newline again.  Also, increase the count at the top of the file by 2.  For some reason the forum won't accept {tab}s, so after pasting the above two lines, delete the space before the two "ID"s and "Value"s, and then hit tab for each one (4 total)    .Save and close this file

6.) Open "CAPITALSHIP_TECHBATTLESHIP.entity", and make the following changes:

ability:4 "" ---> ability:4 "AbilityDisruptiveStrikes" (you're moving this here cuz it's passive and doesn't need clicked)

ability:2 "" ---> ability:2 "AbilityGaussBlast2"      (this adds the ability to the ship and makes sure it's in a spot where you can actually click it once "purchased" for you capital ship)

save and close the file

7.) Copy (or move) your "TestMod" folder to your {ModPath} folder

8.) fire up the game; unselect all mods; select this one; start a new game as vasari; create this ship; verify it works correctly   (one thing you might notice is that the text wrap doesn't seem to work for custom abilities, so if you have a long description/name for your ability, it might trail out of the ability "infocard" before wrapping.   If I had to guess, I'd say we need to make our own custom infocards to contain it correctly, but it doesn't bother me enough to mess with that :)

___________________________________________________________________________

That's it.  If you followed these instructions to the letter, I'll guarantee it works (I did each of these steps as I wrote them, and it worked perfectly -except for the wordwrap of course- ingame)

The next step is like Teal said in your other post:   Introduce changes to your mod 1 or 2 at a time and test them ingame.  This way as soon as the game fails to load/work right, you have only 1 or 2 things to focus on troubleshooting instead of the whole darn mod.

Let me know of any more questions/issues you might have! :)

Reply #6 Top

I'd like to add that if you remove a ship from a race that is refered to in a template within the galaxyscenarios (like the light frigate or scout frigate, there are a few others) then they need to NOT be refered to....will cause a crash (if its in there and not on the construction list it causes a minidump when the mod is enabled))

Reply #7 Top

X| X| X| X| X| X| X| X| X| X|

I did everything right...except for adding a " at the end of the name in the .entity file which is why it wasnt working...yay for oversights...thanks so much for the help Calienon, that was exactly what I was looking for, I just made a dumb mistake.  Hopefully I can get everything to work the way I want it to now. :grin:

Reply #8 Top

No problem, I'm glad you got it working.  Good luck with the rest of your mod! :)

Reply #9 Top

Question (now that I basically have this down, its the gritty detail I'm having trouble with).  I'm trying to mod the Embargo ability so that its phase jump disable applies to all ships in the gravity well, not just cargo ships.  Problem is that it doesnt seem to actually be applying to the ships (the ability is present, named correctly, and seems to execute normally, the effects of it just dont show up).  Any ideas what this could be?  The only thing different from the regular Embargo ability is that I changed the numConstraints to 0 and the numObjects to 2 which includes "CapitalShips" and "Frigates".  I'm pretty stumped, I'd really appreciate any help I can get.  Thanks.

Reply #10 Top

Hey there JJBuck2!  Doesn't look like anyone's answered this yet (I've been out-of-state for this last week), have you figured this out?  I took a really quick peek at the embargo files right now, and 2 things that jumped out were:

1.) in "BuffEmbargoSelf.entity", there is only 1 object ("Frigate") you'll want to increase that count to 2 and add ("CapitalShip")

2.) in "BuffEmbargoSelf.entity", there is a constraint that restricts the ability to tradeships.  You'd want to reduce the "NumConstraints" count to 0 and delete the next line entirely (don't leave a blank line). 

Have you already done those 2 things?   I'll take a more in-depth look and c what it actually takes to completely work later once I've woke up completely :) 

Reply #11 Top

I have got questions about modding ability

 

1.  How to make the Capitalship's ability to be able to use on frigate?

I mean what thing need to change I failed to make it work.

Trying to make Clairvoyance(FarSight) to work on scout.

 

2.   And does the ability AbilityDisruptHyperspace make ships lost the ability to attack enemy?

 

Reply #12 Top

Hey calienon.  No luck, I'd already done those two things.  I haven't been able to take a look at it again for some time but the problem I was running into was that when I would use the ability, no enemy ships infocards would say that they had phase jump disables, which trade ships do have (when using the regular embargo ability).  Still stumped but as always I appreciate the help :grin:

Reply #13 Top

Hmmm.  Well I'm not sure what might be causing yours to not work.  I finally got a chance to toy with it today, and here's what I did:

created a new mod "Test" 

created the subfolder "GameInfo"

copied over the file "BuffEmbargoSelf.entity"

made the following section in the above file look like this:

<tab>targetFilter
<tab><tab>numOwnerships 1
<tab><tab>ownership "Enemy"
<tab><tab>numObjects 2     changed from "1"
<tab><tab>object "Frigate"
<tab><tab>object "CapitalShip"    added this line
<tab><tab>numSpaces 1
<tab><tab>space "Normal"
<tab><tab>numConstraints 0      changed from "1" and removed the constraint details
<tab>maxTargetCount

Fired up the game with just this mod ticked, and voila.  The ability affected all enemy ships in the grav well.  Try doing what I just put above, and see if that does it for you.  Or are you trying to make a completely new custom ability based on embargo?

 

@ FrostyHeat   

1.) Do you have your own thread going for your questions?  If so, link to it and I'll post some tips/help there(I don't really want to clutter someone elses thread you know :) )

2.) It doesn't prevent them from attacking. however, if I recall correctly, any ships with disabled phase drives can still TRY to phase jump, and while waiting to begin phase jump charge up won't attack.  The difference between disabling completely and making really long charge-ups is that you can cancel your attempt to phase jump and resume attacking when phase is disabled completely.

Reply #14 Top

Hmmmm, I may have not messed with the max target count, cant say for sure since I havent had the time to play with it today.  Nope, not trying to make a completely new ability, just trying to nix the anti planet aspects of embargo and make it a blanket phase jump blocker.  (I take it maybe the maxtargetcount should be -1)?  Might have time to give it a try tomorrow, we shall see. I'll let you know how it turns out.

Reply #15 Top

Actually, the only things I changed in that text were the two things I'd mentioned previously.  Everything else is original sins ent 1.02    Have you already pulled the planet effect stuff?  If so, maybe that's causing the problem.  I'll play with it some more later to see if removing the planetary effects is ruining the whole thing or something.   I've edited my previous post to make clear what I actually changed

Reply #16 Top

I did try removing the planetary effect, and my phase disable ability still works on all ships.  If you want, post the changes you made if possible and I'll try those out.

+1 Loading…
Reply #17 Top

Hey I got it to work.  Im working on adding the Animosity ability from the Radiance Battleship to the Adaptive Forcefield ability from the Kol but I'm not having any luck getting it to apply to enemy ships.  The visual effects are there but nothing else. Heres what Ive got:

TXT
entityType "Ability"
buffInstantActionType "ApplyBuffToSelf"
instantActionTriggerType "AlwaysPerform"
buffType "BuffAdaptiveShield2"
effectInfo
    effectAttachInfo
        attachType "Center"
    smallEffectName "CapitalAbility_AdaptiveShieldActivate"
    largeEffectName "CapitalAbility_AdaptiveShieldActivate"
    soundID "EFFECT_ADAPTIVESHIELD"
needsToFaceTarget FALSE
canCollideWithTarget TRUE
moveThruTarget FALSE
isUltimateAbility FALSE
maxNumLevels 3
levelSourceType "Intrinsic"
minExperienceLevelRequired
    Level:0 0.000000
    Level:1 2.000000
    Level:2 4.000000
aiUseTime "OnlyWhenTakingDamage"
aiUseTargetCondition "Any"
isAutoCastAvailable TRUE
isAutoCastOnByDefault TRUE
pickRandomPlanetToExploreForAutoCastTarget FALSE
ignoreNonCombatShipsForAutoCastTarget TRUE
onlyAutoCastWhenDamageTakenExceedsPerc 0.000000
useCostType "AntiMatter"
antiMatterCost
    Level:0 40.000000
    Level:1 50.000000
    Level:2 60.000000
cooldownTime
    Level:0 45.000000
    Level:1 40.000000
    Level:2 35.000000
orderAcknowledgementType "ONGENERALORDERISSUED"
researchPrerequisites
    NumResearchPrerequisites 0
nameStringID "IDS_ABILITY_ADAPTIVESHIELD2_NAME"
descStringID "IDS_ABILITY_ADAPTIVESHIELD2_DESCRIPTION"
hudIcon "HUDICON_ABILITY_ADAPTIVESHIELD"
smallHudIcon "HUDICON_ABILITY_ADAPTIVESHIELD"
infoCardIcon ""
----------------------------------------------------------------------------------------------------

TXT
entityType "Buff"
onReapplyDuplicateType "PrioritizeNewBuffs"
buffStackingLimitType "ForAllPlayers"
stackingLimit 1
allowFirstSpawnerToStack FALSE
buffExclusivityForAIType "ExclusiveForAllPlayers"
isInterruptable FALSE
isChannelling FALSE
numInstantActions 1
instantAction
    buffInstantActionType "ApplyBuffToTargetsInRadius"
    instantActionTriggerType "OnDelay"
    delayTime 0.000000
    buffType "BuffAdaptiveShield2Target"
    targetFilter
        numOwnerships 1
        ownership "Enemy"
        numObjects 4
        object "Frigate"
        object "CapitalShip"
        object "PlanetModule"
        object "StarBase"
        numSpaces 1
        space "Normal"
        numConstraints 1
        constraint "HasWeapons"
    range
        Level:0 3000.000000
        Level:1 4000.000000
        Level:2 5000.000000
    maxTargetCount
        Level:0 8.000000
        Level:1 16.000000
        Level:2 32.000000
    effectInfo
        effectAttachInfo
            attachType "Center"
        smallEffectName "Ability_TauntActivate"
        largeEffectName "Ability_TauntActivate"
        soundID "EFFECT_TAUNT_ACTIVATE"
numPeriodicActions 0
numOverTimeActions 0
numEntityModifiers 2
entityModifier
    buffEntityModifierType "ChanceToIgnoreShieldsAsDamageTarget"
    value
        Level:0 -0.250000
        Level:1 -0.450000
        Level:2 -0.650000
entityModifier
    buffEntityModifierType "DamageAsDamageTarget"
    value
        Level:0 -0.150000
        Level:1 -0.250000
        Level:2 -0.350000
numEntityBoolModifiers 1
entityBoolModifier "HasShieldMeshEffect"
numFinishConditions 1
finishCondition
    finishConditionType "TimeElapsed"
    time
        Level:0 20.000000
        Level:1 30.000000
        Level:2 40.000000
--------------------------------------------------------------------------------------------------------

TXT
entityType "Buff"
onReapplyDuplicateType "PrioritizeNewBuffs"
buffStackingLimitType "ForAllPlayers"
stackingLimit 1
allowFirstSpawnerToStack FALSE
buffExclusivityForAIType "ExclusiveForAllPlayers"
isInterruptable FALSE
isChannelling FALSE
numInstantActions 2
instantAction
    buffInstantActionType "PlayAttachedEffect"
    instantActionTriggerType "OnDelay"
    delayTime 0.000000
    effectInfo
        effectAttachInfo
            attachType "Center"
        smallEffectName "Buff_Taunt"
        largeEffectName "Buff_Taunt"
        soundID "EFFECT_TAUNT_RESPONSE"
instantAction
    buffInstantActionType "SetTauntTargetToLastSpawner"
    instantActionTriggerType "OnDelay"
    delayTime 0.000000
numPeriodicActions 0
numOverTimeActions 0
numEntityModifiers 0
numEntityBoolModifiers 1
entityBoolModifier "HasTauntTarget"
numFinishConditions 2
finishCondition
    finishConditionType "FirstSpawnerNoLongerHasBuff"
    buffTypeToQuery "BuffTauntSelf"
finishCondition
    finishConditionType "OwnerChanged"
---------------------------------------------------------------------------------

In order those are: AdaptiveShield2, BuffAdaptiveShield2, BuffAdaptiveShield2Target

Thanks

 

Reply #18 Top

Quoting JJBuck2, reply 3
Two questions, first when I try making a new ability the game tells me that the Buff file is not found, even though its definitely there.  What do I need to have for the game to recognize this.  Second, I dont really understand how the Strings work.  If I'm adding a new one, is one string the three lines (string, value, description) or is each line a String.  Thanks for the help.

 

Edit:

I have updated the entity.manifest file to reflect the additions of the abilities and have double checked that the count is right.  The problem still occurs

 

where is the entity.manifest file

Reply #19 Top

Im working on adding the Animosity ability from the Radiance Battleship to the Adaptive Forcefield ability from the Kol but I'm not having any luck getting it to apply to enemy ships. The visual effects are there but nothing else. Heres what Ive got

Try removing the entity bool modifiers in BuffAdaptiveShield2. The targeted stuff looks good, I went through it a few times, so my only guess is that having part of the buff calling another, and then another part trying to apply effects is throwing it off.

Also:

numFinishConditions 2
finishCondition
    finishConditionType "FirstSpawnerNoLongerHasBuff"
    buffTypeToQuery "BuffTauntSelf"
finishCondition
    finishConditionType "OwnerChanged"

In BuffAdaptiveShield2Target, buffTypeToQuery should be BuffAdaptiveShield2, since that's the buff that spawns this one. BuffTauntSelf is the actual Animosity, so if you leave that in there the ships will remain taunted forever until destroyed/controlled :P

Reply #20 Top

I have no possible idea how I managed to miss that... :dur: .  Ill give it a try.  When you say remove the entity bool modifiers do you mean take them out just to see if the rest of the ability works or would removing them potentially solve the problem?

Reply #21 Top

To see if the taunt will work. I can't think of a single buff currently in the game that calls another buff on enemies and modifies the friendly entity.  It's possible that the engine goofs up because of it, you just never know :P

For example, before Entrenchment 1.02 if you put an ability with a "DoDamage" buff on a star, the game would crash. The exact same ability on a planet worked just fine. Programs can be funky that way.

+1 Loading…
Reply #22 Top

Cool, it works.  I removed the modifier that gives the Kol the visible shield outline and now it works like I wanted it to, thanks a bunch Annatar. :grin:

Reply #23 Top

Quoting Dinoff, reply 18

Quoting JJBuck2, reply 3Two questions, first when I try making a new ability the game tells me that the Buff file is not found, even though its definitely there.  What do I need to have for the game to recognize this.  Second, I dont really understand how the Strings work.  If I'm adding a new one, is one string the three lines (string, value, description) or is each line a String.  Thanks for the help.

 

Edit:

I have updated the entity.manifest file to reflect the additions of the abilities and have double checked that the count is right.  The problem still occurs
 

where is the entity.manifest file

 

entity.manifest file is in the Entrenchment folder inside your c:\program files\ironclad games\sins of a solar empire\entrenchment folder.  Just copy it (because the main folder needs this one, the copy will go into your mod folder for whatever 1.02 Entrenchment mod you are making).  :)

Always edit the copy. I once got cocky and thought i was okie and wrote over my main entity.manifest file. big headache. I didnt have a backup and had to uninstall and re-install. Crazy and silly, but true, haha, i was pulling my hair out becuase i didnt have a copy of the original around to save me.  Anyway, after that i back up everything!!! Haha, and have a copy of the whole Sins game on my D:\ drive as my safe copy.  :)  Take care and keep modding!!!

-Teal