client/custom/framework/<name>/core.lua. Copy standalone to start, then change the guard at the top:
client/custom/framework/custom/core.lua
Set up the server side first. See Server.
IsPlayerLoaded
Whether the character is loaded. The MDT won’t open while this isfalse.
true when your framework finishes loading the character, and back to false on logout.
IsPedMale
true if the character is male.
IsOpenable
true if the player can open the MDT right now. Return false while dead, handcuffed, or in any state where your framework blocks UI.
Notify
type to your notification system’s own types if they differ.