3M Christmas

Documentation

At documentation file you can search for guidelines, error fixes and find answers to your questions.

https://3m-studio.gitbook.io/3m-documentation/

3M Christmas Event – Global Tree, Advent Calendar & Santa Jobs 🎄

Bring a full seasonal progression event to your city with one plug-and-play resource. This script links a global Christmas Tree, server-wide XP, a daily advent calendar, Santa delivery missions, carryable gifts and cosmetic toys into one cohesive system.

Preview


Core Features

🌲 Global Christmas Tree progression

  • Central Christmas Tree with 5 visual stages based on global XP (thresholds & models are fully configurable). but we made custom Christmas tree for you  and livery for quest vehicle

  • Players earn Tree XP by turning in ornaments at the tree and completing Santa’s delivery quest.

  • Tree state (XP + stage) is stored in SQL (xmas_tree_progress) and synced to all players on join.


🎁 Ornament Hand-ins & Christmas Spirit

  • Configurable ornament items (xmas_ball, xmas_garland, xmas_star, santa_cookie, candy_cane, etc.), each giving different XP.

  • Per-player daily hand-in limit (e.g. 2 per day) with a debug toggle to disable limits.

  • The inventory bridge removes one valid ornament item, grants XP and sends a localized notification.


🎅 Santa Spots – carry & turn-in gifts

  • Multiple configurable Santa Spots, each with its own small tree and gift props around it.

  • Players pick up a physical present prop (custom 3m_xmas_gift model) and carry it in their hands.

  • Turning the gift in at the main tree rewards one random ornament from your ornament item pool, with a per-day limit tracked in SQL (last_spot_date, spot_count_today).


📅 Advent Calendar NUI (1–25)

  • Clean, animated calendar UI with locked / available / claimed states and a legend.

  • Server-side tracking of daily claims in SQL (calendar_claims) to prevent abuse and support reconnects.

  • Fully configurable rewards per day via Config.CalendarRewards (items and money).

  • Each day is gated by a Calendar Key item (e.g. xmas_key) so you decide how players unlock the window (from this script’s quest or your own systems).


🚚 Santa Delivery Quest (NPC + van + 5 drops)

  • Talk to a themed NPC to start a delivery job with a configurable model & spawn/return coordinates.

  • 5 configurable delivery points with blips, on-screen hints and a simple “take from van → carry → deliver → repeat” flow.

  • Return the van to finish the job. On success the player receives:

    • Global Tree XP (Config.Quest.TreeXP) and personal XP.

    • Configurable item rewards (RewardItems – ornaments, snowballs, cookies, etc.).

    • Configurable chance to receive an Advent Calendar key (KeyReward).

  • One quest per player per day, with automatic reset via date checks in the database.


⛄ Placeable Toys (snowball → snowman & more)

  • Turn any item into a placeable world prop (example included: snowball → snowman).

  • Interactive placement preview:

    • Move with arrow keys, rotate (Q/R), raise/lower (PageUp/PageDown).

  • Server-safe logic with anti-duplication:

    • Item is removed on spawn, refunded on cancel, and can be picked back up from the world to reclaim the item.


🧸 Shoulder Plush Toys (ped toys)

  • Configurable Config.PedToys list using GTA arcade plush models (several examples included).

  • Items behave as non-consumable toggles:

    • Use item → attach plush to the player’s shoulder bone.

    • Use the same item again → detach it.

    • Using a different plush while one is active just shows a notification (no stacking / duplication).

  • Per-toy bone, offset and rotation are editable so you can fit any model perfectly.


❄️ Automatic Christmas Weather Lock (optional)

  • Can lock the server to XMAS weather (or any GTA weather) during the event window.

  • Auto-detects cd_easytime or qb-weathersync, or falls back to an internal mode.

  • Configurable: time freeze, dynamic weather toggle, blackout, server/client reapply intervals.


Framework, Inventory & Integration

Frameworks:

  • ESX and QBCore auto-detected via a shared Framework bridge.

Inventory:

  • Native ESX inventory / QBCore inventory.

  • ox_inventory support.

  • qb-inventory support.

Target systems:

  • ox_target and qb-target supported through Target abstraction (entities & zones).

Vehicle keys:

  • Supports wasabi_carlock, qb-vehiclekeys, qs-vehiclekeys, brutal_keys or none (no key handling).

Notifications:

  • ESX default, QBCore, ox_lib, wasabi_notify, okokNotify – switchable via Config.Notify.provider.


Configuration & Locales

  • Single config.lua controlling:

    • Event date window (e.g. 1–25 December) and ForceActive debug toggle.

    • Tree location & stages, Santa Spot locations & props, quest NPC & van settings.

    • Ornament items, Advent Calendar rewards, XP values and daily limits.

    • Keys, notification provider, weather provider and more.

  • Locales included: English and Croatian, using a simple locale helper so you can add more languages easily.

  • Progress and limits are stored in lightweight SQL tables (xmas_players, xmas_tree_progress) via oxmysql, making the whole system safe, persistent and multiplayer-friendly.


Drop this resource into your server and you get a full interconnected Christmas experience: a global tree everyone helps level up, daily calendar rewards, engaging Santa jobs, fun world toys and shoulder plushies that keep players coming back throughout the season.