Failed to call hook 'OnSignUpdated' on plugin SignsMonitor when loading Monument Addons
Failed to call hook 'OnSignUpdated' on plugin 'SignsMonitor v1.0.1' (NullReferenceException: Object reference not set to an instance of an object)
at Oxide.Plugins.SignsMonitor.FormatMessage (System.String key, BasePlayer player, System.String displayName, System.String steamId, BaseEntity entity) [0x0000e] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.SendDiscordEmbed (System.Byte[] image, BasePlayer player, System.UInt64 signageOwnerId, BaseEntity entity) [0x0000f] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.OnSignUpdated (ISignage signage, BasePlayer player, System.Int32 textureIndex) [0x00031] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00109] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <206a0f2c6ee141f38e2ad549cde44d70>:0

at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000de] in <beb2b64691c64e2b95b99491bd85442c>:0

at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <beb2b64691c64e2b95b99491bd85442c>:0

Failed to call hook 'OnSignUpdated' on plugin 'SignsMonitor v1.0.1' (NullReferenceException: Object reference not set to an instance of an object)
at Oxide.Plugins.SignsMonitor.FormatMessage (System.String key, BasePlayer player, System.String displayName, System.String steamId, BaseEntity entity) [0x0000e] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.SendDiscordEmbed (System.Byte[] image, BasePlayer player, System.UInt64 signageOwnerId, BaseEntity entity) [0x0000f] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.OnSignUpdated (ISignage signage, BasePlayer player, System.Int32 textureIndex) [0x00031] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.SignsMonitor.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00109] in <c2479723174e4effac0b061d9c3f8190>:0

at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <206a0f2c6ee141f38e2ad549cde44d70>:0

at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000de] in <beb2b64691c64e2b95b99491bd85442c>:0

at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <beb2b64691c64e2b95b99491bd85442c>:0

This happens every time I reload MonumentAddons is this a issue with monument addons or sign monitor it self? Thank you

What's happening here is that Monument Addons is invoking a function of Sign Artist to update a sign, and Sign Artist is calling the OnSignUpdated hook so that other plugins can be notified of the change, which Sign Monitor is detecting. In this case, since the update was initiated by a plugin loading, there is no player involvement, so Monument Addons does not pass a player to Sign Artist, so Sign Artist does not pass a player to the OnSignUpdated hook. Sign Monitor expects that this hook is always called with a player, but in this case it is not, hence the error.

There are multiple possible solutions to fix this error.

  1. Update Sign Monitor to handle the case where the player is null (for example, simply ignore the hook call in this case)
  2. Update Sign Artist to stop calling the OnSignUpdated hook when the sign update was triggered without a provided player
  3. Update Monument Addons to start passing a dummy player to Sign Artist -- This is technically possible but makes no sense and would likely result in some junk message being printed in your discord.

Thank you for explaining it to me, I appreciate you!

Merged post

Would I need to update this in the config or 

In all cases, a code change is needed since hook call behavior isn't usually something plugin developers opt to make configurable. I suggest opening an issue with Sign Monitor to see if they are open to handling the null player.

Thank you!!