Squad
Not enough ratings
*modding/Squad SDK/Dedicated Server
By ru`Adept
в качестве хобби, я изучаю UE4 и в этом небольшом руководстве, я постарался кратко рассказать о доступном контенте и дать полезные ссылки по моддингу игры Squad. Воспользуйтесь поиском "Squad Editor" в лаунчере Epic Games для установки Squad SDK. Thanks to the modding community who indirectly helps supplement this guide by sharing their tips in modding discord.
   
Award
Favorite
Favorited
Unfavorite
👇 Выделенный сервер
Есть возможность запустить свой "кастомный" сервер для тестов на полигоне, тк локальный(в меню) не отражает того что происходит на игровом сервере. Squad Wiki/Dedicated server[squad.gamepedia.com]
Подробнее в видео ниже. Так же могу посоветовать посмотреть гайды других игр для запуска выделенного сервера, например для Insurgency: Sandstorm.
https://youtu.be/C8oaKE3x6yQ
PS. Dedicated Server так же можно и нужно запустить в редакторе UE4/Squad SDK(запускается Dedicated Server и игрок в статусе "Client").

видео в качестве демонстрации:
https://youtu.be/cpmT31iTFUA
👇 Сведения
✔ СДК представляет из себя кастомную версию UE4(4.23). Многие плагины, такие как "niagara", "megascans" не работают, так как они не "собраны" для работы в СДК.
*плагин Megascans был собран для СДК.[drive.google.com]Поместите его в "\SquadEditor\UnrealEngine\Engine\Plugins"
✔ Моды для Сквада работают как плагины, настройки внесенные в "Project Settings" не будут переопределены в игре. Моды после загрузки в игру, помещаются в папку настроенную для обнаружения мода самой игрой.
✔ СДК представлен С++ контентом и наследованными от них Blueprints. С++ классы недоступны для редактирования, так же нет возможности создания собственного C++ контента. Но есть возможность создания наследованных от них Blueprint классов. Для того чтобы отобразить весь представленный контент в СДК, в контент браузере включите отображение C++, Plugins и Engine Content.
✔ В СДК отключён запечённый свет - карта lightmap для статичного освещения.
✔ Есть возможность добавления контента в СДК из Marketplace, для этого нужен проект с версией как у СДК(4.23), в него добавить необходимый контент из маркетплейс, затем перенести папку с контентом из папки "Content" проекта в папку "Content" СДК. Из папки "Content" СДК используйте "move" в контент папку вашего мода.
✔ Запускайте Squad во Viewport с включенным Dedicated Server дабы избежать лишних багов. Локально и на dedicated server - Squad "работает по-разному".
✔ Запустить игру в режиме "Симуляция", для теста звука на уровне и т.п.
выберите необходимый Game Mode в World Settings: "SoundDistanceTest", "EffectsTest".
! World Settings переопределит ваш Game Mode в редакторе, используйте "Training" для тестов вашего уровня.
✔ "SquadEditor\Squad\Saved" 👉 папки Logs и Crashes, ещё "SquadEditor\UnrealEngine\Engine\Programs\AutomationTool\Saved\Logs"
✔ Установите СДК на SSD диск - это существенно увеличит скорость загрузки и работы в редакторе UE4.. файл подкачки тоже на SSD. Как вариант можно установить СДК на HDD, но хранилище кэша в редакторе назначить на SSD диск: Editor Preferences→Global→изменить путь "Local Derived Data Cache". Но в случае с Squad SDK это не сработает и нужно отредактировать "DefaultEngine.ini" и там указать путь вашей папки для "DerivedDataCache" и "Boot.ddc".
✔ "Заполнить" DerivedDataCache для ускорения дальнейшей работы в редакторе. Исполняемый bat-файл: "UnrealEngine\Engine\Binaries\Win64\UE4Editor.exe-Cmd.exe" "Squad\SquadGame.uproject" -run=DerivedDataCache -fill -log
"Заполнив" DDC вы ускорите работу с контентом СДК.
.bat файл, отредактируйте пути.[drive.google.com]
✔ Зайдите в Project Settings - Input и переназначьте клавиши управления, например для вызова меню, тк по умолчанию "Esc" закрывает PIE(запуск уровня). Или используйте сочетание Shift+Esc.
✔ В СДК есть возможность включения камеры от третьего лица(клавиша O), для тестов и настройки звука, например. Клавиши I и U приблизить/отдалить камеру(U потребуется переназначить).
Видео в качестве демонстрации
https://youtu.be/qEyHsLQ-Msk
✔ Editor Preferences→Play Squad
вкладка в которой имеется множество дебаг настроек.
*workflow improvement: Play in editor quickly and from any location, bypassing Squad screenflow.
- To enable, do BOTH of the following: In Editor Preferences -> Level Editor -> Play Squad -> Set "Layer Editor Override" to spoof the Layer Data Asset of any layer (Jensen's range works well for convenience). Also set Force Direct Spawn to True.
- You can also set an override character and weapon.
✔ выбор качества звука по умолчанию: Editor Preferences→Play→PIE→PIE Sound Quality Level→выбрать "Epic"
✔ В UE4 есть возможность воспроизводить звук только для одного игрока, так чтобы звук воспроизводился только с одного запущенного окна клиента. Вбейте в консоль команду:
SoloAudio - для включения режима, ClearSoloAudio - для отключения.
Так же рекомендуется отключить опцию "Use Less CPU when in Background" в Editor Preferences→General→Performance, для избежания проблем с "правильным" воспроизведением звука у нескольких запущенных клиентов, например.
👇 Создание
Начало создания мод контента в SDK.
  • в SDK откройте окно "Modding Hub" и создайте мод

  • в папке SquadEditor\Squad\Plugins\Mods появится папка вашего мода вида:

  • в Content Browser UE4 включите отображение "Plugin Content" и найдите папку вашего созданного мод контента
✔ Есть два варианта создания мод контента:
1.(предпочтительный) Создать мод карту с размещенными на ней ассетами из контент папки самого СДК. В этом случае, при выходе нового патча игры, все изменения в структуре файлов/папок самой игры повлияют на работоспособность вашего мода.
Примечание: во время приготовления, СДК может выдать предупреждение на используемые вами ассеты, которые есть в контент папке СДК, но отсутствуют в ванильной игре. Подобные ассеты необходимо копировать в контент папку вашего мода и изменить(переименовать), для избежания конфликтов с другими модами.
2. Создать мод карту с размещенными на ней ассетами из контент папки вашего мода. При необходимости копируйте ассеты из контент папки СДК в контент папку вашего мода. В этом случае, выход нового патча игры не должен повлиять на ваш мод. Но этот способ существенно увеличивает размер самого вашего мода.
- Для способа №2 вы так же можете выбрать карту(.umap) в папке контента СДК и использовать "Migrate", дабы копировать и поместить карту и все необходимые ей ассеты и "игровые" блупринты в папку вашего мода.

➡После упаковки мода, вы можете посмотреть размер вашего мода по пути: "E:\SquadEditor\Squad\ModSDK"

➡Для того чтобы протестировать работоспособность вашего мода, загрузите его в Steam Workshop без публичного доступа. В новом файле .mi должен быть идентификационный номер. Идентификационный номер мода должен совпадать с номером, который вы видите в Steam. Для обновления мода - после приготовления, скопируйте новые файлы мода из папки ModSDK в папку мастерской: C:\Program Files (x86)\Steam\steamapps\shops\content\393380
- Вариант без загрузки в Стим: подпишитесь на любой мод в Стиме, перейдите к "steamapps/workshopconent/339380/<mod id>" и выгрузите туда всю папку с готовым модом (папка, содержащая файл uplugin).
kaiz: So, when you cant figure out why your mod don't load (it doesn't show up with the "AdminChangeMap MapName"). You should check the Game log after you installed your mod and starting the game:
- Contains the game's log (usefull to check why your game doesnt see your installed mod or in game errors)→C:\Users\USERNAME\AppData\Local\SquadGame\Saved\Logs\SquadGame.log
You can send it to support, or try looking inside it should be near when the map are added:
<LogSquadTrace: [Standalone] USQGameInstance::Init(): Added 16 Map(s) for Yehorivka>
for a successful mount it should say: <LogModdingRuntimeModule: Display: Successfully mounted and serialised mod: SquadMod> If not maybe it show an useful error.
So now it may be because your mod didn't cook correctly/uploaded correctly to the workshop the next step are to look at the cooking logs:
- Contain the full cook log + packaging (putting in .pak compression etc)→SquadEditor\UnrealEngine\Engine\Programs\AutomationTool\Saved\Logs\LOG.TXT
and look for errors (search "error"). Important note, the automation logs aren't backed up, so every time you cook its overritten, make backups if you need them.
- Contains the SDK logs→\Program Files\Epic Games\SDK\Squad\Saved\Logs
- Contains the workshop log (to check why the upload fails)→Steam\workshopbuilds\depotbuild<appid>.log (appid is the Squad id: 393380)

👇 Команды&Объекты
Полезные консоль-команды UE4/SDK.
некоторым потребуется прибавить значение "1" или "0", для включения и выключения, например "SetHudWidgetsEnabled 1" - включение, "0" - выключение HUD.
  • sq.DebugArmorHits - value "armor thickness equiv" depends on the angle to the armor (effective armour thickness). value "weapon modifier penetration" depends on the angle to the armor (effective weapon penetration). value "weapon penetration" depends on the distance.
  • sq.DrawDebugProjectileTrace - трассеры.
  • sq.DrawDebugProjectileImpactNormal - степень проникновения от 0 до 1(1-полное проникновение/пробитие) и под каким углом к поверхности.
  • sq.DrawDebugProjectilePenetration - расстояние после пробития поверхности, "на вылет".
  • sq.DrawDebugShowComponentHealth - состояние компонентов/модулей техники.
  • sq.ShowVehicleHealthWhenDamaged - показывает состояние техники после повреждения.
  • TraceViewToggle - трассировка с информацией об объекте.
  • FlushPersistentDebugLines - отключает отладочные linetrace(не все).
  • DisableAllScreenMessages - отключает отладочные сообщения.
  • DebugRearm - пополнить боезапас заново.
  • DebugToggleGodMode - "God mode".
  • r.ForceLOD 0/-1 - вкл/откл отображать только основной LOD для статик меша.
  • r.SkeletalMeshLODBias -10 - увеличить дистанцию LOD для скелетал меша.
  • foliage.ForceLOD 0/1 - вкл/откл отображать только основной LOD для растительности.
  • DebugSkipStaging - skipping staging phase
  • DebugEndMatch - ending the match
  • DebugAddBuildSupply - adding build supplies
  • DebugSetHealth 0-100 - setting player health
  • DebugShowHealth - showing player health
  • DebugVehicleFullHealth - setting vehicle hull & component health to full
  • DebugTogglePostRecovery 1/0 - setting player in post recover state
  • DebugShowHitreg - showing hitreg
  • DebugToggleVehicleGodmode - no damage to vehicles
  • DebugToggleOriginRebase - triggering Origin Rebase. Shows the Rebase and base location of the world for client and server for positional debugging

Объекты
➡Content\Blueprints\Soldiers\BP_MutableSoldier - "общий" блупринт солдата.
➡Content\Art\Soldier2\TEST_US_Soldier_Skeleton_V3 - общий скелет.
➡Content\Art\Soldier2\TEST_US_Soldier_Skeleton_V3_Physics - общая физика солдата.
➡Для создания нового GameMode, создайте child blueprint от BP_GameMode.
➡Для создания нового Ruleset, создайте новый blueprint от SQGameRuleSet(C++).
➡Content\Gameplay\BP_VehicleSpawner - используйте этот блупринт для размещения техники на карте.
Терминология Unreal Engine 4[vk.com]
Терминология - Блупринты[cdn.discordapp.com]
Как лучше использовать подобные объекты в Unreal Engine 4[vk.com]
👇 Discord
✔ Search for BPA_LandscapeRenderer in the world outliner, just click render, though if you have a custom map you'll likely need to add one and set it up
need to set a reference to the landscape, click 'get bounds' and then click render
The BP renders the landscape to a texture so the foliage can pull the ground color from it to blend better
kaiz: How to cook a mod for Linux:
Check the current UE4 version (Window -> About UE4 Editor) and download the toolchain matching your Squad SDK version.
as time of writing: | 4.23 and 4.24 | -v15 clang-8.0.1-based |
Download Clang: https://docs.unrealengine.com/en-US/Platforms/Linux/GettingStarted/index.html
close the SDK / install Clang / REBOOT YOUR COMPUTER / cook
you should see a linux folder in your Cooked mod
if it doesnt work: To verify your current setup, hit WindowsKey+R and type 'cmd.exe' hit Ok/enter
copy and paste this and hit enter: " %LINUX_MULTIARCH_ROOT%x86_64-unknown-linux-gnu\bin\clang++ -v " from the Command Prompt, which should display "clang version X.X.X"
https://docs.unrealengine.com/4.27/Images/SharingAndReleasing/Linux/GettingStarted/env_var_clangsampleflush.webp
✔ Q:What is the current way to get the quixel bridge into the SDK? 4.23 says it could not load the plugin into the SDK 4.23.1
wasti: download 4.23 version for normal ue4 sdk
navigate to marketplace folder where it lives, copy it into same folder structure within squad sdk (I forget if this one goes in engine or not)
go into Epic\SquadEditor\Squad\Plugins\MultiPacker\Binaries\Win64\UE4Editor.modules (or any vanilla installed/enabled plugin) and copy the BuildId, (currently 81279)
go into <quixelbridge or whatever>\Binaries\Win64\UE4Editor.modules and set that build id.
launch sdk, enjoy.
Role Grouping Strategies and Deployable Grouping Strategies[cdn.discordapp.com]
DanDaMan: create new map markers[cdn.discordapp.com]
✔ [Ops]pony: Are your vehicles driving through trees or buildings even though they have collision? Are your helicopters falling right through the map? Are players falling through the map when they get downed? Then unfortunately, you've messed up the broadphase physics boundaries. To fix them, first place empty actors in the lower left and upper right corners of your map. Then, go into the world settings tab and search for broadphase. Check the tickbox to override the default boundaries, and then copy the coordinates from the actors you placed and paste them into the corresponding fields under the 'MBPBounds' subsection.
kaiz: So in your gamemode, you gota create a child of BP_Squad, and set it in "Squad class" in your BP_Squad_child, (you gota right click in your content browser, create a blueprint and type SqSquadState in the text box and select it) and set your SquadState_child in "Squad state class" and finally open your SquadState_child, and edit the Max size value
https://cdn.discordapp.com/attachments/131516273048682496/750612199273136165/Change_SquadState.jpg
✔ "Auto Connect to Server", if it is a check, then the vote will happen, if not, then no.
https://cdn.discordapp.com/attachments/789006780650356766/792462870108569610/unknown.png
https://cdn.discordapp.com/attachments/789006780650356766/792462905475203112/unknown.png
1 Comments
Baфля02 Aug 2, 2021 @ 6:24am 
Привет, столкнулся с такой проблемой: при попытке загрузить через moddinghub мод в workshop, пишет: Upload failed - No additional info on the fail was given...
Пробовал менять id в *.mi файле, но SquadEditor сам его меняет на свой при попытке загрузить мод. Писали, что возможно проблема в роутере, но перезагрузка не помогла. В чем может быть причина?