diff --git a/overlay/oxide/plugins/RunicGateway.cs b/overlay/oxide/plugins/RunicGateway.cs index 6c7560c..4083667 100644 --- a/overlay/oxide/plugins/RunicGateway.cs +++ b/overlay/oxide/plugins/RunicGateway.cs @@ -1446,7 +1446,12 @@ namespace Oxide.Plugins frame["ownerId"] = entity.OwnerID.ToString(); frame["prefab"] = entity.ShortPrefabName; frame["structure"] = structure; - frame["attackerId"] = attacker.UserIDString; + + // From `userID`, not `UserIDString`. The string is filled in when a player connects, + // loads as a sleeper, or is an engine bot — and at no other time, so a player another + // plugin spawned carries none. The website skips the raid alert when the attacker is + // authorised on the cupboard (PLAN.md D59), and a null here would quietly defeat that. + frame["attackerId"] = ((ulong)attacker.userID).ToString(); frame["attackerName"] = attacker.displayName; string grid = GridOf(entity);