Sorry for not noticing this before Zylos
The problem is likely the window loads the data from the save file. It doesn't load $game_actors.
There are two ways to fix this, save actor names into @characters rather than the filenames, or else load up to $game_actors.
To save actor names instead of filenames, you would need to modify the write_save_data method of Scene_Save. Notice that the first thing it dumps is an array it makes of each actor's character name and hue. If you changed that to instead be each actor's name, then you could access the names from the @characters array in Window_SaveFile.
Otherwise you can load up to game_actors in Window_SaveFile instead of stopping at game_variables as they do.
Note this part in Window_SaveFile
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@game_self_switches = Marshal.load(file)
@game_screen = Marshal.load(file)
@game_actors = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
and then you could access name through:
@game_actors[id].name