Alright - you've got something weird happening here. What exactly is this._encounterMeter? Look at what you're doing with it: Code: this._encounterMeter = $gameSwitches.value(20); ... this._encounterMeter.refresh(gauge_value, gauge_max); //Line 49 ... this._encounterMeter = new Encounter_Meter(gauge_value, gauge_max); By putting this._encounterMeter = $gameSwitches.value(20) you are setting the value of _encounterMeter to true or false, you are not setting the visibility of an Encounter_Meter type of object. So get rid of that line from there, then go into the Encounter_Meter.prototype.refresh function, and add this: this.visible = $gameSwitches(20); I'm not actually sure if that's the correct syntax - could be this._visible or something else. I don't have the MV scripts open in front of me.