Releases: MSK-Scripts/msk_core
Update v3.0.0
🔧 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 usemsk_vehiclekeys— update available, please update before use
✅ No update needed
msk_handcuffs— already fully compatiblemsk_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
SendNUIMessageactions
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) — notailwind.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 fornui://), single-bundle output, fonts as separate hashed assets fxmanifest.lua:ui_page→web/dist/index.html,files→web/dist/**/*
🎨 Default Colors (config.lua)
Config.NotifyTypesaligned to the MSK palette (success#00e676, warning#facc15, error#f43f5e, general#f0ede8, info#75d6ff)Config.ProgressColor&Config.TextUIColorchanged from#5eb131to 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.ts—GetParentResourceNamestub for standalone developmentnpm run devwith 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 buildinweb/and commitweb/dist
Backend
Major release — full backend rewrite. Legacy export/function names are kept
viaaliases.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 oldclient/main.lua&server/main.lua - Rewritten
import.lualoader - New
aliases.luaproviding 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,Coordseach got aserver.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
hasItemhandlers (client + server) - Inventory adapters reorganized under
inventories/server/(ox_inventory, core_inventory, jaksam_inventory, custom) - Removed legacy
qs-inventoryadapter (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.luaupdated (notification types/colors, defaults aligned to the new MSK design)fxmanifest.luarestructured — shared/client/server script globs adapted to the new module layout; bumped toversion '3.0.0'
⚠️ Compatibility
- Public
MSK.*exports andexports('...')are preserved where possible; legacy names are mapped throughaliases.lua - As this is a major version bump, validate custom integrations (especially anything relying on the old
client/,server/,shared/paths or removedqs-inventoryadapter)
Full Changelog: v2.8.4...v3.0.0
Update v2.8.4
- Replace Font Awesome CDN links with jsDelivr links
Update v2.8.3
- Added Support for Jaksam_Inventory
Update v2.8.2
- Fixed Error with
MSK.GetPlayer()
Update v2.8.0
- Changed folder structure
- Rewritten framework bridge (documentation will be updated soon)
- Added
'chat:removeSuggestion'for MSK.RegisterCommand if parametershowSuggestionis 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
- Added new Feature for MSK.Player
Full Changelog: v2.7.3...v2.7.4
Update v2.7.3
- 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
Full Changelog: v2.7.1...v2.7.2
Update v2.7.1
- 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
- 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 TextUIJust changed the following in config.lua
-- OLD
Config.progressColor = "#5eb131" -- Default Color for ProgressBar
-- NEW
Config.ProgressColor = "#5eb131" -- Default Color for ProgressBarFull Changelog: v2.6.8...v2.7.0