Talk to your disturbingly affectionate AI assistant.
They understand you. They compliment you. They watch you sleep.
Preview • Philosophy • How It Works • Features • Interaction Methods • Dependencies • Documentation • Speech Reference Spreadsheet • Debug • Locale • Bridge System • Support • License
mad_goon lets players interact with the Prix Luxury AI Concierge voices from GTA Online's Safehouse in the Hills DLC. Type something, and Angel (or Haviland, or OG) responds with semantic matching voice lines - fully offline, no external APIs.
mad_goon was built as an exploration into headless, local semantic interpretation; the kind of language processing that existed before large-scale AI services became the default solution.
While modern AI APIs can solve this problem more effectively, they also introduce external dependencies, ongoing costs, latency, and privacy considerations. This project deliberately avoids those trade-offs by remaining entirely offline and self-contained. The goal is not to compete with modern AI, but to understand and apply classical NLP techniques in a practical, game-focused context.
It's what was cool before ChatGPT made everyone forget that maths could do this too.
- Player sends a message (e.g.
"hey what's up") - Text is tokenised and vectorised using TF-IDF
- Cosine similarity matches input against a topic corpus
- Weighted scoring selects the best voice bucket
- Native ambient speech plays the response
- Semantic Matching - Uses natural language processing to understand player input and selects a fitting response
- Fully Offline - No external API calls, no cloud dependencies
- Context-Aware - Time of day and player state influence responses
- Networked Sounds - Audio playback is synced to nearby players
- Gendered Addressals - Auto-detects ped gender, with manual override
- Multiple Personas - Switch between Angel, Haviland, and OG
- Dynamic Objects - Easily add interactive objects that auto-updates models when changing AI characters
- Customisable Themes - Theme system for colours and icons across UIs
- Developer API - Exports for integration with other resources
- Logging - Player messages and identifiers can be logged to Discord
Interact with the AI in various ways:
| Method | Requirements |
|---|---|
| Target | ox_target |
| Menu | ox_lib |
| Commands | Built-in |
All methods allow you to:
- Send a message and get a response
- Select the AI persona to use
- Select your preferred addressal
- Get a random message from your AI
| Command | Description | Arguments |
|---|---|---|
/ai_talk |
Talk to the AI | message |
/ai_select |
Choose persona | angel / haviland / og |
/ai_callme |
Set addressal | male / female |
/ai_menu |
Open AI menu | |
/ai_random |
Play a random speech from the AI |
Refer to the documentation for usage, exports, and integration guides.
You can find a comprehensive spreadsheet of all Prix Luxury AI Concierge speeches in the docs directory:
Each speech entry includes:
- Base ID
- Suffix ID
- Unique ID
- Gender
- Transcript
View Online: Google Sheets - Prix Luxury AI Concierge Speeches
Debug prints utilise ox_lib prints. To enable, enter in your console:
set ox:printlevel debug
Replace debug with your desired print level.
Set your language in your server.cfg:
setr ox:locale en
Replace en with your desired language. Refer to ISO 639 language codes.
The resource uses a modular bridge system for compatibility:
- Notification Bridge: ox_lib, qb-core, mad-thoughts, custom
- Target Bridge: ox_target, custom
- Menu Bridge: ox_lib, custom
All bridges auto-detect and load the appropriate implementation based on the active resources on your server. The notification and menu resources to use can be set in the client config. The bridge system is designed for easy expansion - custom bridges can be added to support other resources as needed.
Check out other unique scripts on my Tebex, show your ❤️ by buying me a Ko-Fi, or join my Discord server for support:





