Jump to content
Message added by crash,

hey, if this plugin helped you out, leave a 5 star review, thank you! 

also, if you need a custom request to be done, join my discord and lets talk !

10 Screenshots

  • 10.4k
  • 867
  • 739.15 kB
  • Update details
    v2.0.0
    Released
    Download size 739.15 kB
    Total versions 12
    Typical update pace About every 24 days
    Freshness Updated today

About NCP

NCP is a free notification system for Rust servers. Your plugins call one method and the player gets a clean toast: a slanted icon tile, a dark card, the title in the type's accent colour and the message under it, sliding in at the corner you choose.

Every notification type has its own corner, colour, icon, sound, timing, animation and UI layer, and toasts that share a corner stack instead of overlapping. Four types ship ready (Information, Warning, Error and Success) and you can add your own. Plugins can also show a timed progress bar and merge repeated messages into one counter.

Everything can be tuned without touching a file: /ncp.edit opens an in-game editor where you drag toasts around your screen, pick icons from a browser and see every change live for all players. Notifications never take the mouse, so the map, the inventory and every other window keep working while they are on screen.

NCP toasts in Rust: item toasts with a merged counter, every type and a progress bar

Works on Oxide & Carbon Free, CrashExtensions DLL included
4 types ready, up to 50 All 13 game UI layers, per type

Jump to: Features · Screenshots · Live editor · Coming from Notify · UI layers · Commands · Permissions · Install · Configuration · FAQ · API

🌟 Features

For players

  • Clean toasts. An icon tile, a title and the message with an accent colour per type. Long messages get a taller two-line card by themselves.
  • Real icons. Any Rust sprite, any item's own icon, any CUIIcons icon or a picture from a link.
  • Never in the way. Notifications are click-through: the map, buttons and every other window keep working while they are on screen.
  • No overlap. Toasts in the same corner stack in order and slide smoothly when one leaves. Each type shows up to its own limit at once and the rest wait in a queue.
  • A sound per type. Each type can play its own game sound, heard only by the player who gets the notification.
  • Your language. English, Spanish, Brazilian Portuguese and Russian built in.

For server owners

  • Drag-and-drop editor. /ncp.edit shows every type's toasts on your screen. Drag one to move its type; it snaps to the edges and the centre lines, and the vitals, team bar, chat, hotbar and compass areas are marked.
  • Eight anchors. The four corners, top and bottom centre, and middle left and right, with offsets and spacing.
  • Smooth animations. Slide in from any side or diagonal, leave with a fade or a slide. They run on the client, so a busy server stays smooth.
  • Icon browser. 385 Rust sprites, the CUIIcons pack, every item and your own https links, with search and recent picks.
  • All 13 UI layers, per type. A global default plus an optional layer for each type: over or behind the HUD, over the open map, or only while the inventory, crafting, contacts, clans, tech tree or map is open.
  • Import from Notify. One click brings over the titles, colours, images, durations and sounds of Mevent's Notify.
  • Chat fallback. If you make seeing toasts a permission, players without it can get the text in chat instead.
  • Safe config. 1.4.x configs migrate by themselves with a backup, and a broken file is never saved over.

For developers

  • One call, unchanged. SendNotify for one player (a BasePlayer, a SteamID string or a ulong) and SendNotifyAllPlayers for everyone, the same as 1.4.x and Mevent's Notify.
  • More when you want it. SendNotifyEx for your own title, icon and a merging counter (x25 -> x50), and a progress bar API: SendProgress, CompleteProgress, CancelProgress, HasProgress. See the API.
  • Console and RCON commands. ncp.player and ncp.allplayers work from the server console, RCON and other tools.

📸 Screenshots

Every screen below is NCP running in Rust.

All four types and the progress bar
Every NCP type on screen with the progress bar

Live layout editor: drag a group, it snaps
NCP editor LAYOUT tab with draggable toast groups

Per type: colour, icon, timing, animation, sound and UI layer
NCP editor TYPE tab

Global settings and the 13 UI layers
NCP editor GLOBAL tab

Icon browser: 385 Rust sprites
NCP icon browser, Rust sprites tab

275 CUIIcons
NCP icon browser, CUIIcons tab

Every item in the game
NCP icon browser, items tab

Or your own https image
NCP icon browser, custom URL tab

🗒️ Live Editor

