First off, this game is absolutely amazing! I had so much fun playing it, and it definitely has a lot of replayablity. There's so much to do, and I especially love the procedural aspects of it.
I've actually made a few procedural games similar to this, but never finished them. I spent a while in choicescript, but eventually migrated to javascript so I could do more complex things. But 4x4 is definitely better than the games I made, in terms of actual playability. I looked at the raw html code, and there's over 70k lines of code in this, which is absolutely insane.
I have three suggestions for this:
One: Coral City is incredibly complicated. I had no clue how to escape, and that's with me mapping out every location and where it leads. I eventually ran out of health potions and had to go back to my old save, in which I never entered Coral City.
(This was the little map I made:
EDIT: Turns out my map was actually incorrect. I don't know how that happened, but it did lol. So don't use this as a reference.
Broken Piere: (West: Ampitheater) (East: NA) (Norht: Broken Statue) (N/A)
Ampitheater: (East: N/A) (South: Flooded House) (West: Tower Island) (North: Tower Island)
Flooded House: (West: Merfolk Statue) (East: Broken Statue) (North: Broken Pier) (South: N/A)
Merfolk Statue: (West: Ampitheater (Norht: Broken Pier) (South: Flooded House) (East: N/A)
Tower Island: (North: Ampitheater) (West: 3 Arches) (South: N/A) (East: Ampitheatre)
3 Arches: (North Ampitheater) (West: Tower Island) (East: N/A) (South: Tower Island)
Broken Statue: (South: Coral Hut) (East: N/A) (West: N/A) (North: Flooded House)
Coral Hut: (North: N/A) (South: Broken Statue) (East: Broken Statue) (West: Broken Statue)
As you can see, they all lead to each other, and none of them lead out of Coral City. And I traveled to each location and couldn't find anything that would help me escape.
Two: Allies should fight with you, not only when you tell them to attack. Right now, allies work similar to another weapon, which takes away from the immersion. Also, it would be cool if enemies could group together and didn't have to fight alone. I feel like this would massively improve the combat system. The way I would implement this is:
Each fighter has a dedicated speed value. And if you don't want to add that, just go off their combat level. Whoever has the highest speed attacks first, they attack the weakest enemy. It continues like this. When it's the player's turn, they can choose whom they attack, and then the attack type. I have some code for a system like this, but I've never coded in Twine, so it wouldn't transfer. But if you wanted, I could share it, if it makes this any easier to understand.
Three: When I finished the main quest, it ended the game and didn't let me continue playing. This is probably good for encouraging more playthroughs. But if you finish the main quest early, you're cut off from much of the content. So, in my opinion, it would be better if the main quest didn't end the game.
Keep in mind that these are all suggestions that I think would be better, and that others may or may not agree with me. I hope you keep updating this, because it's actually amazing and has so much potential! Thanks!