Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
ebac06a
Adds `Left Ctrl` + `Enter` keybind to MP Ped Customization Menu
cm8263 Nov 11, 2025
04a6f61
Adds `Left Ctrl` + `Enter` keybind to Player Appearance Menu
cm8263 Nov 11, 2025
54c184a
Update vMenu/menus/PlayerAppearance.cs
cm8263 Nov 11, 2025
0fef2fd
Added missing DrivingFlags (#545)
lkid73 Dec 12, 2025
a951752
Adds pattering matching to all `ItemData` usages
cm8263 Apr 3, 2026
9d3a697
Adds missing preference saving values for 3D MP Ped Preview
cm8263 Apr 3, 2026
0120c52
Refactor the UI drawable offset for MP Peds by +1
cm8263 Apr 3, 2026
af3366d
Adds explicit on/off button for overriding vehicle default radio
cm8263 Apr 3, 2026
7eddcf7
Fixes radio override not applying when veh spawned when already in a veh
cm8263 Apr 3, 2026
053010a
Apply suggestions from code review
cm8263 Apr 3, 2026
7e7c170
Revert "Refactor the UI drawable offset for MP Peds by +1"
cm8263 Apr 3, 2026
9201e8b
Adds support for custom blendable faces & granular face skin selection
cm8263 Apr 4, 2026
53eb652
Adds all known tattoos and badges up to 2026
cm8263 Apr 4, 2026
1d83112
Adds support for hair tattoos
cm8263 Apr 4, 2026
0001dcd
Adds support for custom tattoos
cm8263 Apr 4, 2026
4450d3a
Requested changes
cm8263 Apr 4, 2026
cf69204
Removes data export experimental feature
cm8263 Apr 4, 2026
eab59ad
Store prior ped drawable & prop when browsing ped collections
cm8263 Apr 4, 2026
196f81c
Update changelog format
TomGrobbe Apr 4, 2026
d07e6b4
Update pre-release changelog
TomGrobbe Apr 4, 2026
76e38bb
Include build number in GitHub release title for dev pre-releases
TomGrobbe Apr 4, 2026
9cc38dc
Fix version number in DLL
TomGrobbe Apr 4, 2026
684d082
Include fxmanifest.lua in the repo instead of downloading it on build…
TomGrobbe Apr 5, 2026
0649f13
Update fxmanifest fx_version to cerulean
TomGrobbe Apr 5, 2026
dafb498
Draft releases for development builds, instead of publishing automati…
TomGrobbe Apr 5, 2026
7afd637
Updated Data for DLC mp2025_02 (#552)
lkid73 Apr 5, 2026
6cd2bd2
Implement saving addon weapons to Weapon Loadouts (#604)
TomGrobbe Apr 5, 2026
9154152
Fixing a JSON crash on saved weapon loadout data (#551)
Gravxd Apr 5, 2026
195680f
Use globbing to include all JSON files from config
cm8263 Apr 6, 2026
73b6432
Updates comment for experimental features
cm8263 Apr 6, 2026
b0c56fe
Merge pull request #605 from TomGrobbe/feature/manifestUpdates
cm8263 Apr 6, 2026
cce10a6
Adds `tattoos.json` and `extra_blendable_faces` in `addons.json`
cm8263 Apr 6, 2026
c59fe65
Merge pull request #606 from TomGrobbe/feature/addMissingConfigs
cm8263 Apr 6, 2026
112c91c
feat(vehicle): overhaul paint/other rgb capable things and removed us…
RickyB505 Apr 6, 2026
bb8683c
Moves neon colors to VehicleData
cm8263 Apr 6, 2026
94c2eb5
Refactor statebag logic to use pattern matching
cm8263 Apr 6, 2026
484c72b
Removes unused lines
cm8263 Apr 6, 2026
44ff15c
Merge pull request #608 from RickyB505/development
cm8263 Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 52 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: CI/CD
on:
push:
branches:
- '**'
- "**"
pull_request:

permissions:
contents: write
Expand All @@ -29,10 +30,11 @@ jobs:
runs-on: windows-latest

outputs:
semver: ${{ steps.version.outputs.semver }}
tag: ${{ steps.version.outputs.tag }}
semver: ${{ steps.version.outputs.semver }}
assembly_ver: ${{ steps.version.outputs.assembly_ver }}
tag: ${{ steps.version.outputs.tag }}
is_prerelease: ${{ steps.version.outputs.is_prerelease }}
zip_name: ${{ steps.version.outputs.zip_name }}
zip_name: ${{ steps.version.outputs.zip_name }}

steps:
- name: Checkout
Expand All @@ -44,7 +46,7 @@ jobs:
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development'
uses: gittools/actions/gitversion/setup@v3.0.0
with:
versionSpec: '5.x'
versionSpec: "5.x"

- name: Execute GitVersion
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development'
Expand All @@ -57,24 +59,28 @@ jobs:
run: |
if [ "$GITHUB_REF" = "refs/heads/master" ]; then
SEMVER="${{ steps.gitversion.outputs.semVer }}"
ASSEMBLY_VER="${{ steps.gitversion.outputs.assemblySemVer }}"
TAG="v$SEMVER"
IS_PRERELEASE="false"
elif [ "$GITHUB_REF" = "refs/heads/development" ]; then
MMP="${{ steps.gitversion.outputs.majorMinorPatch }}"
SHORT_SHA="${{ steps.gitversion.outputs.shortSha }}"
SEMVER="${MMP}-dev-${SHORT_SHA}"
SEMVER="${MMP}-dev-${{ github.run_number }}-${SHORT_SHA}"
ASSEMBLY_VER="${{ steps.gitversion.outputs.assemblySemVer }}"
TAG="dev-v${SEMVER}"
IS_PRERELEASE="true"
else
SEMVER=""
ASSEMBLY_VER=""
TAG=""
IS_PRERELEASE="false"
fi
ZIP_NAME="vMenu-${SEMVER:-dev-${{ github.run_number }}}.zip"
echo "semver=$SEMVER" >> "$GITHUB_OUTPUT"
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
echo "semver=$SEMVER" >> "$GITHUB_OUTPUT"
echo "assembly_ver=$ASSEMBLY_VER" >> "$GITHUB_OUTPUT"
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
echo "is_prerelease=$IS_PRERELEASE" >> "$GITHUB_OUTPUT"
echo "zip_name=$ZIP_NAME" >> "$GITHUB_OUTPUT"
echo "zip_name=$ZIP_NAME" >> "$GITHUB_OUTPUT"

# ============================================================
# BUILD — runs on every branch
Expand All @@ -94,12 +100,22 @@ jobs:
run: dotnet restore vMenu.sln

- name: Build
run: dotnet build vMenu.sln -c Release --no-restore
shell: bash
run: |
SEMVER="${{ needs.version.outputs.semver }}"
ASSEMBLY_VER="${{ needs.version.outputs.assembly_ver }}"
if [ -n "$SEMVER" ] && [ -n "$ASSEMBLY_VER" ]; then
dotnet build vMenu.sln -c Release --no-restore \
-p:Version="$SEMVER" \
-p:AssemblyVersion="$ASSEMBLY_VER" \
-p:FileVersion="$ASSEMBLY_VER"
else
dotnet build vMenu.sln -c Release --no-restore
fi

- name: Download fxmanifest.lua
- name: Copy fxmanifest.lua
shell: pwsh
run: |
Invoke-WebRequest -OutFile 'build/vMenu/fxmanifest.lua' 'https://vespura.com/vmenu/fxmanifest.lua'
run: Copy-Item 'assets/fxmanifest.lua' 'build/vMenu/fxmanifest.lua' -Force

- name: Inject version into fxmanifest.lua
shell: pwsh
Expand Down Expand Up @@ -157,9 +173,9 @@ jobs:
run: |
LAST_TAG=$(git tag --sort=-version:refname | grep -v '^dev-' | head -n 1)
if [ -n "$LAST_TAG" ]; then
git log "$LAST_TAG..HEAD" --pretty=format:"- %s" --no-merges > changelog.txt
git log "$LAST_TAG..HEAD" --pretty=format:'- `%h` (%an) %s' > changelog.txt
else
git log --pretty=format:"- %s" --no-merges > changelog.txt
git log --pretty=format:'- `%h` (%an) %s' > changelog.txt
fi
echo "Changelog since: ${LAST_TAG:-<beginning>}"
cat changelog.txt
Expand All @@ -184,22 +200,34 @@ jobs:
TAG="${{ needs.version.outputs.tag }}"
IS_PRERELEASE="${{ needs.version.outputs.is_prerelease }}"

{
echo "vMenu release v${VERSION}."
echo ""
echo "## Changes"
cat changelog.txt
} > release_notes.md
if [ "$IS_PRERELEASE" = "true" ]; then
{
echo "vMenu pre-release v${VERSION}."
echo ""
echo "<details><summary>Changes since last full version release</summary>"
echo ""
cat changelog.txt
echo ""
echo "</details>"
} > release_notes.md
else
{
echo "vMenu release v${VERSION}."
echo ""
echo "## Changes"
cat changelog.txt
} > release_notes.md
fi

PRERELEASE_FLAG=""
EXTRA_FLAGS=""
if [ "$IS_PRERELEASE" = "true" ]; then
PRERELEASE_FLAG="--prerelease"
EXTRA_FLAGS="--prerelease --draft"
fi

RELEASE_URL=$(gh release create "$TAG" \
--title "vMenu $VERSION" \
--notes-file release_notes.md \
$PRERELEASE_FLAG \
$EXTRA_FLAGS \
"release-assets/${{ needs.version.outputs.zip_name }}")

echo "release_url=$RELEASE_URL" >> "$GITHUB_OUTPUT"
Expand Down
2 changes: 2 additions & 0 deletions SharedClasses/PermissionsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,8 @@ public enum Permission
WPHackingDevice,
// MP2024_01 DLC (V 3258)
WPStunRod,
// MP2025_02 DLC (V 3717)
WPNewspaper,
#endregion

// Weapon Loadouts Menu
Expand Down
27 changes: 27 additions & 0 deletions assets/fxmanifest.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-- Manifest data
fx_version 'cerulean'
games {'gta5'}

-- Resource stuff
name 'vMenu'
description 'Server sided trainer for FiveM with custom permissions, using a custom MenuAPI. More info can be found at www.vespura.com/fivem'
version 'versiongoeshere'
author 'Tom Grobbe'
url 'https://github.com/TomGrobbe/vMenu/'

-- Adds additional logging, useful when debugging issues.
client_debug_mode 'false'
server_debug_mode 'false'

-- Adds extra commands for testing and development
experimental_features_enabled '0'

-- Files & scripts
files {
'Newtonsoft.Json.dll',
'MenuAPI.dll',
'config/*.json'
}

client_script 'vMenuClient.net.dll'
server_script 'vMenuServer.net.dll'
Loading
Loading