Hola, se que con strings se puede conseguir lo mismo que con este código pero no se como funcionan, supongo que con algo como "spr_refresh" + piece_level se solucionaría pero no se como, gracias por adelantado.
if global.energy >= sqrt(piece_level){//Hay dinero para comprar una pieza mejor?
    global.energy-=sqrt(piece_level);   //Cobrar la pieza
    piece_level+=1;                      //Añadir nivel a la pieza
   
    //Codigo obsoleto reemplazar por algo más limpio y funcional
    if piece_level=2{
        sprite_index=spr_refresh2
    }
    if piece_level=3{
        sprite_index=spr_refresh3
    }
    if piece_level=4{
        sprite_index=spr_refresh4
    }
    if piece_level=5{
        sprite_index=spr_refresh5
    }
    if piece_level=6{
        sprite_index=spr_refresh6
    }
    if piece_level=7{
        sprite_index=spr_refresh7
    }
    if piece_level=8{
        sprite_index=spr_refresh8
    }
    if piece_level=9{
        sprite_index=spr_refresh9
    }
}

[gml]
sprite_index = asset_get_index("spr_refresh" + string(piece_level));
[/gml]
alaberga regué el café.

BA:STFW&RTFM

muchísimas gracias funciona perfectamente, quería añadir muchos mas sprites pero de la forma antigua lo veía un poco imposible :love: