Changelog

1.5.0 (2026-02-27)

  • Add in-game admin board management. Admins can place, edit, delete, reposition and teleport to boards directly in-game via a configurable chat command (Config.AdminBoardCommand, default: boardadmin).

  • Boards created via the admin panel are stored in the database (nss_pinboard_boards table) and merged with config.lua boards on startup. Database boards take precedence over config.lua boards with the same city name.

  • Add live placement preview with walk/fine mode and position/heading sliders.

  • Add board reposition: move an existing board to a new position via placement mode from the board list.

  • Add "Migrate Config Boards" button to copy all config.lua boards into the database (callbacks are not migrated).

  • Add proximity-based prop spawning for database boards (chunk system, configurable via Config.BoardViewDistance).

  • Add Lua callback support for database boards (stored as source text, compiled at runtime via load()).

  • Add configurable prompt offset for database boards (Config.DbBoardPromptOffset, default: 0.5).

  • Fix TINYINT(1) boolean fields (alternative_style, hide_blip, prevent_text_posters, prevent_image_posters) not being read correctly from database. Some DB drivers return booleans instead of integers for TINYINT(1) columns; both are now handled correctly.

  • Fix blip cleanup on resource stop: blips were not removed because the wrong handle was stored.

  • Block admin panel while a pinboard is open.

  • UI improvements: icon buttons, scrollable dialogs, side-by-side job restriction columns, consistent title styling.

What must be considered during update?

  • New database table: Run the following SQL statement in your database:

CREATE TABLE IF NOT EXISTS `nss_pinboard_boards`
(
    `id`                          INT UNSIGNED  NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique board identifier',
    `city`                        VARCHAR(255)  NOT NULL COMMENT 'Unique board name (= partition key for posters)',
    `group_name`                  VARCHAR(255)  NOT NULL COMMENT 'Board group (used for pinning service)',
    `coord_x`                     FLOAT         NOT NULL DEFAULT 0 COMMENT 'World position X',
    `coord_y`                     FLOAT         NOT NULL DEFAULT 0 COMMENT 'World position Y',
    `coord_z`                     FLOAT         NOT NULL DEFAULT 0 COMMENT 'World position Z',
    `heading`                     FLOAT         NOT NULL DEFAULT 0 COMMENT 'Heading in degrees',
    `alternative_style`           TINYINT(1)    NOT NULL DEFAULT 0 COMMENT 'Use indoor/alternative NUI look',
    `hide_blip`                   TINYINT(1)    NOT NULL DEFAULT 0 COMMENT 'Hide map blip',
    `prevent_text_posters`        TINYINT(1)    NOT NULL DEFAULT 0 COMMENT 'Disallow text posters',
    `prevent_image_posters`       TINYINT(1)    NOT NULL DEFAULT 0 COMMENT 'Disallow image posters',
    `restrict_view_by_jobs`       TEXT                   DEFAULT NULL COMMENT 'JSON: {"JobName":grade}',
    `restrict_create_by_jobs`     TEXT                   DEFAULT NULL COMMENT 'JSON: {"JobName":grade}',
    `restrict_view_by_callback`   TEXT                   DEFAULT NULL COMMENT 'Lua source for view callback',
    `restrict_create_by_callback` TEXT                   DEFAULT NULL COMMENT 'Lua source for create callback',
    `created_at`                  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Timestamp of creation',
    UNIQUE KEY `uk_city` (`city`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;
  • New language keys added (see New since 1.5.0 marks). Please add them to your language file(s).

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.5.0 marks).


1.4.1 (2026-02-15)

  • Fix support for webp images.

What must be considered during update?

  • Nothing.


1.4.0 (2025-11-21)

  • Add restrict_view_by_callback to poster config to allow custom view restrictions via callback function, e.g. for subscriptions.

  • Add restrict_create_by_callback to poster config to allow custom creation restrictions via callback function, e.g. for subscriptions.

  • Add nss_pinboard:reInitialize client event to re-initialize pinboard data without reloading the resource, e.g. if subscription status changed.

What must be considered during update?

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.4.0 marks).


1.3.5 (2025-11-17)

  • Move discord webhooks from config.lua to a server readonly config file secure.lua to hide webhook urls from clients.

  • Config.DiscordWebhook is now in secure.lua.

  • Individual webhooks for posters are now in secure.lua as well, see Config.PosterIndividualDiscordWebhooks.

What must be considered during update?

  • New file secure.lua must be created from secure.demo.lua in the resource root folder.

  • Transfer your existing webhook configuration from config.lua to new secure.lua file (see New since 1.3.5 marks).


1.3.4 (2025-02-17)

  • Add events to open/close pinboard.

What must be considered during update?

  • Nothing.


