I develop a modding tool "Yuri's Revenge INI Editor".
Some program screenshots:
List of sections and child sections or section properties, can jump to section with a button on editing grid.
Advanced find section tool with wildcard supporting (startwith / endwith), default search any section name contains a keyword.
Edit property easily with auto complete popup dialog (customizable by config.ini)
Predifined template supporting for quick creating a new section
Main program commands:
Filter -> filter property / section displayed in editing grid
Goto section -> goto current editing section
Auto Complete -> popup available values of selected property
Find Section -> find section with wildcards
Clone Section -> copy all properties of current to new section
Copy Properties -> copy selected properties to other section
Merge Properties -> copy all properties to other section
Copy INI Code -> copy ini code of selected / all properties to clipboard
Show INI source
Insert INI code -> insert ini snippet to current source and reload
Clear Property Value -> clear selected / all propertie values of current section
config.ini
A program customization data, some snippets:
[rulesmd] -> define a schema for rulesmd.ini
@General=node -> indicate General section show in left panel
@BuildingTypes=list -> indicate BuildingTypes show in left panel and auto reorder child sections, display "jump to section" button in a editing grid
(*)/Owner=multiple(@Countries) -> indicate Owner property of any section has popup dialog showing all values in Countries section
(*)/ToProtect=boolean -> indicate a boolean (yes/no)
(*)/FreeUnit=single(@VehicleTypes)
(*)/Primary=single(@All) -> @All token mean "All section names"
(*)/Prerequisite=multiple(@BuildingTypes)
syntax: multiple(@SectionName1, value1, value2, @SectionName2) => popup multiple values selecting dialog
syntax: single(@SectionName1, value1, value2, @SectionName2) => popup single value selecting dialog
Section or property matching can be regular expression.
Ex: (*)/Weapon\d+= => match Weapon1, Weapon2, WeaponX...
General/AICaptureWounded=number -> AICaptureWounded property of General section is number
[rulesmd.template] -> define a templates for rulesmd.ini
#Title=Building Type -> Text display in menu
UIName=
Name=
BuildCat=
Prerequisite=
Strength=
Armor=
TechLevel=
[rulesmd.template] -> define a templates for rulesmd.ini
#Title=InfantryType -> Text display in menu
UIName=
Name=
Image
Prerequisite=
Strength=
Cost=
Armor=
Primary=
Seconday=
TechLevel=
... and more ...
In order, the template menu item has shortcutkeys is Ctrl+1 -> Ctrl+0 and Ctrl+Shift+1 -> Ctrl+Shift+0 (total 20 items), >21th item has no shortcutkeys
Update 05/25/2011:
Now, the editor can validate INI code. Validation conditions store in config.ini. Download link changed.
[rulesmd.validation] => define a validation
Warheads/(*)=exist => all items in Warheads section must be existed
(*)/Primary=exist => all values of Primary property in any section must be existed
(*)/Seconday=exist
(*)/Projectile=exist
(*)/Prerequisite=exist
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => all values of Wardhead property must be existed in Warheads section
Screenshots:
Update 05/27/11 (Download link changed):
+ New menu INI, move some items from Edit menu to the INI.
+ New command Fill Series
+ Add color selector dialog
config.ini code: (*)/PropertyName = color
+ Section groupping / filtering
Some examples:
@(*)=filter(mode=Basic & prerequisite=GACNST & title=Allied Buildings) => filter with basic mode, section must has prerequisite=GACNST, show title in list of sections
@(*)=filter(mode=Basic & prerequisite=GAPILE & category=Soldier & title=Allied Infantry)
@(*)=filter(mode=Basic & prerequisite=GAWEAP & category=AFV & title=Allied Units)
@(*)=filter(mode=Basic & prerequisite=GAYARD & title=Allied Naval)
@(*)=filter(title=All Weapons & projectile) => any section has projectile (no property value restriction)
@(*)=filter(title=Used Weapons & mode=Collect & property=Primary & property=Secondary) => collection all sections in indicated properties
General syntax:
filter(paramName1 = paramValue1 & paramName2 = paramValue2)
- Preversed parameter names: title, mode, test, property
- Other parameters are filter conditions, parameter has only name means value is optional.
- Parameter name can duplicate in some case.
+ Fix INI validation errors, config.ini code:
[rulesmd.validation]
Warheads/(*)=exist
(*)/Primary=exist(!NONE)
(*)/Seconday=exist(!NONE)
(*)/Projectile=exist => section of this property must be existed
(*)/Prerequisite=exist(!BARRACKS,!RADAR,!TECH,!PROC,!POWER,!FACTORY,!BASE) => check existing and ignore some ALIAS
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => must be exist in Warheads section
+ INI comparision
Next features: Replace property value.
Install / Requirements:
- No installation required
- Program run on Microsoft .NET Framework 3.5, download here
- Download link
Notes:
Program is still developing, please backup your ini file before edit by program.
Please report bugs / questions in this thread.
Thanks for your reading
Some program screenshots:
List of sections and child sections or section properties, can jump to section with a button on editing grid.
Advanced find section tool with wildcard supporting (startwith / endwith), default search any section name contains a keyword.
Edit property easily with auto complete popup dialog (customizable by config.ini)
Predifined template supporting for quick creating a new section
Main program commands:
Filter -> filter property / section displayed in editing grid
Goto section -> goto current editing section
Auto Complete -> popup available values of selected property
Find Section -> find section with wildcards
Clone Section -> copy all properties of current to new section
Copy Properties -> copy selected properties to other section
Merge Properties -> copy all properties to other section
Copy INI Code -> copy ini code of selected / all properties to clipboard
Show INI source
Insert INI code -> insert ini snippet to current source and reload
Clear Property Value -> clear selected / all propertie values of current section
config.ini
A program customization data, some snippets:
[rulesmd] -> define a schema for rulesmd.ini
@General=node -> indicate General section show in left panel
@BuildingTypes=list -> indicate BuildingTypes show in left panel and auto reorder child sections, display "jump to section" button in a editing grid
(*)/Owner=multiple(@Countries) -> indicate Owner property of any section has popup dialog showing all values in Countries section
(*)/ToProtect=boolean -> indicate a boolean (yes/no)
(*)/FreeUnit=single(@VehicleTypes)
(*)/Primary=single(@All) -> @All token mean "All section names"
(*)/Prerequisite=multiple(@BuildingTypes)
syntax: multiple(@SectionName1, value1, value2, @SectionName2) => popup multiple values selecting dialog
syntax: single(@SectionName1, value1, value2, @SectionName2) => popup single value selecting dialog
Section or property matching can be regular expression.
Ex: (*)/Weapon\d+= => match Weapon1, Weapon2, WeaponX...
General/AICaptureWounded=number -> AICaptureWounded property of General section is number
[rulesmd.template] -> define a templates for rulesmd.ini
#Title=Building Type -> Text display in menu
UIName=
Name=
BuildCat=
Prerequisite=
Strength=
Armor=
TechLevel=
[rulesmd.template] -> define a templates for rulesmd.ini
#Title=InfantryType -> Text display in menu
UIName=
Name=
Image
Prerequisite=
Strength=
Cost=
Armor=
Primary=
Seconday=
TechLevel=
... and more ...
In order, the template menu item has shortcutkeys is Ctrl+1 -> Ctrl+0 and Ctrl+Shift+1 -> Ctrl+Shift+0 (total 20 items), >21th item has no shortcutkeys
Update 05/25/2011:
Now, the editor can validate INI code. Validation conditions store in config.ini. Download link changed.
[rulesmd.validation] => define a validation
Warheads/(*)=exist => all items in Warheads section must be existed
(*)/Primary=exist => all values of Primary property in any section must be existed
(*)/Seconday=exist
(*)/Projectile=exist
(*)/Prerequisite=exist
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => all values of Wardhead property must be existed in Warheads section
Screenshots:
Update 05/27/11 (Download link changed):
+ New menu INI, move some items from Edit menu to the INI.
+ New command Fill Series
+ Add color selector dialog
config.ini code: (*)/PropertyName = color
+ Section groupping / filtering
Some examples:
@(*)=filter(mode=Basic & prerequisite=GACNST & title=Allied Buildings) => filter with basic mode, section must has prerequisite=GACNST, show title in list of sections
@(*)=filter(mode=Basic & prerequisite=GAPILE & category=Soldier & title=Allied Infantry)
@(*)=filter(mode=Basic & prerequisite=GAWEAP & category=AFV & title=Allied Units)
@(*)=filter(mode=Basic & prerequisite=GAYARD & title=Allied Naval)
@(*)=filter(title=All Weapons & projectile) => any section has projectile (no property value restriction)
@(*)=filter(title=Used Weapons & mode=Collect & property=Primary & property=Secondary) => collection all sections in indicated properties
General syntax:
filter(paramName1 = paramValue1 & paramName2 = paramValue2)
- Preversed parameter names: title, mode, test, property
- Other parameters are filter conditions, parameter has only name means value is optional.
- Parameter name can duplicate in some case.
+ Fix INI validation errors, config.ini code:
[rulesmd.validation]
Warheads/(*)=exist
(*)/Primary=exist(!NONE)
(*)/Seconday=exist(!NONE)
(*)/Projectile=exist => section of this property must be existed
(*)/Prerequisite=exist(!BARRACKS,!RADAR,!TECH,!PROC,!POWER,!FACTORY,!BASE) => check existing and ignore some ALIAS
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => must be exist in Warheads section
+ INI comparision
Next features: Replace property value.
Install / Requirements:
- No installation required
- Program run on Microsoft .NET Framework 3.5, download here
- Download link
Notes:
Program is still developing, please backup your ini file before edit by program.
Please report bugs / questions in this thread.
Thanks for your reading