Do you see any glaring problems i skipped?
Yes, I see a major one: What you describe is not a game engine but a game template.
Not that it mater, it's not a bad things, just that it's not the same thing. I don't try to discourage you, if you want to do it, do it. But understand that the result will not be what you said you want to do.
Later, you say that, for you, Ren'py is mostly for VN's, so what your game engine will be for ?
With Ren'py you have a whole script language to describe your game, what it do, how, when and why it must do it. Plus you have the support of Python, so a whole script language independent from the engine itself, which let you tweak and extend the engine. You can also have dynamic real time control over the rendering. Hey, you even have full access to the engine source code to help you understand how to tweak/extend it.
This while what you plan rely on XML files, so description and not actions. Whatever how far you'll go with your engine/template, creators will always be limited by what you planed.
He want to apply a trapezoidal transform on the picture ? Sorry, there's no tag for this. Honestly I don't know if Ren'py have a statement for this, but there's picture manipulation modules in Python, so you can load the picture and apply the transform. And like you can directly access the rendering engine, you can also display your now transformed picture. It will be hard works for nothing, but it can be done.
He want to add something to the player inventory ? Oops, you haven't yet wrote the tags which will handle the inventory. He will also be stuck with a very heavy format. How do you plan to make him create something like :
Code:
if retVal == "sleep":
display first part sleep animation
for i in allPossibleEvents:
if i.triggeredRightNow:
play i event
break
display second part sleep animation
elif retVal == ...
[...]
PossibleEvent:
triggeredRightNow:
if date == x day after the player did this
and 3 < character Y.timeDoneThis <= 10
and dayOfWeek == monday
and character Z.jealousy < 10:
return True
return False
It's possible with your full XML path, but seriously, thing about how heavy the XML files will be for a full game, the amount of crossed references you'll need and how many tags the creator will need to know.
By mods i mean ill provide the base framework of a game, and then anyone in the community could provide an XML file that would add/edit locations and characters etc. [...]
What are your issues with other VNs engines, if so?
Dont really know any that could implement mods in the form i described above.
Er... With Ren'py you have full access to every single lines of the source code. You can take the game and change every single line of it ; you can even do it on the fly, there's (hidden) script edition features on the engine. As far as I know, it's also possible with RPGMaker, Flash, KiriKiri, Unity and games using nw.js, not limited to this list. Its possible because for all these game engines there's a way to access the source code, and directly change it or recompile a altered version of it. It's not necessarily easy, but it's possible.
After, it's up to the creator to make his game easily moddable in the way you mean it, so by anyone without real knowledge. Both Ren'py, Unity and Unreal, then Flash and nw.js, (once again not limited to this list) make it possible to use XML file to describe every single character, location and object. So, if the creator want it, he can make his game easily moddable by just adding a new XML file. But, at least for Ren'py, why do his when few knowledge is enough to directly add the character/location/object inside the source code ?
In the end, perhaps that, instead of thinking about creating a new game engine, you should think about how extend the existing ones to achieve what you want.