Confirm with your password

MagicPlugin 2.2.0: ServersideQoL warns about 26 prefabs missing ZNetView

Hi! I’m seeing startup warnings on two Windows dedicated servers running:

  • Valheim 1.0.14
  • BepInEx 5.4.23.5
  • MagicPlugin 2.2.0
  • ServersideQoL 2.0.13

Example:

[Warning:ServersideQoL] GameObject 'BMP_CrystalTotem_Poring_Spawn' was added to ZNetScene.instance.m_prefabs by another mod but is missing the ZNetView component

There are 26 matching warnings involving MagicPlugin prefab names, including bmp_spawn_iceblast, bmp_flamewand_explosion, BMP_SkullTotem_Spawn, and several sound/camera-shake effects. The full list is in the attached log.

Inspection of the installed DLL suggests MagicPlugin’s bundled ItemManager.PrefabManager.Patch_ZNetSceneAwake adds registered prefabs to m_prefabs without checking whether they have ZNetView. ServersideQoL’s get_ZNetViews then logs these warnings and filters out the null components.

Both servers complete startup. I haven’t confirmed any gameplay problem with the affected effects or summons, and this hasn’t been reproduced in an isolated two-mod setup.

Is this registration intentional for these objects, or should prefabs without ZNetView be handled differently?

Thanks for your help!

Quick follow-up from the ServersideQoL author, ArgusMagnus:

"You can safely ignore those warnings, SQoL will simply ignore those prefabs. But it does mean that those other mods are doing something wrong, so you might want to relay this info to their authors"

Their response is here: https://github.com/ArgusMagnus/ValheimServersideQoL/issues/258

Passing this along for context on the prefab registration. The server starts successfully, and I haven’t confirmed any related gameplay issues. Thanks for taking a look!

[Mod Author]

Not every gameobject needs ZnetView

ZnetView is valheim's network synchronization component, it attaches zdo to gameobject which allows its state (pos, inv, health, etc) to be sync across the server and clients.

So gameobject that needs it are object that must exist consistently across all clients (structures, containers, creatures, items), anything that requires persistence in the world, objects that need rpc's or networked state changes, effects/sfx/vfx so other client can see or hear.

Those Gameobject that the Serverqol gave warning to are just temporary spawners they don't need to persist in the world they're only job is to handle spawning other gameobjects like summons or vfx after they're job is done they get destroyed immediately

And yes they need to be registered in the ZnetScene coz if i don't the gameobjects that needs them won't be able to find them and does it will spam an NRE.

Thanks for explaining, blacks7ar! That clears it up. With the registration being intentional and SQoL safely skipping those prefabs, I’ll consider this resolved. Really appreciate your time and all the work you put into MagicPlugin! 🤘

Log in to reply.