Hmmm...
Not sure how best to describe it. The OP has a screenshot of the issue taking place (its the grid lines you see, it should not be there). I think I found out why it is doing it, not sure how to go about fixing it though. I looked up the LoadSubImage command text and found a note about pixel bleeding. I guess that is what I am experiencing. If I can't fix this with code, looks like my only recourse is "give your sub images a 1 pixel border of an appropriate color that it can safely steal from when filtering" which would be a bit of a pain to do as that is every asset in the project.
LoadSubImage
You can override this by setting SetSpriteUVBorder to 0 for sprites where you need pixel perfect results, but you will have to watch out for pixel bleeding around the edges, and may need to give your sub images a 1 pixel border of an appropriate color that it can safely steal from when filtering.
This loads the images
//Load images and editor sprites
Asset.TileMap.Length = TotalTiles
for i = 1 to TotalTiles
Asset.TileMap[i].ImageID = LoadSubImage(TileImageID, "img"+str(i))
//==========
//IMGload = LoadSubImage(TileImageID, "img"+str(i))
//Asset.TileMap[i].ImageID = CopyImage(IMGload,0,0,GetImageWidth(IMGload),GetImageHeight(IMGload))
//DeleteImage(IMGload)
//==========
Asset.TileMap[i].ToolBoxIndex = i
Asset.TileMap[i].ToolBoxSprite = CreateSprite(Asset.TileMap[i].ImageID)
SetSpriteVisible(Asset.TileMap[i].ToolBoxSprite,0)
SetSpriteSize(Asset.TileMap[i].ToolBoxSprite,64,64)
SetSpriteDepth(Asset.TileMap[i].ToolBoxSprite,0)
FixSpriteToScreen(Asset.TileMap[i].ToolBoxSprite,1)
next
This creates the sprites
Function Draw_TileMap_Pen()
//When Viewport is moused over and left mouse is held
If Input.LeftMouseState = 1
//Check if tile already exists in draw space
for i = 0 to DrawSpace.TileMap.Length
If DrawSpace.TileMap[i].GridX = GetRawMouseGridX() and DrawSpace.TileMap[i].GridY = GetRawMouseGridY() and DrawSpace.TileMap[i].Layer = Editor.ActiveLayer
If DrawSpace.TileMap[i].TileID = 0
DataExists = 0
Else
DataExists = 1
DataLocation = i
Exit
EndIf
EndIf
next i
//Draw
If DataExists = 0
//Write meta data
DrawSpace.TileMap.Length = DrawSpace.TileMap.Length + 1
DrawSpace.TileMap[DrawSpace.TileMap.Length].GridX = GetRawMouseGridX()
DrawSpace.TileMap[DrawSpace.TileMap.Length].GridY = GetRawMouseGridY()
DrawSpace.TileMap[DrawSpace.TileMap.Length].Layer = Editor.ActiveLayer
DrawSpace.TileMap[DrawSpace.TileMap.Length].Index = Editor.SelectedIndex
//CreateSprite
DrawX = DrawSpace.TileMap[DrawSpace.TileMap.Length].GridX * SYS_Properties.GridScale * SYS_Properties.GridSize
DrawY = DrawSpace.TileMap[DrawSpace.TileMap.Length].GridY * SYS_Properties.GridScale * SYS_Properties.GridSize
DrawSpace.TileMap[DrawSpace.TileMap.Length].TileID = CreateSprite(Asset.TileMap[Editor.SelectedIndex].ImageID)
SetSpriteSize(DrawSpace.TileMap[DrawSpace.TileMap.Length].TileID , SYS_Properties.GridScale * SYS_Properties.GridSize , SYS_Properties.GridScale * SYS_Properties.GridSize)
SetSpriteDepth(DrawSpace.TileMap[DrawSpace.TileMap.Length].TileID, 9901 - DrawSpace.TileMap[DrawSpace.TileMap.Length].Layer)
SetSpritePosition(DrawSpace.TileMap[DrawSpace.TileMap.Length].TileID,DrawX,DrawY)
SetSpriteUVBorder(DrawSpace.TileMap[DrawSpace.TileMap.Length].TileID,0)
ElseIf DataExists = 1
//Update meta data
DrawSpace.TileMap[DataLocation].GridX = GetRawMouseGridX()
DrawSpace.TileMap[DataLocation].GridY = GetRawMouseGridY()
DrawSpace.TileMap[DataLocation].Layer = Editor.ActiveLayer
DrawSpace.TileMap[DataLocation].Index = Editor.SelectedIndex
SetSpriteImage(DrawSpace.TileMap[DataLocation].TileID, Asset.TileMap[Editor.SelectedIndex].ImageID)
SetSpriteUVBorder(DrawSpace.TileMap[DataLocation].TileID,0)
EndIf
EndIf
EndFunction