Sins of a Solar Empire : Real-Time Strategy. Unrivalled Scale.
© 2003-2013 Ironclad Games Corporation Vancouver, BC. All rights reserved.
© 2006-2013 Stardock Entertainment

[Mod Utility] Entity Editor and Validation Tool (Fan made, Supports Rebellion)

By on April 20, 2010 8:39:12 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums External Link

ZombiesRus5

Join Date 02/2009
+248

I have a set of eclipse and ant based tools for modding with Sins that others may find useful when validating or building their projects.

Project Home
Downloads (Current version 1.0.0, last stable version 0.9.0)
Wiki Syntax

  Issues
  FAQ
  System Requirements 
  Version History

(New) Syntax Wiki - A syntaxual representation of almost all of the Sins editable files.

 

How To's:
How To Convert Reference Files
How To Install Eclipse

How To Setup Entity Validation Eclipse Plugin (Updated for new preference with v0.6)
How To Use Ant build.xml
How to Setup Subversion for Eclipse and code.google.com

(New) Video: How to setup and configure the Soase Eclipse Plugin


References:

Modding Tools (Weebly)

Mod Development with Eclipse (Forum link providing a general overview of Eclipse)

Eclipse download site (http://eclipse.org/downloads)

 


Tools Supported:

Entity Editor (Click me for cool stuff about visual Entity Validations)

Eclipse Editor builder/nature extension that provides visual feedback to the following validations.

   Entity Definition View - Displays the syntax rules for the currently opened entity file.

 

Summary of validations currently supported:

Boolean: Validates boolean entries contain TRUE or FALSE only
Brush: Validates a referenced brush entry exists for the value entered
Conditional Validation: Allows conditional structures to follow based on a field value
Key word: Validates all entity file key words are spelled correctly
Quotes: Validates any values requiring qoutes have beginning and ending quotation marks
Integer: Validates integer entries contain digits
Decimal: Validates decimal entries contain ####.#####
Entity References: Validates a referenced entity file exists for the value entered
String Reference: Validates a referenced String entry exists for the value entered
Sound Reference: Validates a referenced Sound entry exists for the value entered
Enumeration Validation: Validates an entry confirms to an allowed set of values (i.e. buffInstantActionType)
Iteration Validation: Validates repeating elements are correct
Structure Validation: Validates entries appear in the correct order in the entity file (configurable to allow unordered structures)
Explosion Validation: Validates a referenced explosion entry exists for the value entered
Texture Validation: Validates a referenced texture exists for the value entered
Particle Validation: Validates a referenced effect exists for the value entered
Sounddata Validation: Validates sounddata files for correctness including referenced sound files
(NEW) GalaxyScenarioDef Validation: Validates galaxyScenarioDef files for correctness with 2 pass validations
StringInfo Validation: Validates English.str for correctness
Brushes Validation: Validates brushes files for correctness
Gameplay.constants: Validates the Gameplay.constant file for correctness
(NEW) Explosiondata Validation: Validates sounddata files for correctness including referenced sound files
(NEW) Galaxy Validation: Validates galaxy files for correctness and performs additional validations on referenced templates and design names.

Content Assistance: [ctrl]+[space bar] on keywords or constants and get suggested completions
Syntax Coloring: change syntax coloring of entity files to suit your preferences (defaults to all black currently)
Hover Help: hover over a keyword and get additional details about the value or structure
Quick link to wiki syntax


 

Manifest Generator
Collects entities from multiple source directories and builds the Entity Manifest File for Deployment. 

 


Brush Generator


Takes a csv delimited template and generates a properly formatted brush file.

 

 

Sins Eclipse Editor used by:

     

I'd love to know if you use the Sins Eclipse Editor in your mod 

Pinned Post   |   258 Replies
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:40:12 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

more on previous reply...

Gameplay.constants:

<structure name="TitanExperienceLevelData">
<field name="ExperienceNeededForNextLevel" validation="Decimal" />
<field name="ExperienceGainedForDestroying" validation="Decimal" />
</structure>

<structure name="DiplomaticPointsSpeedData">
<field name="diplomaticPointsRateSpeedScalar" validation="Decimal" />
<field name="occupyVictoryTimeScalar" validation="Decimal" version="Rebellion"/>
</structure>

<field name="timeForPeaceTreatyCooldown" validation="Integer" />
<field name="defaultGravWellColor" validation="Color" version="Rebellion"/>
<field name="phaseLaneWidth" validation="Decimal" version="Rebellion"/>
<field name="unexploredPhaseLaneWidth" validation="Decimal" version="Rebellion"/>
<field name="gravWellThickness" validation="Decimal" version="Rebellion"/>
<field name="preferNewAssetsGameCountThreshold" validation="Integer" version="Rebellion"/>
<structure name="EconomyData">

<field name="scuttleTime" validation="Decimal" />
<field name="stripTime" validation="Decimal" version="Rebellion"/>
</structure>
<structure name="CapitalShipData">

<structure version="Rebellion" name="TitanData">
<structure_reference name="ExperienceLevelData:0" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:1" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:2" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:3" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:4" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:5" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:6" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:7" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:8" type="TitanExperienceLevelData" />
<structure_reference name="ExperienceLevelData:9" type="TitanExperienceLevelData" />
<field name="LevelUpEffectName" validation="Particle"/>
<field name="LevelUpEffectSoundID" validation="Sound"/>
</structure>

<structure_reference name="ChanceToHitTargetType:TITAN" type="ChanceToHitTarget" version="Rebellion"/>

<field name="DamagePercentBonus:ANTIVERYLIGHT:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:ANTILIGHT:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:ANTIMEDIUM:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:ANTIHEAVY:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:ANTIVERYHEAVY:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:ANTIMODULE:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:COMPOSITE:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:CAPITALSHIP:Titan" validation="Decimal" version="Rebellion" />

<field name="DamagePercentBonus:CAPITALABILITY:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:CapitalShip" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:VeryLight" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Light" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Medium" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Heavy" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:VeryHeavy" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Module" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Pirate" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:TITAN:Titan" validation="Decimal" version="Rebellion" />

<structure required="false" name="pirateMercenariesInfo">
<field name="minTimeBetweenAttacks" validation="Integer" />
<field name="maxTimeBetweenAttacks" validation="Integer" />
<field name="arrivalDelayTime" validation="Integer" />
<structure name="spawnShips">
<field name="minFleetPoints" validation="Integer" />
<field name="maxFleetPoints" validation="Integer" />
<iterative_field name="requiredShipCount">
<structure required="false" name="requiredShip">
<field name="type" validation="Entity" />
<field name="minCount" validation="Integer"/>
<field name="maxCount" validation="Integer"/>
</structure>
</iterative_field>
<iterative_field name="randomShipCount">
<structure required="false" name="randomShip">
<field name="type" validation="Entity" />
<field name="weight" validation="Integer" />
</structure>
</iterative_field>
</structure>
</structure>

<structure_reference name="diplomaticPointsSpeedData-Slow" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/>
<structure_reference name="diplomaticPointsSpeedData-Normal" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/>
<structure_reference name="diplomaticPointsSpeedData-Fast" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/>
<structure_reference name="diplomaticPointsSpeedData-Faster" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/>
<structure_reference name="victorySpeedData-Slow" type="DiplomaticPointsSpeedData" version="Rebellion"/>
<structure_reference name="victorySpeedData-Normal" type="DiplomaticPointsSpeedData" version="Rebellion"/>
<structure_reference name="victorySpeedData-Fast" type="DiplomaticPointsSpeedData" version="Rebellion"/>
<structure_reference name="victorySpeedData-Faster" type="DiplomaticPointsSpeedData" version="Rebellion"/>

<field name="diplomacyPointsForRelationship:Trade" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForRelationship:ExternalVision" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForRelationship:InternalVision" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForRelationship:CeaseFire" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForRelationship:PeaceTreaty" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:1" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:2" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:3" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:4" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:5" validation="Decimal" version="Rebellion"/>
<field name="diplomacyPointsForPactCount:6" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:2" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:3" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:4" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:5" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:6" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:7" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:8" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:9" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryForPlayerCount:10" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Easy" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Medium" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Hard" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Unfair" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Nightmare" validation="Decimal" version="Rebellion"/>
<field name="aiDiplomaticPointBonusScalar:Impossible" validation="Decimal" version="Rebellion"/>

<field name="factionRelationsIncrement" validation="Decimal" version="Rebellion"/>

<field name="diplomaticVictoryMultiplier" validation="Decimal" version="DiplomacyOnly"/>
<field name="positiveDiplomaticPointsPerPoint" validation="Decimal" version="DiplomacyOnly"/>
<field name="negativeDiplomaticPointsPerPoint" validation="Decimal" version="DiplomacyOnly"/>

<iterative_field name="FactionCount" version="Rebellion">
<field required="false" name="FactionName" validation="StringInfo"/>
</iterative_field>

<structure name="victoryData" version="Rebellion">
<field name="occupationVictoryStarType" validation="Entity"/>
<field name="occupationVictoryStarName" validation="Any"/>
<field name="occupationVictoryPlanetType" validation="GalaxyDesign"/>
<field name="occupationVictoryPlanetName" validation="Any"/>
<field name="occupationVictoryPlanetTemplate" validation="GalaxyTemplate"/>
<field name="occupationVictoryTime" validation="Integer"/>
</structure>

 

more coming...

Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:44:11 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

more on previous reply...

finishCondition:

<condition><value version="Rebellion">OwnerNoLongerHasBuff</value>
<field required="true" name="buffTypeToQuery" validation="Entity"/>
</condition>

<value version="Rebellion">AbilityUsed</value>
<value version="Rebellion">AnyOnConditionInstantActionDone</value>

galaxy_scenario_def:

PlayerType:

<field name="isInsurgentPlayer" validation="Boolean" />
<field name="isOccupationPlayer" validation="Boolean" version="Rebellion"/>
<field name="themeGroup" validation="Any" />

instantActionTriggerType:

<condition value="OnCondition" version="Rebellion">
<condition_field name="instantActionConditionType">
<condition>
<value>IfOwnerIsAboutToDie</value>
</condition>
<condition>
<value>IfFirstSpawnerHasBuff</value>
<value>IfOwnerHasBuff</value>
<value>IfFirstSpawnerDoesNotHaveBuff</value>
<value>IfOwnerDoesNotHaveBuff</value>
<field name="conditionBuffType" validation="Entity" />
<field name="conditionBuffShortName" validation="StringInfo" />
</condition>
</condition_field>
</condition>

levelSourceType:

<condition>
<value>TitanUpgradeLevel</value>
<field required="true" name="sourcePropertyType" validation="Simple">
<value>AbilityALevel</value>
<value>AbilityBLevel</value>
<value>AbilityCLevel</value>
<value>AbilityDLevel</value>
<value>AbilityELevel</value>
</field>
</condition>

planets:

meshInfoCount:

<field name="shouldPrefer" validation="Boolean" version="Rebellion"/>

<structure name="planetRuinDef" version="Rebellion">
<field name="ruinPlanetType" validation="Entity"/>
<field name="attachType" />
<field name="effectName" validation="Particle"/>
<field name="startTime" validation="Decimal"/>
<field name="soundID" validation="Sound"/>
<field name="creditsOnStrippedToTheCore" validation="Decimal"/>
<field name="metalOnStrippedToTheCore" validation="Decimal"/>
<field name="crystalOnStrippedToTheCore" validation="Decimal"/>
</structure>

 

more coming...

Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:49:16 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

more on previous...

ResearchSubject:

ResearchField:

<value version="Rebellion">ResearchUnlock</value>

modifierTypeBool:

<value version="Rebellion">CapitalShipsTitansAndStarBasesCountAsPlanetForNoGameLoss</value> <!-- diplomacy 1.3 -->
<value version="Rebellion">FriendlyWithPiratesRebelNeutrals</value> 
<value version="Rebellion">StripPlanetsOnScuttle</value> 
<value version="Rebellion">StarBasesCanHyperspace</value> 
<value version="Rebellion">AllowAlliesToUsePhaseGates</value>
<value version="Rebellion">ResearchVictory</value> 
<value version="Rebellion">SpawnCopyOfPirateRaidsAtRandomPlanet</value> 
<value version="Rebellion">FriendlyInsurgentShipsSpawnedAtHomePlanetWhenEnemyPlanetLiberated</value>
<value version="Rebellion">DestabilizationProtection</value> 

<condition>
<value version="Rebellion">ApplyBuffToPlanetsAfterScuttle</value>
<value version="Rebellion">ApplyBuffToAllOwnedShipsWhenOwnedPlanetFalls</value>
<value version="Rebellion">ApplyBuffToShipsAfterHyperspace</value>
<value version="Rebellion">ApplyBuffToOwnedPlanetAfterLastEnemyShipLeavesOrDies</value>
<value version="Rebellion">ApplyBuffToPlanetAfterColonization</value>
<value version="Rebellion">ApplyBuffToPlanetAfterPlayerDestroys</value>
<field name="buffToApply" validation="Entity"/>
</condition>
<condition>
<value version="Rebellion">SetFaction</value>
<field name="factionNameID" validation="StringInfo"/>
</condition>

modifierTypeFloat:

<value version="Rebellion">OrbitalCannonPriceAdjustment</value>
<value version="Rebellion">BombingCooldownDecrease</value>
<value version="Rebellion">TradeGoodsValueAdjustmentWithNonAlliedPlayers</value>
<value version="Rebellion">PopulationTaxRateAdjustmentWhenEnemyInGravityWell</value>
<value version="Rebellion">StarBasesPerGravityWellAdjustment</value>
<value version="Rebellion">TitanConstructionCap</value>
<value version="Rebellion">ShipMaxSlotsWhenOnlyAlliedWithSameRaceSameFactionPlayers</value>
<value version="Rebellion">LabsPerCapitalShip</value>
<value version="Rebellion">LabsPerCapitalShipMax</value>
<value version="Rebellion">ChanceToRespawnFrigateAtHomeworldUponDeath</value>
<value version="Rebellion">ChanceToTemporarilyCloneEnemyFrigateWhenKilled</value>
<value version="Rebellion">ChanceToTemporarilyCloneEnemyFrigateWhenKilledDuration</value>
<value version="Rebellion">CultureShieldRegenAmount</value>
<value version="Rebellion">CreditsGainedPerPointOfBombingDamageDealt</value>
<value version="Rebellion">OrbitalCannonSlotCostAdjustment</value>
<value version="Rebellion">ArmorBaseAdjustmentWhenInFriendlyGravityWell</value>
<value version="Rebellion">CultureModuleCostAdjustment</value>
<value version="Rebellion">CultureSpreadRateBaseAdjustment</value>
<value version="Rebellion">HyperspaceAntimatterCostAdjustmentWhenGoingToFriendlyGravityWell</value>
<value version="Rebellion">StarBaseUpgradeCostAdjustment</value>
<value version="Rebellion">CultureChanceToIgnoreShieldsAsDamageTarget</value>
<value version="Rebellion">ChanceToConvertFrigatesHyperspacingFromPlanet</value>
<value version="Rebellion">ShipBuildRateAdjustmentWhenEnemyInGravityWell</value>
<value version="Rebellion">CapitalShipTaxIncome</value>
<value version="Rebellion">CapitalShipAndTitanAngularThrustAdjustment</value>
<value version="Rebellion">ExperienceAwardedAdjustmentWhenInFriendlyGravityWell</value>
<value version="Rebellion">CultureEnemyAllegianceRateAdjustment</value>

<condition>
<value version="Rebellion">WeaponRateOfFireAdjustmentWhenInGravityWellBeingBombed</value> <!-- diplomacy 1.3 -->
<value version="Rebellion">WeaponDamageAdjustmentWhenInGravityWellBeingBombed</value> <!-- diplomacy 1.3 -->
<value version="Rebellion">WeaponDamageAdjustmentWhenInFriendlyGravityWell</value> <!-- diplomacy 1.3 -->
<value version="Rebellion">WeaponDamageAdjustmentForEachAlliedPlayerInGravityWell</value>
<value>WeaponRangeAdjustment</value>
<value>WeaponRateOfFireAdjustment</value>
<value>WeaponDamageAdjustment</value>
<value>WeaponIgnoresShieldsAdjustment</value>
<field name="baseValue" validation="Decimal"/>
<field name="perLevelValue" validation="Decimal"/>
<field name="linkedWeaponClass"/>
</condition>

Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:50:48 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

more on previous...

Titan Upgrade:

<?xml version="1.0" encoding="UTF-8"?>
<tns:entity_definitions xmlns:tns="http://www.example.org/element_definitions/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/element_definitions/ entity_definitions.xsd ">
<structure name="TitanUpgrade">
<iterative_field name="stageCount">
<structure required="false" name="stage">
<field name="nameStringID" validation="StringInfo"/>
<field name="descStringID" validation="StringInfo"/>
<structure_reference name="researchPrerequisites"/>
<field name="levelRequirement" validation="Integer"/>
<field name="hudIcon" validation="Brush"/>
<field name="smallHudIcon" validation="Brush"/>
<field name="infoCardIcon" validation="Brush"/>
<iterative_field name="upgradePropertyCount">
<structure required="false" name="upgradeProperty">
<field name="propertyType" validation="Simple">
<value>WeaponDamage</value>
<value>MaxHullPoints</value>
<value>HullPointRestoreRate</value>
<value>MaxShieldPoints</value>
<value>ShieldPointRestoreRate</value>
<value>BaseArmorPoints</value>
<value>MaxAntiMatterPoints</value>
<value>AntiMatterRestoreRate</value>
<value>AbilityCooldownRate</value>
<value>AbilityALevel</value>
<value>AbilityBLevel</value>
<value>AbilityCLevel</value>
<value>AbilityDLevel</value>
</field>
<field name="value" validation="Decimal"/>
</structure>
</iterative_field>
<iterative_field name="upgradeBoolPropertyCount">
<field required="false" name="upgradeBoolProperty" validation="Simple">
<value>CanPreventEnemyColonize</value>
<value>CanPreventPlanetLossByBombing</value>
<value>CanPreventEnemyColonize</value>
<value>CanPreventPlanetLossByBombing</value>
</field>
</iterative_field>
</structure>
</iterative_field>
</structure>
</tns:entity_definitions>

Titan:

<?xml version="1.0" encoding="UTF-8"?>
<tns:entity_definitions xmlns:tns="http://www.example.org/element_definitions/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/element_definitions/ entity_definitions.xsd ">
<structure name="Titan">
<field name="ability:0" validation="Entity"/>
<field name="ability:1" validation="Entity"/>
<field name="ability:2" validation="Entity"/>
<field name="ability:3" validation="Entity"/>
<field name="ability:4" validation="Entity" version="Entrenchment"/>
<field name="defaultAutoAttackRange" type="defaultAutoAttackRange"/>
<field name="defaultAutoAttackOn" validation="Boolean"/>
<field name="prefersToFocusFire" validation="Boolean"/>
<field name="usesFighterAttack" validation="Boolean" version="Entrenchment"/>
<field name="autoJoinFleetDefault" validation="Boolean"/>
<field name="canBomb" type="canBomb"/>
<field name="mainViewIcon" validation="Brush"/>
<structure_reference name="basePrice" type="Cost"/>
<field name="slotCount" validation="Decimal"/>
<field name="BuildTime" validation="Decimal"/>
<structure_reference name="MaxHullPoints" type="LevelIncrease"/>
<structure_reference name="MaxShieldPoints" type="LevelIncrease"/>
<structure_reference name="HullPointRestoreRate" type="LevelIncrease"/>
<structure_reference name="ShieldPointRestoreRate" type="LevelIncrease"/>
<structure_reference name="ArmorPointsFromExperience" type="LevelIncrease"/>
<structure_reference name="maxMitigation" type="LevelIncrease"/>
<structure_reference name="MaxAntiMatter" type="LevelIncrease"/>
<structure_reference name="AntiMatterRestoreRate" type="LevelIncrease"/>
<structure_reference name="CultureProtectRate" type="LevelIncrease"/>
<field name="NameStringID" validation="StringInfo"/>
<field name="DescriptionStringID" validation="StringInfo"/>
<field name="picture" validation="Brush"/>
<structure_reference name="Prerequisites" type="researchPrerequisites"/>
<field name="statCountType" type="statCountType"/>
<iterative_field name="UpgradeTypeCount">
<field required="false" name="UpgradeType" validation="Entity"/>
</iterative_field>
<field name="numRandomDebrisLarge" validation="Integer"/>
<field name="numRandomDebrisSmall" validation="Integer"/>
<iterative_field name="numSpecificDebris">
<field required="false" name="specificDebrisMeshName" validation="Mesh"/>
</iterative_field>
<field name="armorType" type="armorType"/>
<field name="hudIcon" validation="Brush"/>
<field name="smallHudIcon" validation="Brush"/>
<field name="infoCardIcon" validation="Brush"/>
<field name="minZoomDistanceMult" validation="Decimal"/>
<iterative_field name="NumWeapons">
<structure_reference required="false" name="Weapon"/>
</iterative_field>
<field name="m_weaponIndexForRange" validation="Integer"/>
<field name="firingAlignmentType" type="firingAlignmentType" version="Entrenchment"/>
<field name="TargetCountPerBank:FRONT" validation="Integer" version="Entrenchment"/>
<field name="TargetCountPerBank:BACK" validation="Integer" version="Entrenchment"/>
<field name="TargetCountPerBank:LEFT" validation="Integer" version="Entrenchment"/>
<field name="TargetCountPerBank:RIGHT" validation="Integer" version="Entrenchment"/>
<field name="canOnlyTargetStructures" validation="Boolean" version="Entrenchment"/>
<field name="mass" validation="Decimal"/>
<field name="ShieldMeshName" validation="Mesh"/>
<field name="renderShield" validation="Boolean" version="Entrenchment"/>
<field name="maxAccelerationLinear" validation="Decimal"/>
<field name="maxAccelerationStrafe" validation="Decimal"/>
<field name="maxDecelerationLinear" validation="Decimal"/>
<field name="maxAccelerationAngular" validation="Decimal"/>
<field name="maxDecelerationAngular" validation="Decimal"/>
<field name="maxSpeedLinear" validation="Decimal"/>
<field name="maxRollRate" validation="Decimal" version="Entrenchment"/>
<field name="maxRollAngle" validation="Decimal" version="Entrenchment"/>
<field name="squadTypeEntityDef:0" validation="Entity"/>
<field name="squadAntiMatterCost:0" validation="Decimal"/>
<field name="squadTypeEntityDef:1" validation="Entity"/>
<field name="squadAntiMatterCost:1" validation="Decimal"/>
<field name="squadTypeEntityDef:2" validation="Entity" version="Entrenchment"/>
<field name="squadAntiMatterCost:2" validation="Decimal" version="Entrenchment"/>
<field name="squadTypeEntityDef:3" validation="Entity" version="Entrenchment"/>
<field name="squadAntiMatterCost:3" validation="Decimal" version="Entrenchment"/>
<iterative_field name="NumSoundsFor:ONATTACKORDERISSUED">
<field required="false" name="SoundID" validation="Sound"/>
</iterative_field>
<iterative_field name="NumSoundsFor:ONCREATION">
<field required="false" name="SoundID" validation="Sound"/>
</iterative_field>
<iterative_field name="NumSoundsFor:ONGENERALORDERISSUED">
<field required="false" name="SoundID" validation="Sound"/>
</iterative_field>
<iterative_field name="NumSoundsFor:ONSELECTED">
<field required="false" name="SoundID" validation="Sound"/>
</iterative_field>
<iterative_field name="NumSoundsFor:ONSTARTPHASEJUMP">
<field required="false" name="SoundID" validation="Sound"/>
</iterative_field>
<field name="MeshName" validation="Mesh" version="Vanilla"/>
<iterative_field name="MeshNameInfoCount" version="Entrenchment">
<structure_reference required="false" name="MeshNameInfo"/>
</iterative_field>
<field name="meshNameIncreasedEffectName" validation="Particle" version="Entrenchment"/>
<field name="meshNameDecreasedEffectName" validation="Particle" version="Entrenchment"/>
<field name="ExhaustParticleSystemName" validation="Particle"/>
<field name="ExplosionName" validation="Explosion"/>
<structure_reference name="CommandPoints" type="LevelIncrease"/>
<structure_reference name="weaponCooldownDecreasePerc" type="LevelIncrease"/>
<structure_reference name="weaponDamageIncreasePerc" type="LevelIncrease"/>
<field name="HyperspaceChargingSoundID" validation="Sound"/>
<field name="HyperspaceTravelSoundID" validation="Sound"/>
<field name="EngineSoundID" validation="Sound"/>
<field name="formationRank" validation="Integer" values="0,1,2,3"/>
<field name="minShadow" validation="Decimal"/>
<field name="maxShadow" validation="Decimal"/>
</structure>
</tns:entity_definitions>

Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:51:35 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

more on previous...

useCostType:

<condition>
<value version="Rebellion">ResourcesAndMustHaveTitan</value>
<value>Resources</value>
<structure_reference name="resourceCost" type="Cost"/>
<structure_reference name="cooldownTime" type="GenericLevel"/>
<field name="orderAcknowledgementType" type="orderAcknowledgementType" version="Entrenchment"/>
</condition>
<condition><value>HullAndAntimatter</value>
<structure_reference name="hullCost" type="GenericLevel"/>
<structure_reference name="antiMatterCost" type="GenericLevel"/>
<structure_reference name="cooldownTime" type="GenericLevel"/>
<field name="orderAcknowledgementType" type="orderAcknowledgementType" version="Entrenchment"/>
</condition>

Reason for Karma (Optional)
Successfully updated karma reason!
April 5, 2012 12:57:28 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Wiki's been updated too for the current Rebellion content (See link in OP).

Reason for Karma (Optional)
Successfully updated karma reason!
June 13, 2012 12:23:18 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
Wiki's been updated too for the current Rebellion content (See link in OP).

Looks like no changes with the release of Rebellion so I've uploaded the latest version of the plugin. Install it the same way as before.

This plugin will support the previous versions of sins and rebellion, BUT not in the same workspace. You will need to create another workspace for Rebellion and setup the SOASE preferences for that workspace similar to below.

Reason for Karma (Optional)
Successfully updated karma reason!
June 15, 2012 4:55:10 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I got a couple of issue reports today which is nice.

I think they are related with the Strict Version Validation defaulting to Diplomacy. If your using the tool for Rebellion, make sure to go into Windows/Preferences/Sins Preferences and select the Rebellion Strict Version Validation.

 

Reason for Karma (Optional)
Successfully updated karma reason!
June 16, 2012 3:53:46 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Thanks for the quick reply;

I was the one that posted those reports; I did check that i was in fact using the Rebellion validation and I was. Both issues still occur with strict validation set to Rebellion; also note that at least the issue with targetfilter in buffs is not related to Rebellion, since this existed in pre-Rebellion files as well.

edit:

I just checked the xml definitions and they do seem to contain both the targetfilter and the POINTDEFENSELASER;

the targetfilter issue might be that the targetfilter item is not available for all possible buffs that can use it; I'm using it on instantaction buff type: ApplyBuffToLocalOrbitBodyWithTravel; so I suspect targetfilter may be used in more situations than you anticipated (the (dev) game seems to handle it just fine)

I also checked the .pref file and the strictVersion string was Rebellion, so I believe the problem may be that the conditional items are not being handled properly;

 

edit 2:

I just realized a possible cause for the POINTDEFENSELASER: I use it in linkedWeaponClass as part of a researchModifier; you may have missed those. - just confirmed that the xml is missing the rebellion weapon entries.

Reason for Karma (Optional)
Successfully updated karma reason!
June 17, 2012 12:04:52 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting TMPhoenix,
the targetfilter issue might be that the targetfilter item is not available for all possible buffs that can use it; I'm using it on instantaction buff type: ApplyBuffToLocalOrbitBodyWithTravel; so I suspect targetfilter may be used in more situations than you anticipated (the (dev) game seems to handle it just fine)

Can you post your example here? This is only included because Ironclad said it existed, though no actual entity file exists that uses it currently in the core game.

Quoting TMPhoenix,
I just realized a possible cause for the POINTDEFENSELASER: I use it in linkedWeaponClass as part of a researchModifier; you may have missed those. - just confirmed that the xml is missing the rebellion weapon entries.

Fixed internally. I validated against the Rebellion source which didn't include these in any research modifiers. Though this may be a mistake with some of the pacts.

Reason for Karma (Optional)
Successfully updated karma reason!
June 17, 2012 4:52:51 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Well, here's an example of the targetfilter usage:

 

TXT
entityType "Buff"
onReapplyDuplicateType "PrioritizeOldBuffs"
buffStackingLimitType "ForAllPlayers"
stackingLimit 1
allowFirstSpawnerToStack FALSE
buffExclusivityForAIType "ExclusiveForAllPlayers"
isInterruptable FALSE
isChannelling FALSE
numInstantActions 1
instantAction
    buffInstantActionType "ApplyBuffToLocalOrbitBodyWithTravel"
    instantActionTriggerType "OnHyperspaceExit"
    buffType "BuffInherentPhaseGate"
    targetFilter
        numOwnerships 3
        ownership "Friendly"
        ownership "Enemy"
        ownership "NoOwner"
        numObjects 2
        object "Planet"
        object "Star"
        numSpaces 1
        space "Normal"
        numConstraints 0
    travelSpeed 1000.000000
    hasWeaponEffects TRUE
    weaponEffectOriginType "Targetter"
    weaponEffectAttachInfo
        attachType "Aura"
    weaponEffectImpactOffsetType "RandomMesh"
    canWeaponEffectHitHull TRUE
    canWeaponEffectHitShields TRUE
    weaponEffectsDef
        weaponType "Projectile"
        burstCount 1
        burstDelay 1.000000
        fireDelay 0.000000
        muzzleEffectName ""
        muzzleSoundMinRespawnTime 0.100000
        muzzleSounds
            soundCount 1
            sound ""
        hitEffectName ""
        hitHullEffectSounds
            soundCount 1
            sound ""
        hitShieldsEffectSounds
            soundCount 1
            sound ""
        projectileTravelEffectName ""
numPeriodicActions 0
numOverTimeActions 0
numEntityModifiers 0
numEntityBoolModifiers 0
numFinishConditions 0



Reason for Karma (Optional)
Successfully updated karma reason!
June 18, 2012 11:20:16 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting TMPhoenix,
Well, here's an example of the targetfilter usage:

Thanks, I uploaded a new version that addresses this gap as well as the new weapon class types used in research subjects.

Reason for Karma (Optional)
Successfully updated karma reason!
June 19, 2012 4:55:46 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Great,

it's working as expected now; thanks.

Reason for Karma (Optional)
Successfully updated karma reason!
June 20, 2012 4:27:14 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I do not know if this has already been reported but I'm trying to update my mod of diplomacy to rebellion and unless I am mistaken there is a new line added at the end of the research that the validator does not report:

uniqueOverlayBrush ""


Thanks for your wonderful tool and sorry for my english

Reason for Karma (Optional)
Successfully updated karma reason!
June 20, 2012 4:37:18 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting dondurito,
I do not know if this has already been reported but I'm trying to update my mod of diplomacy to rebellion and unless I am mistaken there is a new line added at the end of the research that the validator does not report:

uniqueOverlayBrush ""




Thanks for your wonderful tool and sorry for my english

Ah yes, thanks for pointing this out. The tool indeed did not care because it was the last line of the file and it stopped validating at artifactPicture. Hence I did not see any issues with validating against the rebellion reference files.

I'll fix this with my next update.

Reason for Karma (Optional)
Successfully updated karma reason!
June 21, 2012 2:05:40 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
Looks like no changes with the release of Rebellion so I've uploaded the latest version of the plugin. Install it the same way as before.

This plugin will support the previous versions of sins and rebellion, BUT not in the same workspace. You will need to create another workspace for Rebellion and setup the SOASE preferences for that workspace similar to below.

Unless I missed it you might want to add this to your wiki instillation page.

Reason for Karma (Optional)
Successfully updated karma reason!
June 21, 2012 11:01:25 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,

Quoting ZombiesRus5, reply 183Looks like no changes with the release of Rebellion so I've uploaded the latest version of the plugin. Install it the same way as before.

This plugin will support the previous versions of sins and rebellion, BUT not in the same workspace. You will need to create another workspace for Rebellion and setup the SOASE preferences for that workspace similar to below.

Unless I missed it you might want to add this to your wiki instillation page.

Thanks, I added that portion to the plugin setup.

Reason for Karma (Optional)
Successfully updated karma reason!
July 18, 2012 5:28:26 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

This is truly an awesome thread...and sticky too.

Reason for Karma (Optional)
Successfully updated karma reason!
July 18, 2012 9:46:52 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting Sinperium,
This is truly an awesome thread...and sticky too.

Schwaa! When did this get stickied? Does that mean I get to stop updating it like the rest of the stickies?

Reason for Karma (Optional)
Successfully updated karma reason!
July 18, 2012 11:21:44 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

N0--now you are subject to excessive whining and trolling when you don't update.

En joy.

Reason for Karma (Optional)
Successfully updated karma reason!
August 6, 2012 7:50:37 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Awesome! Did you do this plugin all by yourself? Also I'm quite impressed that you force people to work with Eclipse (and thus download the Java JDK/JRE) - it's highly useful Do you program in Java as well?

Reason for Karma (Optional)
Successfully updated karma reason!
August 6, 2012 3:55:35 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting KhanAndSteak,
Awesome!

Thank you!

Quoting KhanAndSteak,
Did you do this plugin all by yourself?

Yes, it is was designed and developed soley by myself. It started in concept as a batch mod validator, but I soon realized after I had a working prototype created that I could potentially fit it as an Eclipse plugin. After some light researching on how to make Eclipse plugins I set about adding in the hooks to my mod validation tool. Even though I didn't accomplish all the goals I had set out for the Eclipse plugin, all in all it was a fairly satisfying experience.

Quoting KhanAndSteak,
Also I'm quite impressed that you force people to work with Eclipse (and thus download the Java JDK/JRE)

I consider this the entry price and gateway to using the plugin. Basically if you can't download, extract Eclipse and the Java JDK then this tool is most likely above your head to use.

This tool is probably not for the notepad tinkerers, though if they are competent the content assistance and instant feedback of syntax errors can save a whole lot of hours in debugging. Also the quick openining of referenced entities is a godsend too (i.e. open a capital ship entity, highlight an ability->right click->open entity, and so on through the buffs). Add in the search capabilities of Eclipse, support for SVN, ... I could go on.

Quoting KhanAndSteak,
Do you program in Java as well?

Yes, I've been coding in Java for a very long time now.

Reason for Karma (Optional)
Successfully updated karma reason!
August 6, 2012 4:37:56 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

So are we going to be able to download 2.0.8 anytime soon? The version history says you had an update on June 28th but the latest download is from the 18th.

Reason for Karma (Optional)
Successfully updated karma reason!
August 6, 2012 6:10:26 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,
So are we going to be able to download 2.0.8 anytime soon? The version history says you had an update on June 28th but the latest download is from the 18th.

I've uploaded 2.0.8 today. Thanks for reminding me.

6/28/2012 v2.0.8
# Defect: Changed RequiredFactionNameID from Any to StringInfo
# Defect: Added Invalid to WeaponClassType
# Enhancement: weaponClassForWeaponPassive now references global WeaponClassType
# Defect: PirateStrengthAgainstYouAdjustment changed to NotDiplomacyOrRebellion
# Enhancement: Added new version policy NotDiplomacyOrRebellion
# Defect: Added xpModifier to star base upgrade

Reason for Karma (Optional)
Successfully updated karma reason!
August 6, 2012 6:39:06 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting KhanAndSteak,
Awesome! Did you do this plugin all by yourself? Also I'm quite impressed that you force people to work with Eclipse (and thus download the Java JDK/JRE) - it's highly useful Do you program in Java as well?

So, I've been meaning to look at some metrics on this tool. 

Total Lines of Code: 5380

  • Soase Validation Logic: 2414 lines
  • Eclipse Plugin: 2479 lines
  • Soase XML Definitions: 5759 (all time consumingly hand edited)
  • Soase Wiki: 21588 lines (Generated from xml's)

 

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #108436  walnut3   Server Load Time: 00:00:00.0002047   Page Render Time: