Okay I know how to do this sort of thing in my blueprints.lua.
-- Mexes T1
if bp.BlueprintId == 'ueb1103'
or bp.BlueprintId == 'uab1103'
or bp.BlueprintId == 'urb1103'
or bp.BlueprintId == 'xsb1103' then
if bp.Defense.Health then
bp.Defense.Health = 1000
end
if bp.Defense.MaxHealth then
bp.Defense.MaxHealth = 1000
end
if bp.Economy.MaintenanceConsumptionPerSecondEnergy then
bp.Economy.MaintenanceConsumptionPerSecondEnergy = 4
end
end -- end Mexes T1
That means that I know how to change parameter values in blueprint files and nothing else. I am learning from a very low base of knowledge. (Ignore the precise changes to the T1 mexes, it's just a test mod.)
The next thing I feel I need to learn is how to control what an engineer or ACU or factory can make i.e their build capabilities. What is the simplest and most elegant way to do that (to add or subtract to the list of what they can make)?
Because my knowledge base is low, I first have to learn by "monkey see - monkey do" techniques. As I put more items together, I will start to understand the overall language (LUA) and the folder and file structures of FAF. I hope.
To put my poor programming knowledge in context, I taught myself Basic and Turbo Pascal many years ago. I wrote a chess program with basic AI in Turbo Pascal. It had 2 move look-ahead (4 ply search) with a minimax algorithm. I modded Cossacks 3 for the last few years (mainly a parameters mod but it had some other aspects). Cossacks 3 uses object Pascal in its very large and messy scripts and full destructive hooking at the whole of file level, handled by their simple mod manager. So, change one parameter in a huge file (thousands of lines) and you had to overwrite that whole file on load. Then when the developers changed/inserted a hundred lines in that file (all over the place) for a patch it usually broke my mod and I had to do a file compare and merge on that file. This could happen to multiple files at patch time. Due to this and other issues with Cossacks 3 I gave up modding and playing it. It has a very poor game engine anyway.
I understand arrays but not classes and objects so that is a problem area with my knowledge. And of course, I have no idea where stuff is in all the different FAF files. LUA syntax is a bit different too. Some stuff seems case sensitive. There are no markers at end lines like (;) and the "if-then" statement needs an "end" statement (probably because there is no end line character like (;)). Also, "==" seems to mean "equal to" and "=" apparently means "becomes equal to" which other languages express as ":=".
A link to a syntax guide would be great. I'll start searching on the net too.