Kartik Scripts

Interactive Appliances & Bathing

Properties come alive with usable appliances and bathroom fixtures. Each interaction plays an animation, satisfies a need (hunger, thirst, stress) or transforms an item, and draws metered power and water that feeds into the property's utility bills.

Every appliance is a normal furniture prop placed with the Furniture Modeler. Its interaction is enabled by a feature tag on the furniture entry, so anything you place that is tagged as an appliance becomes usable automatically.


Metered-utility gating

The differentiator for appliances is that they respect the property's power and water state:

  • If the property's power is off (unpaid bill, tripped breaker), appliances refuse to run.
  • The washer additionally requires water to be on.
  • Each use adds metered units to the property's power_usage / water_usage, which are billed on the next utility cycle.

Appliances

ApplianceWhat it does
Coffee machineTwo-step brew → drink. Boosts thirst, relieves stress, and grants a short sprint-stamina buff.
Washer → DryerLaundry chain: wash a load (uses power and water), then dry it for a stress-relief bonus.
BBQ grillAn electric grill that cooks raw ingredients into food (server-validated, with a burn chance).
MicrowaveQuick reheat for a small hunger top-up.
TVToggle on/off for ambience.
FridgeOpens as a small stash for storing food and drink.

BBQ cooking

The BBQ transforms raw ingredients into cooked food server-side, so it can't be exploited from the client. Recipes are fully configurable, a recipe whose raw item you don't carry is simply hidden from the grill menu. Hunger is restored when the cooked item is eaten (via the item's own use-effect), not at cook time.


Bathing

Shower, bathtub, and sink fixtures let players clean up:

  • Shower / Bath: relieve stress, strip damage/blood/dirt, and consume water. Baths relieve more stress than showers.
  • Sink: a quick hand/face wash that cleans off damage for a small stress relief.

Bathing (and most appliance use) also accelerates property cleanliness decay, a busy household gets dirty faster.


Configuration

Appliances and bathing live in shared/config_bathing.lua.

Config.Appliances = {
    -- Electricity draw (metered units) added to power_usage per use
    DrawUnits = {
        coffee = 1, washer = 3, dryer = 2, bbq = 2, microwave = 1, tv = 2,
    },

    Coffee = { Duration = 6000, ThirstBoost = 25, RelieveStress = 15, StaminaBoostSeconds = 30, --[[ ... ]] },
    Washer = { Duration = 8000, WaterUnits = 2 },   -- laundry also consumes water
    Dryer  = { Duration = 8000, RelieveStress = 10 },
    BBQ    = {
        Duration = 10000,
        BurnedItem = 'burnt_food',
        -- Raw -> cooked transforms. Item names MUST match your inventory/framework.
        Recipes = {
            raw_meat    = { label = 'Raw Meat',    result = 'cooked_meat',    burnChance = 0.15 },
            raw_chicken = { label = 'Raw Chicken', result = 'cooked_chicken', burnChance = 0.15 },
            raw_fish    = { label = 'Raw Fish',    result = 'grilled_fish',   burnChance = 0.10 },
        },
    },
    Microwave = { Duration = 5000, RelieveHunger = 10 },
}

Config.Bathing = {
    UsageUnits = { shower = 3, bath = 5, sink = 1 }, -- water units per interaction
    Shower = { Duration = 12000, RemoveDamage = true, RelieveStress = 15, --[[ ... ]] },
    Bath   = { Duration = 12000, RemoveDamage = true, RelieveStress = 25, --[[ ... ]] },
    Sink   = { Duration = 5000,  RemoveDamage = true, RelieveStress = 5 },
}

Notes

  • BBQ recipe items (raw_meat, cooked_meat, etc.) and the fridge stash rely on items existing in your inventory/framework, a recipe whose raw item is undefined is hidden from the menu.
  • Appliances are data-driven, adding a new one is a furniture entry plus a small config/handler block; no NUI rebuild is required.
  • Metered power/water usage rolls up into the property's bill, see Utilities & Billing.

On this page