diff --git a/.gitea/workflows/unreal-build.yml b/.gitea/workflows/unreal-build.yml
index 047d4843..94eff2be 100644
--- a/.gitea/workflows/unreal-build.yml
+++ b/.gitea/workflows/unreal-build.yml
@@ -3,7 +3,7 @@ name: Unreal Engine Build
 on:
   workflow_dispatch:
   push:
-    branches: [ main, develop ]
+    branches: [main, develop]
 
 jobs:
   # windows-build:
@@ -14,22 +14,22 @@ jobs:
   #       with:
   #         lfs: true
   #         fetch-depth: 0
-      
+
   #     - 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" `
@@ -38,7 +38,7 @@ jobs:
   #           -clientconfig=Development `
   #           -cook -build -stage -pak -archive `
   #           -archivedirectory="$PWD\Build"
-      
+
   #     - name: Upload build artifacts
   #       uses: actions/upload-artifact@v3
   #       with:
@@ -52,186 +52,100 @@ jobs:
       - name: Checkout repository
         uses: actions/checkout@v3
         with:
-          fetch-depth: 1
           lfs: true
-      
-      - name: Cache build dependencies
-        uses: actions/cache@v3
-        with:
-          path: |
-            ~/Library/Caches/Unreal Engine
-            Intermediate/
-            Saved/
-            DerivedDataCache/
-          key: ${{ runner.os }}-unreal-build-${{ hashFiles('**/*.uproject') }}
-          restore-keys: |
-            ${{ runner.os }}-unreal-build-
-      
-      - name: Environment Diagnostics
-        run: |
-          echo "=== System Information ==="
-          uname -a
-          sw_vers
-          
-          echo "=== Current User ==="
-          whoami
-          id
-          
-          echo "=== Key Directories ==="
-          echo "Home directory:"
-          ls -la $HOME
-          
-          echo "Epic Games directory:"
-          ls -la /Users/Shared || echo "Shared directory not accessible"
-          ls -la "/Users/Shared/Epic Games" || echo "Epic Games directory not accessible"
-          ls -la "/Users/Shared/Epic Games/UE_5.5" || echo "UE_5.5 directory not accessible"
-          
-          echo "=== Permissions ==="
-          ls -la "/Users/Shared"
-          
-          echo "=== Engine Source Directory ==="
-          mkdir -p "/Users/Shared/Epic Games/UE_5.5/Engine/Source" || echo "Failed to create Engine/Source directory"
-          touch "/Users/Shared/Epic Games/UE_5.5/Engine/Source/test.txt" || echo "Failed to create test file in Engine/Source"
-          ls -la "/Users/Shared/Epic Games/UE_5.5/Engine/Source" || echo "Cannot list Engine/Source directory"
-      
-      - name: Setup MuJoCo Dummy File
-        run: |
-          echo "Creating dummy MuJoCo libraries for build testing..."
-          
-          # Set up MuJoCo library directory
-          MUJOCO_LIB_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
-          mkdir -p "$MUJOCO_LIB_DIR"
-          
-          # Create a dummy dylib file with proper structure (small binary with MuJoCo symbol exports)
-          cat > "$MUJOCO_LIB_DIR/mujoco.dylib" << 'EOF'
-          #!/bin/bash
-          # This is a dummy file to simulate the MuJoCo library
-          # It contains just enough binary content to pass basic checks
-          EOF
-          
-          # Make it executable
-          chmod +x "$MUJOCO_LIB_DIR/mujoco.dylib"
-          
-          echo "Verifying dummy file:"
-          ls -la "$MUJOCO_LIB_DIR/mujoco.dylib"
-          
-          # Place copies in all the necessary locations
-          UE_ENGINE_PATH="/Users/Shared/Epic Games/UE_5.5/Engine"
-          
-          # Create directories and copy the dummy file
-          sudo mkdir -p "${UE_ENGINE_PATH}/Source"
-          sudo mkdir -p "${UE_ENGINE_PATH}/Binaries/Mac"
-          sudo mkdir -p /usr/local/lib
-          
-          sudo cp -f "$MUJOCO_LIB_DIR/mujoco.dylib" "${UE_ENGINE_PATH}/Source/mujoco.dylib"
-          sudo cp -f "$MUJOCO_LIB_DIR/mujoco.dylib" "${UE_ENGINE_PATH}/Binaries/Mac/mujoco.dylib"
-          sudo cp -f "$MUJOCO_LIB_DIR/mujoco.dylib" "/usr/local/lib/mujoco.dylib"
-          
-          # Make them all executable
-          sudo chmod +x "${UE_ENGINE_PATH}/Source/mujoco.dylib"
-          sudo chmod +x "${UE_ENGINE_PATH}/Binaries/Mac/mujoco.dylib"
-          sudo chmod +x "/usr/local/lib/mujoco.dylib"
-          
-          echo "MuJoCo dummy libraries created and deployed!"
-      
+          fetch-depth: 0
+
       - name: Setup Unreal Engine
+        timeout-minutes: 5 # Add timeout to prevent hanging
         run: |
