buenas tengo un objeto que genera otro objeto pero este objeto cada ves que se genera es mas grande como hago que no se me salga dela room este es el codigo que uso

/// Generador de enemigo
if !instance_exists(obj_enemigo)
{
    instance_create (irandom_range(50,670),irandom_range(460,920),obj_enemigo)
}

como ven no tengo ningun problemas cuando el objeto esta pequeño pero cuando comienza a ser mas grande se me sale de la room que si por la mita

Calcula el tamaño del objeto para cambiar el rango de posicionamiento:
[gml]
if !instance_exists( obj_enemigo )
with instance_create( 0,0, obj_enemigo )
{
    w2 = sprite_width * image_xscale / 2;
    h2 = sprite_height * image_yscale / 2;
    x = irandom_range( w2, room_width-w2 );
    y = irandom_range( h2, room_height-h2 );
}
[/gml]

 como calculo el tamaño del objeto no entiendo a que te refieres?

En el código que puse, ya se calcula el tamaño y además se divide entre 2 (variables w2 y h2). La división se hace suponiendo que el origen está en el centro del sprite. Esos valores se usan como parámetros en la función irandom_range.

ah yaaa oye pero pasa lo siguiente mi room es de 720x1280 pero donde deben salir los enemigos es en esta área

en el eje x  de 50 hasta 670  en el eje y de 460 a 920 ya que tengo otras cosas arriba y abajo como haría en ese caso?

[gml]
x = irandom_range( 50+w2, 670-w2 );
y = irandom_range( 460+h2, 920-h2 );
[/gml]