The scripting is real easy to get ahold of, but the ONE thing that is being real restricting on it is the lack of implementing variables.
In a nutshell, variables are modular values that are constantly in memory, and can be modified at the users discretion. And without that ability, the scripting system is incredibly restricting in the long run. And, should they be implemented, it would make scripting in the first place much easier, and much more customizable.
Let me give a basic example. Say you make a basic retractable bridge. Right now, you need TWO activators to be able to make it expand and retract. Plus, should somebody use one activator more than once consecutively, the bridge will keep moving in the defined offsets. However, if variables were implemented, we could script it so retracted = 0, and expanded = 1, and have the activator check the variable each time it’s activated. this would allow us to make it so if the variable = 0, move -100 on the x coordinates and set the variable to 1, and if the variable = 1, move +100 on the x coordinates and set the variable to 0.
Maybe you could add to that. Say we did the above, except we add variable 3 and 4. Variable 3 defines a sound object. This one is activated not by the bridge itself, but upon the activator of the bridge. When 3 is triggered, the sound object spawns, and when the bridge var reaches 0, it changes var 3 to to var 4, and the sound object despawns (though, this may require a better timer system too). Now we have a simple bridge AND the sound of it grinding against metal.
Anyways, that’s my rambling. I’m a pc programmer, and am used to having variables and floats and whatnot. It’d be nice to see 343i make the Forge scripting system follow the basics of the usual programming languages.