Tilted Online
  • Overview
  • Guides
    • Getting Started
    • Client setup
      • Initial setup
        • Removing the old setup
        • Installing the game
        • Launching the game
      • Overview
      • Using ModOrganizer2 (MO2)
        • Installing ModOrganizer2
          • Installating the MO2 mod manager
          • Initial MO2 setup
          • Creating a MO2 profile
          • Creating a separator in MO2
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Downloading Skyrim Together Reborn
          • Installing Skyrim Together Reborn
          • Locating Skyrim Together Reborn through MO2
          • Making a custom launch option in MO2
          • Launching SkyrimTogether through MO2
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
      • Using Vortex Mod Manager (VMM)
        • Installing Vortex Mod Manager
          • Installing the Vortex Mod Manager
          • Initial VMM setup
          • Creating a profile in VMM
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Download Skyrim Together Reborn
          • Making a custom launch option in VMM
          • Launching SkyrimTogether through VMM
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
    • Server setup
      • ReadMe first
      • Terminology
      • Overview
      • Windows setup
        • Regular setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Locating IP addresses
          • Port forwarding
          • Launching your server
        • ZeroTier setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Initial ZeroTier setup
          • Configuring ZeroTier network
          • Authorizing users in ZeroTier network
          • Connecting to your server
        • Local setup
          • Locating the STServer.ini
          • Editing STServer.ini
      • Linux setup
        • Docker setup
        • Locating your IP address
        • Locating the STServer.ini
        • Editing STServer.ini
        • Explaining bEnableModcheck
        • Port forwarding
      • Pterodactyl
      • Server configuration parameters
    • Troubleshooting
      • Address Library error
      • Closing the SkyrimTogether UI (STR UI) makes it reopen
      • Disabling the included Creation Club content
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • During server setup, my firewall didn't ask for network permission!
      • Hostile NPCs only target my friends, not me
      • How do I uninstall the mod?
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • I need help updating the Skyrim Together Reborn mod
      • I selected the wrong .exe, when first launching SkyrimTogether
      • I want to install Skyrim Script Extender (SKSE)
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • My game crashes when I open it or connect to a server
      • My game runs with very low FPS
        • Using ModOrganizer2
        • Using Vortex Mod Manager (VMM)
      • Naked NPCs / players
      • The STR UI doesn't appear when I press RIGHT CTRL or F2
      • The server list is not appearing
      • My game opens to a black screen for 2-10 seconds and then closes
      • STR UI shows my filesystem
      • Resource folder does not exist
    • Scripting
      • Core Math functions
      • Player functions
      • GameServer
      • Components
      • Services
      • World
      • Event Handlers
  • General information
    • Features
    • Playguide
    • FAQ
    • Supported games
    • Helpful Links
    • Admin
    • Commands
      • Server Console
      • In-Game Chat
    • Command line arguments
  • Technical documentation
    • Build guide
      • Build Docker server image
      • Troubleshooting
    • Overview
    • Contributing to translations
Powered by GitBook
On this page
  • Cloning the repository
  • Setting up the environment
  • Requirements
  • Generating the project files
  • Building
  • Running and debugging
  • Building the Together UI
  • Verifying
  • Working in this repository
  • CLI
  • GitHub for Desktop
  • Understanding the code
  • Starting points
  • Afterword

Was this helpful?

  1. Technical documentation

Build guide

For developers only

PreviousCommand line argumentsNextBuild Docker server image

Last updated 1 year ago

Was this helpful?

Cloning the repository

The code repository can be found .

Choose or create a directory for the repository to get cloned into, such as your Desktop. This is the directory we'll be working out of, so pick somewhere convenient. Be aware that spaces in the path will not work! For example C:\dev\git_projects\TiltedEvolution is fine but C:\dev\git projects\TiltedEvolution will NOT work.

Fork the repository through Github. Using the command line, run the following command in the directory from the previous step: git clone --recursive https://github.com/[YourGithubName]/TiltedEvolution.git . Replace [YourGithubName] with your Github name.

Once the command has finished executing, you should have a copy of this repository named TiltedEvolution inside your project directory.

Setting up the environment

