diff --git a/.gitea/workflows/unreal-build.yml b/.gitea/workflows/unreal-build.yml
index 834d9f1b..43d20218 100644
--- a/.gitea/workflows/unreal-build.yml
+++ b/.gitea/workflows/unreal-build.yml
@@ -3,52 +3,10 @@ name: Unreal Engine Build
 on:
   push:
     branches: [ main, develop ]
-  pull_request:
-    branches: [ main, develop ]
 
 jobs:
-  # windows-build:
-  #   runs-on: windows
-  #   steps:
-  #     - name: Checkout repository
-  #       uses: actions/checkout@v3
-  #       with:
-  #         lfs: true
-  #         fetch-depth: 0  # Get all history to properly handle UE dependencies
-      
-  #     - name: Setup Unreal Engine
-  #       run: |
-  #         # Ensure Unreal Engine is installed and set up
-  #         # This assumes you have Unreal Engine installed on your runner
-  #         # If not, you can add installation steps here
-          
-  #         # Set environment variables for Unreal Engine
-  #         echo "UE_ROOT=C:\Program Files\Epic Games\UE_5.2" >> $GITHUB_ENV
-          
-  #     - name: Build Unreal Project
-  #       run: |
-  #         # Find your .uproject file (adjust path as needed)
-  #         $UPROJECT_PATH = Get-ChildItem -Path . -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
-  #         Write-Host "Building project: $UPROJECT_PATH"
-          
-  #         # Use Unreal Automation Tool to build the project
-  #         & "$env:UE_ROOT\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun `
-  #           -project="$UPROJECT_PATH" `
-  #           -noP4 `
-  #           -platform=Win64 `
-  #           -clientconfig=Development `
-  #           -cook -build -stage -pak -archive `
-  #           -archivedirectory="$PWD\Build"
-      
-  #     - name: Upload build artifacts
-  #       uses: actions/upload-artifact@v3
-  #       with:
-  #         name: windows-build
-  #         path: Build/
-  #         retention-days: 7
-
-  macos-build:
-    runs-on: macos
+  windows-build:
+    runs-on: windows
     steps:
       - name: Checkout repository
         uses: actions/checkout@v3
@@ -56,72 +14,228 @@ jobs:
           lfs: true
           fetch-depth: 0
       
-      - name: Setup Unreal Engine
+      - name: Set Unreal Engine Path
         run: |
-          # Use the correct path where Unreal Engine is installed
-          UE_PATH="/Users/Shared/Epic Games/UE_5.5"
+          echo "UE_ROOT=F:\LuckyRobots\LuckyRobots\Engine" >> $Env:GITHUB_ENV
+          echo "DOTNET_CLI_HOME=$env:TEMP" >> $Env:GITHUB_ENV
+          echo "MSBUILDDISABLENODEREUSE=1" >> $Env:GITHUB_ENV
+          echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" >> $Env:GITHUB_ENV
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $Env:GITHUB_ENV
+          echo "DOTNET_BUILD_OUTPUT_DIR=$env:TEMP\dotnet-build" >> $Env:GITHUB_ENV
+        
+      - name: Set up build environment
+        run: |
+          # Create a custom build output directory in temp
+          $buildRoot = Join-Path $env:TEMP "unreal-build"
+          $dotnetBuildDir = Join-Path $buildRoot "dotnet-build"
+          $buildOutputDir = Join-Path $buildRoot "output"
           
