NX CreativeNX CreativeDocs
Scriptsnx_write

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: true

Master 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: true

Notepad supports multi-page documents.

Post-it stack

Config.PostitStackSizenumberdefault: 10

Default 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: 262144

Cap on document JSON, in bytes. 256 KB by default.

Config.Limits.maxStrokePointsnumberdefault: 20000

Total freehand points across all pages.

Config.Limits.maxCharsnumberdefault: 8000

Character cap per page.

Config.Limits.maxPagesnumberdefault: 16

Hard cap on pages per document.

Config.Limits.maxTitlenumberdefault: 128

Maximum title length.

Config.Limits.saveRateLimitMsnumberdefault: 1500

Minimum milliseconds between save callbacks per player.

Config.Limits.loadRateLimitMsnumberdefault: 250

Minimum milliseconds between load callbacks per player.

Config.Limits.placeRateLimitMsnumberdefault: 1500

Minimum milliseconds between placement-create callbacks per player.

Config.Limits.pickupRateLimitMsnumberdefault: 750

Minimum milliseconds between pickup callbacks per player.

Config.Limits.listRateLimitMsnumberdefault: 5000

Minimum milliseconds between placement-list callbacks per player.

Writing session keybinds

Control IDs follow the ox_lib key list.

Config.Controls.toggleModenumberdefault: 37

Swap between text and freehand. Default 37 (Tab).

Config.Controls.toggleModeAltnumberdefault: 25

Alternate mode swap, always available. Default 25 (right mouse button).

Config.Controls.savePapernumberdefault: 200

Save and close. Default 200 (Esc).

Config.Controls.freehandClicknumberdefault: 24

Draw 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: 38

Commit the placement. Default 38 (E).

Config.Placement.controls.cancelnumberdefault: 177

Cancel and return the item to inventory. Default 177 (Backspace).