Contributing - TIRTAGT/LCDirectLAN GitHub Wiki

License Agreement

This project is open source and are released under the MIT License, for more information, please read the LICENSE file in the project repository.

By contributing to this project, you agree to license all of your contributions under the same license as the project itself.

If you allow, please append your name to the CONTRIBUTORS.md file in the project repository if you have contributed to this project. Please use the following format:

- [Name](Link to Profile) \<Email\>

The escaped angle brackets \< and \> are used to keep the opening and closing angle brackets from being interpreted as HTML tags, please do not remove them.

To respect your privacy, if you wish, you may use username/nickname instead of a real name, you may also omit Email, and Profile link, like the following examples:

Example for no profile link:

- Username \<Email\>

Example for the most privacy-friendly format:

- Username

When in doubt, please refer to the CONTRIBUTORS.md file for direct examples.

Thank you for your contribution!


Contributing non-code to LCDirectLAN project

If you are not a developer, you can still contribute to the project by reporting issues, suggesting new features, or improving the documentation.

Reporting issues

If you have found an issue with LCDirectLAN, head over to Troubleshooting/reporting-found-issues wiki page for more information on how to report issues.

Suggesting new features

If you have a feature request for LCDirectLAN, we are also using the Issues section of this repository to track feature requests with the feature-request label, so the process is quite similar to reporting issues.

Make sure there is no existing feature request for the feature you are suggesting, if there is an existing feature request, you can add additional information to the existing feature request by commenting on the existing issue, avoid creating a new feature request for the same feature.

To create a new feature request, use the Issues section of this repository and add the feature-request label to the issue so that it is easier for the project maintainers to track feature requests.

Improving the documentation

If you have found an issue with the documentation, you may need to fork the repository into your own GitHub account, make the changes, and then create a pull request to the main repository.

If you are not familiar with the process of creating a pull request, you can also report the issue in the Issues section of this repository with the documentation labels, so the project maintainers can make the changes for you when approved.


Contributing code to LCDirectLAN project

Requirements and Dependencies

Primary Requirements

NuGet Dependencies

These dependencies are required to build LCDirectLAN from source. You do not need to manually download these dependencies, Visual Studio should automatically ask you to download/restore these dependencies when you open the solution file, if not see the Troubleshooting section of this wiki page.

Preparing for first-time build

  1. Make sure you have LCDirectLAN source code downloaded/cloned from the GitHub repository

  2. Make sure you have all the Primary Requirements installed and ready to use.

  3. Open the project file LCDirectLAN.csproj with Visual Studio.

  4. Follow Visual Studio's instructions to download/restore the NuGet dependencies.
    If it does not ask you to download/restore the dependencies, please check the Troubleshooting section of this wiki page.

  5. Add Lethal Company and Unity DLL References to the project:

    • Right-click on the project in the Solution Explorer and select Add > Reference...

    • Click on the Browse button and navigate to your Lethal Company game directory.

    • Find and select all of these DLLs:

      • BepInEx\core\0Harmony.dll
      • LethalCompany_Data/Managed/Assembly-CSharp.dll
      • BepInEx\core\BepInEx.dll
      • LethalCompany_Data/Managed/Facepunch.Steamworks.Win64.dll
      • LethalCompany_Data/Managed/Unity.Collections.dll
      • LethalCompany_Data/Managed/Unity.Netcode.Runtime.dll
      • LethalCompany_Data/Managed/Unity.TextMeshPro.dll
      • LethalCompany_Data/Managed/UnityEngine.dll
      • LethalCompany_Data/Managed/UnityEngine.CoreModule.dll
      • LethalCompany_Data/Managed/UnityEngine.UI.dll
    • Click OK to add the selected references.

Building the project

  1. Build the project by clicking on Build > Build LCDirectLAN in the top menu.
  2. Done
    The LCDirectLAN DLL and its dependencies will be stored in the LCDirectLAN/bin/Debug or LCDirectLAN/bin/Release folder depending on your build configuration.

Troubleshooting

Visual Studio does not ask to download/restore the NuGet dependencies

If Visual Studio does not ask you to download/restore the NuGet dependencies, you can manually restore them by right-clicking on the project in the Solution Explorer and selecting Restore NuGet Packages.

Missing Game DLLs

If you are unable to find the required DLLs in your Lethal Company game directory, make sure your Lethal Company game is updated to the latest version that is tested with LCDirectLAN.

If you still cannot find the DLLs, you may need to download the latest version of Lethal Company from Steam or you may need to repair your game installation from the Steam client.

If all else fails, check for issues in LCDirectLAN's Issues section, please create a new issue if the problem is not already reported by following the Troubleshooting/reporting-found-issues wiki page.

Missing BepInEx / Harmony DLLs

If you are unable to find the required BepInEx / Harmony DLLs in the BepInEx/core directory, make sure you have a working installation of BepInEx, as those DLLs comes with BepInEx.

If you still cannot find the DLLs, you can try re-installing BepInEx from the official BepInEx GitHub repository.

Missing .NET Framework 4.8.1 SDK

If you are unable to build the project due to missing .NET Framework 4.8.1 SDK, you can download it from the official Microsoft website.

Make sure to download the SDK (Developer Pack) and not the Runtime, as the SDK includes the necessary tools to build the project.

Security / Privacy Best Practices

  • Visual Studio may include your local paths in the project file after adding the DLL references. Make sure to remove these paths before committing changes to the main repository, they are mostly located in the <HintPath> tags in the LCDirectLAN.csproj file.
⚠️ **GitHub.com Fallback** ⚠️