Den Picture Befehl in einem Skript zu simulieren ist nicht sonderlich schwer.

Mit der folgenden Zeile bekommst du das entsprechende Bild.
Code:
$game_screen.pictures[pic_nummer]
1-50 sind die Pictures außerhalb eines Kampfes, 51-100 sind die Pictures im Kampf.

Um jetzt ein Bild anzuzeigen musst du eigentlich nur folgende Zeile aufrufen

Code:
$game_screen.pictures[pic_nummer].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
Der Name muss auf eine Datei im Picture Ordner passen. Die Dateiendung wird dabei weggelassen.
Origin bezeichnet dabei den Ausgangspunkt des Bildes. 0 ist die linke obere Ecke des Bildes, alles andere ist die Mitte des Bildes.

Code:
$game_screen.pictures[pic_nummer].move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
Dieser macht das selbe wie der "Move Picture" Befehl.

Code:
$game_screen.pictures[pic_nummer].erase
Und dieser Code löscht das Bild wieder.

Für ein Menü hilft dir das allerdings nicht sonderlich viel weiter, da die Pictures, welche die 3 Picture Befehle verwenden, im Menü nicht angezeigt werden. Hier musst du direkt mit Sprites arbeiten.

In der Entsprechenden Szene brauchst du folgendes in der main Methode bevor die Hauptloop beginnt:
Code:
@background = Sprite.new
@background.bitmap = RPG::Cache.picture("name")
@background.x = 0
@background.y = 0
In der update Methode musst du dann die update Methode des sprites aufrufen

Code:
@background.update
Und zum Schluss darfst du nicht vergessen das Sprite nach verlassen des Menüs wieder zu entsorgen.

Dazu kommt in die main Methode nach der Hauptschleife einfach

Code:
@background.dispose