F.A.Q
Setup
Set Config.Locale in shared/config.lua:
1Config.Locale = 'en'- Check the F8 console for DUI errors
- Verify
web/index.htmlandweb/board.htmlare present - Ensure the board is within
RenderDistance(default 30m)
- Verify items from
_INSTALL/ox_items.luaare in your ox_inventory - Check that
Config.UseItems = true - Ensure the note variant's
itemslist matches your inventory item names
Notes
postit: Text-only notes. Players type a message.photo: Image notes. Requires a photo URL (fromml_cameraor pasted manually).
Notes have a duration set between Config.Duration.Min and Config.Duration.Max (in hours). When the timer runs out, the note is automatically removed during the next cleanup cycle (Config.Defaults.CleanupInterval).
Yes. Set allowedVariants in the board's location config. Only note variant IDs in that array will be selectable.
The pen lives in the board toolbar. Drawing on the board surface follows the draw permission, which is staff only unless a board opens it up:
1permissions = { draw = { 'police' } },Drawing on a note follows the place permission instead, and is on by default:
1Config.AllowNoteDrawing = trueAdd an entry to Config.Stamps. Give it a label and an ink colour, or an image URL to print your own artwork:
1Config.Stamps = {
2 { id = 'sealed', label = 'SEALED', color = '#37474f', size = 'medium' },
3 { id = 'lspd', label = 'LSPD', image = 'https://your.cdn/lspd_stamp.png', size = 'large' },
4}Yes. A photo variant accepts a frame image plus the window the picture shows through and the box the caption is written in, both in percent of the artwork:
1{
2 id = 3,
3 type = 'photo',
4 label = 'Wanted Poster',
5 items = { 'photo' },
6 frame = 'https://your.cdn/wanted_poster.png',
7 ratio = 1.4,
8 window = { x = 18, y = 26, w = 64, h = 42 },
9 caption = { x = 14, y = 74, w = 72, h = 14 },
10}Yes. A stamp pressed on a note and ink drawn across it are stored against that note, so moving or rotating the note carries them along. Deleting the note removes them with it.
Dynamic Boards
Players use a board item (e.g. whiteboard_small) from their inventory. They aim at a wall or surface and the board is placed. The board persists in the database until the owner picks it up.
Controlled by Config.BoardPickupPolicy:
'owner': Only the player who placed it'anyone': Any player can pick it up
Locations
Add an entry to Config.Locations in shared/config_locations.lua:
1{
2 id = 'my_board',
3 model = 'hei_prop_hei_muster_01',
4 coords = vec4(x, y, z, heading),
5 currentBackground = 'cork',
6}Restart the resource after adding locations.
Yes. Add jobView, jobWrite, and/or jobClear to the location config:
1jobView = nil,
2jobWrite = { 'police', 'sheriff' },
3jobClear = { 'police' },nil means everyone. A table restricts to those jobs only.
Updates
- Download latest from CFX Portal
- Backup
shared/config.lua,shared/config_notes.lua,shared/config_locations.lua, andserver/config_server.lua - Replace all files except config
- Restart the resource
Board content and dynamic placements are stored in the database, so they survive updates.
Boards written by an older release use a different surface layout. The console reports how many are left on start:
1/mlboard_migrateRun it once from the server console, or in game with the admin permission. Boards already converted are skipped.