No file editing needed. /ncp.edit opens a panel in the middle of the screen with three tabs:

  • LAYOUT - every type's toasts on your screen. Drag a toast by its card to move that type. It snaps to the screen edges and the centre lines, and the vitals, team bar, chat, hotbar and compass areas are marked so nothing hides under them
  • TYPE - title, on or off, accent colour, icon (with a browser), duration, max visible, entrance, exit, sound with a test button, UI layer, offsets and spacing
  • GLOBAL - the default UI layer, the see permission, chat fallback, animations, merge repeats, the progress bar API, the queue size, TEST ALL and IMPORT NOTIFY

TEST shows the type to you, RESET puts it back to its shipped values and SAVE writes the file. Changes reach every player at once and only go into the config when you save.

Who can open it: players with ncp.edit, and server owners always. Nothing in the editor works for anyone else, even from the F1 console.

🔁 Coming from Notify

NCP uses the same API as Mevent's Notify, so plugins written for Notify can send through NCP. To bring your Notify look over too, press IMPORT NOTIFY in the editor's GLOBAL tab or run ncp.importnotify in the server console. It reads oxide/config/Notify.json and replaces the NCP types with the same number (titles, colours, image links, durations and sounds), keeps the positions and layers of types you already had, and backs up NCP.json first.

Image links only come over from the console or for staff with ncp.edit.urls. Without it, those types get the info or close icon.

🗂️ UI Layers

The Default UI layer in the config sets where notifications draw, and any type can pick its own. NCP accepts every layer the game offers.

Always shown

  • Hud (default) - over the HUD. It shares the open map's drawing order, so either can end up on top
  • Hud.Menu - over the HUD, the open map and the inventory screens
  • Under - behind the HUD; the open map and the inventory screens cover it
  • UnderNonScaled - like Under, ignoring the player's UI scale setting
  • Overlay - over the open map and the inventory screens
  • OverlayNonScaled - like Overlay, ignoring the player's UI scale setting
  • Overall - above every other layer in this list

Only while their screen is open

  • Inventory, Crafting, Contacts, Clans, TechTree and Map - over that screen, so notifications show only while the player has it open

Tip: to keep notifications on top of the open map, pick Hud.Menu, Overlay or Overall. To keep them hidden under it, pick Under.

🎮 Commands

  • /ncp.show <type> <message> - show a notification to yourself, to test a type (needs ncp.notify)
  • /ncp.edit [type] - open the live editor (needs ncp.edit, in game only)
  • /ncp.player <player> <type> <message> - send a notification to one player (needs ncp.player)
  • /ncp.allplayers <type> <message> - send a notification to every online player (needs ncp.allplayers)
  • /ncp.importnotify - import Mevent's Notify config (needs ncp.edit)

They also run from the server console and RCON, without the slash. <player> is a SteamID64 or a player name, and <type> is 0 Information, 1 Warning, 2 Error, 3 Success or the number of a custom type.

🛡️ Permissions

  • ncp.notify - /ncp.show
  • ncp.player - /ncp.player
  • ncp.allplayers - /ncp.allplayers
  • ncp.edit - the live editor and /ncp.importnotify. Staff only
  • ncp.edit.urls - custom icon links in the editor. Nobody has it by default
  • ncp.see - seeing notifications, only checked when the config's permission setting is not empty

Server owners and the console can always use every command. A typical setup gives your staff group the commands:

oxide.grant group admin ncp.notify
oxide.grant group admin ncp.player
oxide.grant group admin ncp.allplayers
oxide.grant group admin ncp.edit

📦 Install

  1. Install the extension. Copy Oxide.Ext.CrashExtensions.dll from the zip into RustDedicated_Data/Managed (Carbon: carbon/extensions) and restart the server. Host blocks DLL uploads? Put CrashExtInstaller.cs in your plugins folder and run crashext.install once in the console.
  2. Install the plugin. Copy NCP.cs into oxide/plugins (Carbon: carbon/plugins). It compiles on its own and creates oxide/config/NCP.json.
  3. Grant the permissions above to your staff.
  4. Tune the look with /ncp.edit in game.

Updating from 1.4.x? 2.0 now needs CrashExtensions, and the DLL is in the zip. Replace NCP.cs after installing it. Your config migrates by itself on the first load and the old file is kept as NCP.json.v1-backup. Plugins that call NCP need no change: same API, same commands, same permissions.

⚙️ Configuration

