From b1f5cf30dd8c3c6a1524290bd96096f3fead0f53 Mon Sep 17 00:00:00 2001 From: IIIaKa Date: Mon, 10 Aug 2026 19:13:59 +0500 Subject: [PATCH 1/2] PluginID --- resources/Rust.opj | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/Rust.opj b/resources/Rust.opj index d055afb58..e135e27b0 100644 --- a/resources/Rust.opj +++ b/resources/Rust.opj @@ -53548,6 +53548,13 @@ "TypeName": "SprayCanSpray", "FieldType": "mscorlib|System.Int32", "Flagged": false + }, + { + "Name": "ModificationID", + "AssemblyName": "Assembly-CSharp.dll", + "TypeName": "BaseEntity", + "FieldType": "mscorlib|System.UInt64", + "Flagged": false } ] }, @@ -54298,4 +54305,4 @@ "Fields": [] } ] -} \ No newline at end of file +} From 282af5c89c3b2319bb6f0ee5fb85349d333f326e Mon Sep 17 00:00:00 2001 From: IIIaKa Date: Thu, 20 Aug 2026 20:44:03 +0500 Subject: [PATCH 2/2] ProtoBuf Added saving and loading of values on server shutdown/startup. --- resources/Rust.opj | 120 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/resources/Rust.opj b/resources/Rust.opj index e135e27b0..29dfccc68 100644 --- a/resources/Rust.opj +++ b/resources/Rust.opj @@ -23182,6 +23182,112 @@ "BaseHookName": "OnApartmentMasterKeyPurchased", "HookCategory": "Apartments" } + }, + { + "Type": "Modify", + "Hook": { + "InjectionIndex": 139, + "RemoveCount": 0, + "Instructions": [ + { + "OpCode": "ldarg_1", + "OpType": "None" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Assembly-CSharp|BaseNetworkable/SaveInfo|msg" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Rust.Data|ProtoBuf.Entity|baseEntity" + }, + { + "OpCode": "ldarg_0", + "OpType": "None" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Assembly-CSharp|BaseEntity|ModificationID" + }, + { + "OpCode": "stfld", + "OpType": "Field", + "Operand": "Rust.Data|ProtoBuf.BaseEntity|modificationID" + } + ], + "HookTypeName": "Modify", + "Name": "ModificationID [BaseEntity.Save]", + "HookName": "ModificationID", + "HookDescription": "Adding ModificationID saving immediately after skinID", + "AssemblyName": "Assembly-CSharp.dll", + "TypeName": "BaseEntity", + "Flagged": false, + "Signature": { + "Exposure": 2, + "Name": "Save", + "ReturnType": "System.Void", + "Parameters": [ + "BaseNetworkable/SaveInfo" + ] + }, + "MSILHash": "ar+THd4rWLZG719YqHBxU0l/GpTpAMqvLCMEfrvR7uo=" + } + }, + { + "Type": "Modify", + "Hook": { + "InjectionIndex": 40, + "RemoveCount": 0, + "Instructions": [ + { + "OpCode": "ldarg_0", + "OpType": "None" + }, + { + "OpCode": "ldarg_1", + "OpType": "None" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Assembly-CSharp|BaseNetworkable/SaveInfo|msg" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Rust.Data|ProtoBuf.Entity|baseEntity" + }, + { + "OpCode": "ldfld", + "OpType": "Field", + "Operand": "Rust.Data|ProtoBuf.BaseEntity|modificationID" + }, + { + "OpCode": "stfld", + "OpType": "Field", + "Operand": "Assembly-CSharp|BaseEntity|ModificationID" + } + ], + "HookTypeName": "Modify", + "Name": "ModificationID [BaseEntity.Load]", + "HookName": "ModificationID", + "HookDescription": "Adding ModificationID loading immediately after OnSkinChanged", + "AssemblyName": "Assembly-CSharp.dll", + "TypeName": "BaseEntity", + "Flagged": false, + "Signature": { + "Exposure": 2, + "Name": "Load", + "ReturnType": "System.Void", + "Parameters": [ + "BaseNetworkable/LoadInfo" + ] + }, + "MSILHash": "hybXjXSNGmni7o08RyhwcSSni+wBodfmTeWhwAtbGk0=" + } } ], "Modifiers": [ @@ -53558,6 +53664,20 @@ } ] }, + { + "AssemblyName": "Rust.Data.dll", + "Hooks": [], + "Modifiers": [], + "Fields": [ + { + "Name": "modificationID", + "AssemblyName": "Rust.Data.dll", + "TypeName": "ProtoBuf.BaseEntity", + "FieldType": "mscorlib|System.UInt64", + "Flagged": false + } + ] + }, { "AssemblyName": "Facepunch.Console.dll", "Hooks": [