There are definitely two schools of thought. I came from using a platform that use python for scripting what I call the "quick hit" code, and I tell you, over time, I found most of the scripts (not settings such as "idletime=xx", "behaviorpriority=attackfirst", "race0=Sirens", "defaultracestrength=10000000") should be part of the compiled code. Again, there is value in a 3rd party scripting language, but full-on ai or behavior coding should be part of the compiled code, imo.
Here is an example of what I think how to utilize a 3rd party script at most:
Code:
quest=new Quest("Flush the toilet')
quest.NPC=...
quest.Reward=...
quest.Behavior=...
quest.Waypoints=...
QuestSystem.add(quest)
...
QuestSystem.generalRefresh=12 //in hours
...
behav=new Behavior("Lunatic Madness Looney Tunes")
behav.greeting=...
behav.idleaction=...
behav.fightchance=...
behav.callforhelpchance=...
...
BehaviorSystem.add(behav)
...
mob=new Mob("HairRaiser")
mob.faction=...
mob.behav=...
...
I'm not 100% opposed to having some logic test in the script, but with my example above, the script is utilized just to provide parameters to the compiled code. Any designer can handle providing parameters, and they don't need an inkling of coding experience for it as long as they have examples to follow.
Just so you know, that's how I utilized the 3rd party script with the previous engine, although I can write full-on code through it. The 3rd party script is really there if there are part of the compiled code you cannot recompile. Recompiling takes seconds.
*BUT* if the 3rd party scripting is utilized just like above, we can do that NOW with parameter files in EE (that's what I'm doing now).