Requirements

You will need (the community edition is freely available for download) and to build the project, as well as and for building the UI.

Installing Visual Studio 2022

Download Visual Studio 2022 from the official (the community edition is free). Follow the installation steps and when you reach the following screen, select the options "Desktop development with C++" and "Game development with C++".

Generating the project files

Run xmake project -k vsxmake to generate TiltedEvolution.sln , the Visual Studio solution which we'll be using. This can now be found in the vsxmake20** folder. You can choose the build mode either in Visual Studio directly, or through the command line, xmake config -m releasedbg .

You MUST do this step every time you merge changes from the main repository to avoid conflicts.

Do NOT use the debug build for the client as it will ONLY work for the server. If you want to debug the client, use releasedbg.

Building

The mod can either be compiled through Visual Studio, or through the command line, xmake -y . If all goes well, everything should now be compiled. Should you encounter any errors, feel free to ask for help in the Skyrim Together Discord #coding channel.

Running and debugging

Building is the first step; once the project compiled successfully you will need to generate an install by running xmake install -o distrib, which will create a directory called distrib in the root path that contains all of the files needed to run. Copy the files in distrib/bin over to build/windows/x64/releasedbg . This step should only be performed once, when building the project for the first time.

In Visual Studio, set FalloutImmversiveLauncher or SkyrimImmversiveLauncher as the startup project and ensure you are in the dev branch. Hit Local Windows Debugger to start debugging. From build/windows/x64/releasedbg , you can launch the server executable and a second client if you wish.

Building the Together UI

Until you've built and installed the Together UI, you will not have it in game (this does not include the debug UI). Open a shell inside Code/skyrim_ui and execute pnpm install. This will install the required packages.

Next, execute pnpm deploy:develop to build the development version. Alternatively, execute pnpm deploy:production to build the production version. Copy the folder Code/skyrim_ui/dist/UI over to build/windows/x64/releasedbg . Although not necessary, we recommend creating a symbolic link to the folder during development instead of duplicating to avoid having to copy over the folder after each build.

Verifying

Working in this repository

From now on, whenever you want to make a change in the repository, you will first need to branch off the master branch. Using a CLI in the TiltedEvolution directory, first check if the master branch is fully up to date:

git checkout master
git fetch
git pull

Now you can create a new branch. Please use the feature- prefix so that it's clear that your branch is a temporary, in-progress development branch. Creating your branch can be done using one of two methods:

CLI

Simply enter git checkout -b feature-somenamehere to have a branch created for you.

GitHub for Desktop

In the application, go to Branch -> New branch.... Give this an appropriate name (don't forget the prefix) and ensure that the branch is based on the master branch.

Understanding the code

Project structure

When it comes to the actual code (located in TiltedEvolution\Code), the two primary folders of interest are client and server.

Client is the core of the mod and can be broken down into Games, Services, and Systems.

  • Games contains all of the code that is Skyrim and Fallout 4 related, it mostly contains class structures and hooks to different parts of the engine

  • Services contains the different services that handle the actual sync, display, and gameplay

  • Systems contains specific tasks like interpolation and consuming animations

Server is the, well, server! It doesn't really contain much at the moment, it's a translation layer more than anything for the time being.

Starting points

When getting started, a good place to begin is looking at the DebugService in client\Services as it demonstrates how to get a service to listen to update events and how to spawn a copy of yourself. It also displays a bunch of gameplay elements for which we have written debuggers.

Afterword

If everything worked as intended, a Tilted Reverse Console will pop up. Once loaded into a save, run the corresponding server executable (or script, if you created one). Press F3 to display the Dear ImGui debug UI on top of your game. You should now be able to connect in-game by using the UI in the top left corner; pressing RCTRL or F2 should free your mouse so that you're able to interact with the UI. Note that you must have the mod manually installed to launch an instance of the game.

And that's all! With that, you're on your way to making great contributions to the repository. As mentioned previously, if you have any questions or encounter any hurdles, feel free to use the #coding channel in the !

Address Library
Skyrim Together Discord
here
Visual Studio 2022
xmake
Node.js
PNPM
webpage
Installation details