diff --git a/overlay/oxide/plugins/RunicGateway.cs b/overlay/oxide/plugins/RunicGateway.cs
index cc4e961..be20606 100644
--- a/overlay/oxide/plugins/RunicGateway.cs
+++ b/overlay/oxide/plugins/RunicGateway.cs
@@ -9027,6 +9027,18 @@ namespace Oxide.Plugins
CurrentPicture();
}
+ ///
+ /// A player's Steam id as text, from userID itself. UserIDString is a
+ /// cached string the game fills for a player it has seen connect, and the phase 14 walk
+ /// read it back empty from a sleeper made on the server: an id the map could not name
+ /// is an own dot and a clan mate the site can never find.
+ ///
+ private static string SteamIdOf(BasePlayer p)
+ {
+ ulong id = p.userID;
+ return id.ToString(System.Globalization.CultureInfo.InvariantCulture);
+ }
+
private static bool Gone(BaseEntity e)
{
return e == null || e.IsDestroyed || e.transform == null;
@@ -9133,7 +9145,7 @@ namespace Oxide.Plugins
continue;
Dictionary row = At(p.transform.position);
- row["steamId"] = p.UserIDString;
+ row["steamId"] = SteamIdOf(p);
row["name"] = p.displayName;
row["sleeping"] = p.IsSleeping();
row["online"] = true;
@@ -9156,7 +9168,7 @@ namespace Oxide.Plugins
}
Dictionary row = At(p.transform.position);
- row["steamId"] = p.UserIDString;
+ row["steamId"] = SteamIdOf(p);
row["name"] = p.displayName;
row["sleeping"] = true;
row["online"] = false;