Skip to content

Commit 6637e60

Browse files
committed
initial
1 parent 017f94b commit 6637e60

37 files changed

Lines changed: 4714 additions & 138 deletions

.gitignore

Lines changed: 2 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,3 @@
1-
# Logs
2-
logs
3-
*.log
4-
npm-debug.log*
5-
yarn-debug.log*
6-
yarn-error.log*
7-
lerna-debug.log*
8-
9-
# Diagnostic reports (https://nodejs.org/api/report.html)
10-
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11-
12-
# Runtime data
13-
pids
14-
*.pid
15-
*.seed
16-
*.pid.lock
17-
18-
# Directory for instrumented libs generated by jscoverage/JSCover
19-
lib-cov
20-
21-
# Coverage directory used by tools like istanbul
22-
coverage
23-
*.lcov
24-
25-
# nyc test coverage
26-
.nyc_output
27-
28-
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29-
.grunt
30-
31-
# Bower dependency directory (https://bower.io/)
32-
bower_components
33-
34-
# node-waf configuration
35-
.lock-wscript
36-
37-
# Compiled binary addons (https://nodejs.org/api/addons.html)
38-
build/Release
39-
401
# Dependency directories
41-
node_modules/
42-
jspm_packages/
43-
44-
# Snowpack dependency directory (https://snowpack.dev/)
45-
web_modules/
46-
47-
# TypeScript cache
48-
*.tsbuildinfo
49-
50-
# Optional npm cache directory
51-
.npm
52-
53-
# Optional eslint cache
54-
.eslintcache
55-
56-
# Optional stylelint cache
57-
.stylelintcache
58-
59-
# Optional REPL history
60-
.node_repl_history
61-
62-
# Output of 'npm pack'
63-
*.tgz
64-
65-
# Yarn Integrity file
66-
.yarn-integrity
67-
68-
# dotenv environment variable files
69-
.env
70-
.env.*
71-
!.env.example
72-
73-
# parcel-bundler cache (https://parceljs.org/)
74-
.cache
75-
.parcel-cache
76-
77-
# Next.js build output
78-
.next
79-
out
80-
81-
# Nuxt.js build / generate output
82-
.nuxt
83-
dist
84-
85-
# Gatsby files
86-
.cache/
87-
# Comment in the public line in if your project uses Gatsby and not Next.js
88-
# https://nextjs.org/blog/next-9-1#public-directory-support
89-
# public
90-
91-
# vuepress build output
92-
.vuepress/dist
93-
94-
# vuepress v2.x temp and cache directory
95-
.temp
96-
.cache
97-
98-
# Sveltekit cache directory
99-
.svelte-kit/
100-
101-
# vitepress build output
102-
**/.vitepress/dist
103-
104-
# vitepress cache directory
105-
**/.vitepress/cache
106-
107-
# Docusaurus cache and generated files
108-
.docusaurus
109-
110-
# Serverless directories
111-
.serverless/
112-
113-
# FuseBox cache
114-
.fusebox/
115-
116-
# DynamoDB Local files
117-
.dynamodb/
118-
119-
# Firebase cache directory
120-
.firebase/
121-
122-
# TernJS port file
123-
.tern-port
124-
125-
# Stores VSCode versions used for testing VSCode extensions
126-
.vscode-test
127-
128-
# yarn v3
129-
.pnp.*
130-
.yarn/*
131-
!.yarn/patches
132-
!.yarn/plugins
133-
!.yarn/releases
134-
!.yarn/sdks
135-
!.yarn/versions
136-
137-
# Vite logs files
138-
vite.config.js.timestamp-*
139-
vite.config.ts.timestamp-*
2+
node_modules
3+
.vscode

README.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# RxNotify
2+
3+
A modern, feature-rich notification system for FiveM with confetti effects, 8 position options, and full customization. Built with Vue 3, Tailwind CSS, and designed for optimal performance.
4+
5+
![](https://img.shields.io/github/downloads/rxscripts/RxNotify/total?logo=github)
6+
![](https://img.shields.io/github/stars/rxscripts/RxNotify?logo=github)
7+
8+
## [Download](https://github.com/rxscripts/RxNotify/releases/latest/download/RxNotify.zip)
9+
10+
## ✨ Features
11+
- **4 Notification Types**: Success, Error, Warning, Info with distinct colors and icons
12+
- **8 Position Options**: Top-left, top-center, top-right, left-center, right-center, bottom-left, bottom-center, bottom-right
13+
- **Confetti Effects**: Celebratory confetti animations for special moments
14+
- **Custom Positioning**: Override default position per-notification
15+
- **Default Titles**: Automatic titles when none provided (configurable)
16+
- **Modern Design**: Dark slate theme with Kanit font and smooth animations
17+
- **Position-Aware Animations**: Notifications slide from their screen positions
18+
- **Progress Bar**: Visual timer that shrinks toward exit direction
19+
- **Framework Integration**: Optional ESX, QBCore, and QBox integration
20+
- **Emoji Support**: Full support for emojis in titles and text
21+
- **Fully Customizable**: All colors, durations, and positions configurable
22+
23+
## ⚠️ Dependencies
24+
None! RxNotify is standalone and framework-independent.
25+
26+
**Optional**: For framework integration, you can use ESX, QBCore, or QBox (files included in `[INSTALLATION]` folder)
27+
28+
## 🖥️ Installation
29+
1. Download the latest release of `RxNotify`
30+
2. Extract the zipped folder into your servers main `resources` directory
31+
3. Add `ensure RxNotify` in your `server.cfg` file
32+
4. *(Optional)* For framework integration, see the `[INSTALLATION]` folder README
33+
5. Restart your server & enjoy!
34+
35+
### Framework Integration (Optional)
36+
If you want RxNotify to replace your framework's default notifications:
37+
38+
#### ESX
39+
1. Copy `[INSTALLATION]/ESX/rxnotify.lua` to your `es_extended` folder
40+
2. Add `client_script 'rxnotify.lua'` at the **bottom** of `es_extended/fxmanifest.lua`
41+
3. Restart your server
42+
43+
#### QBCore
44+
1. Copy `[INSTALLATION]/QBCore/rxnotify.lua` to your `qb-core` folder
45+
2. Add `client_script 'rxnotify.lua'` at the **bottom** of `qb-core/fxmanifest.lua`
46+
3. Restart your server
47+
48+
#### QBox
49+
1. Copy `[INSTALLATION]/QBox/rxnotify.lua` to your `qbx_core` folder
50+
2. Add `client_script 'rxnotify.lua'` at the **bottom** of `qbx_core/fxmanifest.lua`
51+
3. Restart your server
52+
53+
## 📚 Documentation
54+
Full documentation available at: [RX Scripts Docs](https://docs.rxscripts.xyz/scripts/free/notify)
55+
56+
### Client Exports
57+
```lua
58+
exports['RxNotify']:Notify(title, text, type, length, options)
59+
```
60+
61+
**Parameters:**
62+
- `title` (string): Notification title (nil for default title)
63+
- `text` (string): Message text
64+
- `type` (string): 'success', 'error', 'warn', or 'info' (default: 'info')
65+
- `length` (number): Duration in milliseconds (default: 3000)
66+
- `options` (table): Optional settings
67+
- `confetti` (boolean): Trigger confetti effect
68+
- `position` (string): Override default position ('tl', 'tc', 'tr', 'lc', 'rc', 'bl', 'bc', 'br')
69+
70+
**Examples:**
71+
```lua
72+
-- Basic notification
73+
exports['RxNotify']:Notify("Success", "Action completed!", "success")
74+
75+
-- With confetti
76+
exports['RxNotify']:Notify("Achievement!", "You did it!", "success", 5000, { confetti = true })
77+
78+
-- Custom position
79+
exports['RxNotify']:Notify("Alert", "Check here!", "info", 4000, { position = 'tr' })
80+
81+
-- Confetti + position
82+
exports['RxNotify']:Notify("Party!", "Celebration!", "success", 6000, {
83+
confetti = true,
84+
position = 'tc'
85+
})
86+
```
87+
88+
### Server Events
89+
```lua
90+
TriggerClientEvent('RxNotify:Notify', source, title, text, type, length, options)
91+
```
92+
93+
## 🎨 Configuration
94+
All settings are in `config.lua`:
95+
- Default position (8 options)
96+
- Default duration
97+
- Default titles per type
98+
- Full color customization (background, text, accent colors)
99+
100+
## ℹ️ Support
101+
If you have any suggestions for new features, discovered a bug or having a problem with the script, feel free to contact us at anytime via:
102+
* [Discord](https://discord.gg/rxscripts)
103+
104+
## ⭐ Take a look at our other products!
105+
### General
106+
* [Advanced Housing](https://store.rxscripts.xyz/scripts/advanced-housing?utm_source=github&utm_medium=free-script)
107+
* [Advanced Banking](https://store.rxscripts.xyz/scripts/advanced-banking?utm_source=github&utm_medium=free-script)
108+
* [Advanced Garages](https://store.rxscripts.xyz/scripts/advanced-garages?utm_source=github&utm_medium=free-script)
109+
* [Advanced Reports](https://store.rxscripts.xyz/scripts/advanced-reports?utm_source=github&utm_medium=free-script)
110+
* [Black Markets](https://store.rxscripts.xyz/scripts/black-markets?utm_source=github&utm_medium=free-script)
111+
* [Loading Screen](https://store.rxscripts.xyz/scripts/loading-screen?utm_source=github&utm_medium=free-script)
112+
* [Gang Wars](https://store.rxscripts.xyz/scripts/gang-wars?utm_source=github&utm_medium=free-script)
113+
### Activities
114+
* [Advanced Hunting](https://store.rxscripts.xyz/scripts/advanced-hunting?utm_source=github&utm_medium=free-script)
115+
* [Advanced Mining](https://store.rxscripts.xyz/scripts/advanced-mining?utm_source=github&utm_medium=free-script)
116+
* [Advanced Fishing](https://store.rxscripts.xyz/scripts/advanced-fishing?utm_source=github&utm_medium=free-script)
117+
* [Advanced Drug Labs](https://store.rxscripts.xyz/scripts/advanced-drug-labs?utm_source=github&utm_medium=free-script)
118+
* [Advanced Plantation](https://store.rxscripts.xyz/scripts/advanced-plantation?utm_source=github&utm_medium=free-script)
119+
* [Advanced Player Stores](https://store.rxscripts.xyz/scripts/advanced-player-stores?utm_source=github&utm_medium=free-script)
120+
### Survival
121+
* [Recyclers](https://store.rxscripts.xyz/scripts/recyclers?utm_source=github&utm_medium=free-script)
122+
* [Smelters](https://store.rxscripts.xyz/scripts/smelters?utm_source=github&utm_medium=free-script)
123+
* [Crates & Storages](https://store.rxscripts.xyz/scripts/crates-storages?utm_source=github&utm_medium=free-script)
124+
* [Death System](https://store.rxscripts.xyz/scripts/death-system?utm_source=github&utm_medium=free-script)
125+
* [Hazard Zones](https://store.rxscripts.xyz/scripts/hazard-zones?utm_source=github&utm_medium=free-script)
126+
* [Chopshop](https://store.rxscripts.xyz/scripts/chopshop?utm_source=github&utm_medium=free-script)
127+
128+
## Previews
129+
![Notifications](img/notifications.png)

[INSTALLATION]/ESX/rxnotify.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- RxNotify Override for ESX
2+
3+
local originalShowNotification = ESX.ShowNotification
4+
ESX.ShowNotification = function(message, notifyType, length)
5+
if GetResourceState("RxNotify") == "started" then
6+
exports["RxNotify"]:Notify(nil, message, notifyType, length)
7+
else
8+
originalShowNotification(message, notifyType, length)
9+
end
10+
end

[INSTALLATION]/QBCore/rxnotify.lua

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-- RxNotify Override for QBCore
2+
3+
local originalNotify = QBCore.Functions.Notify
4+
QBCore.Functions.Notify = function(text, texttype, length)
5+
if GetResourceState("RxNotify") == "started" then
6+
local msg = text
7+
local title = nil
8+
9+
if type(text) == 'table' then
10+
msg = text.text or text.caption or ''
11+
title = text.title
12+
end
13+
14+
local notifyType = texttype or 'info'
15+
if notifyType == 'primary' then notifyType = 'info' end
16+
if notifyType == 'warning' then notifyType = 'warn' end
17+
18+
exports["RxNotify"]:Notify(title, msg, notifyType, length)
19+
else
20+
originalNotify(text, texttype, length)
21+
end
22+
end

[INSTALLATION]/QBox/rxnotify.lua

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
-- RxNotify Override for QBox
2+
3+
if _G.Notify then
4+
local originalNotify = _G.Notify
5+
_G.Notify = function(text, texttype, length)
6+
if GetResourceState("RxNotify") == "started" then
7+
local msg = text
8+
local title = nil
9+
10+
if type(text) == 'table' then
11+
msg = text.text or text.caption or ''
12+
title = text.title
13+
end
14+
15+
local notifyType = texttype or 'info'
16+
if notifyType == 'primary' then notifyType = 'info' end
17+
if notifyType == 'warning' then notifyType = 'warn' end
18+
19+
exports["RxNotify"]:Notify(title, msg, notifyType, length)
20+
else
21+
originalNotify(text, texttype, length)
22+
end
23+
end
24+
end

[INSTALLATION]/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# RxNotify Framework Installation
2+
3+
To integrate RxNotify with your framework, follow these steps:
4+
5+
## ESX Installation
6+
7+
1. Copy the file `ESX/rxnotify.lua` to your `es_extended` resource folder
8+
2. Open `es_extended/fxmanifest.lua`
9+
3. Add the following line at the **bottom** of the file (to ensure it loads last):
10+
```lua
11+
client_script 'rxnotify.lua'
12+
```
13+
4. Restart your server.
14+
15+
## QBCore Installation
16+
17+
1. Copy the file `QBCore/rxnotify.lua` to your `qb-core` resource folder
18+
2. Open `qb-core/fxmanifest.lua`
19+
3. Add the following line at the **bottom** of the file (to ensure it loads last):
20+
```lua
21+
client_script 'rxnotify.lua'
22+
```
23+
4. Restart your server.
24+
25+
## QBox Installation
26+
27+
1. Copy the file `QBox/rxnotify.lua` to your `qbx_core` (or `qbx-core`) resource folder
28+
2. Open `qbx_core/fxmanifest.lua`
29+
3. Add the following line at the **bottom** of the file (to ensure it loads last):
30+
```lua
31+
client_script 'rxnotify.lua'
32+
```
33+
4. Restart your server.
34+
35+
---
36+
37+
**Important:** Make sure to add the `client_script` line at the **bottom** of the fxmanifest.lua file so it loads after all other client scripts and properly overrides the framework's notification functions.
38+
39+
After installation, all framework notifications will automatically use RxNotify!

0 commit comments

Comments
 (0)