bool isFirstIntercept = true; var keyMap = new Dictionary() { {"61054", "ach_score"}, {"61053", "user_id"}, {"-100", "@id"}, {"-101", "@class_id"}, {"-102", "@height"}, {"-110", "@state"}, {"-120", "@position.x"}, {"-121", "@position.y"}, {"-122", "@rotation"}, {"-123", "@altitude"}, {"-180", "@owner_id"}, {"-129", "index/dimension_related"}, {"-130", "unknown_1"}, {"-131", "unknown_2"}, {"-140", "@type/stackable_related"}, {"-141", "dimension_related"}, {"61057", "index/dimension_related"}, {"-205", "@index"}, {"-200", "@type"}, {"-220", "@gender"}, {"-210", "@level"}, {"-211", "@achievement_score"}, {"-206", "@is_hc"}, {"-266", "@is_group_admin"}, {"-230", "@position.x"}, {"-231", "@position.y"}, {"-232", "@direction"}, {"-233", "@altitude"}, {"-250", "@favourite_group_id"}, {"-222", "@room_entry_method"}, {"-270", "@user_id"} }; OnIntercept(In["WiredVariablesForObject"], e => { if (!isFirstIntercept) { Log("----------------------------------------"); } else { isFirstIntercept = false; } int param1 = e.Packet.ReadInt(); int param2 = e.Packet.ReadInt(); int itemCount = e.Packet.ReadInt(); Log($"Type: {(param1 == 0 ? "Furni" : "User")} | ID/Index: {param2}"); for (int i = 0; i < itemCount; i++) { string key = e.Packet.ReadString(); int value = e.Packet.ReadInt(); string varName = keyMap.ContainsKey(key) ? keyMap[key] : $"Unknown ({key})"; Log($"{varName}: {value}"); } }); OnIntercept(Out["ClickFurni"], e => { int furniId = e.Packet.ReadInt(); Send(Out["WiredGetVariablesForObject"], 0, furniId); Log($"Requested variables for furni ID: {furniId}"); }); OnIntercept(Out["GetSelectedBadges"], e => { int userId = e.Packet.ReadInt(); var user = Room.Users.FirstOrDefault(u => u.Id == userId); if (user != null) { int userIndex = user.Index; Send(Out["WiredGetVariablesForObject"], 1, userIndex); Log($"Requested variables for user ID: {userId} (Index: {userIndex})"); } }); Log("Variable capture script started. Click on furni or users to see their variables."); Wait();