diff --git a/OTAPI.Scripts/Patches/Terraria.Main.rand.cs b/OTAPI.Scripts/Patches/Terraria.Main.rand.cs
new file mode 100644
index 00000000..8728e59c
--- /dev/null
+++ b/OTAPI.Scripts/Patches/Terraria.Main.rand.cs
@@ -0,0 +1,59 @@
+/*
+Copyright (C) 2025 sors89
+
+This file is part of Open Terraria API v3 (OTAPI)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#if !tModLoader && !tModLoaderServer
+using ModFramework;
+using Mono.Cecil.Cil;
+using MonoMod;
+using System;
+using System.Linq;
+
+///
+/// @doc Patch Terraria.Main.rand into a property
+///
+[MonoModIgnore]
+partial class Rand
+{
+ [Modification(ModType.PreMerge, "Patching Terraria.Main.rand")]
+ static void PatchMainRand(ModFwModder modder)
+ {
+ var rand = modder.GetFieldDefinition(() => Terraria.Main.rand);
+ var prop = rand.RemapAsProperty(modder);
+
+ var csr = modder.GetILCursor(prop.GetMethod);
+
+ /*
+ 0 0000 ldsfld string Terraria.Main::'k__BackingField'
+ 1 0005 ret
+ */
+
+ var backingField = modder.Module.GetDefinition().Fields.Where(x => x.Name.Contains("")).First();
+
+ csr.GotoNext(i => i.OpCode == OpCodes.Ret);
+ csr.Emit(OpCodes.Ldnull);
+ csr.Emit(OpCodes.Nop);
+ csr.Emit(OpCodes.Newobj, typeof(Terraria.Utilities.UnifiedRandom).GetConstructor(new Type[] { }));
+ csr.Emit(OpCodes.Stsfld, backingField);
+ csr.Emit(OpCodes.Ldsfld, backingField);
+
+ var nop = csr.Body.Instructions.Where(i => i.OpCode == OpCodes.Nop).First();
+ nop.OpCode = OpCodes.Bne_Un_S;
+ nop.Operand = csr.Previous;
+ }
+}
+#endif
\ No newline at end of file