ZombiesRus5 ZombiesRus5

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

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

http://code.google.com/p/soaseplugin/

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.

Current Downloads (older downloads: Downloads

FAQ

System Requirements 

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

 

How To's:
How To Install Eclipse

How To Setup Entity Validation Eclipse Plugin (Updated for new preference with v0.6)

Video: How to setup and configure the Soase Eclipse Plugin


References:

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
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
Explosiondata Validation: Validates sounddata files for correctness including referenced sound files
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

1,202,987 views 278 replies | Pinned
Reply #201 Top

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 :)

Reply #202 Top

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

Reply #203 Top

Quoting GoaFan77, reply 202
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.

Reply #204 Top

Quoting ZombiesRus5, reply 203

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.

 

+1 Loading…
Reply #205 Top

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

Karma for you sir. k1

Reply #206 Top

Quoting GoaFan77, reply 206

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.

 

Reply #207 Top

Quoting ZombiesRus5, reply 207
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, reply 207
Let me know if you see any other oddities.

Will do.

Reply #208 Top

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.

Reply #209 Top

Quoting GoaFan77, reply 209
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, reply 209
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.

 

+2 Loading…
Reply #210 Top

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. <_<

Reply #211 Top

Quoting XATHOS, reply 211
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.

Reply #212 Top

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.

Reply #213 Top

Quoting GoaFan77, reply 212

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, reply 213

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.

Reply #214 Top

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

It's been too long since I used this.

Edit: I spoke too soon.


Went from a few, to too much.

 

Reply #215 Top

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

Does your preferences look like this?

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

Reply #216 Top

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.

 

Reply #217 Top

-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?









 

Reply #218 Top

Quoting XATHOS, reply 218
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, reply 218
Also, when I run "clean" will it include the Stardock errors?

It will only check files in your eclipse project directory.

Reply #219 Top

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?

Reply #220 Top

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.

 

Reply #221 Top

Quoting ZombiesRus5, reply 221
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.

Reply #222 Top

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

Reply #223 Top

I don't ever recall seeing Periodic Actions.

Reply #224 Top

Quoting ZombiesRus5, reply 223
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


 

Reply #225 Top

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.