Compare commits

...

25 Commits
1.35.0 ... main

Author SHA1 Message Date
HOME-DESKTOP\kkilb caf77d899b Removed Unnecessary Executables 2025-01-21 20:56:01 -05:00
HOME-DESKTOP\kkilb fa01a0fb3e Removed Redundant Stylesheets 2025-01-20 23:57:09 -05:00
HOME-DESKTOP\kkilb 6e51b30da0 Revert "Test Commit"
This reverts commit 06b52867de.
2025-01-20 23:34:35 -05:00
HOME-DESKTOP\kkilb 06b52867de Test Commit 2025-01-20 23:34:01 -05:00
Rage d212aba253 Updated Waypoints 2025-01-20 18:13:20 -05:00
Rage 753c068fb2 Updated Some Mod Configs 2025-01-19 01:43:06 -05:00
Rage 6361dc03d1 Updated Interactable Exfils API 2025-01-17 21:57:14 -05:00
Rage 7c93b1b84f Corrected Version Number 2025-01-17 19:35:50 -05:00
Rage a5ec6f3db1 Disabled, Updated & Removed Some Mods
Added
- Questing Bots (Testing for now, not officially released, so it may be buggy somewhat)

Updated
- Waypoints
- Load Order

Removed
- Headshot Darkness
   - Seems that this just doesn't function w/Fika, which makes sense as it force ends a raid when you die to a headshot.
- Mod Backups

Disabled
- Performance Improvements
   - Seems this is funky still and it's safer to just have it disabled, doesn't really offer that much of a performance increase either.
2025-01-17 19:35:05 -05:00
Rage 24d268c53f Corrected Version Number 2025-01-17 06:28:24 -05:00
Rage cebddea8fc Updated Version Number 2025-01-17 06:26:11 -05:00
Rage fd42f32c6a Adjusted Personality Chances for SAIN PMCs 2025-01-17 06:20:01 -05:00
Rage 3567f74bcd Tweaked Mod Configs 2025-01-16 21:55:51 -05:00
Rage 9ca4e261ab Updated Performance Improvements & Visceral Combat
Both mods have been updated for the latest Fika, hopefully removing some of the jank present from the previous builds.
2025-01-16 19:11:13 -05:00
Rage 23dc6d93c3 Update Download Modpack.bat
Cleaned up some code; Automated the MO2 install fully with a new user input method to acquire the game path.
2025-01-16 02:24:37 -05:00
Rage a84001c8bf Updated MOAR Settings 2025-01-16 02:06:59 -05:00
Rage 4ccd8753d1 Updated ModOrganizer.ini 2025-01-16 02:06:42 -05:00
Rage 1d21d74bb9 Some Optimizations to the Modpack
Disabled a lot of client-side related mods, removed Performance Improvements and disabled some potentially bad mods.

Reinstalled a default version of MOAR with just the source code preset selection set to custom.
2025-01-16 01:26:40 -05:00
Rage 3ebaed3777 Removed Potential Mod Corrupting Game 2025-01-15 21:33:26 -05:00
Rage 5d24318a39 Added A Mod; Fixed One Mod Installation
Added
- Black Clothing Pack

Fixed
- Make Val/VSS Great Again
2025-01-15 20:59:57 -05:00
Rage a161750966 Added Mods
- New Trader Mod; Painter
  - Along with a new weapon attachment mod; Black Core
- Make Val/VSS Great Again
2025-01-15 20:53:42 -05:00
Rage c3fcfb84f8 Reduced Quantity Multipliers 2025-01-15 20:16:52 -05:00
Rage 35e1404f43 Reduced MOAR Bot Spawn Counts 2025-01-15 19:38:36 -05:00
Rage f004d53072 Fixed Version Number 2025-01-15 18:47:35 -05:00
Rage 4a1cdbcd20 Tweaked MOAR Map-Specific Spawns and Config 2025-01-15 18:47:15 -05:00
916 changed files with 50440 additions and 75262 deletions

View File

