Configuration
Every entry in shared/config.lua. Defaults, types, and purpose.
Customer-facing settings live in shared/config.lua. The file is in
escrow_ignore, so it stays editable after install. Locale strings live
in shared/locales/<lang>.lua.
Internal calibration (paper geometry, IK tuning, camera offsets, multiplayer sync timings, and the placeable definitions) is set inside the encrypted resource and is not part of this file.
Framework
Config.Frameworkstringdefault: 'auto'Framework selection. 'auto' detects es_extended, qb-core, or qbx_core.
Locale
Config.Localestringdefault: 'en'Active locale. Shipped values: 'en', 'fi'. Override per server with the convar setr nx_write:locale.
Features
Config.UseInventorybooleandefault: trueMaster switch for inventory integration. true lets nx_write talk to the inventory: stamp the saved docId onto the item slot, consume on place, restore on pickup. false skips all inventory operations (items are still added to ox_inventory/data/items.lua by you, either way).
Config.Inventorystringdefault: 'auto'Which inventory nx_write integrates with. 'auto' uses ox_inventory if it is running, otherwise 'custom'. 'ox' forces ox_inventory: item metadata stamping on save, item bridging on place and pickup. 'custom' means nx_write touches no inventory itself; you drive it from your own inventory with the client exports and the nx_write:documentSaved, nx_write:placementCreated, and nx_write:placementPickedUp server events.
Config.AllowMultiPagebooleandefault: trueNotepad supports multi-page documents.
Post-it stack
Config.PostitStackSizenumberdefault: 10Default number of post-its in a stack.
Config.PostitPickupModestringdefault: 'remove'What happens when someone interacts with a placed post-it. 'remove' deletes the placement. 'pickup' deletes it and returns a post-it with its docId so the player can keep editing. 'both' shows both options and lets the player choose. Notepads always behave like 'pickup' regardless of this setting.
Server limits
Anti-abuse and cost control. The rate limits are the minimum milliseconds between callbacks per player.
Config.Limits.maxContentBytesnumberdefault: 262144Cap on document JSON, in bytes. 256 KB by default.
Config.Limits.maxStrokePointsnumberdefault: 20000Total freehand points across all pages.
Config.Limits.maxCharsnumberdefault: 8000Character cap per page.
Config.Limits.maxPagesnumberdefault: 16Hard cap on pages per document.
Config.Limits.maxTitlenumberdefault: 128Maximum title length.
Config.Limits.saveRateLimitMsnumberdefault: 1500Minimum milliseconds between save callbacks per player.
Config.Limits.loadRateLimitMsnumberdefault: 250Minimum milliseconds between load callbacks per player.
Config.Limits.placeRateLimitMsnumberdefault: 1500Minimum milliseconds between placement-create callbacks per player.
Config.Limits.pickupRateLimitMsnumberdefault: 750Minimum milliseconds between pickup callbacks per player.
Config.Limits.listRateLimitMsnumberdefault: 5000Minimum milliseconds between placement-list callbacks per player.
Writing session keybinds
Control IDs follow the ox_lib key list.
Config.Controls.toggleModenumberdefault: 37Swap between text and freehand. Default 37 (Tab).
Config.Controls.toggleModeAltnumberdefault: 25Alternate mode swap, always available. Default 25 (right mouse button).
Config.Controls.savePapernumberdefault: 200Save and close. Default 200 (Esc).
Config.Controls.freehandClicknumberdefault: 24Draw or dot in freehand mode. Default 24 (left mouse button).
Placement keybinds
Used during the placement preview after right-clicking Place on a saved note.
Config.Placement.controls.commitnumberdefault: 38Commit the placement. Default 38 (E).
Config.Placement.controls.cancelnumberdefault: 177Cancel and return the item to inventory. Default 177 (Backspace).