Engine: RPG Maker MZ
Sample: https://visustella.itch.io/visumz-sample
Description: VisuMZ Core Engine plugin for RPG Maker MZ is causing the Tilemap Renderer to break on some devices.
Screenshots:
Without patch | With patch |
 |  |
Code Snippets:
- RPG Maker MZ CoreScript v1.7.0 (rmmz_core.js):
Tilemap.Renderer.prototype._createInternalTextures = function() {
this._destroyInternalTextures();
for (let i = 0; i < Tilemap.Layer.MAX_GL_TEXTURES; i++) {
const baseTexture = new PIXI.BaseRenderTexture();
baseTexture.resize(2048, 2048);
baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
this._internalTextures.push(baseTexture);
}
};
- VisuStella MZ - Core Engine v1.79 (VisuMZ_0_CoreEngine.js)
Tilemap.Renderer.prototype._createInternalTextures = function() {
this._destroyInternalTextures();
for (let i = 0; i < Tilemap.Layer.MAX_GL_TEXTURES; i++) {
const baseTexture = new PIXI.BaseTexture();
baseTexture.setSize(2048, 2048);
if (VisuMZ.CoreEngine.Settings.QoL.PixelateImageRendering) {
baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
}
this._internalTextures.push(baseTexture);
}
};
Solution: this PluginOverrides addition merges both methods, ensuring compatibility:
!function() {
let e = PluginManager._scripts;
if (e.includes("VisuMZ_0_CoreEngine")) try {
Tilemap.Renderer.prototype._createInternalTextures = function() {
this._destroyInternalTextures();
for (let i = 0; i < Tilemap.Layer.MAX_GL_TEXTURES; i++) {
const baseTexture = new PIXI.BaseRenderTexture();
baseTexture.resize(2048, 2048);
if (VisuMZ.CoreEngine.Settings.QoL.PixelateImageRendering) {
baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
}
this._internalTextures.push(baseTexture);
}
}
} catch (e) {
console.log(e.stack)
}
// Rest of the code omitted for brevity
}();