Skip to content
← All documentation

/// PIMPMYRUST PLUGIN

Player Events Messages

Settings guide for this version of Player Events Messages. Check the plugin page before using it on your server.

Prepare your file

  1. Check the installed version

    This guide describes Player Events Messages 0.1.3. Use the same version in the configurator.

  2. Get the settings

    Click Import, then From my server. Select the files and confirm loading them. Selecting a server does not replace the open document. You can also import files from this device or a configuration from My projects.

  3. Edit and send

    Adjust settings, fix errors, then use Send to transfer files to the selected server. A conflict blocks sending until you choose how to resolve it. You can still export only the files you need.

Server transfers have private backups. Save keeps your work in My projects; it does not send anything to the server. A download also lets you resume without a server connection.

Settings for this version

General 4
Announcement cooldown
Number

Minimum time between announcements from the same player, across all categories.

JSON path(By player) Message Cooldown for any types (seconds)

Minimum : 0

Category cooldown
Number

Shared delay used for events without an individual override.

JSON path(By player) Message Cooldown for each types (seconds)

Minimum : 0

Panel commands
List · required

Chat commands that open the player panel. Enter the name without a slash or arguments.

JSON pathCommands for show UI
Messages (go to lang directory for values)
JSON value · required

Announcements offered to players, with their event, price and VIP access. Each announcement’s text is stored in the language files.

JSON pathMessages (go to lang directory for values)
Cooldown by event 4
Join
Number

Minimum seconds between two connection announcements for the same player. Overrides the general delay for this event; 0 removes its wait.

JSON path(By player) Message Cooldown overrides by event (seconds) → PlayerConnect

Minimum : 0

Leave
Number

Minimum seconds between two disconnection announcements for the same player. Overrides the general delay for this event; 0 removes its wait.

JSON path(By player) Message Cooldown overrides by event (seconds) → PlayerDisconnect

Minimum : 0

Kill
Number

Minimum seconds between two kill announcements for the same player. Overrides the general delay for this event; 0 removes its wait.

JSON path(By player) Message Cooldown overrides by event (seconds) → PlayerKill

Minimum : 0

Death
Number

Minimum seconds between two death announcements for the same player. Overrides the general delay for this event; 0 removes its wait.

JSON path(By player) Message Cooldown overrides by event (seconds) → PlayerDead

Minimum : 0

Message purchases 4
Currency provider
Choice · required

Plugin used to pay for messages. Free messages remain available without a currency plugin.

JSON pathMoney → Money Plugin Type ('Economics' | 'ServerRewards' | 'Custom')

Allowed values: Economics, ServerRewards, Custom

Currency plugin
Text

Exact name of the currency plugin, for the Custom provider only.

JSON pathMoney → (Custom) Plugin Name
Balance hook
Text

Hook that receives the Steam ID and returns the player's balance.

JSON pathMoney → (Custom) Plugin Hook => int/double/float Hook(string id)
Withdrawal hook
Text

Hook that receives the Steam ID and price, debits the player and returns true on success.

JSON pathMoney → (Custom) Plugin Hook => bool Hook(string id, int val)
Appearance 1
Layout
Choice · required

Compact: a list. Cards: two columns. Terminal: a numbered list. Each layout displays six messages per page.

JSON pathUI → NativeTemplate

Allowed values: compact, cards, terminal

Colours and dimensions 12
Accent
Text · required

Colour of the selected category, active message and purchase button.

JSON pathUI → Native → Accent
Panel background
Text · required

Background of the window and available-message buttons.

JSON pathUI → Native → Background
Message background
Text · required

Background of the header, message cards and unselected categories.

JSON pathUI → Native → Surface
Text
Text · required

Colour of announcements and primary button text.

JSON pathUI → Native → Text
Secondary text
Text · required

Colour of the balance, prices, pagination and secondary labels.

JSON pathUI → Native → Muted
Separators
Text · required

Colour of separators, message edges and unavailable buttons.

JSON pathUI → Native → Border
Background opacity
Number · required

Make the panel background transparent (0) or opaque (1).

JSON pathUI → Native → Opacity

Minimum : 0 · Maximum : 1

Horizontal position
Number · required

Place the panel on screen. X: left (0) to right (1). Y: bottom (0) to top (1).

JSON pathUI → Native → CenterX

Minimum : 0 · Maximum : 1

Vertical position
Number · required

Place the panel on screen. X: left (0) to right (1). Y: bottom (0) to top (1).

JSON pathUI → Native → CenterY

Minimum : 0 · Maximum : 1

Width
Whole number · required

Panel width in CUI pixels.

JSON pathUI → Native → Width

Minimum : 640 · Maximum : 1000

Height
Whole number · required

Panel height. Larger text requires more height to keep all six messages readable.

JSON pathUI → Native → Height

Minimum : 540 · Maximum : 720

Text size
Whole number · required

Text size for the panel's messages and buttons.

JSON pathUI → Native → FontSize

Minimum : 12 · Maximum : 18

Plugin instructions

PLAYER EVENTS MESSAGES — NATIVE 0.1.3

Beta 0.1.3. The LTS version published on Codefling remains 0.1.2. Downloading the plugin requires sign-in and a verified entitlement for the requested version. Check its product page for available access. Configuration exports remain available without buying the plugin. PimpMyCUI is not required.

This version keeps manual selection of death, kill, join and leave announcements. The panel has three configurable layouts: list, cards and terminal. New mechanics and editable PimpMyCUI templates from the withdrawn 0.2.0 beta are not included.