-          if [ ! -d "$UE_PATH" ]; then
-            echo "Error: Unreal Engine is not installed in the expected location"
-            echo "Please ensure Unreal Engine is installed at $UE_PATH"
+          # Create directories with full permissions
+          foreach ($dir in @($buildRoot, $dotnetBuildDir, $buildOutputDir)) {
+            New-Item -ItemType Directory -Force -Path $dir
+            icacls $dir /grant Everyone:F /T
+          }
+          
+          # Set environment variables for build paths
+          echo "DOTNET_BUILD_OUTPUT_DIR=$dotnetBuildDir" >> $Env:GITHUB_ENV
+          echo "DOTNET_CLI_HOME=$dotnetBuildDir" >> $Env:GITHUB_ENV
+          echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" >> $Env:GITHUB_ENV
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $Env:GITHUB_ENV
+          echo "DOTNET_USE_POLLING_FILE_WATCHER=true" >> $Env:GITHUB_ENV
+          echo "MSBUILDDISABLENODEREUSE=1" >> $Env:GITHUB_ENV
+          echo "MSBuildSDKsPath=$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\Sdks" >> $Env:GITHUB_ENV
+          
+          # Clean any existing build artifacts
+          Remove-Item -Path "$dotnetBuildDir\*" -Recurse -Force -ErrorAction SilentlyContinue
+          Remove-Item -Path "$buildOutputDir\*" -Recurse -Force -ErrorAction SilentlyContinue
+          
+          # Set up global.json to use the correct SDK version
+          $globalJson = @'
+          {
+            "sdk": {
+              "version": "8.0.300",
+              "rollForward": "latestFeature"
+            }
+          }
+          '@
+          Set-Content -Path "global.json" -Value $globalJson
+          
+          # Create Directory.Build.props to redirect all outputs
+          $buildPropsContent = @'
+          <?xml version="1.0" encoding="utf-8"?>
+          <Project>
+            <PropertyGroup>
+              <BaseIntermediateOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
+              <BaseOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\bin\$(MSBuildProjectName)\</BaseOutputPath>
+              <IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
+              <OutputPath>$(BaseOutputPath)</OutputPath>
+              <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
+              <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
+              <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
+              <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
+              <RestoreNoCache>true</RestoreNoCache>
+              <EnforceWritePermissions>false</EnforceWritePermissions>
+            </PropertyGroup>
+          </Project>
+          '@
+          Set-Content -Path "Directory.Build.props" -Value $buildPropsContent -Encoding UTF8
+
+          # Create a temporary nuget.config file to use a local package cache
+          $nugetConfig = @'
+          <?xml version="1.0" encoding="utf-8"?>
+          <configuration>
+            <config>
+              <add key="globalPackagesFolder" value="$(DOTNET_BUILD_OUTPUT_DIR)\packages" />
+            </config>
+          </configuration>
+          '@
+          Set-Content -Path "nuget.config" -Value $nugetConfig -Encoding UTF8
+          
+          # Set MSBuild configuration to use the temp directory
+          $MSBuildPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300"
+          $env:MSBuildExtensionsPath = $MSBuildPath
+          $env:MSBuildSDKsPath = Join-Path $MSBuildPath "Sdks"
+          echo "MSBuildExtensionsPath=$env:MSBuildExtensionsPath" >> $Env:GITHUB_ENV
+          echo "MSBuildSDKsPath=$env:MSBuildSDKsPath" >> $Env:GITHUB_ENV
+          echo "MSBUILD_EXE_PATH=$MSBuildPath\MSBuild.dll" >> $Env:GITHUB_ENV
+        
+      - name: Locate .uproject file
+        run: |
+          $projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
+          if (-not $projectPath) {
+            Write-Error "No .uproject file found in repository"
             exit 1
-          fi
-          
-          # Set environment variable with the correct Engine path
-          echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
-          echo "Using Unreal Engine 5.5"
-      
+          }
+          echo "UPROJECT_PATH=$projectPath" >> $Env:GITHUB_ENV
+          Write-Host "Found project file: $projectPath"
+
       - name: Build Unreal Project
         run: |
-          # Debug information
-          echo "=== Environment Information ==="
-          echo "macOS Version:"
-          sw_vers
-          echo "Current working directory: $(pwd)"
-          ls -la  # List all files in current directory
+          # Create and set permissions for build output directory
+          $buildOutputDir = Join-Path $env:TEMP "unreal-build\output"
+          New-Item -ItemType Directory -Force -Path $buildOutputDir
+          icacls $buildOutputDir /grant Everyone:F
           
-          echo "=== Unreal Engine Information ==="
-          ls -la "$UE_ROOT/Build/BatchFiles"
+          # Register dotnet locally
+          $dotnetPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\dotnet.exe"
+          $env:PATH = "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64;$env:PATH"
           
-          echo "=== Project Information ==="
-          # Detailed search for the project file
-          echo "Searching for .uproject files:"
-          find . -name "*.uproject" -type f
+          # Make a local copy of the MSBuild directory with write permissions
+          $customMSBuildDir = Join-Path $env:TEMP "msbuild-custom"
+          New-Item -ItemType Directory -Force -Path $customMSBuildDir
+          Copy-Item -Path "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\*" -Destination $customMSBuildDir -Recurse -Force
+          icacls $customMSBuildDir /grant Everyone:F /T
           
-          # Get the absolute path of the project file
-          UPROJECT_PATH=$(find . -name "*.uproject" -type f | head -1)
-          if [ -z "$UPROJECT_PATH" ]; then
-            echo "Error: Could not find .uproject file"
+          # Set environment variables for the custom MSBuild
+          $env:MSBuildExtensionsPath = $customMSBuildDir
+          $env:MSBuildSDKsPath = Join-Path $customMSBuildDir "Sdks"
+          
+          # Run the build with environment variables 
+          $uatPath = Join-Path $env:UE_ROOT "Build\BatchFiles\RunUAT.bat"
+          $envVars = "set DOTNET_CLI_HOME=$env:DOTNET_CLI_HOME && " +
+                     "set DOTNET_BUILD_OUTPUT_DIR=$env:DOTNET_BUILD_OUTPUT_DIR && " +
+                     "set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 && " +
+                     "set DOTNET_CLI_TELEMETRY_OPTOUT=1 && " +
+                     "set DOTNET_USE_POLLING_FILE_WATCHER=true && " +
+                     "set MSBuildExtensionsPath=$env:MSBuildExtensionsPath && " +
+                     "set MSBuildSDKsPath=$env:MSBuildSDKsPath && " +
+                     "set MSBUILD_EXE_PATH=$env:MSBUILD_EXE_PATH && "
+                     
+          # Find project file
+          $projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
+          if (-not $projectPath) {
+            Write-Error "No .uproject file found in repository"
             exit 1
-          fi
+          }
+          Write-Host "Using project file: $projectPath"
           
