Skip to main content

Overview

The drink mixing system is Jill Stingray’s signature feature, allowing users to order drinks from two distinct menus:
  • VA-11 HALL-A Specials - Iconic cyberpunk drinks from the game
  • Classic Cocktails - Real-world recipes from TheCocktailDB
When you order a drink, Jill prepares it in real-time with dynamic status updates, ingredient lists, and beautiful presentation embeds.

Command Usage

Order a VA-11 HALL-A Special

/mix special name:<drink_name>
Features:
  • Autocomplete suggestions for all 27+ VA-11 HALL-A drinks
  • Animated preparation sequence
  • Full recipe display with ingredients
  • Drink images from the game
  • Flavor, type, and price information
/mix special name:Bad Touch
Response:
  1. [Order Received] One Bad Touch, coming up...
  2. [Preparing Bad Touch...] Adding 2 Bronson Extract...
  3. [Preparing Bad Touch...] Mixing ingredients...
  4. Final embed with drink details:
    • Flavor: Sour | Type: Classy | Price: $250
    • Description: “Sour, classy and vintage. We’re nothing but mammals.”
    • Recipe: Full ingredient list

Order a Classic Cocktail

/mix classic name:<cocktail_name>
Features:
  • Live search from TheCocktailDB API
  • Step-by-step mixing instructions
  • Natural language processing for continuous verb forms
  • High-resolution drink images
  • Randomized bartender quotes
/mix classic name:Margarita
Response:
  1. [Order Received] One Margarita, coming up...
  2. [Mixing Margarita...] Rubbing the rim of the glass with lime juice...
  3. [Mixing Margarita...] Mixing the rest...
  4. [Mixing Margarita...] Shaking and straining into a glass...
  5. Final embed with full recipe and “Enjoy.” or similar quote

VA-11 HALL-A Drink Database

The bot includes 27 canonical drinks from VA-11 HALL-A, organized by type:
  • Sugar Rush - Sweet, girly and happy ($150)
  • Sparkle Star - Sweet, girly and happy ($150)
  • Blue Fairy - Sweet, girly and soft ($170)
  • Sunshine Cloud - Bitter, girly and soft ($150)
  • Moonblast - Sweet, girly and happy ($180) Popular

Technical Implementation

Source Code Reference

The drink mixing system is implemented in /commands/mix.js:
// Drink data loaded from va11_drinks.json
const specials = JSON.parse(fs.readFileSync(dataPath, "utf8"));

// Autocomplete for VA-11 HALL-A drinks
if (sub.name === "special") {
  let allDrinks = Object.keys(specials);
  if (query) {
    allDrinks = allDrinks.filter((name) =>
      name.toLowerCase().includes(query)
    );
  }
  return interaction.acknowledge(suggestions);
}

Preparation Animation

When ordering a special, the bot uses staged message editing:
await interaction.editOriginalMessage({
  content: `**[Preparing ${drinkName}...]**\n*Adding ${drink.ingredients[0]}...*`,
});
await wait(2000);
await interaction.editOriginalMessage({
  content: `**[Preparing ${drinkName}...]**\n*Mixing ingredients...*`,
});
await wait(2000);

Grammar Processing

Classic cocktail instructions use natural language processing to convert verbs to continuous form:
function processGrammar(text) {
  const words = text.trim().split(" ");
  let conjugated = nlp(words[0]).verbs().toGerund().text();
  if (conjugated) conjugated = conjugated.replace(/^is\s+/i, "");
  return words.join(" ");
}
// "Pour gin" → "Pouring gin..."
Patron System Integration: Every drink order is logged to the patron system via logDrink(interaction.member.id, interaction.guildID, drinkName) for tracking user activity.

Example Drink Data Structure

From va11_drinks.json:
{
  "Bad Touch": {
    "flavor": "Sour",
    "type": "Classy",
    "price": "$250",
    "ingredients": [
      "2 Bronson Extract",
      "2 Powdered Delta",
      "2 Flanergide",
      "2 Karmotrine",
      "Ice"
    ],
    "description": "Sour, classy and vintage. We're nothing but mammals.",
    "image": "bad touch.png"
  }
}

Visual Experience

VA-11 HALL-A specials include custom drink images stored in /data/images/ that are dynamically loaded and attached to the embed response for an authentic cyberpunk bar experience.
Each drink presentation includes:
  • Color-coded embeds (pink for specials, cyan for classics)
  • Drink images or thumbnails
  • Formatted ingredient lists
  • Atmospheric quotes and descriptions
  • Footer attribution (“Va-11 Hall-A Special” or “Jill: ‘Quote’”)

Build docs developers (and LLMs) love