Skip to content

Releases: MSK-Scripts/msk_core

Update v3.0.0

02 Jun 15:15

Choose a tag to compare

🔧 msk_core — Compatibility Update

The latest version of msk_core is now compatible with all actively maintained MSK scripts.

📦 Scripts requiring an update

  • msk_garage — update available, please update before use
  • msk_vehiclekeys — update available, please update before use

✅ No update needed

  • msk_handcuffs — already fully compatible
  • msk_storage — already fully compatible

Please make sure to update msk_garage and msk_vehiclekeys before running them alongside the latest msk_core.

🛒 Get the latest versions at portal.cfx.re

Frontend

Major release — the NUI was rebuilt from scratch. All SendNUIMessage actions
and NUI callbacks are unchanged, so existing Lua integrations keep working.

🗑️ Removed — legacy html/ NUI (vanilla HTML/jQuery)

  • html/index.html, html/script.js (~363 lines of jQuery logic)
  • html/css/: import.css, main.css, notify.css, input.css, numpad.css, progressbar.css, textui.css

🏗️ Added — new web/ source (React 18 + Vite + TypeScript + Tailwind CSS v4)

  • Entry & app: web/src/main.tsx, web/src/App.tsx, web/src/index.css (MSK tokens via Tailwind @theme), web/src/types.ts, web/src/vite-env.d.ts
  • Components: components/NotifyStack.tsx, Input.tsx, Progressbar.tsx, Numpad.tsx, TextUI.tsx
  • NUI bridge: hooks/useNuiEvent.ts, lib/fetchNui.ts, lib/isEnvBrowser.ts
  • Helpers: lib/colorCodes.tsx (XSS-safe ~r~/~g~/~s~ parser), lib/sound.ts
  • Tooling config: web/package.json, web/package-lock.json, web/vite.config.ts, web/tsconfig.json, web/index.html, web/.gitignore

