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
+231

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   |   257 Replies
Search this post
Subscription Options


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

Well being a Java programmer (since the days of XS in Age of Mythology), I must say that this mod is really helpful - even more so since I use Eclipse for my everyday programming. It is also invaluable for learning the difference in syntax between expansions. Thanks so much for creating

Reason for Karma (Optional)
Successfully updated karma reason!
September 2, 2012 11:11:36 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Not trying to bug you to do it or anything, but is there any chance of a 1.04 version in the nearish future?

Reason for Karma (Optional)
Successfully updated karma reason!
September 3, 2012 2:16:23 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,
Not trying to bug you to do it or anything, but is there any chance of a 1.04 version in the nearish future?

I'm working on getting it tested out and should have one uploaded soon.

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

Quoting ZombiesRus5,

Quoting GoaFan77, reply 202Not trying to bug you to do it or anything, but is there any chance of a 1.04 version in the nearish future?

I'm working on getting it tested out and should have one uploaded soon.

Ok, version 2.0.11 is uploaded for the latest rebellion 1.04 release.

 

Reason for Karma (Optional)
Successfully updated karma reason!
September 4, 2012 8:40:22 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
Ok, version 2.0.11 is uploaded for the latest rebellion 1.04 release.

Karma for you sir.

Reason for Karma (Optional)
Successfully updated karma reason!
September 5, 2012 2:07:09 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,

Quoting ZombiesRus5, reply 205Ok, version 2.0.11 is uploaded for the latest rebellion 1.04 release.



Karma for you sir.

Welcome sir. I added one new feature to the count validations. It will tell you know how many over or under the count you are now (previously only did under).

I pulled out the Labs per capital ships from pre-1.04 as I saw Harpo say they showed as bad enums.

Let me know if you see any other oddities.

 

Reason for Karma (Optional)
Successfully updated karma reason!
September 5, 2012 2:35:03 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
Welcome sir. I added one new feature to the count validations. It will tell you know how many over or under the count you are now (previously only did under).

Yes, I did notice that and would often grossly overestimate my counts just to get it to tell me. Nice change.

Quoting ZombiesRus5,
Let me know if you see any other oddities.

Will do.

Reason for Karma (Optional)
Successfully updated karma reason!
September 6, 2012 12:21:55 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Just a thought on something else that might prove useful if you don't have enough code to do. After patches I often find myself running diffs on the reference files to modern files to see the changes. I used to do this externally as I didn't have the reference files in Eclipse, but I finally realized I could just have a reference project and use the diff program in Eclipse. However, it could probably be made even quicker as your plugin is already reading the reference files, it might be a nice button to have that will check if a given file is in the reference files, and open a diff between those two files instantly.

Edit: Also, the plugin doesn't seem to support the new "HasBuff" aiUseTargetCondition. Granted I haven't actually done anything yet to see if it works.

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

Quoting GoaFan77,
Edit: Also, the plugin doesn't seem to support the new "HasBuff" aiUseTargetCondition. Granted I haven't actually done anything yet to see if it works.

True, I haven't added the new modding items yet.

Quoting GoaFan77,
Just a thought on something else that might prove useful if you don't have enough code to do. After patches I often find myself running diffs on the reference files to modern files to see the changes. I used to do this externally as I didn't have the reference files in Eclipse, but I finally realized I could just have a reference project and use the diff program in Eclipse. However, it could probably be made even quicker as your plugin is already reading the reference files, it might be a nice button to have that will check if a given file is in the reference files, and open a diff between those two files instantly.

I was curious if I could figure this out which I finally did. Basically the next update will allow a quick compare of a single file against it's corresponding reference file if one exists with the same name.

 

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 3:36:45 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

What's the best configuration in the error reporting in Eclipse?  I know you can adjust some of the reporting, but seemingly despite what I tweak, I'm still getting several thousands of errors and warnings for things that aren't an issue.  It might say it's missing a entity reference for a file that already exists and seems coded right.

This is annoying.

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 3:56:06 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting XATHOS,
What's the best configuration in the error reporting in Eclipse? I know you can adjust some of the reporting, but seemingly despite what I tweak, I'm still getting several thousands of errors and warnings for things that aren't an issue. It might say it's missing a entity reference for a file that already exists and seems coded right.

This is annoying.

With that many, you're either telling Eclipse to validate for a different version of Sins (I.e. Diplomacy instead of Rebellion) or your reference data is either not set up or messed up. Go over the installation instructions again and make sure everything is in check. Also note your Rebellion and nonRebellion projects must be in different work spaces.

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

Yep, you need separate work spaces for Rebellion and Trinity. Trinity workspaces can have projects for each version of sins though by right clicking on the project and choosing the validation at the project level which overrides the workspace setting.

 

It does sound like you have a project validating against the wrong version if that many errors are happening. 

With required fields the tool reports every following field as an error or warning if it thinks the required field is missing. This can add up to a bunch if the wrong version is being validated for.

The other possibility is your missing a lot of required fields and it's adding up to a lot of errors.

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 4:39:04 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,

Also note your Rebellion and nonRebellion projects must be in different work spaces.

It's the only one I have in.  I don't have a workspace for Trinity since I don't mod in them anymore, and I've been through the installation process several times and it's come up the same time each time.

