in triggers you are using the GUI triggers
you know that event condition action stuff
other people like to use raw code called JASS
you might be familiar with how it looks as well
now, Vexorian made a more advanced language to write JASS
that is called vJASS
when you are using the JNGP, you are able to use vJASS as well
however, the WC3 does not know what vJASS is because Blizzard didnt support it
so everything that is written in vJASS MUST be converted to JASS in order to make the map work
when you save the map, JNGP translates vJASS into vanilla JASS and makes it runable
when your map is editted, the world editor creates a new map (exact copy) and runs that
in that new map, vJASS is not translated yet
so WC3 reads a language that it doesnt understand
so it crashes
you can easily see if a map is editted by looking at the name in the terrain editor
when a map is not editted (saved, just opened, etc) then the "test map" button doesnt create a new map but just uses the map you have opened
and that one does have converted JASS
in the terrain editor just behind the name of the map (in the header) there is a '*' if the map is editted
if it is not there, then the map is saved and runable
when you do not use vJASS, you can test the map without saving... but saving it once in a while is always rewarding