NEW INSTALLATION

  1. Upload oxide/plugins/PlayerEventChatMessages.cs to your server.
  2. Let the plugin generate its configuration and language files. The files in this archive match those generated defaults.
  3. Grant access to your chosen group: oxide.grant group default PlayerEventChatMessages.Default
  4. Players open the panel with /pevent or /pevent_show.
  5. Select one announcement per category. Buying unlocks an announcement; it does not select it automatically. Clicking the selected announcement disables it for that category.

The fresh catalogue contains 36 EN/FR announcements: 9 per category, including 3 free, 3 purchasable and 3 VIP choices. Free announcements need no economy plugin. Economics is the default provider. Without it, only purchases are unavailable. To use ServerRewards, change the provider in the Money section.

UPDATING FROM 0.1.2

  1. Back up configuration, languages and oxide/data/PlayerEventChatMessages.
  2. Replace ONLY the .cs file. Do not overwrite your existing JSON files with those from the archive.
  3. Reload and check the console. Invalid configuration, language or player data is preserved rather than replaced with defaults.
  4. Existing message IDs, purchases, selections and translations are retained. Missing language keys are added without replacing your text.

The 36 starter announcements do not replace an existing catalogue. Explicitly add wanted messages with unique identifiers and matching text in UTF-8 language files. Retain existing entries and IDs still owned by players. A plugin-only download does not necessarily include the source archive’s supplementary files.

APPEARANCE

Under UI, NativeTemplate selects compact, cards or terminal. UI.Native controls RGBA colours, opacity, position, dimensions and text size. The PimpMyRust configurator displays these settings alongside a preview. Historical UI settings remain in existing files to preserve an update, but do not control the new panel. There is no fallback to the old renderer. CustomWindow integration has been removed; its historical keys are not used.

TEXT AND PERMISSIONS

Announcement text lives in oxide/lang/en/PlayerEventChatMessages.json, with its French counterpart under fr. The message ID links each catalogue entry to its text. <owner_name> is the player; <victim_name> can be used for kill announcements. If you add another language and its file cannot be read, announcements skip only the players using that language. Other recipients still receive the text, and the cooldown applies when at least one announcement was delivered. The console identifies the affected language/message; repair the file yourself. The plugin does not replace it with a default translation. Historical <death_type> and <kill_type> keep their old meaning, without advanced cause, weapon or distance detection in this version. Click the announcement text to read it in full before activating or buying it. Long messages have their own reading pages; catalogue pages are separate. Short card/list excerpts may end with “…”; the chat announcement is not shortened. Reading uses the panel's font size; oversized <size> tags do not enlarge this preview. After a purchase, the panel shows the unlocked message with an Activate button. VIP restrictions, insufficient points and offline purchases are shown separately. Icons use built-in Rust sprites, with no image-host or ImageLibrary dependency.

PlayerEventChatMessages.Default: access to the panel and announcements. PlayerEventChatMessages.VIP: access to VIP announcements without purchasing. PlayerEventChatMessages.UnlimitedCooldown: bypass announcement cooldowns. Global and per-category cooldowns start only after an announcement is sent. The shared category delay remains the fallback for existing files. Under "(By player) Message Cooldown overrides by event (seconds)", optionally set PlayerConnect, PlayerDisconnect, PlayerKill and PlayerDead separately. An empty object preserves the shared delay; 0 disables that event's own delay. The global delay still applies across all events. Set it to 0 for independent event delays. Existing defaults (global 1800, shared category 5) are unchanged. Historical admin commands /peventmessage_add ID and /peventmessage_enable ID apply to the administrator running them. This version adds no offline grant command for another player.

ECONOMY AND SAVING

A purchase checks the provider, balance and confirmation before withdrawing. Only a boolean true confirms withdrawal. Before withdrawal, a PendingPurchase record is saved in the player's data, including the operation ID and quoted price. An uncertain result or failed acquisition save blocks purchases across reloads. Free and owned messages remain available when player storage is healthy. Successful acquisition and removal of the pending record are saved together. Withdrawal and disk storage are not an atomic transaction. A crash between them may require manual reconciliation by the administrator. After checking the provider's transaction history, a server-console/RCON command or an administrator's F1 console can resolve that exact pending operation: peventmessage_resolvepurchase STEAMID OPERATION_ID grant Use grant only when payment was confirmed: it records the pending message as owned. peventmessage_resolvepurchase STEAMID OPERATION_ID clear Use clear only when no payment occurred or reconciliation was already completed. The operation ID is in PendingPurchase and in the unresolved-purchase console log. Both actions preserve other acquisitions and never withdraw, retry or refund money. Wrong/stale operation IDs and in-progress purchases are refused. Repair storage and reload before resolution if the player's writes are disabled. Back up data; do not downgrade the plugin while pending operations remain unresolved.

KEEP THE CHANNELS SEPARATE

Beta 0.2.0 configuration and player data cannot be loaded by this native version. Use separate test installations and backups for the two channels. This candidate is compiled against the identified Oxide/Carbon references recorded in its delivery receipt. See VALIDATION.en.txt for the bounded live-server checks without a client, including fixture sessions/hooks and their limits. Real-client network reception and interaction are not claimed. Nothing has been published.

Keep text and player data

Save language files as UTF-8 and retain custom translations. The installed file is PlayerEventChatMessages.cs. Version 0.1.3 has a built-in player panel.

Install the files

With a connected server, click Send in the configurator. The result shows whether the files were sent and the plugin reloaded. Without RCON, reload the plugin from your server panel after sending.

Without a connected server: Keep a copy of the current files. Place each export in the folder shown before export, or follow the paths in the ZIP. Do not put data or translation files in the config folder.

Follow the plugin instructions above for dependencies and reloading. Exporting does not connect the site to your server.

Configuration and transfer guide →