# Native buyer checkpoint example — C10 review

Optional source example validated through the private existing-host native caller fixture against C10. Normal buyer Blueprint use requires no plugin C++ changes. This optional native route requires an existing game C++ module and Unreal-compatible Win64 build toolchain.

1. Copy MapsBuyerCheckpoint.h into your game's Public folder and MapsBuyerCheckpoint.cpp into Private. Add Core, CoreUObject, Engine and RPGMapsCompass to that existing module's dependencies. Include MapsBuyerCheckpoint.h where your controller/quest system owns the caller.
2. Create/place AMapsBuyerCheckpoint in your existing world. Call Connect with the exact owning local PlayerController only when it is ready. Show Failure and stop on false; disconnect before replacing the owner.
3. Your quest input supplies WorldLocation and Name to SetDestination. The example retains the returned GUID; RenameDestination and RemoveDestination act only on that retained ID. It creates navigation data and never spawns a physical waypoint or executes a reward. ObserveWaypoints reads state to update ObservedWaypointCount; extend that observer with your own UI refresh.
4. ReadView/ReadProgress/ReadSettings return the connected owner's state or useful refusal. ReadSettings gives a copy: edit only intended members and ApplySettings returns a settings disk receipt. False can mean memory changed without confirmed disk data. SaveProgress is the separate progress receipt.
5. SetSurfaceState routes desired window/compass/coordinator choices. A true request result is not a save receipt. Only the actual single owning suite coordinator should set its ownership flag; release it before coordinator cleanup. This sample does not discover or adapt third-party frameworks.
6. Cancel dismisses the foremost navigation surface. Disconnect removes only this actor's observer and resets its retained connection/ID; EndPlay performs the same disconnect. The navigation waypoint collection remains plugin-owned until an explicit removal or scoped save load.
7. Compile your existing module and exercise buyer input/result/state, invalid owner/name/repeated removal, missing settings receipt/retry, protected progress, cancellation, rebind and cleanup. The C10 existing-host native test executed rooted pawn movement, exact state outputs, settings/progress receipts, failure/retry and cleanup. Actual packaged UI/travel evidence remains separate.
