Well, I learned this recently, but devising a good scripting system and a map editor (if needed) is very important and will save you hours of time doing grueling tasks that otherwise wouldn't have to be done at all. Doing these features in the beginning tends to be tedious as you don't produce anything rewarding or to play with, but pays off a lot later.
In a game engine I don't consider the GUI very important. You should make it functional and not restricting. I don't recommend spicing up your map editors and dev tools with user-friendly (unless it helps the development) and pretty looking features, unless you plan to release those programs to public as strong game dev tools.
Anyway, a lot of these things depend on the game you are making. A very customizable battle engine is a must have if you are making a RPG, for example.
Any element that is repeating a lot in your game must be backboned with proper tools that allow you to easily place/implement and alter the elements in question.
Also, you need to find a limit between the continuous expansions of the game engine and completing a game with it. No sense in creating a placement/scripting tool for every single instance in your game. But of course, if you are aiming primarily to a super-flexible game engine, you can never get enough of features.