@ -4,6 +4,12 @@
set "mo2_install=%cd%"
set "repository=%mo2_install%\Fika-Tarkov"
:: Specifying links to download for files
set "git_repository=https://files.moddinglounge.com/Rage/Fika-Tarkov.git"
set "git_file=https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/PortableGit-2.47.1-64-bit.7z.exe"
set "SevenZ_file=https://www.7-zip.org/a/7zr.exe"
set "mo2_file=https://github.com/ModOrganizer2/modorganizer/releases/download/v2.5.2/Mod.Organizer-2.5.2.7z"
:: Set path to the portable Git executable
set "portable_git=%mo2_install%\PortableGit\bin\git.exe"
set "portable_7z=%mo2_install%\7zr.exe"
@ -22,7 +28,7 @@ if not exist "%mo2_install%\PortableGit\bin\git.exe" (
echo ----
echo Installing Portable Git...
:: Download Git Portable
curl -L -o PortableGit-2.47.1-64-bit.7z.exe https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/PortableGit-2.47.1-64-bit.7z.exe
curl -L -o PortableGit-2.47.1-64-bit.7z.exe %git_file%
if %errorlevel% neq 0 (
echo ERROR: Failed to download Git Portable. Check your internet connection and try again.
@ -41,7 +47,7 @@ if not exist "%mo2_install%\7zr.exe" (
echo ----
echo Installing 7zip Portable...
:: Download 7zip Portable
curl -L -o 7zr.exe https://www.7-zip.org/a/7zr.exe
curl -L -o 7zr.exe %SevenZ_file%
)
:: Determining if an installation exists already
@ -64,10 +70,10 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
timeout 10
:: Clone or update the Git repository
if not exist "Fika-Tarkov\.git" (
if not exist "%repository%\.git" (
echo ----
echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git
"%portable_git%" clone %git_repository%
) else (
echo ----
echo Repository already exists. Pulling latest changes...
@ -84,18 +90,11 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo Synchronizing profiles folder...
robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR
echo ----
echo Synchronizing stylesheets folder...
robocopy "%repository%/stylesheets" "%mo2_install%/stylesheets" /E
echo ----
echo Synchronizing plugins folder...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E
pause
exit /B 0
:InstallModpack
echo.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo WARNING! The script will install the modpack in the folder this script is ran from!
echo Be sure that your folder is empty before continuing with the installation!
@ -108,9 +107,19 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
timeout 30
:: Requiring user input for game path
echo ----
set /p "game_path=Please enter the path to your game installation: "
if "%game_path%"=="" (
echo.
echo No path entered. Exiting.
echo.
pause
exit /b 1
)
:: Download MO2
curl -L -o MO2.7z https://github.com/ModOrganizer2/modorganizer/releases/download/v2.5.2/Mod.Organizer-2.5.2.7z
curl -L -o MO2.7z %mo2_file%
if %errorlevel% neq 0 (
echo ERROR: Failed to download the archive. Check your internet connection and try again.
pause
@ -138,7 +147,7 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo ----
echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git
"%portable_git%" clone %git_repository%
echo ----
echo Synchronizing mods folder...
@ -148,13 +157,52 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo Synchronizing profiles folder...
robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR
echo ----
echo Synchronizing plugins folder...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E
echo ----
echo Synchronizing stylesheets folder...
robocopy "%repository%/stylesheets" "%mo2_install%/stylesheets" /E
:: Escape backslashes in the game path
setlocal enabledelayedexpansion
set "game_path=!game_path:\=/!"
set "escaped_path="
for /l %%i in (0,1,255) do (
for /f "tokens=1,* delims=" %%a in ("!game_path:~%%i,1!") do (
if "%%a"=="" goto path_done
if %%a==/ (
set "escaped_path=!escaped_path!//" :: Double the backslash
) else (
set "escaped_path=!escaped_path!%%a"
)
)
)
:path_done
echo Original Path: %game_path%
echo Escaped Path: %escaped_path%
:: Replace placeholders in ModOrganizer.ini
echo ----
echo Synchronizing plugins folder...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E
echo Updating ModOrganizer.ini...
set "ini_file=%repository%\ModOrganizer.ini"
set "temp_ini=%ini_file%.tmp"
(for /f "usebackq delims=" %%A in ("%ini_file%") do (
set "line=%%A"
set "line=!line:game_path=%escaped_path%!"
set "line=!line:replace_me=%game_path%!"
echo(!line!
)) > "%temp_ini%"
move /y "%temp_ini%" "%mo2_install%\ModOrganizer.ini"
echo ----
echo ModOrganizer.ini updated successfully!
echo ----
echo Installation complete. Launch ModOrganizer.exe and follow the remaining instructions.

View File

@ -1,22 +1,136 @@
[General]
gameName=SPT
gamePath=@ByteArray(replace_me)
gamePath=@ByteArray(game_path)
selected_profile=@ByteArray(Multiplayer)
version=2.5.2
first_start=false
previousSeparatorColor=@Variant(\0\0\0\x43\x1\xff\xff\x44\x44\x36\x36))\0\0)
backup_install=true
[Settings]
style=Dark Bronze.qss
[PluginPersistance]
Python%20Proxy\tryInit=false
[customExecutables]
size=1
1\arguments=
1\binary=replace_me/SPT.Launcher.exe
1\hide=false
1\ownicon=false
1\steamAppID=
1\title=Multiplayer
1\toolbar=false
1\workingDirectory=replace_me
[Settings]
profile_local_inis=false
profile_local_saves=false
profile_archive_invalidation=true
log_level=1
language=en
compact_downloads=true
meta_downloads=false
autohide_downloads=false
check_for_updates=true
use_prereleases=false
center_dialogs=false
show_change_game_confirmation=true
show_menubar_on_alt=true
double_click_previews=true
style=Dark Bronze.qss
overwrittenLooseFilesColor=@Variant(\0\0\0\x43\x1@@\0\0\xff\xff\0\0\0\0)
overwritingLooseFilesColor=@Variant(\0\0\0\x43\x1@@\xff\xff\0\0\0\0\0\0)
overwrittenArchiveFilesColor=@Variant(\0\0\0\x43\x1@@\0\0\xff\xff\xff\xff\0\0)
overwritingArchiveFilesColor=@Variant(\0\0\0\x43\x1@@\xff\xff\0\0\xff\xff\0\0)
containsPluginColor=@Variant(\0\0\0\x43\x1@@\0\0\0\0\xff\xff\0\0)
containedColor=@Variant(\0\0\0\x43\x1@@\0\0\0\0\xff\xff\0\0)
colorSeparatorScrollbars=true
display_foreign=true
collapsible_separators_asc=true
collapsible_separators_dsc=true
collapsible_separators_conflicts_from=true
collapsible_separators_conflicts_to=true
collapsible_separators_per_profile=false
save_filters=false
auto_collapse_on_hover=false
autocheck_update_install=true
collapsible_separators_icons_1=true
collapsible_separators_icons_2=true
collapsible_separators_icons_3=true
collapsible_separators_icons_7=true
crash_dumps_type=1
crash_dumps_max=5
loot_log_level=2
endorsement_integration=true
tracked_integration=true
category_mappings=true
hide_api_counter=false
force_enable_core_files=true
lock_gui=true
archive_parsing_experimental=false
offline_mode=false
use_proxy=false
use_custom_browser=false
custom_browser=
executable_blacklist="Chrome.exe;Firefox.exe;TSVNCache.exe;TGitCache.exe;Steam.exe;GameOverlayUI.exe;Discord.exe;GalaxyClient.exe;Spotify.exe;Brave.exe"
skip_file_suffixes=.mohidden
skip_directories=.git
filter_regex=false
regex_case_sensitive=false
regex_extended=false
filter_scroll_to_selection=false
[Widgets]
SettingsDialog_tabWidget_index=0
MainWindow_executablesListBox_index=1
MainWindow_tabWidget_index=2
MainWindow_dataTabShowOnlyConflicts_checked=false
MainWindow_dataTabShowFromArchives_checked=false
MainWindow_groupCombo_index=0
MainWindow_modList_index=SWAG + DONUTS_backup, Fika, Essentials, Bug Fixes & Optimizations, Interface & HUD, SFX & Music, New Items & Keys, Gameplay Tweaks, New Traders & Tweaks, New Weapons & Gear, AI & Combat Tweaks, VFX & Atmosphere, Modlist Addons, Backburner, Version 1.32.0, Unsorted, Overwrite
MainWindow_filters_index=0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
MainWindow_filtersAnd_checked=true
MainWindow_filtersOr_checked=false
MainWindow_filtersSeparators_index=0
ModInfoTabOrder=tabFiles tabText tabIni tabImages tabESPs tabConflicts tabCategories tabNexus tabNotes
ModInfoDialog_tabWidget_index=0
ModInfoDialog_imagesShowDDS_checked=false
ModInfoDialog_tabConflictsTabs_index=0
ModInfoDialog_conflictsAdvancedShowNoConflict_checked=true
ModInfoDialog_conflictsAdvancedShowAll_checked=true
ModInfoDialog_conflictsAdvancedShowNearest_checked=false
[Geometry]
SettingsDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\xe3\0\0\x1\x30\0\0\x6\x16\0\0\x3\x9d\0\0\x2\xe3\0\0\x1N\0\0\x6\x16\0\0\x3\x9d\0\0\0\0\0\0\0\0\t\xe\0\0\x2\xe3\0\0\x1N\0\0\x6\x16\0\0\x3\x9d)
MainWindow_state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x3\0\0\t\xe\0\0\0\xd7\xfc\x1\0\0\0\x1\xfb\0\0\0\xe\0l\0o\0g\0\x44\0o\0\x63\0k\0\0\0\0\0\0\0\t\xe\0\0\0R\0\xff\xff\xff\0\0\t\xe\0\0\x4T\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
MainWindow_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\xff\xff\xff\xf9\0\0\t\r\0\0\x4\xe8\0\0\0\v\0\0\0\x1f\0\0\az\0\0\x4w\0\0\0\0\x2\0\0\0\t\xe\0\0\0\0\0\0\0\x17\0\0\t\r\0\0\x4\xe8)
MainWindow_docks_logDock_size=215
MainWindow_menuBar_visibility=true
MainWindow_statusBar_visibility=true
MainWindow_toolBar_visibility=true
toolbar_size=@Size(42 36)
toolbar_button_style=0
MainWindow_splitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x3\xf9\0\0\x2\xb0\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
MainWindow_categoriesSplitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1\b\0\0\x3\x16\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
MainWindow_monitor=0
MainWindow_categoriesGroup_visibility=false
MainWindow_espList_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x2\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2n\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\x1\xce\0\0\0\x1\0\0\0\0\0\0\0%\0\0\0\x1\0\0\0\0\0\0\0\x33\0\0\0\x1\0\0\0\0\0\0\0H\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x46\0\0\0\0)
MainWindow_downloadView_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x3\x1\0\0\0\0\0\0\0\0\0\0\0\b\xf0\0\0\0\x4\0\0\0\x4\0\0\0\x64\0\0\0\a\0\0\0\x64\0\0\0\x6\0\0\0\x64\0\0\0\x5\0\0\0\x64\0\0\x3\x80\0\0\0\b\x1\x1\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\b\0\0\x2\x62\0\0\0\x1\0\0\0\0\0\0\0V\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\x1\0\0\0\0\0\0\0\0)
MainWindow_savegameList_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2n\0\0\0\x2\x1\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\x1\xa1\0\0\0\x1\0\0\0\0\0\0\0\xcd\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
MainWindow_dataTree_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x3\x80\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x1s\0\0\0\x1\0\0\0\0\0\0\0\x81\0\0\0\x1\0\0\0\0\0\0\0\xb2\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0v\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
MainWindow_modList_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\t\x1\0\0\0\v\0\0\0\0\0\0\0\x2\0\0\0\x3\0\0\0\x6\0\0\0\x5\0\0\0\a\0\0\0\b\0\0\0\t\0\0\0\x4\0\0\0\n\0\0\0\x1\0\0\0\v\0\0\0\0\0\0\0\n\0\0\0\x1\0\0\0\x2\0\0\0\b\0\0\0\x4\0\0\0\x3\0\0\0\x5\0\0\0\x6\0\0\0\a\0\0\0\t\0\0\0\v\xc2\x3\0\0\0\x5\0\0\0\a\0\0\0Y\0\0\0\x3\0\0\0 \0\0\0\x6\0\0\0 \0\0\0\n\0\0\x1\xb3\0\0\0\x5\0\0\0 \0\0\x5\x42\0\0\0\v\x1\x1\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0'\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\v\0\0\x3\n\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0H\0\0\0\x1\0\0\0\0\0\0\0\xac\0\0\0\x1\0\0\0\0\0\0\0|\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\x1\0\0\0U\0\0\0\0)
EditExecutablesDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\xa7\0\0\x1\x8d\0\0\a2\0\0\x3\xbb\0\0\x2\xa7\0\0\x1\xab\0\0\a2\0\0\x3\xbb\0\0\0\0\0\0\0\0\t\xe\0\0\x2\xa7\0\0\x1\xab\0\0\a2\0\0\x3\xbb)
ModInfoDialog_tabTextSplitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1\xc8\0\0\x3\x62\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
ModInfoDialog_tabIniSplitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xc8\0\0\0\xed\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
ModInfoDialog_tabImagesSplitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\x80\0\0\0\x83\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
ModInfoDialog_ESPsSplitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0|\0\0\0\xab\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
ModInfoDialog_overwriteExpander_state=@ByteArray(\x1)
ModInfoDialog_overwrittenExpander_state=@ByteArray(\x1)
ModInfoDialog_noConflictExpander_state=@ByteArray(\0)
ModInfoDialog_overwriteTree_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x5(\0\0\0\x2\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\x2\x88\0\0\0\x1\0\0\0\0\0\0\x2\xa0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
ModInfoDialog_noConflictTree_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\0\0\0\x1\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
ModInfoDialog_overwrittenTree_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2\xdd\0\0\0\x2\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\x2y\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
ModInfoDialog_conflictsAdvancedList_state="@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1,\0\0\0\x3\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x3\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)"
ModInfoDialog_filetree_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x5\x30\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\x1\xbf\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x2\xa9\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
ModInfoDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\xca\0\0\x1\x1b\0\0\a\x17\0\0\x4\x1e\0\0\x1\xca\0\0\x1\x39\0\0\a\x17\0\0\x4\x1e\0\0\0\0\0\0\0\0\t\xe\0\0\x1\xca\0\0\x1\x39\0\0\a\x17\0\0\x4\x1e)
PreviewDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\r\0\0\x1\x35\0\0\x5\xec\0\0\x3\x99\0\0\x3\r\0\0\x1S\0\0\x5\xec\0\0\x3\x99\0\0\0\0\0\0\0\0\t\xe\0\0\x3\r\0\0\x1S\0\0\x5\xec\0\0\x3\x99)
ProfilesDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\x8c\0\0\x1\xb2\0\0\x5m\0\0\x3\x1b\0\0\x3\x8c\0\0\x1\xd0\0\0\x5m\0\0\x3\x1b\0\0\0\0\0\0\0\0\t\xe\0\0\x3\x8c\0\0\x1\xd0\0\0\x5m\0\0\x3\x1b)
__overwriteDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\x82\0\0\x1\x8c\0\0\a\xa9\0\0\x4\xa8\0\0\x2\x82\0\0\x1\xaa\0\0\a\xa9\0\0\x4\xa8\0\0\0\0\0\0\0\0\t\xe\0\0\x2\x82\0\0\x1\xaa\0\0\a\xa9\0\0\x4\xa8)
__overwriteDialog_filesView_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\xfe\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\x1\xd7\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x2_\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
ProblemsDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3^\0\0\x1\x9c\0\0\x5\x9b\0\0\x3\x31\0\0\x3^\0\0\x1\xba\0\0\x5\x9b\0\0\x3\x31\0\0\0\0\0\0\0\0\t\xe\0\0\x3^\0\0\x1\xba\0\0\x5\x9b\0\0\x3\x31)
CategoriesDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\xd3\0\0\x1T\0\0\x4\x99\0\0\x3#\0\0\x1\xd3\0\0\x1r\0\0\x4\x99\0\0\x3#\0\0\0\0\0\0\0\0\t\xe\0\0\x1\xd3\0\0\x1r\0\0\x4\x99\0\0\x3#)
ListDialog_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xfa\0\0\0\xfe\0\0\x4\xff\0\0\x3^\0\0\x3\xfa\0\0\x1\x1c\0\0\x4\xff\0\0\x3^\0\0\0\0\0\0\0\0\t\xe\0\0\x3\xfa\0\0\x1\x1c\0\0\x4\xff\0\0\x3^)
[Servers]
size=0
[pluginBlacklist]
size=0