Quoting ZombiesRus5,

The other possibility is your missing a lot of required fields and it's adding up to a lot of errors.

That's highly doubtful.

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 4:47:07 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Nevermind, I just didn't set the reference correctly.

It's been too long since I used this.

Edit: I spoke too soon.


Went from a few, to too much.

 

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 5:03:06 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Well, then you have some other configuration issue still...

Does your preferences look like this?

Edit - you don't need the research costs validated.

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 5:17:53 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I'm redoing a fresh input (I'm copying whole files in this time), but that's how I had it set up before.  It's still giving me 4000+ errors.

 

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

-When I added projects, I copied respective whole folders in instead of linking it in the past.
Can I not link these files versus doing copies?  I'd rather not have to pull it from the workspace all the time just to test the game.  This is what I did in the past.

-The reference is set.


-The Rebellion items match yours.


-I did the add/remove ONLY on my mod (not the reference files), and this is the result:


Is any of this including errors from Stardock anyway, even though, I never ran the validator on the ref. files?  A general look of the errors are highlighting mainly the Sins Plus files I have inbuilt.  All of the warnings are from research cost.

Also, when I run "clean" will it include the Stardock errors?









 

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

Quoting XATHOS,
Is any of this including errors from Stardock anyway, even though, I never ran the validator on the ref. files? A general look of the errors are highlighting mainly the Sins Plus files I have inbuilt. All of the warnings are from research cost.

You see that "Validate Research cost" checkbox there. You have it checked, so it will throw warnings if your research do not have the default costs/times etc. for their tier. Uncheck it if you want to have say a free tier 8 tech.

Quoting XATHOS,
Also, when I run "clean" will it include the Stardock errors?

It will only check files in your eclipse project directory.

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

You see that "Validate Research cost" checkbox there. You have it checked, so it will throw warnings if your research do not have the default costs/times etc. for their tier. Uncheck it if you want to have say a free tier 8 tech.

I saw the edit and turned it off.


It will only check files in your eclipse project directory.

That's good to know.  Do anyway use the TSOP files as reference files since they clean up alot of those issues?

Reason for Karma (Optional)
Successfully updated karma reason!
September 8, 2012 9:54:07 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

If your trying to link a folder in an existing project that has never worked. 

The tool expects the mod folders to be located in the actual project folder.

That said, the project folder does NOT need to be in the actual workspace. The project folder could be created directly in your mod folder as others have done.

To do this, when you create a Java Project uncheck use default location and pick the mod folder location in the external directory.

 

Reason for Karma (Optional)
Successfully updated karma reason!
September 9, 2012 9:42:28 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
If your trying to link a folder in an existing project that has never worked. 

The tool expects the mod folders to be located in the actual project folder.

That said, the project folder does NOT need to be in the actual workspace. The project folder could be created directly in your mod folder as others have done.

To do this, when you create a Java Project uncheck use default location and pick the mod folder location in the external directory.

 

I was adding it after the fact.  That's why I was getting so many errors.

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

Which instantActionTriggerType's are valid in Abilities, Instant Actions and Periodic Actions?

Reason for Karma (Optional)
Successfully updated karma reason!
September 11, 2012 6:58:41 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I don't ever recall seeing Periodic Actions.

Reason for Karma (Optional)
Successfully updated karma reason!
September 12, 2012 3:41:02 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,
Which instantActionTriggerType's are valid in Abilities, Instant Actions and Periodic Actions?

I'm working on adding some additional validations to the tool and this is one area I've wanted to address due to the reuse of the buffInstantAction.xml definitions across Abilities, instantActions and periodicActions.

Here's what I understand so far...

Abilities

Allowed: AlwaysPerform

NotAllowed: OnDelay, OnBuffFinish, OnChance, OnAbilityUsed, OnDamageTaken?, OnWeaponFired?, OnOwnerDeath?

?: OnCondition?

 

Buff->instantAction

Allowed: OnBuffFinish, OnCondition, OnDamageTaken, OnDelay, OnHyperspaceExit, OnOwnerDeath, OnWeaponFired

NotAllowed: AlwaysPerform, OnChance

 

Buff->periodicAction

Allowed: AlwaysPerform, OnCondition, OnChance

NotAllowed: OnDelay, OnAbilityUsed, OnBuffFinish, OnDamageTaken, OnHyperspaceExit, OnOwnerDeath, OnWeaponFired


 

Reason for Karma (Optional)
Successfully updated karma reason!
September 14, 2012 11:10:24 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

So nobody knows anything on instant action usage... That's disturbing.

Here's some of the planned new features with the next version:

  • Option to choose if warning should be displayed for dead or un-referenced items.
  • Optional warning on dead or un-referenced entity files.
  • Optional warning on sound files that are not referenced in any sounddata.
  • Optional warning on particle files that are not referenced in any entity or mesh.
  • Optional warning on mesh files that are not referenced in any entity or particle effect.
  • Warning when known limits are exceed on iterative fields like NumWeapons.
  • Warning on usage violations for instantActionTriggerType such as using OnDelay in Abilities

I'd like to add support for identifying other entries that aren't used like brushes, but as I don't validate all structured files currently. This won't be possible until definitions are built for every structured file in Sins.

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