Enable gamepad navigation for the PrismaUI server browser and install MainMenu input hooks safely. Poll XInput each game-thread tick and forward button/stick changes to the browser (ForwardButtonEvent / ForwardThumbstickEvent), allocate an input-enable layer to suppress vanilla kMenu events while the browser is open, and register polling via the F4SE task interface. Replace direct vtable writes that caused a loading-screen crash with REL::Relocation::write_vfunc on the MainMenu BSInputEventUser secondary vtable and install OnButton/OnThumbstick hooks once at plugin Install(). Add MainMenu API to suppress inputEventHandling and call it when showing/hiding the browser. Also update PrismaUI browser JS to support controller focus for direct-connect, filter activation/cycling, improved controller prompts, and add CSS for focused direct-connect fields. Files touched include plugin/src/F4TMenuInput.cpp, plugin/src/F4TMainMenuInject.cpp, plugin/include headers, PrismaUI view JS/components, styles, and documentation.
Commonwealth Online Plugin
This is the native Commonwealth Online F4SE plugin using CommonLibF4.
Requirements
- XMake [3.0.0+]
- C++23 Compiler (MSVC or Clang-CL)
Getting Started
git clone --recurse-submodules https://github.com/libxse/Fallout4Together
cd Fallout4Together
Build
To build the project, run the following command:
xmake build
Note: This will generate a
build/windows/directory in the project's root directory with the build output.
Build Output (Optional)
If you want to redirect the build output, set one of the following environment variables:
-
Path to a Mod Manager mods folder:
XSE_FO4_MODS_PATHor
-
Path to a Fallout 4 install folder:
XSE_FO4_GAME_PATH
Project Generation (Optional)
If you use Visual Studio, run the following command:
xmake project -k vsxmake
Note: This will generate a
vsxmakeXXXX/directory in the project's root directory using the latest version of Visual Studio installed on the system.
Alternatively, if you do not use Visual Studio, you can generate a compile_commands.json file for use with a laguage server like clangd in any code editor that supports it, like vscode:
xmake project -k compile_commands
Note: You must have a language server extension installed to make use of this file. I recommend
clangd. Do not have more than one installed at a time as they will conflict with each other. I also recommend installing thexmakeextension if available to make building the project easier.
Upgrading Packages (Optional)
If you want to upgrade the project's dependencies, run the following commands:
xmake repo --update
xmake require --upgrade
Documentation
Please refer to the Wiki for more advanced topics.