{"id":"xsyrei/notification-service","name":"notification-service","scope":"xsyrei","platform":"roblox","description":"Server-authoritative player notifications with typewriter and fade effects","version":"0.8.0","latest":"0.8.0","versions":["0.7.0","0.8.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"75ad311054b0f0314ffd3447f6ee8ad1234f0040d26981c4527e623c68d32415","likes":0,"downloads":0,"install":"forest install xsyrei/notification-service","url":"https://forest.dev/p/roblox/xsyrei/notification-service","files":"https://api.forest.dev/ai/package/roblox/xsyrei/notification-service/files","readme":"# NotificationService\n\nServer-authoritative player notifications with fade in/out and typewriter text.\n\n## Install\n\n```toml\n[dependencies]\nNotificationService = \"xsyrei/notification-service@0.8.0\"\n```\n\n```bash\nwally install\n```\n\nMap packages into your place (Rojo):\n\n```json\n\"ReplicatedStorage\": {\n  \"Packages\": {\n    \"$path\": \"Packages\"\n  }\n}\n```\n\n## Setup\n\nRequire once at startup on **both** server and client:\n\n```luau\nlocal NotificationService = require(ReplicatedStorage.Packages.NotificationService)\n```\n\n`init.lua` loads `ServerValidation` on the server and `ClientValidation` on the client.\n\n## Usage\n\n```luau\n-- Server only\nlocal NotificationService = require(ReplicatedStorage.Packages.NotificationService)\n\nNotificationService.deployMessage(player, \"Hello!\", Color3.fromRGB(255, 80, 80))\nNotificationService.deployMessage(player, \"Welcome\", Color3.fromRGB(50, 200, 80), 5)\n```\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `player` | `Player` | Target client |\n| `message` | `string` | Notification text (max 200 chars) |\n| `color` | `Color3` | Frame background color |\n| `duration` | `number?` | Seconds to hold after typewriter in (default `3`) |\n\n## Package contents\n\n```\nsrc/\n  init.lua              -- entry point\n  Constants.lua\n  ServerValidation.lua  -- server API\n  ClientValidation.lua  -- client UI + remote listener\ndefault.project.json\n```\n","readmeTruncated":false}