View File

@ -1,11 +1,11 @@
[General]
gameName=spt
modid=0
version=d2025.1.1.0
version=d2025.1.15.0
newestVersion=
category="1,2"
category="1,"
nexusFileStatus=1
installationFile=Default Epic.zip
installationFile=MoxoPixel-BlackCore.zip
repository=Nexus
ignoredVersion=
comments=
@ -15,7 +15,7 @@ url=
hasCustomURL=true
lastNexusQuery=
lastNexusUpdate=
nexusLastModified=2025-01-01T06:47:45Z
nexusLastModified=2025-01-16T01:49:42Z
nexusCategory=0
converted=false
validated=false

View File

@ -0,0 +1,556 @@
{
"manifest": [
{
"key":"tactical_all_insight_wmx200_retex.bundle",
"dependencyKeys":[]
},
{
"key":"mag_stanag_hk_polymer_mag_556x45_30_retex.bundle",
"dependencyKeys":[]
},
{
"key":"handguard_ar15_dd_ris_ii_fsp_9,5_retex.bundle",
"dependencyKeys":[]
},
{
"key":"scope_all_eotech_exps3_retex.bundle",
"dependencyKeys":[
"scope_all_eotech_exps3_gloss_nrm_retex.bundle",
"scope_all_eotech_exps3_mesh_retex.bundle",
"scope_all_eotech_exps3_tan_textures_retex.bundle",
"scope_all_eotech_xps3_textures_retex.bundle"
]
},
{
"key":"scope_all_eotech_exps3_gloss_nrm_retex.bundle",
"dependencyKeys":[]
},
{
"key":"scope_all_eotech_exps3_tan_textures_retex.bundle",
"dependencyKeys":[]
},
{
"key":"scope_all_eotech_xps3_textures_retex.bundle",
"dependencyKeys":[]
},
{
"key":"scope_all_eotech_exps3_mesh_retex.bundle",
"dependencyKeys":[
"scope_all_eotech_exps3_gloss_nrm_retex.bundle",
"scope_all_eotech_exps3_tan_textures_retex.bundle",
"scope_all_eotech_xps3_textures_retex.bundle"
]
},
{
"key":"tactical_all_holosun_ls321_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/glow_particle_bright.bundle",
"assets/standard assets/effects/lightcookies/textures/flashlightcookie.bundle",
"assets/systems/effects/collimator.bundle",
"assets/systems/effects/laserbeam/laser.bundle",
"assets/systems/effects/multiflare/multiflare.bundle",
"assets/systems/effects/nightvision.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"m4a1_black_lines/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"m4a1_black_lines/client_assets.bundle",
"dependencyKeys":[
"m4a1_black_lines/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"m4a1_black_lines/weapon_colt_m4a1_556x45_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/m4a1.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/m4a1.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"m4a1_black_lines/client_assets.bundle",
"m4a1_black_lines/textures/client_assets.bundle",
"assets/content/weapons/tx15/client_assets.bundle",
"assets/content/weapons/tx15/textures/client_assets.bundle",
"assets/content/weapons/tx15/weapon_lone_star_tx15_designated_marksman_556x45_container.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"ak103_black_lines/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"ak103_black_lines/client_assets.bundle",
"dependencyKeys":[
"ak103_black_lines/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"ak103_black_lines/weapon_izhmash_ak103_762x39_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/ak74.bundle",
"assets/content/audio/banks/akm.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/akm.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/saiga12.bundle",
"assets/content/items/mods/handguards/handguard_pp-19-01_izhmash_vityaz_std_plastic_textures.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"ak103_black_lines/client_assets.bundle",
"ak103_black_lines/textures/client_assets.bundle",
"assets/content/weapons/ak100/weapon_izhmash_ak104_762x39_container.bundle",
"assets/content/weapons/ak100/weapon_izhmash_ak105_545x39_container.bundle",
"assets/content/weapons/ak74m/textures/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"assets/content/weapons/pp-19-01/textures/client_assets.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"reciever_ak_akademia_bastion_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"rsass_black/weapon_remington_r11_rsass_762x51_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/rsass.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/mpx.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"rsass_black/client_assets.bundle",
"rsass_black/textures/client_assets.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"rsass_black/client_assets.bundle",
"dependencyKeys":[
"rsass_black/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"rsass_black/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"mk47_black_lines/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"mk47_black_lines/client_assets.bundle",
"dependencyKeys":[
"mk47_black_lines/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"mk47_black_lines/weapon_cmmg_mk47_762x39_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/mp5.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/akm/instrumental.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/mp5.bundle",
"assets/content/audio/weapons/mpx.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"assets/content/weapons/m4a1/client_assets.bundle",
"assets/content/weapons/m4a1/textures/client_assets.bundle",
"mk47_black_lines/client_assets.bundle",
"mk47_black_lines/textures/client_assets.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"reciever_mk47_cmmg_mk47_std_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"tactical_all_wilcox_raptar_es_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/glow_particle_bright.bundle",
"assets/standard assets/effects/lightcookies/textures/flashlightcookie.bundle",
"assets/systems/effects/collimator.bundle",
"assets/systems/effects/laserbeam/laser.bundle",
"assets/systems/effects/multiflare/multiflare.bundle",
"assets/systems/effects/nightvision.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"scope_30mm_razor_hd_gen_2_1_6x24_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/systems/effects/opticsight/opticsightsmasks.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"reciever_ar15_noveske_gen3_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"stock_vepr_molot_vpo-101_std_wood_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"stock_m14_troy_sass_chassis_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"silencer_mount_silencerco_hybrid_46_multi_retex.bundle",
"dependencyKeys":[]
},
{
"key":"mag_aug_steyr_std_556x45_30_retex.bundle",
"dependencyKeys":[]
},
{
"key":"stock_ak_zenit_pt_1_retex.bundle",
"dependencyKeys":[]
},
{
"key":"pistolgrip_ak_magpul_moe_ak_retex.bundle",
"dependencyKeys":[]
},
{
"key":"gas_block_akp_slr_ak_railed_gas_tube_retex.bundle",
"dependencyKeys":[]
},
{
"key":"reciever_ak_texas_weapon_systems_dog_leg_rail_gen_3_retex.bundle",
"dependencyKeys":[]
},
{
"key":"handguard_ar15_precision_reflex_carbon_fiber_delta_gen_3_retex.bundle",
"dependencyKeys":[]
},
{
"key":"helmet_armor_slaap.bundle",
"dependencyKeys":[]
},
{
"key":"reciever_glock_glock_17_std_retex.bundle",
"dependencyKeys":[]
},
{
"key":"reciever_glock_gspc_viper_slide_cut_retex.bundle",
"dependencyKeys":[]
},
{
"key":"m4a1_flame/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"m4a1_flame/client_assets.bundle",
"dependencyKeys":[
"m4a1_flame/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"m4a1_flame/weapon_colt_m4a1_556x45_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/m4a1.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/m4a1.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"m4a1_flame/client_assets.bundle",
"m4a1_flame/textures/client_assets.bundle",
"assets/content/weapons/tx15/client_assets.bundle",
"assets/content/weapons/tx15/textures/client_assets.bundle",
"assets/content/weapons/tx15/weapon_lone_star_tx15_designated_marksman_556x45_container.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"foregrip_all_bcm_mod_3_new.bundle",
"dependencyKeys":[]
},
{
"key":"mag_ak74_izhmash_6l23_545x39_30_retex.bundle",
"dependencyKeys":[]
},
{
"key":"m4a1_new/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"m4a1_new/client_assets.bundle",
"dependencyKeys":[
"m4a1_new/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"m4a1_new/weapon_colt_m4a1_556x45_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/banks/m4a1.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/generic",
"assets/content/audio/weapons/m4a1.bundle",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"m4a1_new/client_assets.bundle",
"m4a1_new/textures/client_assets.bundle",
"assets/content/weapons/tx15/client_assets.bundle",
"assets/content/weapons/tx15/textures/client_assets.bundle",
"assets/content/weapons/tx15/weapon_lone_star_tx15_designated_marksman_556x45_container.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"reciever_ar15_vltor_mur-1s_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"mag_ar10_lancer_l7_awm_762x51_20.bundle",
"dependencyKeys":[
]
},
{
"key":"mag_ar10_lancer_l7_awm_762x51_25.bundle",
"dependencyKeys":[
]
},
{
"key":"spear_black/textures/client_assets.bundle",
"dependencyKeys":[
]
},
{
"key":"spear_black/client_assets.bundle",
"dependencyKeys":[
"spear_black/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"spear_black/weapon_sig_mcx_spear_68x51_container.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/audio/blendoptions/assets.bundle",
"assets/content/audio/weapons/ak74.bundle",
"assets/content/audio/weapons/generic",
"assets/content/weapons/additional_hands/client_assets.bundle",
"assets/content/weapons/animations/simple_animations.bundle",
"assets/content/weapons/animations/spirit_animations.bundle",
"spear_black/client_assets.bundle",
"spear_black/textures/client_assets.bundle",
"assets/content/weapons/weapon_root_anim_fix.bundle",
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
"assets/systems/effects/heathaze/defaultheathaze.bundle",
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
"assets/systems/effects/smoke.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"spear_black/reciever_mcx_sig_spear_upper.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"spear_black/client_assets.bundle",
"spear_black/textures/client_assets.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"pistolgrip_ar15_sig_reduced_angle_pistol_grip_ct_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"handguard_mcx_sig_spear_m_lok_retex.bundle",
"dependencyKeys":[]
},
{
"key":"silencer_clutchlok_sig_slx68_mg_qd_suppressor_68x51_retex.bundle",
"dependencyKeys":[]
},
{
"key":"charge_spear_sig_spear_std_retex.bundle",
"dependencyKeys":[]
},
{
"key":"stock_ar15_magpul_moe_sl_k_carbine_ct_retex.bundle",
"dependencyKeys":[]
},
{
"key":"stock_base_sig_low_profile_tube_ct_retex.bundle",
"dependencyKeys":[]
},
{
"key":"balaclava/item_equipment_facecover_balaclava_black.bundle",
"dependencyKeys":[
"balaclava/wildman01head_textures_black.bundle"
]
},
{
"key":"balaclava/wildman01head_textures_black.bundle",
"dependencyKeys":[]
},
{
"key":"glasses/item_equipment_glasses_npp_retex.bundle",
"dependencyKeys":[]
},
{
"key":"rigs/cr_arscpc_retex.bundle",
"dependencyKeys":[]
},
{
"key":"rigs/item_equipment_rig_carriertactec_retex.bundle",
"dependencyKeys":[]
},
{
"key":"rigs/item_equipment_rig_tv110_retex.bundle",
"dependencyKeys":[]
},
{
"key":"rigs/item_equipment_rig_cryeavs_retex.bundle",
"dependencyKeys":[]
},
{
"key":"scope_all_vortex_razor_amg_uh-1_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/eotech_spec_mask.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"tactical_all_insight_anpeq15_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/glow_particle_bright.bundle",
"assets/standard assets/effects/lightcookies/textures/flashlightcookie.bundle",
"assets/systems/effects/collimator.bundle",
"assets/systems/effects/laserbeam/laser.bundle",
"assets/systems/effects/multiflare/multiflare.bundle",
"assets/systems/effects/nightvision.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"stock_ar15_fab_defense_gl_core_retex.bundle",
"dependencyKeys":[
]
},
{
"key":"scope_30mm_sig_tango6t_1_6x24_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/textures/holemanager/round_spec_mask.bundle",
"assets/systems/effects/opticsight/opticsightsmasks.bundle",
"cubemaps",
"shaders"
]
},
{
"key":"nvg_l3_gpnvg-18_anvis_retex.bundle",
"dependencyKeys":[
"assets/commonassets/physics/physicsmaterials.bundle",
"assets/content/items/equipment/glasses_6b34/glasses_6b34_glass_textures",
"cubemaps",
"shaders"
]
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,603 @@
{
"ItemPresets": {
"6783f24f861dfacffe36b138": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d19f1683101780773b",
"_id": "6783f24f861dfacffe36b138",
"_items": [
{
"_id": "6783f25b69d649d493cda1fd",
"_tpl": "672e37d19f1683101780773b",
"upd": {
"Repairable": {
"Durability": 100,
"MaxDurability": 100
}
}
},
{
"_id": "6783f26abcf5805ba9248ad7",
"_tpl": "55d4b9964bdc2d1d4e8b456e",
"parentId": "6783f25b69d649d493cda1fd",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783f26d3b2ca6db3f36b858",
"_tpl": "55d4887d4bdc2d962f8b4570",
"parentId": "6783f25b69d649d493cda1fd",
"slotId": "mod_magazine"
},
{
"_id": "6783f2723a07e8c6a8006e9f",
"_tpl": "672e37d1249244ae3a50bb2f",
"parentId": "6783f25b69d649d493cda1fd",
"slotId": "mod_reciever"
},
{
"_id": "6783f29a304ff60a67653ddb",
"_tpl": "55d3632e4bdc2d972f8b4569",
"parentId": "6783f2723a07e8c6a8006e9f",
"slotId": "mod_barrel"
},
{
"_id": "6783f29f017667af4aeda8df",
"_tpl": "544a38634bdc2d58388b4568",
"parentId": "6783f29a304ff60a67653ddb",
"slotId": "mod_muzzle"
},
{
"_id": "6783f2a148624b6f5fe0a317",
"_tpl": "5ae30e795acfc408fb139a0b",
"parentId": "6783f29a304ff60a67653ddb",
"slotId": "mod_gas_block"
},
{
"_id": "6783f2a88b7b6cd3c9225511",
"_tpl": "5ae30db85acfc408fb139a05",
"parentId": "6783f2723a07e8c6a8006e9f",
"slotId": "mod_handguard"
},
{
"_id": "6783f2ad374903cfc652f22f",
"_tpl": "637f57a68d137b27f70c4968",
"parentId": "6783f2a88b7b6cd3c9225511",
"slotId": "mod_handguard"
},
{
"_id": "6783f2aeb598721f40ef1263",
"_tpl": "5ae30bad5acfc400185c2dc4",
"parentId": "6783f2723a07e8c6a8006e9f",
"slotId": "mod_sight_rear"
},
{
"_id": "6783f2af7cf3b743d3d8c1e2",
"_tpl": "5649be884bdc2d79388b4577",
"parentId": "6783f25b69d649d493cda1fd",
"slotId": "mod_stock"
},
{
"_id": "6783f2b54115cf68d3ffa632",
"_tpl": "55d4ae6c4bdc2d8b2f8b456e",
"parentId": "6783f2af7cf3b743d3d8c1e2",
"slotId": "mod_stock_000"
},
{
"_id": "6783f2b66dc7254a0401b1ca",
"_tpl": "55d44fd14bdc2d962f8b456e",
"parentId": "6783f25b69d649d493cda1fd",
"slotId": "mod_charge"
}
],
"_name": "M4A1 Std Painter Edition",
"_parent": "6783f25b69d649d493cda1fd",
"_type": "Preset"
},
"6783f192c8a5270c18aad6b6": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d1ddaf7c656e3a634c",
"_id": "6783f192c8a5270c18aad6b6",
"_items": [
{
"_id": "6783f1a47ef435b43580168c",
"_tpl": "672e37d1ddaf7c656e3a634c",
"upd": {
"Repairable": {
"Durability": 100,
"MaxDurability": 100
}
}
},
{
"_id": "6783f1b85be1b42bf29e4a61",
"_tpl": "55d4b9964bdc2d1d4e8b456e",
"parentId": "6783f1a47ef435b43580168c",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783f1bb8ce2bb9545fae1d8",
"_tpl": "55d4887d4bdc2d962f8b4570",
"parentId": "6783f1a47ef435b43580168c",
"slotId": "mod_magazine"
},
{
"_id": "6783f1c160f9c16d7f779a4d",
"_tpl": "55d355e64bdc2d962f8b4569",
"parentId": "6783f1a47ef435b43580168c",
"slotId": "mod_reciever"
},
{
"_id": "6783f1d493fa264e4493ac2e",
"_tpl": "55d3632e4bdc2d972f8b4569",
"parentId": "6783f1c160f9c16d7f779a4d",
"slotId": "mod_barrel"
},
{
"_id": "6783f1d9be58dbc9b2a069ba",
"_tpl": "544a38634bdc2d58388b4568",
"parentId": "6783f1d493fa264e4493ac2e",
"slotId": "mod_muzzle"
},
{
"_id": "6783f1daae07965124acac83",
"_tpl": "5ae30e795acfc408fb139a0b",
"parentId": "6783f1d493fa264e4493ac2e",
"slotId": "mod_gas_block"
},
{
"_id": "6783f1ddde94724c8bd6ca16",
"_tpl": "5ae30db85acfc408fb139a05",
"parentId": "6783f1c160f9c16d7f779a4d",
"slotId": "mod_handguard"
},
{
"_id": "6783f1e275d0b1ed88572ad0",
"_tpl": "637f57a68d137b27f70c4968",
"parentId": "6783f1ddde94724c8bd6ca16",
"slotId": "mod_handguard"
},
{
"_id": "6783f1e3fbc6c6dbf0aadc86",
"_tpl": "5ae30bad5acfc400185c2dc4",
"parentId": "6783f1c160f9c16d7f779a4d",
"slotId": "mod_sight_rear"
},
{
"_id": "6783f1ec39e6076911b5df9c",
"_tpl": "5649be884bdc2d79388b4577",
"parentId": "6783f1a47ef435b43580168c",
"slotId": "mod_stock"
},
{
"_id": "6783f1f09bad1af82a378d05",
"_tpl": "55d4ae6c4bdc2d8b2f8b456e",
"parentId": "6783f1ec39e6076911b5df9c",
"slotId": "mod_stock_000"
},
{
"_id": "6783f1f235ede9255929f2d4",
"_tpl": "55d44fd14bdc2d962f8b456e",
"parentId": "6783f1a47ef435b43580168c",
"slotId": "mod_charge"
}
],
"_name": "M4A1 Std Flames",
"_parent": "6783f1a47ef435b43580168c",
"_type": "Preset"
},
"6783f0fbb5c5bfbb971871e1": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d1179b7b969b7577cb",
"_id": "6783f0fbb5c5bfbb971871e1",
"_items": [
{
"_id": "6783f10174bf20e471c5c055",
"_tpl": "672e37d1179b7b969b7577cb",
"upd": {
"Repairable": {
"Durability": 100,
"MaxDurability": 100
}
}
},
{
"_id": "6783f11512857c267b254af7",
"_tpl": "55d4b9964bdc2d1d4e8b456e",
"parentId": "6783f10174bf20e471c5c055",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783f11aec8108543017f1e3",
"_tpl": "55d4887d4bdc2d962f8b4570",
"parentId": "6783f10174bf20e471c5c055",
"slotId": "mod_magazine"
},
{
"_id": "6783f1205747a3ea48865e73",
"_tpl": "55d355e64bdc2d962f8b4569",
"parentId": "6783f10174bf20e471c5c055",
"slotId": "mod_reciever"
},
{
"_id": "6783f1350fbe98026207e7ea",
"_tpl": "55d3632e4bdc2d972f8b4569",
"parentId": "6783f1205747a3ea48865e73",
"slotId": "mod_barrel"
},
{
"_id": "6783f13b8484c0c25a66be35",
"_tpl": "544a38634bdc2d58388b4568",
"parentId": "6783f1350fbe98026207e7ea",
"slotId": "mod_muzzle"
},
{
"_id": "6783f13dc1acd3ecae24270f",
"_tpl": "5ae30e795acfc408fb139a0b",
"parentId": "6783f1350fbe98026207e7ea",
"slotId": "mod_gas_block"
},
{
"_id": "6783f1488a3d2dc4157c8758",
"_tpl": "5ae30db85acfc408fb139a05",
"parentId": "6783f1205747a3ea48865e73",
"slotId": "mod_handguard"
},
{
"_id": "6783f151960a80ad5f9745ae",
"_tpl": "637f57a68d137b27f70c4968",
"parentId": "6783f1488a3d2dc4157c8758",
"slotId": "mod_handguard"
},
{
"_id": "6783f154906b450be0b3182f",
"_tpl": "5ae30bad5acfc400185c2dc4",
"parentId": "6783f1205747a3ea48865e73",
"slotId": "mod_sight_rear"
},
{
"_id": "6783f15600d12159f91920f6",
"_tpl": "5649be884bdc2d79388b4577",
"parentId": "6783f10174bf20e471c5c055",
"slotId": "mod_stock"
},
{
"_id": "6783f15bc0fe63d6d241fb9b",
"_tpl": "55d4ae6c4bdc2d8b2f8b456e",
"parentId": "6783f15600d12159f91920f6",
"slotId": "mod_stock_000"
},
{
"_id": "6783f1f861bc1198d4d14f7c",
"_tpl": "55d44fd14bdc2d962f8b456e",
"parentId": "6783f10174bf20e471c5c055",
"slotId": "mod_charge"
}
],
"_name": "M4A1 Std Topo",
"_parent": "6783f10174bf20e471c5c055",
"_type": "Preset"
},
"6783f026a570e11e98538c25": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d1e35a6ec6e6997492",
"_id": "6783f026a570e11e98538c25",
"_items": [
{
"_id": "6783f04c9ff3e61038c7a73b",
"_tpl": "672e37d1e35a6ec6e6997492"
},
{
"_id": "6783f05f37f27dd00e59aa24",
"_tpl": "59c6633186f7740cf0493bb9",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_gas_block"
},
{
"_id": "6783f07124277c3fd1890147",
"_tpl": "5648b1504bdc2d9d488b4584",
"parentId": "6783f05f37f27dd00e59aa24",
"slotId": "mod_handguard"
},
{
"_id": "6783f0741ec1081b46650491",
"_tpl": "5ac72e7d5acfc40016339a02",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_muzzle"
},
{
"_id": "6783f0764bac8452114f4a95",
"_tpl": "5649ade84bdc2d1b2b8b4587",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783f0770459d79d0f33b9da",
"_tpl": "672e37d10c5f88d8ed0d056a",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_reciever"
},
{
"_id": "6783f07a137b256bffe1cfb1",
"_tpl": "5ac50c185acfc400163398d4",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_stock"
},
{
"_id": "6783f07c8853c5e4efc96806",
"_tpl": "5ac66bea5acfc43b321d4aec",
"parentId": "6783f04c9ff3e61038c7a73b",
"slotId": "mod_magazine"
}
],
"_name": "AK-103 Default Topo",
"_parent": "6783f04c9ff3e61038c7a73b",
"_type": "Preset"
},
"6783ec2851c792b686291cb9": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d17f433cdb29072bc8",
"_id": "6783ec2851c792b686291cb9",
"_items": [
{
"_id": "6783ec33c8d50fdb6b63d3e9",
"_tpl": "672e37d17f433cdb29072bc8",
"upd": {
"FireMode": {
"FireMode": "single"
},
"Repairable": {
"Durability": 100,
"MaxDurability": 100
}
}
},
{
"_id": "657eb3773271d8578610fe2a",
"_tpl": "672e37d1861c12c7e1d94089",
"parentId": "6783ec33c8d50fdb6b63d3e9",
"slotId": "mod_pistol_grip"
},
{
"_id": "657eb3773271d8578610fe2b",
"_tpl": "672e37d19811257c1de39e6d",
"parentId": "6783ec33c8d50fdb6b63d3e9",
"slotId": "mod_magazine"
},
{
"_id": "6783ec4cf0b00cd50d9c2a87",
"_tpl": "672e37d133cc1fb4424ddb4c",
"parentId": "6783ec33c8d50fdb6b63d3e9",
"slotId": "mod_reciever"
},
{
"_id": "6783ec6e1a49dfd7571ae44e",
"_tpl": "5b2389515acfc4771e1be0c0",
"parentId": "6783ec4cf0b00cd50d9c2a87",
"slotId": "mod_scope"
},
{
"_id": "6783ec7588341583da153886",
"_tpl": "67617ec9ea1e82ea5e103054",
"parentId": "6783ec6e1a49dfd7571ae44e",
"slotId": "mod_scope_000"
},
{
"_id": "6783ec85d0fd3275f2ab164a",
"_tpl": "652910565ae2ae97b80fdf35",
"parentId": "6783ec4cf0b00cd50d9c2a87",
"slotId": "mod_barrel"
},
{
"_id": "6783ec955c4560dd83a3c26f",
"_tpl": "6529113b5ae2ae97b80fdf39",
"parentId": "6783ec85d0fd3275f2ab164a",
"slotId": "mod_muzzle"
},
{
"_id": "6783ec9892098902e42933bd",
"_tpl": "672e37d143ba463a1cdcbd7b",
"parentId": "6783ec955c4560dd83a3c26f",
"slotId": "mod_muzzle"
},
{
"_id": "6783ec9ddf30430fd30d48ef",
"_tpl": "652910bc24cbe3c74a05e5b9",
"parentId": "6783ec85d0fd3275f2ab164a",
"slotId": "mod_gas_block"
},
{
"_id": "6783ec9fb358c9d737de5800",
"_tpl": "672e37d1984bc9a10241a9c7",
"parentId": "6783ec4cf0b00cd50d9c2a87",
"slotId": "mod_handguard"
},
{
"_id": "6783eea29163d870c845e6b9",
"_tpl": "6529348224cbe3c74a05e5c4",
"parentId": "6783ec33c8d50fdb6b63d3e9",
"slotId": "mod_stock_000"
},
{
"_id": "6783eea6b0158f1b5bf6ba4e",
"_tpl": "672e37d151b832f3fb8ccbb0",
"parentId": "6783eea29163d870c845e6b9",
"slotId": "mod_stock"
},
{
"_id": "6783eeaa698962dfeeda79a3",
"_tpl": "672e37d1d9a55146e49287d6",
"parentId": "6783eea6b0158f1b5bf6ba4e",
"slotId": "mod_stock_000"
},
{
"_id": "6783eca92713d47b3f369d0b",
"_tpl": "672e37d1906226680c4e28d5",
"parentId": "6783ec33c8d50fdb6b63d3e9",
"slotId": "mod_charge"
}
],
"_name": "SIG SPEAR default black",
"_parent": "6783ec33c8d50fdb6b63d3e9",
"_type": "Preset"
},
"6783e5da52977a05d959ac2f": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d1dd890afba20c10e7",
"_id": "6783e5da52977a05d959ac2f",
"_items": [
{
"_id": "6783e5f4c23d0a4830e3d069",
"_tpl": "672e37d1dd890afba20c10e7",
"upd": {
"Repairable": {
"Durability": 100,
"MaxDurability": 100
}
}
},
{
"_id": "6783e603e6cebbfe9babfb73",
"_tpl": "5cc9bcaed7f00c011c04e179",
"parentId": "6783e5f4c23d0a4830e3d069",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783e60517f08a8301bbd2c5",
"_tpl": "5a3501acc4a282000d72293a",
"parentId": "6783e5f4c23d0a4830e3d069",
"slotId": "mod_magazine"
},
{
"_id": "6783e607810d48f18bc7e606",
"_tpl": "5a33ca0fc4a282000d72292f",
"parentId": "6783e5f4c23d0a4830e3d069",
"slotId": "mod_stock"
},
{
"_id": "6783e60ba048490f25da323e",
"_tpl": "5d44069ca4b9361ebd26fc37",
"parentId": "6783e607810d48f18bc7e606",
"slotId": "mod_stock"
},
{
"_id": "6783e60d0f11531e764dd864",
"_tpl": "5d00ef6dd7ad1a0940739b16",
"parentId": "6783e5f4c23d0a4830e3d069",
"slotId": "mod_handguard"
},
{
"_id": "6783e61457c31046a3d9466b",
"_tpl": "5a34fae7c4a2826c6e06d760",
"parentId": "6783e5f4c23d0a4830e3d069",
"slotId": "mod_barrel"
},
{
"_id": "6783e618cc78902eec1f2c0b",
"_tpl": "5a34fd2bc4a282329a73b4c5",
"parentId": "6783e61457c31046a3d9466b",
"slotId": "mod_muzzle"
},
{
"_id": "6783e61a7bfb5f73bdcef867",
"_tpl": "5a34fbadc4a28200741e230a",
"parentId": "6783e61457c31046a3d9466b",
"slotId": "mod_gas_block"
}
],
"_name": "RSASS Black",
"_parent": "6783e5f4c23d0a4830e3d069",
"_type": "Preset"
},
"6783eb2892780aded22f44d6": {
"_changeWeaponName": false,
"_encyclopedia": "672e37d10b7a12e6a7a50b77",
"_id": "6783eb2892780aded22f44d6",
"_items": [
{
"_id": "6783eb3a05c979d9171196e2",
"_tpl": "672e37d10b7a12e6a7a50b77",
"upd": {
"FireMode": {
"FireMode": "single"
}
}
},
{
"_id": "6783eb482a3ac74d07710776",
"_tpl": "55802f5d4bdc2dac148b458f",
"parentId": "6783eb3a05c979d9171196e2",
"slotId": "mod_pistol_grip"
},
{
"_id": "6783eb4de2e02a031c2d2eb9",
"_tpl": "59d6272486f77466146386ff",
"parentId": "6783eb3a05c979d9171196e2",
"slotId": "mod_magazine"
},
{
"_id": "6783eb54e77a16ac4853c726",
"_tpl": "672e37d1a98e0628807ba29a",
"parentId": "6783eb3a05c979d9171196e2",
"slotId": "mod_reciever"
},
{
"_id": "6783eb6f7e0a5b57278b5d8f",
"_tpl": "60658776f2cb2e02a42ace2b",
"parentId": "6783eb54e77a16ac4853c726",
"slotId": "mod_barrel"
},
{
"_id": "6783eb76f0ceaeb9063cdbf2",
"_tpl": "6065c6e7132d4d12c81fd8e1",
"parentId": "6783eb6f7e0a5b57278b5d8f",
"slotId": "mod_muzzle"
},
{
"_id": "6783eb7901da578da4b2230c",
"_tpl": "6065dc8a132d4d12c81fd8e3",
"parentId": "6783eb6f7e0a5b57278b5d8f",
"slotId": "mod_gas_block"
},
{
"_id": "6783eb7b04cdf6ff2fb14809",
"_tpl": "6065880c132d4d12c81fd8da",
"parentId": "6783eb54e77a16ac4853c726",
"slotId": "mod_handguard"
},
{
"_id": "6783eb7e73028d0ad6ba25a7",
"_tpl": "5bc09a30d4351e00367fb7c8",
"parentId": "6783eb7b04cdf6ff2fb14809",
"slotId": "mod_sight_front"
},
{
"_id": "6783eb801f0133eec60418fd",
"_tpl": "5bc09a18d4351e003562b68e",
"parentId": "6783eb54e77a16ac4853c726",
"slotId": "mod_sight_rear"
},
{
"_id": "6783eb82d4bfe4734f1968e8",
"_tpl": "606587e18900dc2d9a55b65f",
"parentId": "6783eb3a05c979d9171196e2",
"slotId": "mod_stock_001"
},
{
"_id": "6783eb85ede00f4e10fe95fa",
"_tpl": "606587d11246154cad35d635",
"parentId": "6783eb82d4bfe4734f1968e8",
"slotId": "mod_stock_000"
},
{
"_id": "6783eb8781c4dad6d094d7d5",
"_tpl": "606587bd6d0bd7580617bacc",
"parentId": "6783eb3a05c979d9171196e2",
"slotId": "mod_charge"
}
],
"_name": "CMMG MK47 short default black",
"_parent": "6783eb3a05c979d9171196e2",
"_type": "Preset"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
{
"name": "Black Core",
"version": "1.1.6",
"main": "src/mod.js",
"license": "University of Illinois/NCSA Open Source License",
"author": "MoxoPixel",
"sptVersion": "3.10.X",
"isBundleMod": true,
"scripts": {
"setup": "npm i",
"build": "node ./build.mjs",
"buildinfo": "node ./build.mjs --verbose"
},
"devDependencies": {
"@types/node": "20.11",
"@typescript-eslint/eslint-plugin": "7.2",
"@typescript-eslint/parser": "7.2",
"archiver": "^6.0",
"eslint": "8.57",
"fs-extra": "11.2",
"ignore": "^5.2",
"tsyringe": "4.8.0",
"typescript": "5.4",
"winston": "3.12"
}
}

View File

@ -0,0 +1,236 @@
import { DependencyContainer } from "tsyringe";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { ImporterUtil } from "@spt/utils/ImporterUtil";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
import { JsonUtil } from "@spt/utils/JsonUtil"
interface IHandbookEntry {
Id: string;
ParentId: string;
Price: number;
}
class BlackCore implements IPostDBLoadMod {
private db: IDatabaseTables;
private mydb: any;
private logger: ILogger;
private jsonUtil: JsonUtil;
public postDBLoad(container: DependencyContainer): void {
try {
this.logger = container.resolve<ILogger>("WinstonLogger");
this.jsonUtil = container.resolve<JsonUtil>("JsonUtil");
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
const databaseImporter = container.resolve<ImporterUtil>("ImporterUtil");
const modLoader = container.resolve<PreSptModLoader>("PreSptModLoader");
this.db = databaseServer.getTables();
this.mydb = databaseImporter.loadRecursive(`${modLoader.getModPath("MoxoPixel-BlackCore")}database/`);
if (!this.db || !this.mydb) {
throw new Error("Failed to load required databases");
}
const modFolderName = "MoxoPixel-BlackCore";
const traders = {
"painter": "668aaff35fd574b6dcc4a686"
};
for (const newItem in this.mydb.items) {
this.cloneItem(this.mydb.items[newItem].clone, newItem);
this.addCompatibilitiesAndConflicts(this.mydb.items[newItem].clone, newItem);
const newItemLocales = this.mydb.items[newItem].locales;
for (const lang in this.db.locales.global) {
this.db.locales.global[lang][`${newItem} Name`] = newItemLocales.Name;
this.db.locales.global[lang][`${newItem} ShortName`] = newItemLocales.Shortname;
this.db.locales.global[lang][`${newItem} Description`] = newItemLocales.Description;
}
}
for (const trader in traders) this.addTraderAssort(traders[trader]);
for (const preset in this.mydb.globals.ItemPresets) {
this.db.globals.ItemPresets[preset] = this.mydb.globals.ItemPresets[preset];
}
const dbMastering = this.db.globals.config.Mastering;
for (const weapon in dbMastering) {
if (dbMastering[weapon].Name == "M4") dbMastering[weapon].Templates.push("672e37d1179b7b969b7577cb", "672e37d1ddaf7c656e3a634c", "672e37d19f1683101780773b");
if (dbMastering[weapon].Name == "AK74") dbMastering[weapon].Templates.push("672e37d1e35a6ec6e6997492");
if (dbMastering[weapon].Name == "R11SRASS") dbMastering[weapon].Templates.push("672e37d1dd890afba20c10e7");
if (dbMastering[weapon].Name == "MK47") dbMastering[weapon].Templates.push("672e37d10b7a12e6a7a50b77");
if (dbMastering[weapon].Name == "SPEAR") dbMastering[weapon].Templates.push("672e37d17f433cdb29072bc8");
}
const dbQuests = this.db.templates.quests;
for (const M4Quest in dbQuests) {
if (
dbQuests[M4Quest]._id === "5a27bb8386f7741c770d2d0a" ||
dbQuests[M4Quest]._id === "5c0d4c12d09282029f539173" ||
dbQuests[M4Quest]._id === "63a9b229813bba58a50c9ee5" ||
dbQuests[M4Quest]._id === "64e7b9bffd30422ed03dad38" ||
dbQuests[M4Quest]._id === "666314b4d7f171c4c20226c3"
) {
const availableForFinish = dbQuests[M4Quest].conditions.AvailableForFinish;
for (const condition of availableForFinish) {
if (condition.counter && condition.counter.conditions) {
for (const counterCondition of condition.counter.conditions) {
if (counterCondition.weapon) {
counterCondition.weapon.push(
"672e37d1179b7b969b7577cb",
"672e37d1ddaf7c656e3a634c",
"672e37d19f1683101780773b"
);
}
}
}
}
}
}
for (const AKQuest in dbQuests) {
if (
dbQuests[AKQuest]._id === "59c50a9e86f7745fef66f4ff" ||
dbQuests[AKQuest]._id === "61e6e60223374d168a4576a6" ||
dbQuests[AKQuest]._id === "64e7b9bffd30422ed03dad38"
) {
const availableForFinish = dbQuests[AKQuest].conditions.AvailableForFinish;
for (const condition of availableForFinish) {
if (condition.counter && condition.counter.conditions) {
for (const counterCondition of condition.counter.conditions) {
if (counterCondition.weapon) {
counterCondition.weapon.push(
"672e37d1e35a6ec6e6997492"
);
}
}
}
}
}
}
for (const MK47Quest in dbQuests) {
if (
dbQuests[MK47Quest]._id === "64e7b9bffd30422ed03dad38"
) {
const availableForFinish = dbQuests[MK47Quest].conditions.AvailableForFinish;
for (const condition of availableForFinish) {
if (condition.counter && condition.counter.conditions) {
for (const counterCondition of condition.counter.conditions) {
if (counterCondition.weapon) {
counterCondition.weapon.push(
"672e37d10b7a12e6a7a50b77",
"672e37d17f433cdb29072bc8"
);
}
}
}
}
}
}
this.logger.info("------------------------");
this.logger.info("Black Core Loaded");
} catch (error) {
this.logger.error(`Error loading BlackCore mod: ${error.message}`);
}
}
private cloneItem(itemToClone: string, blackCoreID: string): void {
if (!itemToClone || !blackCoreID) {
this.logger.error("Invalid parameters passed to cloneItem");
return;
}
if (!this.mydb.items[blackCoreID]?.enable) {
return;
}
if (!this.db.templates.items[itemToClone]) {
this.logger.error(`Template item ${itemToClone} not found`);
return;
}
if (this.mydb.items[blackCoreID].enable == true) {
let blackCoreItemOut = this.jsonUtil.clone(this.db.templates.items[itemToClone]);
blackCoreItemOut._id = blackCoreID;
blackCoreItemOut = this.compareAndReplace(blackCoreItemOut, this.mydb.items[blackCoreID]["items"]);
const bcCompatibilities: object = (typeof this.mydb.items[blackCoreID].bcCompatibilities == "undefined") ? {} : this.mydb.items[blackCoreID].bcCompatibilities;
const bcConflicts: Array<string> = (typeof this.mydb.items[blackCoreID].bcConflicts == "undefined") ? [] : this.mydb.items[blackCoreID].bcConflicts;
for (const modSlotName in bcCompatibilities) {
for (const slot of blackCoreItemOut._props.Slots) {
if (slot._name === modSlotName) for (const id of bcCompatibilities[modSlotName]) slot._props.filters[0].Filter.push(id);
}
}
blackCoreItemOut._props.ConflictingItems = blackCoreItemOut._props.ConflictingItems.concat(bcConflicts);
this.db.templates.items[blackCoreID] = blackCoreItemOut;
const handbookEntry: IHandbookEntry = {
"Id": blackCoreID,
"ParentId": this.mydb.items[blackCoreID]["handbook"]["ParentId"],
"Price": this.mydb.items[blackCoreID]["handbook"]["Price"]
};
this.db.templates.handbook.Items.push(handbookEntry);
}
}
private compareAndReplace(originalItem: any, attributesToChange: any): any {
for (const key in attributesToChange) {
if ((["boolean", "string", "number"].includes(typeof attributesToChange[key])) || Array.isArray(attributesToChange[key])) {
if (key in originalItem) originalItem[key] = attributesToChange[key];
else this.logger.error("Error finding the attribute: \"" + key + "\", default value is used instead.");
}
else originalItem[key] = this.compareAndReplace(originalItem[key], attributesToChange[key]);
}
return originalItem;
}
private addCompatibilitiesAndConflicts(itemClone: string, blackCoreID: string): void {
for (const item in this.db.templates.items) {
if (item in this.mydb.items) continue;
const slots = (typeof this.db.templates.items[item]._props.Slots === "undefined") ? [] : this.db.templates.items[item]._props.Slots;
const chambers = (typeof this.db.templates.items[item]._props.Chambers === "undefined") ? [] : this.db.templates.items[item]._props.Chambers;
const cartridges = (typeof this.db.templates.items[item]._props.Cartridges === "undefined") ? [] : this.db.templates.items[item]._props.Cartridges;
const combined = slots.concat(chambers, cartridges)
for (const entry of combined) {
for (const id of entry._props.filters[0].Filter) {
if (id === itemClone) entry._props.filters[0].Filter.push(blackCoreID);
}
}
const conflictingItems = (typeof this.db.templates.items[item]._props.ConflictingItems === "undefined") ? [] : this.db.templates.items[item]._props.ConflictingItems;
for (const conflictID of conflictingItems) if (conflictID === itemClone) conflictingItems.push(blackCoreID);
}
}
private addTraderAssort(trader: string): void {
if (!this.db.traders[trader]?.assort || !this.mydb.traders[trader]?.assort) {
this.logger.error(`Invalid trader assort data for trader: ${trader}`);
return;
}
for (const item in this.mydb.traders[trader].assort.items) {
this.db.traders[trader].assort.items.push(this.mydb.traders[trader].assort.items[item]);
}
for (const item in this.mydb.traders[trader].assort.barter_scheme) {
this.db.traders[trader].assort.barter_scheme[item] = this.mydb.traders[trader].assort.barter_scheme[item];
}
for (const item in this.mydb.traders[trader].assort.loyal_level_items) {
this.db.traders[trader].assort.loyal_level_items[item] = this.mydb.traders[trader].assort.loyal_level_items[item];
}
}
}
module.exports = { mod: new BlackCore() }

View File

@ -1,4 +1,4 @@
## Settings file was created by plugin InteractableExfilsAPI v1.5.1
## Settings file was created by plugin InteractableExfilsAPI v2.0.0
## Plugin GUID: Jehree.InteractableExfilsAPI
[1: Settings]

View File

@ -130,9 +130,9 @@ scavMaxGroupSize = 4
## Max pmc group size
# Setting type: Int32
# Default value: 5
# Default value: 4
# Acceptable value range: From 0 to 10
pmcMaxGroupSize = 5
pmcMaxGroupSize = 4
## Increases chances of pmc groups spawning, doesn't dramatically increase quantity.
# Setting type: Boolean
@ -158,9 +158,9 @@ MaxBotCap = 25
## This controls the health of zombies
# Setting type: Double
# Default value: 0.5
# Default value: 1
# Acceptable value range: From 0 to 3
ZombieHealth = 0.5
ZombieHealth = 1
## Multiplies wave counts seen in the server's mapConfig.json by this number
# Setting type: Double
@ -170,14 +170,14 @@ ZombieWaveQuantity = 1
## Determines the weighting of spawns at the beginning (1) spread evenly throughout (0.5) or at the end(0) of the raid
# Setting type: Double
# Default value: 0.2
# Default value: 0.5
# Acceptable value range: From 0 to 1
ZombieWaveDistribution = 0.2
ZombieWaveDistribution = 0.5
## Enables zombies to spawn
# Setting type: Boolean
# Default value: true
zombiesEnabled On/Off = true
# Default value: false
zombiesEnabled On/Off = false
## Determines the weighting of spawns at the beginning (1) spread evenly throughout (0.5) or at the end(0) of the raid
# Setting type: Double
@ -187,21 +187,21 @@ ScavWaveDistribution = 0.5
## Determines the weighting of spawns at the beginning (1) spread evenly throughout (0.5) or at the end(0) of the raid
# Setting type: Double
# Default value: 0.8
# Default value: 0.7
# Acceptable value range: From 0 to 1
PmcWaveDistribution = 0.8
PmcWaveDistribution = 0.7
## Multiplies wave counts seen in the server's mapConfig.json by this number
# Setting type: Double
# Default value: 1.5
# Default value: 0.8
# Acceptable value range: From 0 to 10
ScavWaveQuantity = 1.5
ScavWaveQuantity = 0.8
## Multiplies wave counts seen in the server's mapConfig.json by this number
# Setting type: Double
# Default value: 1.5
# Default value: 0.8
# Acceptable value range: From 0 to 10
PmcWaveQuantity = 1.5
PmcWaveQuantity = 0.8
[3.Debug]

View File

@ -0,0 +1,186 @@
## Settings file was created by plugin DanW-QuestingBots v0.9.0
## Plugin GUID: com.DanW.QuestingBots
[AI Limiter]
## Improve FPS by minimizing CPU load for AI out of certain ranges
# Setting type: Boolean
# Default value: false
Enable AI Limiting = false
## Allow AI to be disabled for bots that are questing
# Setting type: Boolean
# Default value: true
Enable AI Limiting for Bots That Are Questing = true
## Only allow AI to be disabled for bots that are questing on the selected maps
# Setting type: TarkovMaps
# Default value: Streets
# Acceptable values: Customs, Factory, Interchange, Labs, Lighthouse, Reserve, Shoreline, Streets, Woods, GroundZero, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Maps to Allow AI Limiting for Bots That Are Questing = Streets
## These bot types will never be disabled by the AI limiter
# Setting type: BotTypeException
# Default value: SniperScavs, Rogues
# Acceptable values: SniperScavs, Rogues, Raiders, BossesAndFollowers, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Bot Types that Cannot be Disabled = SniperScavs, Rogues
## AI will only be disabled if there are at least this number of bots on the map
# Setting type: Int32
# Default value: 15
# Acceptable value range: From 1 to 30
Min Bots to Enable AI Limiting = 15
## AI will only be disabled if it's more than this distance from other questing bots (typically PMC's and player Scavs)
# Setting type: Int32
# Default value: 75
# Acceptable value range: From 25 to 1000
Distance from Bots That Are Questing (m) = 75
## AI will only be disabled if it's more than this distance from a human player. This takes priority over the map-specific advanced settings.
# Setting type: Int32
# Default value: 200
# Acceptable value range: From 50 to 1000
Distance from Human Players (m) = 200
## AI will only be disabled if it's more than this distance from a human player on Customs
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Customs (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Factory
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Factory (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Interchange
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Interchange (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Labs
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Labs (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Lighthouse
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Lighthouse (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Reserve
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Reserve (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Shoreline
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Shoreline (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Streets
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Streets (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on Woods
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on Woods (m) = 1000
## AI will only be disabled if it's more than this distance from a human player on GroundZero
# Setting type: Int32
# Default value: 1000
# Acceptable value range: From 50 to 1000
Distance from Human Players on GroundZero (m) = 1000
[Custom Quest Locations]
## Allow custom quest locations to be saved
# Setting type: Boolean
# Default value: false
Enable Quest Location Saving = false
## Display your current (x,y,z) coordinates on the screen
# Setting type: Boolean
# Default value: false
Display Current Location = false
## Name of the next quest location that will be stored
# Setting type: String
# Default value: Custom Quest Location
Quest Location Name = Custom Quest Location
## Store your current location as a quest location
# Setting type: KeyboardShortcut
# Default value: KeypadEnter
Store New Quest Location = KeypadEnter
[Debug]
## Show information about what each bot is doing
# Setting type: Boolean
# Default value: false
Show Bot Info Overlays = false
## Show the target position for each bot that is questing
# Setting type: Boolean
# Default value: false
Show Bot Path Overlays = false
## Show information about every nearby quest objective location
# Setting type: Boolean
# Default value: false
Show Quest Info Overlays = false
## Include quest markers and information for spawn-search quests like 'Spawn Point Wander' and 'Boss Hunter' quests
# Setting type: Boolean
# Default value: false
Show Quest Info for Spawn-Search Quests = false
## Quest markers and info overlays will only be shown if the objective location is within this distance from you
# Setting type: Int32
# Default value: 100
# Acceptable value range: From 10 to 300
Max Distance (m) to Show Quest Info = 100
## Font Size for Quest Overlays
# Setting type: Int32
# Default value: 16
# Acceptable value range: From 12 to 36
Font Size for Quest Info = 16
[Main]
## Allow bots to quest
# Setting type: Boolean
# Default value: true
Enable Questing = true
## Show additional debug messages to troubleshoot spawning issues
# Setting type: Boolean
# Default value: false
Show Debug Messages for Spawning = false
## Allow bots to sprint while questing. This does not affect their ability to sprint when they're not questing.
# Setting type: Boolean
# Default value: true
Allow Bots to Sprint while Questing = true
## Bots will not be allowed to sprint if they are within this distance from their objective
# Setting type: Int32
# Default value: 3
# Acceptable value range: From 0 to 75
Sprinting Distance Limit from Objectives (m) = 3

View File

@ -51,7 +51,7 @@ Gating level = 0
## Will reset when the game opens. You are supposed to use the gating increase/decrease keys to change the gating level, but you are free to change it manually if you want to make sure you are at a specific gating level.
# Setting type: Int32
# Default value: 0
Gating level = 0
Gating level = -2
1.Manual gating increase = KeypadPlus
@ -69,7 +69,7 @@ Gain multiplier = 1
# Setting type: Single
# Default value: 1.07
# Acceptable value range: From 0 to 2
Mask size multiplier = 1.304742
Mask size multiplier = 1.07
## Applies gain multiplier to all NVGs
# Setting type: Single

View File

@ -16,5 +16,5 @@ Enable keybind = true
## Keybind to quick throw grenades - One of these keybinds must be same as BSG's grenade keybind
# Setting type: KeyboardShortcut
# Default value: G + LeftShift
Quick throw keybind = G + LeftShift
Quick throw keybind = G + LeftControl

View File

@ -1,4 +1,4 @@
## Settings file was created by plugin Performance Improvements v0.2.0
## Settings file was created by plugin Performance Improvements v0.2.3
## Plugin GUID: com.dirtbikercj.performanceImprovements
[Bot Limiter]
@ -40,6 +40,9 @@ Use Experimental Patches(Requires Restart) = true
[Graphics]
## Enables experimental graphic settings in the EFT graphics settings page. (REQUIRES RESTART)
# Setting type: Boolean
# Default value: true
Enable Experimental Graphic Settings = true
[Scope Resolution]

View File

@ -97,7 +97,7 @@ Ammo Type HUD display = false
# Setting type: Boolean
# Default value: true
Fire Mode display = false
Fire Mode display = true
# Setting type: Boolean
# Default value: false

View File

@ -38,7 +38,7 @@ Recording Notification = true
## Enable if you are using an SSL Certificate infront of your http server.
# Setting type: Boolean
# Default value: false
4. TLS = false
4. TLS = true
## [WARNING] Only disable if you want to stop all data from being sent to raid review, requires restart.
# Setting type: Boolean

View File

@ -1,4 +1,4 @@
## Settings file was created by plugin DrakiaXYZ-Waypoints v1.6.0
## Settings file was created by plugin DrakiaXYZ-Waypoints v1.6.2
## Plugin GUID: xyz.drakia.waypoints
[]

View File

@ -4,7 +4,7 @@
"Assignment": {
"Enabled": true,
"CanBeRandomlyAssigned": true,
"RandomlyAssignedChance": 8.0,
"RandomlyAssignedChance": 20.0,
"MinLevel": 0.0,
"MaxLevel": 100.0,
"PowerLevelScaleStart": 0.0,

View File

@ -4,7 +4,7 @@
"Assignment": {
"Enabled": true,
"CanBeRandomlyAssigned": true,
"RandomlyAssignedChance": 10.0,
"RandomlyAssignedChance": 25.0,
"MinLevel": 0.0,
"MaxLevel": 100.0,
"PowerLevelScaleStart": 0.0,

View File

@ -4,7 +4,7 @@
"Assignment": {
"Enabled": true,
"CanBeRandomlyAssigned": true,
"RandomlyAssignedChance": 10.0,
"RandomlyAssignedChance": 15.0,
"MinLevel": 15.0,
"MaxLevel": 100.0,
"PowerLevelScaleStart": 150.0,

View File

@ -4,7 +4,7 @@
"Assignment": {
"Enabled": true,
"CanBeRandomlyAssigned": true,
"RandomlyAssignedChance": 5.0,
"RandomlyAssignedChance": 10.0,
"MinLevel": 0.0,
"MaxLevel": 15.0,
"PowerLevelScaleStart": 0.0,

View File

@ -4,7 +4,7 @@
"Assignment": {
"Enabled": true,
"CanBeRandomlyAssigned": true,
"RandomlyAssignedChance": 4.0,
"RandomlyAssignedChance": 10.0,
"MinLevel": 0.0,
"MaxLevel": 100.0,
"PowerLevelScaleStart": 250.0,

View File

@ -7,6 +7,7 @@
"tyfon-uifixes",
"MoreCheckmarksBackend",
"ExpandedTaskText",
"aMoxoPixel-Painter",
"acidphantasm-bosseshavelegamedals",
"acidphantasm-defaultfiremode",
"acidphantasm-refsptfriendlyquests",
@ -17,6 +18,9 @@
"choccy-striker-1.0.5",
"flir-betterkeysng",
"redlaser42-Increase Climb Height",
"MoxoPixel-BlackCore",
"Additional Clothing USEC",
"Additional Clothing BEAR",
"WTT-LittleDrummerBoy",
"WTTArmoryAk5C",
"WTTArmoryHK417",
@ -24,21 +28,21 @@
"WTTArmorySVD",
"choccy-rpg7-1.1.4",
"choccy-saa-1.0.7",
"raid_review__0.3.0",
"BRNVG_N-15Adapter",
"z_hacker228-makevalvssgreatagain",
"OpticRework-310",
"tyfon-weaponcustomizer",
"ArenaLockboxes-Delod-1.0.0",
"lacyway-mergeconsumables",
"acidphantasm-brightlasers",
"AUG_AttachmentPack",
"shibdib-shibsexpandedcrafts",
"zSolarint-SAIN-ServerMod",
"Skwizzy-LootingBots-ServerMod",
"DanW-SPTQuestingBots",
"acidphantasm-progressivebotsystem",
"DewardianDev-MOAR",
"inory-dynamicgoons",
"acidphantasm-progressivebotsystem",
"ArenaLockboxes-Delod-1.0.0",
"tyfon-weaponcustomizer",
"Additional Clothing BEAR",
"Additional Clothing USEC",
"BRNVG_N-15Adapter",
"OpticRework-310"
"raid_review__0.3.0"
]
}

View File

@ -1,11 +0,0 @@
{
"genericDeathStrings": [
"You are dead."
],
"headshotDeathStrings": [
"You have been shot in the head."
],
"explosionDeathStrings": [
"You have been blown up."
]
}

View File

@ -1,11 +1,11 @@
[General]
gameName=spt
modid=0
version=d2025.1.13.0
version=d2025.1.17.0
newestVersion=
category="1,"
nexusFileStatus=1
installationFile=Jehree-InteractableExfilsAPI-1.5.1.zip
installationFile=Jehree-InteractableExfilsAPI-2.0.0.zip
repository=Nexus
ignoredVersion=
comments=

View File

@ -6,7 +6,7 @@ newestVersion=
category="1,"
nexusFileStatus=1
installationFile=DewardianDev-MOAR-2.6.7.zip
repository=Nexus
repository=
ignoredVersion=
comments=
notes=

Some files were not shown because too many files have changed in this diff Show More