JanSeliv / Bomber

Open-source Bomberman multiplayer game made in Unreal Engine 5.3
MIT License
177 stars 30 forks source link

Missing Plugin: This project required the 'FootTrailsGenerator' plugin #64

Closed newlyzher closed 10 months ago

newlyzher commented 10 months ago

How to resolve this? "This project requires the 'FootTrailsGenerator' plugin, which has a missing dependency on the 'InstancedStaticMeshConverter' plugin."

JanSeliv commented 10 months ago

Hey there! 😊

Great to see you're interested in the project!

Looks like 'Bomber\Plugins\InstancedStaticMeshConverter' is empty on your side locally. This repository contains submodules in Plugins directory, so most likely you have them all empty inside: image

To clone the project properly, run:

git clone --recurse-submodules git@github.com:JanSeliv/Bomber.git

If already cloned without submodules, run:

git submodule update --init --recursive

Doing this should download all submodules automatically, ensuring that the project runs smoothly.

Hope this helps! Let me know if you have any more questions.

newlyzher commented 10 months ago

Hi 😊 I just started learning unreal engine. Pardon if I asking silly question 😅

This is the error I encountered after running either of the git command you mentioned. Looks like the submodules are not public project so I cant clone them image

JanSeliv commented 10 months ago

Hey there,

No worries at all! I appreciate your willingness to learn and ask questions. That's how we all grow. Now, let's get to resolving that error you encountered.

For a quick fix, consider cloning the project via HTTP as you did initially, but add --recurse-submodules to have it along with submodules, it should work for you with no problems:

git clone --recurse-submodules https://github.com/JanSeliv/Bomber.git

Going into details about your issue: The issue might lie in the SSH setup on your machine. My initial command used SSH to clone the project, which requires a pair of public and private keys for secure communication. If you haven't set up SSH keys, GitHub won't recognize your computer, leading to errors. To verify your SSH configuration, open your git shell and enter:

ssh -T git@github.com

If the response includes 'Hi [username]! You've successfully authenticated...', then SSH is properly configured. image If not, setting up an SSH key will help you avoid repetitive authentication steps when interacting with git repositories.

If you have any more questions or run into additional issues, feel free to ask. I'm here to help.

newlyzher commented 10 months ago

Hi, I have added SSH but it still throwing the same error. image image

JanSeliv commented 10 months ago

Hey,

Sorry to hear you're still facing issues. The challenge here seems to be with SSH specifically related to submodules. Although you managed to clone the main repo using HTTPS, the submodules are still trying to clone over SSH.

To circumvent this, you can switch the submodules to use HTTPS as well. Since you already cloned main project through HTTPS, you don't need download it again, just open up locally your Bomber\.gitmodules file and replace each 'url' with the HTTPS version like so:

[submodule "Plugins/SettingsWidgetConstructor"]
    path = Plugins/SettingsWidgetConstructor
    url = https://github.com/JanSeliv/SettingsWidgetConstructor.git
    branch = develop
[submodule "Plugins/PoolManager"]
    path = Plugins/PoolManager
    url = https://github.com/JanSeliv/PoolManager.git
    branch = develop
[submodule "Plugins/MorphsPlayer"]
    path = Plugins/MorphsPlayer
    url = https://github.com/JanSeliv/MorphsPlayer.git
    branch = develop
[submodule "Plugins/MetaCheatManager"]
    path = Plugins/MetaCheatManager
    url = https://github.com/JanSeliv/MetaCheatManager.git
    branch = develop
[submodule "Plugins/FunctionPicker"]
    path = Plugins/FunctionPicker
    url = https://github.com/JanSeliv/FunctionPicker.git
    branch = develop
[submodule "Plugins/InstancedStaticMeshConverter"]
    path = Plugins/InstancedStaticMeshConverter
    url = https://github.com/JanSeliv/InstancedStaticMeshConverter.git

Once you've updated the .gitmodules file on your side locally, sync and update the submodules by running the following commands to sidestep SSH requirements and pull all submodules via HTTPS as well:

git submodule sync
git submodule update --init --recursive

Once done, make sure those plugins are not empty inside. E.g: open Bomber\Plugins\SettingsWidgetConstructor...

Though this resolves the immediate problem, I'd strongly recommend setting up SSH for future projects. It's a one-time effort that will simplify your workflow down the line.

If you have more questions or encounter further issues, feel free to ask.

newlyzher commented 10 months ago

It works with https. There are files in my Bomber\Plugins folder now. I will try to figure out my SSH problem. Thanks!

newlyzher commented 10 months ago

I can clone with ssh now by renaming my private key file name to id_rsa. The ssh private key file name has to be id_rsa otherwise would need other configuration on OpenSSH (or git?).

JanSeliv commented 10 months ago

Great to hear you successfully downloaded everything using HTTPS!

I'm going to close the topic since the issue seems to be solved ;)

Concerning SSH and your question: yes, by default it looks for a key named id_rsa. A differently named key would require explicit mentioning or host-specific configuration in SSH.

I will leave here my internal notes how I usually set up SSH:

  1. Generate a New SSH Key:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. Copy the SSH Key to Clipboard:
    Use the following to copy your key:

    clip < ~/.ssh/id_rsa.pub
  3. Add Key to GitHub Account:
    Navigate to GitHub Settings -> 'SSH and GPG keys' -> 'New SSH key': add new key here

  4. Enable ssh-agent on Windows:
    For Windows users, run these commands in the CMD console to ensure the ssh-agent runs automatically upon boot:

    @echo eval $(ssh-agent) > %userprofile%/.bashrc
    @echo ssh-add ~/.ssh/id_rsa >> %userprofile%/.bashrc

    By adding these lines to your .bashrc, ssh-agent will automatically add your id_rsa key every time you open a new Git Bash terminal, displaying "Identity added" as a confirmation at the beginning.

I hope this information proves useful to you. If you encounter any more issues specifically related to the Bomber project, please don't hesitate to create new issues for them.

JanSeliv commented 6 months ago

Replaced SSH by HTTPS to make the project more friendly, so this issue should disappear for all users with no SSH setup.