# How to Integrate Your Custom Notification Script

## How to Integrate Your Custom Notification Script (Old & New File Structure)

Custom notifications help enhance player experience by using personalized or visually styled messages. Below are the instructions for both the **old integration method** using `editable_client.lua` and the **new method** using `bridge/frameworks/client/[framework].lua` files (`esx.lua` or `qb.lua` depending on your framework).

***

## **🔄 New Files: Using `bridge/frameworks/client/esx.lua` or `qb.lua`**

This is the **recommended method** for newer versions of the script.

### **Step 1: Locate the Framework File**

**Access Your Server Files:**\
Connect via FTP or a file manager.

**Navigate to the Notification File:**\
Go to the following directory based on your framework:\
`resources/[your_script]/bridge/frameworks/client/`\
Open either `esx.lua` or `qb.lua` depending on what your server uses.

### **Step 2: Find the `madCore.showNotify` Function**

Search for this function inside the file:

```lua
madCore.showNotify = function(msg)
    -- Default notification logic here
end
```

This function is called internally whenever the script needs to display a notification.

### **Step 3: Replace It With Your Custom Notification Script**

Example using `okokNotify`:

```lua
madCore.showNotify = function(msg)
    exports['okokNotify']:Alert('Alert', msg, 3000, 'info', true)
end
```

You can modify it to fit any custom notification script (e.g., `mythic_notify`, `ox_lib`, etc.).

### **Step 4: Test the Integration**

* Restart your server.
* Trigger an event that sends a notification.
* Verify that the custom notification appears in-game.

***

## **🗂️ Old Files: Using `editable_client.lua`**

This method was used in older versions of the script for managing notifications.

### **Step 1: Locate `editable_client.lua`**

* Access your server files via FTP or a file manager.
* Navigate to the directory where your client scripts are located.
* Open `editable_client.lua` using a text editor like Notepad++ or VS Code.

### **Step 2: Find the `ShowNotification` Function**

Search for this default notification function:

```lua
function ShowNotification(msg)
    SetNotificationTextEntry('STRING')
    AddTextComponentString(msg)
    DrawNotification(false, true)
end
```

### **Step 3: Integrate Your Custom Notification**

Replace the contents of the function with your custom notification script.\
For example, using `okokNotify`:

```lua
function ShowNotification(msg)
    exports['okokNotify']:Alert('Alert', msg, 3000, 'info', true)
end
```

Save the file after making changes.

### **Step 4: Test Your Integration**

* Restart your server.
* Perform any action that triggers a notification.
* Confirm that your custom notification is working in-game.

***

## **⚠️ Troubleshooting & Best Practices**

* **Notification Not Showing?**\
  Ensure the custom script is installed, started in `server.cfg`, and referenced properly.
* **Console Errors?**\
  Check the F8 client console or server logs for syntax or export-related errors.
* **Performance Issues?**\
  Optimize the custom script and test for any FPS drops or delays.
* **Make Backups:**\
  Always back up original files before editing them.
* **Check Docs:**\
  Refer to your custom notification script's documentation for detailed usage instructions.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rainmad.com/development-guide/how-to-integrate-your-custom-notification-script.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
