Custom image compiles
-
successfully in .ff but never loads for other players / on a VPS (T6 Zombies)
Hi everyone,
I'm building a custom .ff mod for BO2 Zombies (a new drink perk) and I'm stuck on a persistent issue with one specific custom image.
Setup:
- New perk based on Juggernog as a template (renamed material/image/xmodel so it's a new asset, not an overwrite).
- Using OAT (Linker) to compile everything into the mod's .ff.
- Also loading custom GSC scripts (originally from the local raw scripts folder, now compiled into the mod itself).
The problem:
One custom image (a HUD element that appears ~10 seconds into a round, referenced as e.g. "zm_rank1") behaves very differently from my perk's icon and 3D model textures:- My perk icon (renamed following the stock specialty_X_zombies naming pattern) and the 3D model textures work fine: when I tested over LAN with a friend, the image automatically appeared in their local Plutonium/storage/t6/images folder after connecting, and rendered correctly for both of us.
- The zm_rank1 image does NOT do this. It only ever displays for me (the host), never for a connecting player — even though the linker log confirms it compiled successfully, with an explicit "image,zm_rank" entry in mod.zone, exactly like my working assets.
What I've isolated so far:
- If the image is compiled into the mod but NOT present in my own local Plutonium images folder, it renders as fully invisible (not the checkerboard missing-material fallback). This suggests the engine recognizes the material/reference, but the actual streamed pixel data isn't available without a local file.
- If it's in neither the mod nor the local folder, I get the standard checkerboard missing-texture placeholder.
- Tested on an actual VPS (not LAN): the image still doesn't reach the client, and the model loads without proper textures.
My question:
Is there a known reason OAT/the Linker doesn't fully embed a new custom image's real pixel data into the .ff (only the material/asset reference), requiring the local images folder as a fallback? And if so, is there any reliable way (FastDL, a specific mod folder structure, a Linker flag, etc.) to get that raw file to actually reach a normal connecting player automatically — the way my other assets apparently did during my LAN test? Or is manually distributing a small texture file for players to drop into their own images folder genuinely the only way, even for a live server (not a "download to install" mod release)?Any insight from people who've shipped custom textures on a real, populated server would be hugely appreciated!
OAT version used: latest version, i.e. version 0.33.0

-
You don't need FastDL or manual distribution (though that would work as a last resort). Just:
Rename the HUD image asset to something totally new and unique — avoid any name/prefix that exists in vanilla T6 (zm_rank, hud_, etc.), the same way you already did with specialty_.
Update every reference to that name: the material using it, and any GSC line that calls it (e.g. hudelem setshader "zm_rank1" or however you're referencing it) to point to the new name.
Recompile with OAT, making sure the new image name — not the original — is what ends up in mod.zone.
Test again over LAN or on the VPS.With a non-colliding name, it should behave exactly like your perk icon: shipped along with the rest of the mod's new assets to any connecting player, with no need for them to already have the file locally.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login