85 строка. Вместо
if !@balloon_sprite && @character.csca_balloon_id > 0
впиши
if !@balloon_sprite && !@character.csca_balloon_id.nil? && @character.csca_balloon_id > 0
Может я не расчитал последствий для последующего вызова скрипта, так что проверь уже вызовы "шариков".
И мать его каким местом вы ошибку читаете? У nil нет метода >, а это значит что @character он уже разименовал, но получил nil в методе csca_balloon_id.
А по коду видно, что в Game_CharacterBase есть, внимание, конструктор который этот параметр и задает. Ессено он не идет в сейв до внедрения скрипта.