1.3.3 (2025-01-14)

  • Fix RemoveBlip error if no number is given (since client artefact 12295).

What must be considered during update?

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.3.2 marks).


1.3.2 (2024-11-10)

  • Add optional Config.UseZAxisForOpenPromptRadius to enable z axis check for open prompt. See config.demo.lua for more information.

What must be considered during update?

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.3.2 marks).


1.3.1 (2024-03-13)

  • Add Config.ImageServerBlacklist to block specific image servers. See config.demo.lua for more information.

  • Add FAQ to README.md.

What must be considered during update?

  • New language keys added (see New since 1.3.1 marks). Please add it to your language file(s).

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.3.1 marks).


1.3.0 (2024-03-07)

  • Extend comments of config.demo.lua for more clarity.

  • Add some debug prints to actions.lua because in newer versions of vorp_core sometimes (especially on many players) no char data available if should.

  • Add torn sheet for broken image (e.g. that can no longer be found).

  • Add alternative style of bulletin board. See examples in config.demo.lua with new poster configuration attribute alternative_style.

  • Add new optional "close bulletin board on damage or combat" feature. See Config.HideOnCombatOrDamage in config.demo.lua.

What must be considered during update?

  • New language keys added (see New since 1.3.0 marks). Please add it to your language file(s).

  • Compare your config.demo.lua with your config.lua to consider new options (see New since 1.3.0 marks).


1.2.2 (2024-02-07)

  • Image urls with search params like https://example.com/image.jpg?xyz=123 are now supported, too.


1.2.1 (2024-01-18)

  • Update example map/bulletin_boards_config.lua and add missing group property.


1.2.0 (2023-07-13)

  • Add option to disable creation of text or image posts (globally or per board).

  • Add prev/next buttons to poster details for better navigation.

  • Add "pinboard service". Players can pay a fee to post everywhere at once in a pinboard group.


What must be considered during update?

  • New language keys added (see New since 1.2.0 marks). Please add it to your language file(s).

  • Compare your config.demo.lua with your config.lua to consider new options.


1.1.9 (2023-07-05)

  • Fix jpeg support for images (currently jpg, jpeg, png and webm are supported).


1.1.8 (2023-03-23)

  • Add new required board property group. Restricts "post to all" feature to specific board groups.

  • Add new optional board property restrict_view_by_jobs. Restricts the access to view a board (and blip) to one or more specific jobs.


1.1.7 (2023-03-17)

  • Webhooks can now optionally configured each board.


1.1.6

  • Config.JobRemovePermissions now checks correctly if job grade is equal or higher than the required grade.


1.1.5

  • Add new restrict_create_by_jobs in Config.Posters to restrict the creation of new posters to one or more specific jobs. See config.demo.luaarrow-up-right for more information.


1.1.4

  • Remove unnecessary print output.


1.1.3

  • Add optional new config attribute Config.DiscordWebhook.webhook_url_new for only new pinboard notifications.

  • Add optional new config attribute Config.DiscordWebhook.anonymous_new which hides the character name for webhook_url_new notifications. This have no effect to webhook_url notifications.

  • Add optional new config attribute Config.DiscordWebhook.webhook_url_removed for only removed pinboard notifications.

  • Add optional new config attribute Config.DiscordWebhook.anonymous_remover which hides the character name for webhook_url_removed notifications. This have no effect to webhook_url notifications.

  • Change config attribute Config.DiscordWebhook.webhook_url to be optional. It still sends all types of notifications to the same webhook but all authors and removers are not anonymous.

  • Add new translation discord_anonymous_user for anonymous characters for webhook_url_new and webhook_url_removed notifications.

  • Moved changelog from README.md to CHANGELOG.md.


1.1.2

  • Add hide_blip property for Config.Posters. If set to true no blip is shown on the map for the related pinboard.


1.1.1

  • Order of text sections are now correct if inserted between two existing sections.


1.1.0

  • Add possibility to pin a new note everywhere at once.

  • Permissions of new feature is configurable for groups and character names (full names).

  • Add new language keys discord_location_everywhere, post_everywhere_at_once, post_everywhere_at_once_every_where and post_everywhere_at_once_only_here.

  • Update discord webhook to show as location "everwhere" if someone uses the new feature.

  • Admins always have the permission to use the new feature.


1.0.2

  • Results of automated processes are shown in discord more clear, e.g. "System" instead of character name.

  • Results of console commands are shown in discord more clear, e.g. "Marti McFly (via Console)".

  • Add Config.DiscordWebhook.system_user_alias to config file, see example in config.demo.lua.

  • Add key discord_console_command to languages.

  • Fix to many linebreaks in poster text.


1.0.1

  • Add sorting for notice order on bulletin boards.


1.0.0

Initial release.

Last updated

Was this helpful?