Page cover

raindropsmad_goon

Lets players interact with AI concierges to get context-aware voice responses.


Introduction

Talk to your disturbingly affectionate AI assistant. They understand you. They compliment you. They watch you sleep.

💦 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.

circle-info

Please goon responsibly 💦


Preview


Philosophy

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.


How it works

  1. Player sends a message (e.g. "hey what's up")

  2. Text is tokenised and vectorised using TF-IDF

  3. Cosine similarity matches input against a topic corpus

  4. Weighted scoring selects the best voice bucket

  5. Native ambient speech plays the response


Features

  • 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


Interaction Methods

Interact with the AI in various ways:

Method
Requirements

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


Commands

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 the AI menu

/ai_random

Play a random speech from the AI


Dependencies


Developer API

View the developer documentation for usage, exports, and integration guides.


Speech Reference Spreadsheet

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 Speechesarrow-up-right


Debug

Debug prints utilise ox_lib printsarrow-up-right. To enable, enter in your console:

Replace debug with your desired print levelarrow-up-right.


Locale

Set your language in your server.cfg:

Replace en with your desired language. Refer to ISO 639arrow-up-right language codes.


Bridge System

The resource uses a modular bridge system for compatibility:

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.


Support

Check out other unique scripts on my Tebex, show your ❤️ by buying me a Ko-Fi, or join my Discord server for support:

Visit Tebex Storearrow-up-right Support me on Ko-fiarrow-up-right Join Discordarrow-up-right

Last updated