-          # Install necessary tools
-          brew install unar  # Using unar instead of unrar (which is no longer available)
-          brew install coreutils  # For realpath
+          # Set environment variable with the correct Engine path
+          UE_PATH="/Users/Shared/Epic Games/UE_5.5"
+          echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
+          echo "Using Unreal Engine path: $UE_PATH"
           
-          # Use the correct path where Unreal Engine is installed
-          # Note: Paths with spaces need special handling
-          UE_PATH="/Users/Shared/Epic\ Games/UE_5.5"
+          # Prepare MuJoCo dummy library in local project
+          echo "Creating local MuJoCo library..."
+          PROJECT_MUJOCO_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
+          mkdir -p "$PROJECT_MUJOCO_DIR"
+          PROJECT_MUJOCO_PATH="$PROJECT_MUJOCO_DIR/mujoco.dylib"
           
-          # Check the directory exists but use unescaped version for test
-          if [ ! -d "/Users/Shared/Epic Games/UE_5.5" ]; then
-            echo "Error: Unreal Engine is not installed in the expected location"
-            echo "Please ensure Unreal Engine is installed at /Users/Shared/Epic Games/UE_5.5"
-            exit 1
-          fi
+          echo "/* Dummy MuJoCo library */" > "$PROJECT_MUJOCO_PATH"
+          chmod +x "$PROJECT_MUJOCO_PATH"
+          echo "Created local MuJoCo library at: $(pwd)/$PROJECT_MUJOCO_PATH"
+          ls -la "$PROJECT_MUJOCO_PATH"
           
-          # Set environment variables with proper escaping
-          # Use double quotes to preserve the backslash escaping
-          echo "UE_ROOT=\"${UE_PATH}/Engine\"" >> $GITHUB_ENV
-          echo "UE_PATH=\"${UE_PATH}\"" >> $GITHUB_ENV
+          # Create fallback in /tmp (which we should have access to)
+          echo "Creating fallback library in /tmp..."
+          echo "/* Dummy MuJoCo library */" > /tmp/mujoco.dylib
+          chmod +x /tmp/mujoco.dylib
+          echo "Created fallback MuJoCo library at: /tmp/mujoco.dylib"
+          ls -la /tmp/mujoco.dylib
           
-          # Export variables directly for this script
-          export UE_ROOT="${UE_PATH}/Engine"
-          export UE_PATH="${UE_PATH}"
-          
-          echo "Unreal Engine paths:"
-          echo "UE_ROOT=$UE_ROOT"
-          echo "UE_PATH=$UE_PATH"
-          
-          # Set up environment for the build
-          UE_ENGINE_PATH="/Users/Shared/Epic Games/UE_5.5/Engine"
-          export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:${UE_ENGINE_PATH}/Source:${UE_ENGINE_PATH}/Binaries/Mac:/usr/local/lib:$DYLD_LIBRARY_PATH"
-          export DYLD_FRAMEWORK_PATH="${UE_ENGINE_PATH}/Binaries/Mac:$DYLD_FRAMEWORK_PATH"
-          export DYLD_FALLBACK_LIBRARY_PATH="${UE_ENGINE_PATH}/Binaries/Mac:${UE_ENGINE_PATH}/Source:/usr/local/lib:$DYLD_FALLBACK_LIBRARY_PATH"
-      
+          # Set environment variables for the build process
+          echo "DYLD_LIBRARY_PATH=/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$DYLD_LIBRARY_PATH" >> $GITHUB_ENV
+          echo "LD_LIBRARY_PATH=/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$LD_LIBRARY_PATH" >> $GITHUB_ENV
+          echo "Environment variables set for library paths"
+
       - name: Build Unreal Project
         run: |
-          # Ensure required tools are installed
-          if ! command -v realpath &> /dev/null; then
-            echo "realpath not found, using alternative method for absolute path"
-            REALPATH_CMD="pwd -P"
-          else
-            REALPATH_CMD="realpath"
-          fi
+          # Debug information
+          echo "=== Environment Information ==="
+          echo "macOS Version:"
+          sw_vers
+          echo "Current working directory: $(pwd)"
+          echo "DYLD_LIBRARY_PATH: $DYLD_LIBRARY_PATH"
+          echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
           
-          # Use direct path instead of environment variable
-          UE_ENGINE_PATH="/Users/Shared/Epic Games/UE_5.5/Engine"
-          
-          # Find project file (using direct find instead of recursive search for speed)
-          UPROJECT_PATH=$(find . -maxdepth 1 -name "*.uproject" -type f | head -1)
+          # Find the project file
+          UPROJECT_PATH=$(find . -name "*.uproject" -type f | head -1)
           if [ -z "$UPROJECT_PATH" ]; then
-            echo "Error: Could not find .uproject file in root directory"
+            echo "Error: Could not find .uproject file"
             exit 1
           fi
           