🎨 Redesign

  • Complete NUI rebuilt in the new MSK design (dark-themed, green accent #00E676)
  • Central design tokens via Tailwind @theme (colors, radii, shadows, animations) — no tailwind.config (CSS-first)
  • New typography: Syne (headlines), Space Mono (uppercase labels/codes), DM Sans (body)
  • All 5 UI components reworked: Notify, Input, Progressbar, Numpad, TextUI
  • Unified accent on notifications (icon, title & depleting bar instead of clashing accent bars)

📦 Assets & Offline

  • FontAwesome Free bundled locally (fa-solid-900, fa-regular-400, fa-brands-400, fa-v4compatibility) → no more CDN
  • All font families bundled as .woff2/.woff (Syne, Space Mono, DM Sans incl. latin-ext/greek/vietnamese subsets)
  • Sounds moved to web/public/sounds/ (notification.mp3, click.mp3)

🚀 Build & Integration

  • Built output committed under web/dist/ (index.html, assets/, sounds/) → server requires no npm/build step
  • Vite configured with base: './' (required for nui://), single-bundle output, fonts as separate hashed assets
  • fxmanifest.lua: ui_pageweb/dist/index.html, filesweb/dist/**/*

🎨 Default Colors (config.lua)

  • Config.NotifyTypes aligned to the MSK palette (success #00e676, warning #facc15, error #f43f5e, general #f0ede8, info #75d6ff)
  • Config.ProgressColor & Config.TextUIColor changed from #5eb131 to MSK green #00e676

🛠️ Developer Experience

  • web/src/dev/DevPanel.tsx — built-in panel to trigger/test all UI states in the browser (without FiveM)
  • web/src/dev/mock.tsGetParentResourceName stub for standalone development
  • npm run dev with HMR for fast styling iteration

⚠️ Compatibility

  • No breaking changes to the Lua-facing NUI API — all actions (notify, openInput, progressBarStart, openNumpad, textUI, …) and callbacks (submitInput, submitNumpad, closeInput, closeNumpad, progressEnd) are identical
  • When changing the UI, run npm run build in web/ and commit web/dist

Backend

Major release — full backend rewrite. Legacy export/function names are kept
via aliases.lua, but please test your scripts against this version.

🏗️ Architecture & Loader

  • Complete restructure to a modular layout: modules/<Name>/{client,server,shared}.lua (ox_lib-style lazy-loading via __index)
  • New bootstrap layer init/ (shared.lua, client.lua, server.lua) replacing the old client/main.lua & server/main.lua
  • Rewritten import.lua loader
  • New aliases.lua providing backwards-compatible export/function names
  • New bridge/shared.lua; framework bridges (ESX, QBCore, ox_core) refactored on both client and server

✨ New & Expanded Modules

  • Player is now available client and server-side (MSK.Player, identifiers, jobs, money, etc.)
  • Server-side callbacks added (modules/Callback/server.lua + shared) — full client⇄server callback system
  • Check module (version checker + dependency validation) — replaces legacy server/versionchecker.lua & version.lua
  • Society module (server) — society/job account handling
  • Offline module (server) — access to offline player data
  • World module (client + server)
  • Vehicle module gains a server side
  • UI modules can now be triggered from the server: Notify, Input, Numpad, Progress, TextUI, Coords each got a server.lua
  • New shared utility libraries: Math, String, Table, Timeout, Vector (expanded, moved out of the old flat shared/*), plus Call and Config

📦 Inventory

  • New unified hasItem handlers (client + server)
  • Inventory adapters reorganized under inventories/server/ (ox_inventory, core_inventory, jaksam_inventory, custom)
  • Removed legacy qs-inventory adapter (consolidated)

🗑️ Removed (Legacy)

  • Old flat client/, server/, shared/ file structure fully removed
  • Per-feature files (client/functions/*, server/functions/*) replaced by the new module system

⚙️ Config & Manifest

  • config.lua updated (notification types/colors, defaults aligned to the new MSK design)
  • fxmanifest.lua restructured — shared/client/server script globs adapted to the new module layout; bumped to version '3.0.0'

⚠️ Compatibility

  • Public MSK.* exports and exports('...') are preserved where possible; legacy names are mapped through aliases.lua
  • As this is a major version bump, validate custom integrations (especially anything relying on the old client/, server/, shared/ paths or removed qs-inventory adapter)

Full Changelog: v2.8.4...v3.0.0

Update v2.8.4

24 May 09:32
6d654bb

Choose a tag to compare

  • Replace Font Awesome CDN links with jsDelivr links

Update v2.8.3

27 Feb 18:36

Choose a tag to compare

  • Added Support for Jaksam_Inventory

Update v2.8.2

25 Feb 15:29

Choose a tag to compare

  • Fixed Error with MSK.GetPlayer()

Update v2.8.0

23 Nov 17:27

Choose a tag to compare

  • Changed folder structure
  • Rewritten framework bridge (documentation will be updated soon)
  • Added 'chat:removeSuggestion' for MSK.RegisterCommand if parameter showSuggestion is set to false
  • Fixed error on playerConnected on function GetPlayerDeath
  • Fixed error with core_inventory on function HasItem

Full Changelog: v2.7.4...v2.8.0

Update v2.7.4

17 Nov 12:44

Choose a tag to compare

Full Changelog: v2.7.3...v2.7.4

Update v2.7.3

16 Nov 13:36

Choose a tag to compare

  • Bugfixes for MSK.RegisterItem -> serverside
  • Added support for core_inventory -> (MSK.HasItem, etc.)
  • Added MSK.Scaleform.FreemodeMessage -> clientside & serverside
  • Added MSK.Scaleform.PopupWarning -> clientside & serverside
  • Added MSK.Scaleform.BreakingNews -> clientside & serverside
  • Added MSK.Scaleform.TrafficMovie -> clientside & serverside

Full Changelog: v2.7.2...v2.7.3

Update v2.7.2

03 Nov 19:46

Choose a tag to compare

Full Changelog: v2.7.1...v2.7.2

Update v2.7.1

28 Oct 09:06

Choose a tag to compare

  • Fixed function MSK.GetVehicleLabelFromModel
  • Added Config Option for AdvancedNotification
  • Added Config Option for HelpNotification
  • Added function/export MSK.RegisterItem [framework bridge] -> serverside

Full Changelog: v2.7.0...v2.7.1

Update v2.7.0

26 Oct 07:15

Choose a tag to compare

  • Some code improvements and removing of old exports
  • Added MSK.TextUI -> see Documentation!

Just added the following to config.lua

Config.TextUIColor = "#5eb131" -- Default Color for TextUI

Just changed the following in config.lua

-- OLD
Config.progressColor = "#5eb131" -- Default Color for ProgressBar

-- NEW
Config.ProgressColor = "#5eb131" -- Default Color for ProgressBar

Full Changelog: v2.6.8...v2.7.0