Quick answer: GameMaker setting image_blend on one tilemap layer affecting all layers in the same room? image_blend is per-object - tilemaps are per-layer; set draw_set_color in Draw event for granularity.
Dim one tilemap layer during night transition. Every layer dims because image_blend is applied globally.
Use draw_set_color in Draw
var col = make_color_rgb(128, 128, 128);
draw_set_color(col);
draw_self();
draw_set_color(c_white);Per-draw color. Doesn't bleed to other layers.
Or use a shader
For per-pixel tint, a shader applied to the tilemap layer is more accurate. Shader uniforms are per-instance.
Or layer-level effect
GameMaker 2.3+ supports layer effects. Tint at layer level; doesn't affect other layers.
“GameMaker draws via global state. State leaks across draws.”
Always reset draw state at the end of a Draw event. The discipline prevents the global-leak class of bug.