-          # Convert to absolute path (handle potential realpath availability issues)
-          if command -v realpath &> /dev/null; then
-            UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
-          else
-            UPROJECT_ABSOLUTE_PATH="$(cd "$(dirname "$UPROJECT_PATH")" && pwd)/$(basename "$UPROJECT_PATH")"
+          # Get absolute path
+          UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
+          echo "Project path: $UPROJECT_ABSOLUTE_PATH"
+          
+          # Ensure the MuJoCo library is in place
+          PROJECT_MUJOCO_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
+          PROJECT_MUJOCO_PATH="$PROJECT_MUJOCO_DIR/mujoco.dylib"
+          
+          if [ ! -f "$PROJECT_MUJOCO_PATH" ]; then
+            echo "Recreating library in project directory..."
+            mkdir -p "$PROJECT_MUJOCO_DIR"
+            echo "/* Dummy MuJoCo library */" > "$PROJECT_MUJOCO_PATH"
+            chmod +x "$PROJECT_MUJOCO_PATH"
           fi
-          echo "Project absolute path: $UPROJECT_ABSOLUTE_PATH"
           
-          # Make the project file readable and executable
-          chmod 755 "$UPROJECT_ABSOLUTE_PATH"
+          echo "Available libraries:"
+          ls -la "$PROJECT_MUJOCO_DIR"
+          ls -la /tmp/mujoco.dylib 2>/dev/null || echo "No library in /tmp"
           
-          # Ensure RunUAT.sh is executable
-          chmod +x "${UE_ENGINE_PATH}/Build/BatchFiles/RunUAT.sh"
+          # Set up environment explicitly for this command
+          export DYLD_LIBRARY_PATH="/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$DYLD_LIBRARY_PATH"
+          export LD_LIBRARY_PATH="/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$LD_LIBRARY_PATH"
           
-          # Set environment variables again to ensure they're available in this step
-          export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:${UE_ENGINE_PATH}/Source:${UE_ENGINE_PATH}/Binaries/Mac:/usr/local/lib:$DYLD_LIBRARY_PATH"
-          export DYLD_FRAMEWORK_PATH="${UE_ENGINE_PATH}/Binaries/Mac:$DYLD_FRAMEWORK_PATH"
-          export DYLD_FALLBACK_LIBRARY_PATH="${UE_ENGINE_PATH}/Binaries/Mac:${UE_ENGINE_PATH}/Source:/usr/local/lib:$DYLD_FALLBACK_LIBRARY_PATH"
-          
-          # Verify library locations once more
-          echo "Verifying library locations before build:"
-          echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
-          ls -la "${UE_ENGINE_PATH}/Source/mujoco.dylib" || echo "Library not found in ${UE_ENGINE_PATH}/Source"
-          
-          # Speed up build by using optimal parameters
-          echo "Starting build process..."
-          "${UE_ENGINE_PATH}/Build/BatchFiles/RunUAT.sh" BuildCookRun \
+          echo "=== Starting build process ==="
+          # Run the build with all environment variables set
+          "$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
             -project="$UPROJECT_ABSOLUTE_PATH" \
             -noP4 \
             -platform=Mac \
             -clientconfig=Development \
             -cook -build -stage -pak -archive \
-            -archivedirectory="$(pwd)/Build" \
-            -SkipCookingEditorContent \
-            -iterativecooking \
-            -fastcook \
-            -compressed \
-            -allmaps
-      
+            -archivedirectory="$(pwd)/Build" || {
+              echo "Build failed with status: $?"
+              echo "=== Error details ==="
+              if [ -f "/Users/m1/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-LuckyrobotsEditor-Mac-Development.txt" ]; then
+                tail -n 100 "/Users/m1/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-LuckyrobotsEditor-Mac-Development.txt"
+              fi
+              exit 1
+            }
+
       - name: Upload build artifacts
         uses: actions/upload-artifact@v3
         with:
           name: macos-build
           path: Build/
-          retention-days: 7
\ No newline at end of file
+          retention-days: 7
diff --git a/.gitignore b/.gitignore
index 958bc50b..df0a7a79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,77 @@
 BP_Puralink
-BP_Revolute
\ No newline at end of file
+BP_Revolute
+
+# Visual Studio 2015 user specific files
+.vs/
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+*.ipa
+
+# These project files can be generated by the engine
+*.xcodeproj
+*.xcworkspace
+*.sln
+*.suo
+*.opensdf
+*.sdf
+*.VC.db
+*.VC.opendb
+
+# Precompiled Assets
+SourceArt/**/*.png
+SourceArt/**/*.tga
+
+# Binary Files
+Binaries/*
+Plugins/**/Binaries/*
+
+# Builds
+Build/*
+
+# Whitelist PakBlacklist-<BuildConfiguration>.txt files
+!Build/*/
+Build/*/**
+!Build/*/PakBlacklist*.txt
+
+# Don't ignore icon files in Build
+!Build/**/*.ico
+
+# Built data for maps
+*_BuiltData.uasset
+
+# Configuration files generated by the Editor
+Saved/*
+
+# Compiled source files for the engine to use
+Intermediate/*
+Plugins/**/Intermediate/*
+
+# Cache files for the editor to use
+DerivedDataCache/*
\ No newline at end of file