How to set technology name / description using xs script

It seems that there is probably a way as this constant is defined

extern const int cAttrSetName = 7;

however the function xsEffectAmount accepts a float for value (and not a string)

so doing something like this just fails

xsEffectAmount(cModifyTech, 10, cAttrSetName , "Test", 1);

I suspect that the string needs to be set somewhere (using some undocumented function) and then referred to by an ID

Any idea on how this could be done ?

Hi @VisibleAnt2066 as you mentioned it accepts a float value which should be the string ID. Have a good day!

1 Like

Yes my question was how to define the String / String ID. Do we need to call a certain function or are strings defined in some other file.

There is probably a way to define custom strings directly in the script (without the need to edit language files). Any idea how to achieve this ?

Could you be referring to the key-value-strings file?
It’s in Steam\steamapps\common\AoE2DE\resources\ *language* \strings\key-value
You can add your own strings in a key-value-modded-strings-utf8.txt file in the same folder. If you do this, be sure to replicate this for every language. It’s no problem if you don’t, though, it will default to English

Hi FE group officials,greeting. I WANT FE to release a new thing that AGE can do but scenario editor cannnot do.The types of attack and armor for units in the game in the scenario editor are already fixed,cannot add or delete types of the units. I hope FE groups can break this limitation that not only campaign makers can make more interesting campaigns for players but also it is a great historical change in AOE2,I HOPE THIS CAN BE COME TRUE IN THE NEAR FUTURE,thank you.

As you can see in the image above, there is an option to set a String ID. And there seems to be a possibility to have an “inline” string.

Would be great if we have some function in XS to accomplish this

See what happens when you use a string ID that you know. For example, 5104 is “Huskarl”, 5276 is “Tree L”, 5820 is “12”, 6121 is “Train villager” and so on.

Has this been resolved ? Is there a way to set a string programmatically in the XS file ?