Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

I know you don't want items in the inventory list, but the simplest way to do this is with items. 

If you make one invisible (aka no drawing), transparent item, set its dialogue to be "You can't swim." and put a bunch of those in front of the actual wall-set water tiles, it will look to the player like when they touch the water it is playing the dialogue. 

Maybe combine that with the permanent item hack so that the water narration can't be picked up and added to the inventory? 

https://github.com/seleb/bitsy-hacks/blob/v17.0.0/dist/permanent-items.js or choose Permanent Item Hack on Borksy

The other option would be to make your water tiles as sprites, which can't be walked through and do display dialogue, but you would have to duplicate enough sprites for each individual water tile that you need which seems like a hassle.

Thanks. I couldn't get the permanent item hack to work. I tried copy-pasting it into my code, tried using the patch editor on Bitsy Savior, and tried using Borksy (which just corrupts my game, it can't handle Bitsy Color, and also it gives me an error about "object destroyed" when I try to run it in Bitsy Savior without my Bitsy Color game data injected). I'll keep trying...

Yeah, unfortunately the hacks can be version dependent, which also means they don't work for all forks.  In the future, you may want to specify when you are asking for solution for a fork since the version numbers aren't always the same as the current vanilla Bitsy. 

But it sounds like Valeriy's suggestion should be pretty easy to implement, I hope it works for you!