Sorry, I still don't quite get, what you're trying to accomplish here. What execlist.ini are you're talking about? There's no such file in Nexus or inside the nexus_DX9.exe ... at least I didn't find any reference to that.
A rule or object stored in exec list can be Overwritten if that same command is placed in the consts.ini file:
If in execlist there is: %sDeviceParam % %
And also In consts: %sDeviceParam % % % //Nexus will choose THIS value, since it overwrites the exec list one
That doesn't work. You can't "invent" new keywords, since Nexus will just crash telling you about "not an identifier" or "invalid keyword", depending on where you put it. If you somehow managed to do what you just said, please provide a working example or a more accurate explanation.
I know it seems similar to normal # rule inserts, but they do distinctly different things once you get down to loading data into RAM:
1. %s values are stored as a sort of 'temporary database' in active memory, not as a string of script like # commands - which means %s files can hold a lot more data in less space, and # scripts can call on a shared %s script databases, reducing overall drain of processing and ram
2. %s values divide into tables, different tables can be loaded as necessary, while tables you don't need for the coming mission can be dropped from active memory (in the first missions of main campaign, shields aren't used, the object databases for shields weren't loaded for those missions, they weren't needed, saving processing capacity) # rules stored in rule files ALL have to be loaded
3. adding a %s value to a device just adds that value in the collective data table for that device type, adding a # file to do the same thing creates an extra process tree, wasting a lot of capacity.
Conclusion:
the game made using just # scripts could have worked, but it would several times larger on the hard drive, and require a LOT more RAM and CPU capacity. as well as limited mechanics
using % scripts as well changes that
First of all, #-values aren't rules or scripts... they're constants. They actually represent numerical values the game uses internally, but which aren't comfortable to work with for the human reader or developer. E.g. if you're writing:
SetRelation(#race_player, #race_NTF, #UREL_ENEMY);then the game's script interpreter actually replaces all #-constants with their proper numerical values before processing the line:
SetRelation(1, 2, 2);The game offers these constants just to make scripting easier and introduces a lot of default constants in consts.ini as well as registering shipclass and device names as constants (among others), so you can refer to those by using the #-syntax instead of having to write the actual SHIPCLASS' number every time, for example. As I said: constants aren't rules, nor are they scripts.
Second: what do you mean by %-script? How do I write it, where do I place it and what does it do? Such a script type doesn't appear in any of the game's script files, to the best of my knowledge.
And third: Where did you get this information about how the game stores what? Just by looking at the binary .exe file?
****************************
As far as I can tell, these sections in nexus_DX9.exe simply contain a collection of different strings telling the game how to parse the various .ini and script files. It seems to me, %s simply means: "here comes a string", followed by the actual string, e.g.
DamageDevice %G, where %G actually represents the data type expected after a DamageDevice keyword (in this case, a float representing the devicedamage of the weapon). See other examples like
Color %G %G %G %G (color with RGB and Alpha values),
NumStars %u (number of stars in system, expecting an unsigned integer value) or
Mesh "%s" (mesh of the celestial, expecting a string in double quotes).
That may help us understanding the script and/or ini parser better than before and may help us find undocumented properties we didn't know about, but I don't really see a way to change any of that without breaking the .exe.