What are you using to specify the exit direction that the custom line is for - looking at even the current code seems to need you to use one of the exact following UPPER-CASE command as the third argument:
"N", "NE", "E", "SE", "S", "SW", "W", "NW", "UP", "DOWN", "IN", "OUT". The code in the C++ core of Mudlet does have something that ought to take a number in the range 1 to 12 as one of those given directions but looking more deeply I see that the code that converts the number to a string key does not upper case it for normal exit directions so the line is stored but is not drawn because of the mis-match between cases when the custom line is stored and then attempted to be drawn later. The current map loading auditing code may note the presence of custom line data for a (special, as it does not match the expected normal) exit that does not exist - possibly before clearing it out of the map data...
That is the case with current code as I see it which largely dates back to a couple of days after 2.1 was released. In 2.1 itself I see that only strings can be used to specify the exit direction that the line is to be added to, and that the validation for an UPPER case DIRECTION has been commented out so that you may enter lower case strings and then they would not show for the same reasons that the newer stuff gets it wrong for a numeric code.
I suggest starting a separate topic (or raising a bug on our
Launchpad Bug Tracker) about the crashing on GMCP it seems likely that something is trying to do a map related operation before the map data is present but why this is crashing the Mudlet application is not immediately clear to me.
<aside>BTW taking a quick look at your Scripts on github I spotted that your
function find_room_id(room_id)
for id in pairs(getRooms()) do
if id == room_id then return id end
end
end
seems a non-optimum if you are attempting to validate room_id as a valid room. Instead of getting Mudlet to create and return the entire room table with getRooms() why not use getRoomName(...) and check for a non-nil response which an existent room will cause even if the room name is the empty string...!</aside>