Thanks for the feedback!
I'm glad you noticed the doors lol, I struggled with them for a couple days and STILL didn't get the transition to match, but I'm glad it gave you some ideas!
The map system doesn't use any viewports, I was trying to simulate a super/fusion/zero style map where everything was perfectly gridlocked, and information was stored that displayed where you've been and what's in the room and so on and I couldn't think of a way to do that easily with a traditional minimap method with zoomed out viewporting buuut it may be possible.
I used a tileset that had every possible type of room square (each variation of wall and door position). At the start of a loaded area, there is a massive tilemap that's sized so that one room = one tile. Each room square has an Area2D, and has areas around it that check what the adjacent rooms are and whether there are doors present, allowing them to work out what kind of room tile they are. Then I check the room's position on the tilemap with world_to_map() and set the corresponding tile. Then I shrink that map down and use it for the UI and pause menu.
It's kinda janky and not the most optimal, but it does work pretty well and I can move rooms around at will without thinking too much about it.
I definitely am considering about adjusting the intro difficulty, maybe with more starting health or a bit less resistance to make it to the starting weapon. I really like the idea of starting with nothing and feeling the danger as a result, but it looks like I pushed it to the point where some people don't even have it in them to make it to the first powerup so I think it needs to be addressed for sure.
I'm not sure what you mean by combat spacing. The hitbox of the staff maybe?
I absolutely want to have gamepad support, but alas I don't have a reliable gamepad where I'm staying and this is my first time finishing a game in Godot! I'm sure if I work out how to do it it'll be very simple to implement, I just didn't consider it to be a high enough priority. Definitely something I'd like to be able to just throw in standard. I think it is just occurring to me now that probably all that was needed was to add it in the inputs next to the keys, though I guess I would need to look into how to grab the keys dynamically when displaying what the controls are.