Everything lives in oxide/config/NCP.json, and the live editor changes the same settings in game.

  • Default UI layer - where notifications draw, see UI layers
  • Permission required to see notifications - leave it empty and every player sees them; put ncp.see to make it a permission
  • Chat fallback - players who can't see toasts get the message in chat
  • Animations, Merge repeats, Progress bar API enabled - global switches
  • Queue per player - how many toasts can wait per player (1 to 100)
  • Notification types - one entry per type number: 0 to 3 ship ready, add your own up to 50

Defaults: Information top right (5 s), Warning top right (7 s), Error bottom left (8 s), Success bottom right (5 s).

Settings of each type (click to expand)

Spoiler
  • Enabled, Title - whether the type shows, and its title
  • Accent colour, Subtitle colour - hex colours; an empty subtitle colour is worked out from the accent
  • Icon, Tint icon - an item shortname, an assets/... sprite, a cuilib.icon.* key or an https link to a png or jpg
  • Duration, Max visible - seconds on screen (1 to 120), and how many of this type show at once (1 to 10)
  • Anchor - TopLeft, TopCenter, TopRight, MiddleLeft, MiddleRight, BottomLeft, BottomCenter or BottomRight
  • Offset X, Offset Y, Spacing between toasts - the distance from the corner and the gap between toasts
  • Entrance from, Exit - the side it slides in from (or None), and Fade or Slide to leave
  • Sound effect prefab - the game sound played to the player; empty is silent
  • UI layer - Global for the default layer, or one of the 13 layers

📚 FAQ

Q: Why does 2.0 need a DLL?
A: The new toasts, animations and editor are built on CrashExtensions, so they stay smooth on busy servers. The DLL is in the zip, and CrashExtInstaller.cs installs it for you if your host blocks DLL uploads.

Q: Will my 1.4.x config and my other plugins keep working?
A: Yes. The config migrates on the first load with a backup (NCP.json.v1-backup), and SendNotify and SendNotifyAllPlayers work exactly as before.

Q: Is it still free?
A: Yes.

Q: Do notifications block the map or other windows?
A: No. Notifications are click-through: the map can be dragged, zoomed and clicked while they are on screen.

Q: Can I keep notifications over the open map, or under it?
A: Yes, with the UI layer: Hud.Menu, Overlay or Overall keep them on top of the map, and Under keeps them hidden under it. Hud, the default, shares the map's drawing order, so either can end up on top.

Q: Can I add my own notification types?
A: Yes, with ADD TYPE in the editor or a new number in the config, up to 50 types. A plugin that asks for a type that does not exist gets type 0's look.

Q: Who sees notifications?
A: Every player while the permission setting is empty. Set it to ncp.see and only players with that permission get them; turn on the chat fallback to send the others the text in chat.

Q: Does it contact any outside service?
A: It downloads three small card and tile pictures once from cdn.crashplugins.space through CrashExtensions, and any https icon link you set yourself. Nothing about your server or your players is sent anywhere.

Q: Can the titles be translated?
A: The commands and the editor come in English, Spanish, Brazilian Portuguese and Russian. Type titles are config values, so write them in your language. The message text comes from the plugin or command that sends it.

🔧 API

[PluginReference] private Plugin NCP;
 
NCP?.Call("SendNotify", player, 0, "Welcome to the server!");          // BasePlayer
NCP?.Call("SendNotify", "76561198000000000", 1, "Low health!");        // SteamID as string
NCP?.Call("SendNotify", 76561198000000000UL, 2, "Access denied.");      // SteamID as ulong
NCP?.Call("SendNotifyAllPlayers", 3, "Event starting in 5 minutes!");  // every online player
 
NCP?.Call("SendNotifyEx", player, 3, "Gathered", "Wood", "wood", 25);   // own title and item icon, x25 merges into x50
NCP?.Call("SendProgress", player, "craft", "Crafting...", 10f, true);  // 10 s bar with a timer
NCP?.Call("CompleteProgress", player, "craft", null);                   // ends it green (CancelProgress ends it red)
NCP?.Call("HasProgress", player, "craft");                              // true while it runs

Types: 0 Information, 1 Warning, 2 Error, 3 Success, or any custom type number from the config. The new calls return false when nothing was shown.

Join our Discord

Questions, ideas or bug reports? Use the Support tab of this file or join our Discord.

  • Like 3
  • Love 1

crash
crash's Collection
Explore more files from this creator.

User Feedback

About Us

Codefling is the largest marketplace for plugins, maps, tools, and more, making it easy for customers to discover new content and for creators to monetize their work.

Downloads
3.2m
Total downloads
Customers
12.3k
Customers served
Files Sold
175.2k
Total sales
Payments
3.8m
Processed total
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.