Maybe because I'm not familiar enough with scripting yet :roll:
It's a beat'em up engine, so scripting is for in game triggers, AI, objects and characters behaviour and interaction, special effects... These are the most important ones that are called every frame or e very couple of frames (like AI I suppose). I wonder how can it affect performance, but I think I can avoid calling Lua functions every frame and do it only by triggering (key press, hit, animation ended...)
The rest is to define screens like menus, cutscenes, etc. Other things are defined with graphical editors (animations, character basis, layers, some fixed behaviour properties, etc).
C++ code provides the engine for physics, graphics, audio, network, etc, abstract classes for the main structure of beat'em up games, factories and managers, objects in a general way, with their mandatory properties, these are basic/abstract characters and objects to be extended with Lua. And finally the way the game runs (where the Lua updates are called, etc)