Configuration

All options are in config.lua.

Below is a structured overview of the main sections.


Locale & Notifications

Config.Locale

  • Type: string

  • Default: 'hr'

  • Description: Current language key used for Locales[...].

    • Provided: en, hr

    • You can add more by creating locales/<lang>.lua and adding Locales['<lang>'] = { ... }.


Config.Notify

Config.Notify = {
    provider = 'okok' -- 'esx', 'qb', 'ox', 'wasabi', 'okok'
}
  • Selects which notify system Notify() will use.

  • See Developer API for details: https://3mstudio.github.io/3MStudioDocs/3M_Christmas/Developers.html#notify-export


Debug

  • present

    • When true, daily limits for Santa spot rewards are disabled. Helpful for testing spots & drops.

  • ForceActive

    • When true, event is considered active regardless of Config.TimeWindow. Use this for testing outside the configured date range.


Event Window & Calendar

Config.CalendarKeyItem

  • Name of the inventory item that unlocks the calendar window for the current day.


Config.TimeWindow

  • Controls which real-world dates count as “event days” (1..N).

  • Used for:

    • Advent Calendar day index

    • Per-day quest completion

    • Key reward uniqueness


Weather Lock

  • enabled: master on/off for weather lock.

  • provider:

    • auto – auto-detect cd_easytime or qb-weathersync, otherwise internal fallback.

    • cd_easytime – force that provider.

    • qb-weathersync – force that provider.

    • none – no automatic weather control.

  • weatherType: weather name set during event (e.g. XMAS, SNOW).

  • freezeTime, dynamicWeather, blackout: passed to provider when supported.

  • pollInterval: how often the server re-checks whether the event should be active.

  • clientReapply: how often clients reapply weather/time locally.


Vehicle Keys for Quest Van

  • provider:

    • none – no external key system is used.

    • wasabiwasabi_carlock.

    • qsqs-vehiclekeys.

    • qbqb-vehiclekeys.

    • brutalbrutal_keys.

  • label: used only for some key systems (e.g. brutal_keys) as display name.


Global Tree

  • coords: position and heading of the main tree.

  • stages: list of XP thresholds and tree models.

    • The highest xp that is <= current tree XP defines the active stage.

    • You can use different models for each stage.


Donations & Santa Spots

  • Config.DonationsPerDay: Max donation actions per player per day at the main tree.

  • Config.SantaSpotDailyLimit: Max number of items rewarded per player per day from Santa spots.

  • Config.CarryGiftModel: Prop model used when carrying gifts picked from Santa spots.


Config.SantaSpots

  • Each entry defines one Santa spot:

    • id: unique identifier (string). If omitted, auto-generated.

    • tree: small decorative tree:

      • coords: position/heading.

      • model: object name.

    • gifts: list of gift props around the tree:

      • coords: where each gift sits.

      • model: usually 3m_xmas_gift.

Players can pick up these gifts and carry them to the main tree to receive a random ornament.


Toys (placeable props)

  • Map inventory item names to world props.

  • Fields:

    • prop: model name to spawn.

    • spawnDistance: distance in front of player to spawn.

    • faceAway: if true, prop faces away from player.

    • headingOffset: rotation offset.

    • zOffset: vertical offset.

    • interactive:

      • true – use preview/placement mode (arrows + Q/R + PageUp/PageDown).

      • false – spawn directly.

You can add as many entries as you want.


Ped Toys (shoulder plushes)

  • Each key is an item name which toggles a plush on the player’s shoulder.

  • Fields:

    • prop: model name.

    • bone: ped bone index (e.g. 10706 = shoulder).

    • offset: vector3 position offset.

    • rotation: vector3 rotation.

Logic:

  • No toy → use item → attach.

  • Same toy active → use item → detach.

  • Different toy active → show notification (no swap).


Santa Delivery Quest

  • enabled: master on/off.

  • NPC: quest giver ped.

  • Vehicle:

    • model: van model.

    • coords: spawn position.

    • returnCoords, returnRadius: where the player must return the van.

  • TreeXP: how much global tree XP to add when quest is completed.

  • RewardItems: random item rewards for the player.

  • KeyReward:

    • item: calendar key item.

    • chance: % chance to also give a key on completion.

  • Deliveries: positions and radius for each drop-off.


Donation Items

  • Keys are item names, values define how much XP they give to the global tree.

  • Used when the player chooses Donate ornaments on the main tree.

  • You can modify, add or remove entries freely.


Calendar Rewards

  • Indexed by event day (1 = first day of Config.TimeWindow.start).

  • Each entry:

    • items – array of { name = <itemName>, count = <number> }

    • The special "money" name pays cash (through Framework.AddMoney).

You can fully customize this table to match your economy and item set.