Ability Modding

An ability is a entity file that can be assigned to a ship as the "front end" for a buff. The Ability file, usually in the format AbilityX.entity (where X is the name of the ability), controls a majority of what is shown to the player: its activation cost (if any), whether it is active or passive (see below), its cooldown time, whether Autocast is available and when it should trigger, as well as the buff it casts and what that buff is cast on. All Abilities have the entityType Ability.
Ships in base Sins are limited to four abilities. Ships in Entrenchment can use five, but the fifth must be passive as it sits behind the Upgrade slot.
== Example breakdown (AbilityIonBurst.entity) ==
=== Basic information ===
What it looks like	What it means
 TXT
 entityType "Ability"	
Denotes this file is plaintext and that the entity is an ability.
 buffInstantActionType "ApplyBuffToTargetsInRadius"
 instantActionTriggerType "AlwaysPerform"
 buffType "BuffIonBurst"	
This ability's buff should apply to all targets in its radius (targets are defined below), and it should always be performed. The buff to use is "BuffIonBurst", more specifically the file BuffIonBurst.entity.
=== Targets ===
What it looks like	What it means
 targetFilter
 numOwnerships 1
 ownership "Enemy"	
Starting definition of the targets this ability's buff will apply to. In this case, only enemies - there is no friendly fire.
 numObjects 1
 	 object "Fighter"	
This ability's buff should apply to only strike craft (fighters and bombers). Other possible values target frigates, capital ships and planet modules, and starbases.
 numConstraints 0	
This ability's buff has no constraints - any enemy fighter should be affected (as long as it's in range, thanks to "ApplyBuffToTargetsInRadius"). Here you might put a constraint like "HasWeapons" if you wanted to make an ability that only affected craft with guns.
=== Range ===
What it looks like	What it means
 range
 	Level:0 2400.000000
 	Level:1 3000.000000
 	Level:2 3600.000000	
Pretty obvious. This defines the radius of the ability since the buffInstantActionType has a radius parameter. The range of this ability increases as it's leveled up: you can check the range of an ability by mousing over its icon ingame.
===Target count===
What it looks like	What it means
 maxTargetCount
 	Level:0 -1.000000
 	Level:1 -1.000000
 	Level:2 -1.000000	
This defines the max # of targets this ability's buff can apply to. -1 means "unlimited".
===Effect info===
What it looks like	What it means
 effectInfo
 	effectAttachInfo
 	attachType "Center"
 	smallEffectName "CapitalAbility_IonBurstActivate"
 	largeEffectName "CapitalAbility_IonBurstActivate"
 	soundID "EFFECT_IONBURST"	
If a buffInstantActionType is used here like ApplyBuffToTargetWithTravel, you'll get another line asking you whether you want to use weapon effects, but since this buff doesn't, all we get are these lines. This effect only applies to the caster, any effects on the target must be made in buffs. effectAttachInfo and attachType ask for the point the effect will attach to on the mesh. Common attachtypes are Ability, Above, and Center. I think smalleffect and largeeffect are like that so if people have lower settings the effect is toned down, but I am probably wrong. SoundID is just the SoundID of the effect, probably from SoundEffects.sounddata.
===Effect Booleans===
What it looks like	What it means
 needsToFaceTarget FALSE
 canCollideWithTarget TRUE
 moveThruTarget FALSE
 isUltimateAbility FALSE	
The first three are pretty self-explanatory. If needsToFaceTarget, the ship will turn to face its target (obviously this only works when using ApplyBuffToTravel type abilities). canCollideWithTarget and moveThruTarget seem to be 'hit the target, ignore its collision box/shields' and 'hit the target and keep going', respectively. isUltimateAbility overrides minExperienceLevelRequired to four and allows the engine to differentiate it from other non-ultimate abilities so that unless other abilities are set to be able to do so, it can't be interrupted..
==Active vs. Passive==
An active ability is one that can be manually triggered (or Autocast) given a specific condition. A passive ability is one that cannot be triggered and stays on the ship forever, such as the Incendiary Ammo ability on the marza that does extra damage every time it fires. Passive buffs are an easy but often restrictive way to give a ship permanent status effects - workarounds exist, such as the Inherent Buff. Still, if you aren't hurting for ability slots, it's often the easiest way to go. An ability is marked as Passive by changing the useCostType to "Passive" and removing any relevant lines relating to cooldown or antimatter/cost (the next line should be researchPrerequisites).
Category:Abilities
Category:Modding
Category:Entity