hi. it seems that using sprite_set_live on a sprite disables its 9slice element. i havent tested it thoughrly, but a quick setup of creating a sprite, enabeling 9slice, activating set_live and drawing, shows that the 9slice doesnt work.
Code and asset live-reloading for GameMaker! · By
sprite_set_live
is mostly just a sprite_replace
call so it’s not very smart when it comes to less-common features and even less smart when it comes to things you can’t do in GML (like different times per frame).
For a workaround, could save your original sprite_get_nineslice(spr)
and sprite_set_nineslice
it when sprite_get_nineslice(spr).enabled == false
.