An independent review of a public report
The public Quantum Core X issue #546, reported by Biggestmeme, concerns a signed conversion when dropping a large yang amount. M2City prepared a small correction proposal and an extracted-method test harness. This is our review material, not a merged or upstream-approved fix, a paid customer delivery, or a universal patch for other Metin2 server branches.

Check the exact source first
The proposal targets PlayerEntity.cs at commit 007c7a6cdeeace4c7d09d63f67be21e63a37430f, file blob 994aafde38f6fca7fc222de5d83f5dfe2f69bc1a. Read the pinned source, including GetPoint, AddPoint and SetPoint, rather than matching a method name alone.

DropGold accepts an unsigned amount. Its original debit narrows that amount to int and negates it. In an unchecked build, an amount beyond int.MaxValue can become negative during narrowing, so the negation produces a positive delta. The pinned GOLD branch of AddPoint adds the delta and clamps the result; the existing amount-versus-balance guard does not correct that signed conversion. A checked build can instead throw on the conversion. This is why the reproduction checks both compiler modes.

The proposed debit
Capture the unsigned balance, validate the amount against that same value and use the existing unsigned SetPoint branch:
var gold = GetPoint(EPoint.GOLD);
if (amount > gold)
{
    return;
}
SetPoint(EPoint.GOLD, gold - amount);

The complete diff retains the existing proto guard, SendPoints call and ground-item creation sequence. For a balance of 3,000,000,000 and an accepted drop of 2,500,000,000, the expected remaining balance is 500,000,000.

What the downloadable harness checks
The source bundle contains the original/proposed DropGold methods with small point, map and item stubs. For an accepted drop, it checks that remaining balance plus spawned amount equals the starting balance, and that the existing send/create effects occur. For an amount larger than the balance, it checks that the balance, ground items and point-send state remain unchanged. It also checks the missing-proto guard.

Each of two recorded builds covers nine boundary pairs and 100,000 deterministic generated pairs, plus that guard. A runtime probe confirms whether the compiler actually enabled overflow checks; the README uses separate forced builds. The original model fails conservation in unchecked mode and throws in checked mode. The proposed model passes both. Results and build instructions are included; the package requires the .NET 10 SDK and no external NuGet package dependencies.

Review and integration limits
Check the patch against its exact base in a review checkout and follow the bundled README to reproduce the tests. Capturing a balance once does not establish atomicity or concurrent-gameplay correctness. The harness does not run the complete QCX project, test persistence, client/server compatibility, pickup behaviour or a live game server. This proposal has not been posted or accepted upstream; consult the original issue for its current discussion.

The patch and harness retain Quantum Core X attribution and MPL-2.0 terms in NOTICE.md and LICENSE.txt. The catalogue entry records the exact ZIP size and SHA-256. The previously published contribution URL serves the same reviewed bytes. If discussing a result, include your branch, a small reproducible test and the actual compiler mode. Full C# integration is outside the published TXT/Lua/UI service scopes.