RPG Maker MV/MZ: Images or Audio Missing After Deployment — Check Filename Case
Your project plays fine on your computer, then after you deploy to a Linux host, itch HTML5, or another web export, some images or audio fail to load. A common cause is filename case: the reference and the file on disk differ only in capitalization.
Scope: RPG Maker MV and MZ asset references that use real filenames on disk (images and audio). This page is a manual troubleshooting guide — it does not scan or modify your project. Host behaviour varies; not every deployment is case-sensitive, but many Linux and web hosts are.
Why it works locally but fails after deployment
Many Windows installs (and some macOS setups with default settings) treat
Hero.png and hero.png as the same file. The editor and
local playtest can resolve a reference even when the capitalization in the
database or event does not match the file on disk exactly.
Case-sensitive filesystems and many Linux or web deployments do not. If the
packaged game asks for img/characters/Hero.png but the uploaded
file is img/characters/hero.png, the load fails. The same issue
affects audio paths under folders such as audio/bgm,
audio/bgs, audio/me, and audio/se.
Hero.png, but the file on disk is
hero.png. Local Windows playtest may still find it. After deploy
to a case-sensitive host, the character graphic fails to load.
Safe manual diagnosis
1. Confirm the symptom looks like a missing asset
- Local playtest: asset appears.
- Deployed build: missing graphic, silence, or a load/failed-to-load style error for that file.
- Other assets still load — points away from a total path or export failure.
2. Identify one broken reference
- Note which picture, character, tileset graphic, or sound fails.
- In the RPG Maker database or event that uses it, read the exact name shown (including capitalization).
- In your project folder, open the matching asset directory (for example
img/charactersoraudio/se) and compare the real filename byte-for-byte, including extension case (.PNGvs.png).
3. Align both sides — do not fix only one
Renaming the file without updating every reference (or updating a reference without renaming the file) can leave the project broken. Prefer one consistent spelling everywhere: the name in the editor/data and the name on disk must match exactly, including case.
- If you rename the file, re-select or re-enter the asset in every event/database field that used the old spelling.
- If you change the reference, confirm the file on disk already uses that exact spelling.
- Search the project for other copies of the same basename with different capitalization (duplicate names that differ only by case can also collide on case-insensitive disks and confuse exports).
4. Re-export and re-test on a case-sensitive target
After aligning names, deploy again to the same kind of host you use in production (Linux VPS, itch HTML5, static web host, etc.). A local Windows re-test alone may not prove the fix. Where possible, also test from a case-sensitive volume or a Linux container so mismatches show up before public deploy.
Limits of a manual filename check
Manual comparison works well for assets you pick in the editor by fixed filename. It is weaker when names are built at runtime.
- Plugin or script-built paths: if a plugin concatenates strings to form a filename, searching the database for a static name may miss it.
- Dynamically generated names: runtime-built image/audio names need a different debugging approach (logging the final path the engine requests).
- Not covered here as a complete project audit: CommonEvents-driven loads, arbitrary plugin parameters, fonts, movies, and Effekseer-related internals are easy to overlook by hand.
Hosts also differ: some CDNs or export pipelines normalize paths; others preserve case strictly. Treat Linux and typical web deploys as the risk case without assuming every target behaves identically.
Check a whole project automatically
If you want a read-only pass over many image and audio references at once, QuietForgeTools publishes an offline Chromium HTML tool for RPG Maker MV/MZ:
RPG Maker Case-Sensitive Asset Auditor (v0.3.1) — offline, read-only folder picker in Chrome, Edge, or Brave. It reports CASE MISMATCH, UNRESOLVED, CASE COLLISION, and SCAN INCOMPLETE. It does not auto-fix or rename files. Out of scope: CommonEvents, plugins, fonts, movies, Effekseer, and dynamically generated or script-built filenames.
The steps above remain usable on their own. Buying the auditor is optional — use it only if a whole-project scan would save time after you understand the case-mismatch failure mode.