-          # Convert to absolute path and verify file exists
-          UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
-          echo "Project absolute path: $UPROJECT_ABSOLUTE_PATH"
-          
-          if [ ! -f "$UPROJECT_ABSOLUTE_PATH" ]; then
-            echo "Error: Project file does not exist at: $UPROJECT_ABSOLUTE_PATH"
-            exit 1
-          fi
-          
-          echo "Using Unreal Engine at: $UE_ROOT"
-          
-          # Make the project file readable and executable
-          chmod 755 "$UPROJECT_ABSOLUTE_PATH"
-          
-          # Run the build using absolute paths
-          chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh"
-          "$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
-            -project="$UPROJECT_ABSOLUTE_PATH" \
-            -noP4 \
-            -platform=Mac \
-            -clientconfig=Development \
-            -cook -build -stage -pak -archive \
-            -archivedirectory="$(pwd)/Build"
-      
+          # Run UAT with full command
+          $cmdLine = "$envVars cmd.exe /c `"$uatPath`" BuildCookRun -project=`"$projectPath`" -noP4 -platform=Win64 -clientconfig=Development -cook -build -stage -pak -archive -archivedirectory=`"$buildOutputDir`""
+          Write-Host "Running command: $cmdLine"
+          Invoke-Expression $cmdLine
+
       - name: Upload build artifacts
         uses: actions/upload-artifact@v3
         with:
-          name: macos-build
-          path: Build/
-          retention-days: 7
\ No newline at end of file
+          name: windows-build
+          path: BuildOutput/
+          retention-days: 7
+
+  # macos-build:
+  #   runs-on: macos
+  #   steps:
+  #     - name: Checkout repository
+  #       uses: actions/checkout@v3
+  #       with:
+  #         lfs: true
+  #         fetch-depth: 0
+      
+  #     - name: Setup Unreal Engine
+  #       run: |
+  #         # Use the correct path where Unreal Engine is installed
+  #         UE_PATH="/Users/Shared/Epic Games/UE_5.5"
+          
+  #         if [ ! -d "$UE_PATH" ]; then
+  #           echo "Error: Unreal Engine is not installed in the expected location"
+  #           echo "Please ensure Unreal Engine is installed at $UE_PATH"
+  #           exit 1
+  #         fi
+          
+  #         # Set environment variable with the correct Engine path
+  #         echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
+  #         echo "Using Unreal Engine 5.5"
+      
+  #     - name: Build Unreal Project
+  #       run: |
+  #         # Debug information
+  #         echo "=== Environment Information ==="
+  #         echo "macOS Version:"
+  #         sw_vers
+  #         echo "Current working directory: $(pwd)"
+  #         ls -la  # List all files in current directory
+          
+  #         echo "=== Unreal Engine Information ==="
+  #         ls -la "$UE_ROOT/Build/BatchFiles"
+          
+  #         echo "=== Project Information ==="
+  #         # Detailed search for the project file
+  #         echo "Searching for .uproject files:"
+  #         find . -name "*.uproject" -type f
+          
+  #         # Get the absolute path of the project file
+  #         UPROJECT_PATH=$(find . -name "*.uproject" -type f | head -1)
+  #         if [ -z "$UPROJECT_PATH" ]; then
+  #           echo "Error: Could not find .uproject file"
+  #           exit 1
+  #         fi
+          
+  #         # Convert to absolute path and verify file exists
+  #         UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
+  #         echo "Project absolute path: $UPROJECT_ABSOLUTE_PATH"
+          
+  #         if [ ! -f "$UPROJECT_ABSOLUTE_PATH" ]; then
+  #           echo "Error: Project file does not exist at: $UPROJECT_ABSOLUTE_PATH"
+  #           exit 1
+  #         fi
+          
+  #         echo "Using Unreal Engine at: $UE_ROOT"
+          
+  #         # Make the project file readable and executable
+  #         chmod 755 "$UPROJECT_ABSOLUTE_PATH"
+          
+  #         # Run the build using absolute paths
+  #         chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh"
+  #         "$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
+  #           -project="$UPROJECT_ABSOLUTE_PATH" \
+  #           -noP4 \
+  #           -platform=Mac \
+  #           -clientconfig=Development \
+  #           -cook -build -stage -pak -archive \
+  #           -archivedirectory="$(pwd)/Build"
+      
+  #     - name: Upload build artifacts
+  #       uses: actions/upload-artifact@v3
+  #       with:
+  #         name: macos-build
+  #         path: Build/
+  #         retention-days: 7
\ No newline at end of file