diff --git a/src/creating/delimods.md b/src/creating/delimods.md index d3fb437..7965d1e 100644 --- a/src/creating/delimods.md +++ b/src/creating/delimods.md @@ -2,7 +2,11 @@ title: Deli mods --- -Deli is a popular format of packaging mods, and can be anything from maps, code mods, or guns. +> [!WARNING] +> Deli is not supported anymore. The following information is here for legacy reasons only. If you were linked here +from a seemingly updated article, [open an issue](https://github.com/H3VR-Modding/wiki/issues/new). + +Deli was a popular format of packaging mods, and can be anything from maps, code mods, or guns. All a `.deli` file is, is a `.zip` renamed. @@ -65,7 +69,7 @@ mod.deli/ vault_... ``` -Your `character.json` file should be inside of a folder, named anything you want. In this example I used the `character` +Your `character.json` file should be inside a folder, named anything you want. In this example I used the `character` name. Your sosigs should have the "sosig_" prefix, and your vault files should have the "vault_" prefix. This should make the following list for you to copy into your `"asssets"` list: @@ -116,7 +120,7 @@ mod.deli/ ``` Your `item` is the assetbundle created through Unity. You do not need to include its `.manifest` file, but you can. -Do **NOT** reference this file inside of the manifest. +Do **NOT** reference this file inside the manifest. This should make the following list for you to copy into your `"asssets"` list: diff --git a/src/creating/implementing/images/UnityEditor/physical_object_object_wrapper.png b/src/creating/implementing/images/UnityEditor/physical_object_object_wrapper.png new file mode 100644 index 0000000..a956367 Binary files /dev/null and b/src/creating/implementing/images/UnityEditor/physical_object_object_wrapper.png differ diff --git a/src/creating/implementing/images/UnityEditor/prefab_loader.png b/src/creating/implementing/images/UnityEditor/prefab_loader.png new file mode 100644 index 0000000..ea5bdfc Binary files /dev/null and b/src/creating/implementing/images/UnityEditor/prefab_loader.png differ diff --git a/src/creating/implementing/images/UnityEditor/prefab_loader_choosing_a_prefab.png b/src/creating/implementing/images/UnityEditor/prefab_loader_choosing_a_prefab.png new file mode 100644 index 0000000..e2e7959 Binary files /dev/null and b/src/creating/implementing/images/UnityEditor/prefab_loader_choosing_a_prefab.png differ diff --git a/src/creating/implementing/images/UnityEditor/prefab_loader_window.png b/src/creating/implementing/images/UnityEditor/prefab_loader_window.png new file mode 100644 index 0000000..044be8b Binary files /dev/null and b/src/creating/implementing/images/UnityEditor/prefab_loader_window.png differ diff --git a/src/creating/implementing/the_basics.md b/src/creating/implementing/the_basics.md index dabed89..9c191fa 100644 --- a/src/creating/implementing/the_basics.md +++ b/src/creating/implementing/the_basics.md @@ -3,92 +3,57 @@ title: Implementing Basics --- This document is meant as a quick reference guide, and should not be substituted for a comprehensive tutorial. +We recommend you take a look at how to set up [MeatKit](../meatkit/intro.md) first. ## Required/Recommended tools -You need Unity version 5.6.3. This is **non-negotiable**. Any patch version is compatible (p4, f). The link to the Unity +You need Unity version 5.6.7f1. This is **non-negotiable**. The link to the Unity version archive can be found [here](https://unity3d.com/get-unity/download/archive). -[AssetStudioGUI](https://drive.google.com/file/d/18P59DJL0tGRSTXaxXknVl9lFiLJ27Y_v/view) is an extremely useful tool for +[AssetStudioGUI](https://github.com/aelurum/AssetStudio/releases/latest) is an extremely useful tool for exporting packaged meshes and textures. -The [H3 Unity Template](https://drive.google.com/file/d/1bRHZrJxgPmE1PJGR_ty3i78mBfLTZQiB/view?usp=sharing) contains all -scripts and stubs for you to create firearms or other objects. +The [MeatKit Project](https://github.com/H3VR-Modding/MeatKit) contains everything you need to make... pretty must everything. -Once you have these, open Unity then open the folder of the template as a Unity project. +Once you have installed MeatKit, open up the project. ## Unity Window Types -There are a few types of windows inside of the unity editor. +#### There are a few types of windows inside the Unity editor: -Inspector +| Window | Description | +|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Inspector | The Inspector window shows you the details of the object you have selected. | +| Hierarchy | The Hierarchy shows the parent child relationships of your objects in the scene.
Objects that are selected here are not saved automatically, and must be applied through the Inspector window. | +| Game | This window shows what the camera in your scene is seeing.
Useful for taking pictures. | +| Scene | The Scene is a display of the objects in your hierarchy.
You can use the edit tools (move, rotate, etc.) in the top left of the Unity window to modify the objects placed in the scene. | +| Project | Commonly known as the Assets Tray, this area shows your file structure and saved prefabs. | +| Asset Bundles | This window shows what asset labels you have and which items are included in them.
In the build section, you can build your asset labels to be used and shared. | -- The Inspector window shows you the details of the object you have selected. - -Hierarchy - -- The Hierarchy shows the parent child relationships of your objects in the scene. -- Objects that are selected here are not saved automatically, and must be applied through the Inspector window. - -Game - -- This window shows what the camera in your scene is seeing. -- Useful for taking pictures. - -Scene - -- The Scene is a display of the objects in your hierarchy. -- You can use the edit tools (move, rotate, etc.) in the top left of the Unity window to modify the objects placed in - the scene. - -Project - -- Commonly known as the Assets Tray, this area shows your file structure and saved prefabs. - -Asset bundles - -- This window shows what asset labels you have and which items are included in them. -- In the build section, you can build your asset labels to be used and shared. ## Importing prefabs -Got an item in mind that you want to make? Think of an item already in the game that is most like it, and which class it -would belong in (melee, smg, rifle, etc.). Open your file explorer and go to your root H3VR folder, then navigate -to `H3VR/h3vr_data/StreamingAssets/` and find that file. For example, if you wanted to make an smg, you would want to -copy the `assets_resources_objectids_weaponry_smg` and `assets_resources_objectids_weaponry_smg.manifest` file. - -Paste those files inside of your H3 unity template under assets (`H3 Unity Template/Assets/`). - -You should have empty game object with the prefab loader script component in the unity window. If you don't have one, -you can right-click in the `Hierarchy` on the left and click the `Create Empty` button. Once selected, in -the `Inspector` tab on the right, click on the `Add Component` button and search for the prefab loader script. - -Once you have a prefab loader object ready, fill it out with the fields you need. - -1. Open the `.manifest` file in any notepad program. -2. Find the `.prefab` path you want to copy. Note: `.asset`s cannot be used. -3. Fill in your prefab loader object with the path to your asset bundle you are extracting from, and the path you copied - from its `.manifest` file. - -For example: +>[!NOTE] +> If you want to contribute, adding an entry on the Advanced Prefab Loader is welcome! -Prefab Path: `Assets/assets_resources_objectids_weaponry_smg` +1. Enter and exit Play Mode by clicking on the Play button in the upper center of the Unity Editor, then clicking on it +again when the Editor unfreezes. (Note: If you wish to retain the meshes and materials of your imported objects +at the cost of losing script references after a restart of the Editor, forgo this step) +2. Go to `Meatkit > Prefab Loader` ![](images/UnityEditor/prefab_loader.png) and click on the `Select Asset Bundle` button on the pop-up. ![](../implementing/images/UnityEditor/prefab_loader_window.png) +3. Navigate to `\steamapps\common\H3VR\h3vr_Data\StreamingAssets` and open the asset bundle with the object you +wish to import into the Hierarchy. +4. Finally, choose the prefab you want to import by clicking on the asset display button, navigating to your desired +prefab, clicking it and clicking Spawn. +![prefab_loader_choosing_a_prefab.png](images/UnityEditor/prefab_loader_choosing_a_prefab.png) -This is the location of the bundle you copied into your Unity project. - -Prefab_to_Load: `Assets/Weaponry/SMGClosedBolt/Mp9.prefab` - -This is the path copied from the manifest file. - -Press the pause button then the play button at the top of the screen, then drag the clone into your assets tray. ## Importing assets -Importing assets is as easy as copying them to your Unity project. Its recommended to make them under a recognizable +Importing assets is as easy as copying them to your Unity project. It is recommended to make them under a recognizable folder, such as `Materials`. This can be done by dragging and dropping them into the Assets tray, or by opening your OS's file explorer and copying them through there. -Assets can range from textures, meshes, or sounds. +Assets can range from textures and meshes to sounds and custom scripts. **Alloy** is the lighting system that H3VR uses, and because of that we need to create special materials to make sure that the item you are trying to create renders correctly. @@ -104,6 +69,9 @@ the `Material Map Channel Packer` in the window tab. ![channel packer](images/UnityEditor/alloy_channel.png) +>[!NOTE] +> This section needs more information. Contributions welcome! + In the window that opens, drag your textures into the required fields. The normal is not required. After you hit generate, you will obtain a metal texture. Fill you material with your texture sets now (base/diffuse, metal, and normal). @@ -133,28 +101,31 @@ You will have to figure out the specifics on your own. ## Required Assets -To make sure your weapon works, you need to give it an object wrapper (found in the main script). The object wrapper is -simply an object id, something that defines your item. +To make sure your weapon works, you need to give it an Object Wrapper +(can be created with `Assets > Create > Object IDs > Object ID`). The Object Wrapper is +simply an Object ID, something that defines your item. -Among the item id, you also need: +If you want your item to show up in the spawner, you will need to give it a Spawner Entry.
+This can be done by creating said Spawner Entry via `Assets > Create > MeatKit > Otherloader > Spawner Entry` -- Item Spawner ID +And if the item is a firearm: -And depending on the if the item is a firearm or not: - -- Recoil profile -- Audio profile +- Recoil Profile (`Assets > Create > Firearms > RecoilProfile`) +- Firearm Audio Set (`Assets > Create > AudioPooling > FireArmAudioSet`) ## Filling out the specifics -This next section will go over what needs to be filled out in each file detailed above. Included are example `.zip` -files that include an empty script object and it's associated `.meta` file. You can extract these into your Unity -project for reference and duplication. If for whatever reason the scrip file is empty, click on the little circle in the -Inspector window and browse for the correct name of the script and press enter. +This next section will go over what needs to be filled out in each file detailed above. If you want to duplicate an +already-existing script, you can do that by: +1. Clicking on your desired already-filled-in prefab +2. Finding a field that has the required script filled in (e.g. all Physical Objects (which includes firearms) +will have it filled in right under the Physical Object Config Header) ![physical_object_object_wrapper.png](images/UnityEditor/physical_object_object_wrapper.png) +3. Double-clicking the field. This will open the script in the Inspector, from where you can copy the contents however +you want. Note that this will NOT add the script to your project. ### Item ID -[Script example download](https://github.com/H3VR-Modding/wiki/raw/main/src/creating/implementing/files/file_ID.zip). Script name: `FVRObject` +Script name: `FVRObject` The Item ID requires a few fields to be filled out: @@ -165,28 +136,28 @@ Item ID, Display Name, Spawned From ID: Identifiers of your item. To avoid confusion, should all be the same. The rest of the fields should be filled out to your discretion. They are tags that relate to Take and Hold, so if you -want your item to spawn in it they need to be filled out. +want your item to spawn in it, they need to be filled out. Finally, if you want your item to spawn in TnH, enabled the `O Sple` property. -### Item Spawner ID +### Item Spawner Entry -[Script example download](https://github.com/H3VR-Modding/wiki/raw/main/src/creating/implementing/files/file_ISID.zip). Script name: `ItemSpawnerID` +Script name: `ItemSpawnerEntry` -The ISID can be made through the assets tray `Create > ItemSpawner > ID`, and the icon is just an image that has its +The Item Spawner Entry can be made through the assets tray `Create > MeatKit > Otherloader > SpawnerEntry`, +and the icon is just an image that has its metadata changed to be a sprite (clicking on the icon and changing the type in the inspector). Make sure that you have `Is Displayed In Main Entry` and `Is Unlocked By Default` are set to true. This will allow you -to see your item and spawn it. Set it's category and sub category so that you can find it (make sure that you set it to -something used in the game already or else it won't load correctly). Set the sub heading to something you want, but its -not required. +to see your item and spawn it. Set its category and sub category so that you can find it. Set the sub heading to something +you want, but it's not required. Fill out the icon with the one you made (not required), and set the `Item ID` field to the exact same string you used in the Item ID object just above. Drag your item id object into the `Main Object` field. ### Recoil profile -[Script example download](https://github.com/H3VR-Modding/wiki/raw/main/src/creating/implementing/files/file_Recoil.zip). Script name: `FVRFireArmRecoilProfile` +Script name: `FVRFireArmRecoilProfile` This is just a bunch of number fields that determine your weapon's recoil. @@ -196,7 +167,7 @@ If you want to simulate your referenced weapon, the follow the following steps: 2. In the Hierarchy, click on the newly cloned weapon. 3. Scroll down in the Inspector window until you find the location of the recoil profile that is required by all weapons. -4. Double click on it. +4. Double-click on it. 5. The Inspector should have changed to show your referenced weapon's recoil profile. Take a screenshot using `win + shift + s`, or any other snipping tool you may have for a quick reference. @@ -204,7 +175,7 @@ Make sure that you place your recoil profile in both slots in your weapon's main ### Audio Profile -[Script example download](https://github.com/H3VR-Modding/wiki/raw/main/src/creating/implementing/files/file_Audio.zip). Script name: `FVRFirearmAudioSet` +Script name: `FVRFirearmAudioSet` The Audio profile is exactly the same as the recoil profile, double check what your referenced weapon used by following the similar steps, taking pictures along the way. Make sure that you expand all clip sections and take note of which @@ -212,34 +183,10 @@ fields (such as `prefire`) are filled. Your weapon's audio profile **must** cont AssetStudioGUI is a great tool to use here. Drag and drop the asset bundle you copied into your Unity project into the ASGUI window and wait for it to load. Select the `Asset List` tab and then search for the sound files that are required. -You can right click on the sound files and click `Export Selected Assets`, and you can export them straight to your +You can right-click on the sound files and click `Export Selected Assets`, and you can export them straight to your Unity project to use. ## Building your item -Before building your item, you need to add a few items to your asset bundle list. To do this, select your prefab, item -id, and item spawner id from the assets tray (using `ctrl + click`), then look at the bottom of the inspector tab. Here -you will see a black box with a drop-down at the bottom. This is the asset label box, and allows you to select which -items are bundled together. - -![bundle selection](images/UnityEditor/assetbundle_select.png) - -In the drop down, create a new bundle name that is descriptive of your item. This usually is the name of your mod, but -its recommended to include a short-form or your name as well for diagnostic purposes. - -Next up, select the `AssetBundle Browser` from the `Window` tab. - -![assetbundle browser open](images/UnityEditor/assetbundle_browser_open.png) - -This will open a small window. You can move the tab somewhere easier to see in another part of the unity editor. - -![browser](images/UnityEditor/assetbundle_browser.png) - -In the `Configure` tab, you can select your asset label to see what is inside of your bundle that will be made. -Everything that your item needs will be auto populated by unity, so don't worry about tracking things down. - -In the `Build` tab, you can select the location where your bundle will be built to. It is recommended to just select -your `H3VR/LegacyVirtualObjects` folder to make it easier to test. Make sure you have `Clear Folders` enabled, -and `Copy to Streaming Assets` disabled. - -Thats it, hit build and you are on your way to testing it. +It's currently recommended to use the [MeatKit Build Profile](../meatkit/getting_started/2_build_profile.md) to build +your mod as a Thunderstore package. diff --git a/src/creating/making_mods.md b/src/creating/making_mods.md index 5931f22..a1d589b 100644 --- a/src/creating/making_mods.md +++ b/src/creating/making_mods.md @@ -6,14 +6,13 @@ Many mods are created differently, so on this page you will find links to articl ## Custom Objects -| Tutorial | Notes | -|-----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Devyn's Custom Weapon video tutorial playlist](https://www.youtube.com/watch?v=BScDQiGCRAM) | This guide can be adapted for nearly *any* custom object and is highly recommended. This is currently the only implementation tutorial that starts from the basics, so it's recommended to watch this tutorial before anything else. | -| [gamernayr's Custom Ammo tutorial](https://docs.google.com/document/d/1bF66Tijdf5mwTXuIPWmnszSNMJ8u7Wxza9_PshheB2A/edit?usp=sharing) | Follow along to make custom ammo, no assets required. | -| [gamernayr's modular weapon tutorial](implementing/modul/creation.md) | This tutorial goes over converting weapons into modular ones, basing the structure off of previously created modul-series mods to ensure cross compatibility. | -| [gamernayr's pre-attached attachments tutorial](implementing/pre-attached_attachments.md) | Integrated attachments and other defaulting mods can be used after reading this tutorial. | -| [gamernayr's Grenade tutorial](implementing/grenades.md) | The basics on making grenades. Having some previous unity knowledge is highly recommended. | -| [Sora101TD's Unity Modmaking Tutorials](https://www.youtube.com/playlist?list=PLuiLsQZSfmynRE4qXHpeeTmwrIYSgduON) | Ten videos, start to finish, walking through how a custom gun is made. | +| Tutorial | Notes | +|-------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| [Devyn's Custom Weapon video tutorial playlist](https://www.youtube.com/watch?v=BScDQiGCRAM) | This guide can be adapted for nearly *any* custom object and is highly recommended, albeit showing its age. Watch it before anything else. | +| [gamernayr's Grenade tutorial](implementing/grenades.md) | The basics on making grenades. Having some previous Unity knowledge is highly recommended. | +| [Sora101TD's Unity Modmaking Tutorials](https://www.youtube.com/playlist?list=PLuiLsQZSfmynRE4qXHpeeTmwrIYSgduON) | Ten videos, start to finish, walking through how a custom gun is made. | +| [ShermanJumbo's Custom Ammo Tutorial](https://youtu.be/zQ0ICkXKkr4) | An exhaustive, modern guide on anything custom ammo. | +| [Local's Modular Weapon Tutorial](https://docs.google.com/document/d/1anDYvEmJk-LP4n0Gzb69jXU_Chd9uTVVNgilN-JMGik/edit?usp=sharing) | In-depth guide on making Modular weapons using CityRobo's framework. | ## Custom Code @@ -26,12 +25,12 @@ Many mods are created differently, so on this page you will find links to articl ## Custom Maps -| Tutorial | Notes | -|-----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| -| (Recommended) [Atlas getting started guide](mapping/atlas/getting_started/1_requirements.md) | Simple guide for getting started with Atlas, the next generation of mapping tools for H3VR | -| (Legacy) [Wurstmod - Setting Up Your Environment](https://github.com/WurstModders/WurstMod/wiki/Setting-up-your-environment) | A basic guide from Wurstmod on setting up your environment to make and export H3VR maps. | -| [NunSuperior's Map Modding Tips](https://www.youtube.com/watch?v=zaIOFqZUVmI) | NunSuperior's video is a very in-depth guide into almost every facet of making a map. | -| [NunSuperior's Modded Map Performance Tips](https://docs.google.com/document/d/1rMcIcLBcJBFqosD6wBnVdqipfZH8vOnf_vgNLhwZ7yQ/edit?usp=sharing) | A short but useful document to increase performance in maps. | +| Tutorial | Notes | +|-----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| +| (Recommended) [Atlas getting started guide](mapping/atlas/getting_started/1_requirements.md) | Simple guide for getting started with Atlas, the next generation of mapping tools for H3VR. | +| [Local's Mapping Guide](https://youtu.be/ATjTg0oejkg) | Short video guide on making maps with Atlas. | +| [NunSuperior's Map Modding Tips](https://www.youtube.com/watch?v=zaIOFqZUVmI) | NunSuperior's video is a very in-depth guide into almost every facet of making a map. | +| [NunSuperior's Modded Map Performance Tips](https://docs.google.com/document/d/1rMcIcLBcJBFqosD6wBnVdqipfZH8vOnf_vgNLhwZ7yQ/edit?usp=sharing) | A short but useful document to increase performance in maps. | ## Custom Skins/Sounds @@ -42,12 +41,19 @@ Many mods are created differently, so on this page you will find links to articl ## Custom Characters -| Tutorial | Notes | -|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| -| [Devyndamonster's Making A Custom Character tutorial](https://github.com/devyndamonster/TakeAndHoldTweaker/wiki/Making-A-Custom-Character) | The original tutorial for making custom characters. Recommended as a starting point, covers most subjects. | +| Tutorial | Notes | +|-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------| +| [Devyndamonster's Making A Custom Character tutorial](https://github.com/devyndamonster/TakeAndHoldTweaker/wiki/Making-A-Custom-Character) | The original tutorial for making custom characters. Recommended as a starting point, covers most subjects. | | [SirPotato's Custom Character Creation Guide](https://docs.google.com/document/d/1YE7iWOQGHevYE0V-CzMEu3LHfb0ejbmRV4uZz7Id-OI/edit?usp=sharing) | A newer, complete tutorial for that guides you through the entire process for creating a custom character and publishing to Thunderstore. | -## Packaging Mods (LEGACY) +## Custom PlayerBodies + +| Tutorial | Notes | +|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| [Lunaire's PlayerBodies Tutorial](https://docs.google.com/document/d/1687-t-IiU6UWRv4FLVbj3EOJlaaTOiLWHnRDJ046Rwc/edit?usp=sharing) | Guide on how to implement PlayerBodies (Avatars, simply put) using CityRobo's framework. | +| [Sora101TD's PlayerBodies Tutorial](https://discord.com/channels/685655713845870602/877599134767530004/1323012765597696071) | Video guide on implementing PlayerBodies using JerryAr's template. Currently only available on the H3VR Homebrew discord. | + +## Miscellaneous Legacy Mods These articles are considered legacy as they refer to processes which are no longer current. | Tutorial | Notes | @@ -58,3 +64,13 @@ These articles are considered legacy as they refer to processes which are no lon | [gamernayr's Making Modpacks](thunderstore/modpacks.md) | Got a list a mods you would like to share with the community? Take a look at this guide for making a modpack. | | [Stratum GUIDs And Loaders](stratumdeps.md) | A list of Stratum loaders and their respective GUIDs. | | [Packaging Mods For Thunderstore](thunderstore/uploading.md) | A step-by-step tutorial on how to package your mod for Thunderstore. | +| [Wurstmod - Setting Up Your Environment](https://github.com/WurstModders/WurstMod/wiki/Setting-up-your-environment) | A basic guide from Wurstmod on setting up your environment to make and export H3VR maps. | + +## Deprecated +These articles have been replaced completely by more relevant ones and are here for legacy reasons. + +| Tutorial | Notes | +|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [gamernayr's Custom Ammo tutorial](https://docs.google.com/document/d/1bF66Tijdf5mwTXuIPWmnszSNMJ8u7Wxza9_PshheB2A/edit?usp=sharing) | (Replaced by ShermanJumbo's video guide) Follow along to make custom ammo, no assets required. | +| [gamernayr's modular weapon tutorial](implementing/modul/creation.md) | (Replaced by Local's written guide) This tutorial goes over converting weapons into modular ones, basing the structure off of previously created modul-series mods to ensure cross compatibility. | +| [gamernayr's pre-attached attachments tutorial](implementing/pre-attached_attachments.md) | (Replaced by CityRobo's OpenScripts2) Integrated attachments and other defaulting mods can be used after reading this tutorial. | diff --git a/src/creating/mapping/index.md b/src/creating/mapping/index.md index 27d545d..4db7d01 100644 --- a/src/creating/mapping/index.md +++ b/src/creating/mapping/index.md @@ -1,7 +1,7 @@ # Mapping in H3VR There are two tools for mapping in H3VR. Atlas and WurstMod. As a general overview, Atlas is the newer of the two and supports a number -of significant improvements over WurstMod such as occlusion culling, and easy -custom scripting. +of significant improvements such as occlusion culling and easy +custom scripting. WurstMod is no longer recommended. Select a page on the left to read more about them. diff --git a/src/installing/getting_started.md b/src/installing/getting_started.md index 2e87b69..82e2f45 100644 --- a/src/installing/getting_started.md +++ b/src/installing/getting_started.md @@ -4,25 +4,29 @@ title: Getting Started ## Thunderstore -[**Thunderstore**](https://h3vr.thunderstore.io) is the site to find mods. -[**r2modman**](https://h3vr.thunderstore.io/package/ebkr/r2modman/) and [**Thunderstore Mod -Manager**](https://www.overwolf.com/app/Thunderstore-Thunderstore_Mod_Manager) are mod managers meant to be used to -manage mods from Thunderstore. This site will refer to r2modman, but Thunderstore Mod Manager can be used with the same -instructions. +[**Thunderstore**](https://h3vr.thunderstore.io) is the current H3VR mod repository. -If you would prefer a video tutorial, you can find one here by Jeditobiwan: +If you prefer a video tutorial, you can find one here by JediTobiwan: [![Mod tutorial](https://img.youtube.com/vi/rchbe9xDbrY/sddefault.jpg)](https://youtu.be/rchbe9xDbrY "Mod tutorial") -## Installing Mods via r2modman +There are currently three main mod managers used by the community, that being: + +| [Thunderstore Mod Manager](https://www.overwolf.com/app/thunderstore-thunderstore_mod_manager) | [Gale Mod Manager](https://github.com/Kesomannen/gale/releases/latest) | [R2ModMan](https://github.com/ebkr/r2modmanPlus/releases/latest) | +|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| The original and most-used mod manager with no particularly defining features. Has ads. Available via Overwolf Appstore. | Cutting-edge option, radically different UI and much more exhaustive functionality, at the cost of stability. Available via GitHub & [Thunderstore](https://thunderstore.io/c/lethal-company/p/Kesomannen/GaleModManager/). | Fork of Thunderstore Mod Manager with updated functionality and without advertisements. Available via GitHub & [Thunderstore](https://thunderstore.io/package/ebkr/r2modman/). | + +All information on this wiki refers to R2ModMan, but the setup process isn't too different between the mod managers. + +## Installing Mods via R2ModMan > [!WARNING] -> If you have installed mods previously from another storefront, please preform a [clean install](starting_fresh.md). +> If you have previously installed mods from another storefront, please perform a [clean install](starting_fresh.md). > [!IMPORTANT] > Mods are no longer installed to the root H3VR directory! Please read the tutorial carefully. -Once you have installed r2modman and opened it, you will be greeted by a page asking you which game you would like to +Once you have installed R2ModMan and opened it, you will be greeted by a page asking you which game you would like to manage. In our case, we want to manage H3VR so click on that. It will ask you to create a profile or select the default one. It's up to you which you use, the default one cannot be deleted, but comes as an empty profile for new users. @@ -32,12 +36,12 @@ the `Installed` section on the left. ![image](images/r2modman/greeted.png) -r2modman contains a list of Thunderstore mods in their `Online` section. It will automatically download any mods +R2ModMan contains a list of Thunderstore mods in their `Online` section. It will automatically download any mods required by any other mods. This means all you need to worry about is the mods you want, and not what's needed to run it. This process also works in reverse: if you were to uninstall a mod that other mods depend on, those mods will also be uninstalled. -From the `Online` section in r2modman, install anything you want by clicking on it, then by clicking on the `Download` +From the `Online` section in R2ModMan, install anything you want by clicking on it, then by clicking on the `Download` button. Below is a picture of the `WurstMod` dependency as an example. ![image](images/r2modman/WurstMod.png) @@ -48,17 +52,17 @@ Please see the @"importing" doc for more information. ## Troubleshooting -Many common problems can be found on the r2modman wiki -page, [Why aren't my mods working?](https://github.com/ebkr/r2modmanPlus/wiki/Why-aren%27t-my-mods-working%3F), provided +Many common problems can be found on the R2ModMan wiki +page, "[Why aren't my mods working?](https://github.com/ebkr/r2modmanPlus/wiki/Why-aren%27t-my-mods-working%3F)", provided by Ebkr. -For less common problems, see the [Troubleshooting](troubleshooting/index.md) articles for more details. New problems +For less common problems, see [Troubleshooting](troubleshooting/index.md). New problems are found every day, but yours will likely be on this page. ## Configuring Mods -Some mods may utilize configuration files to change certain aspects of their behavior. Using r2modman's `Config Editor` +Some mods may utilize configuration files to change certain aspects of their behavior. Using R2ModMan's `Config Editor` setting on the left, you can change any config file created. -To generate config files, fully load the game. This will generated config files for all the mods currently enabled. +To generate config files, fully load the game. This will generate config files for all the mods currently enabled. Errors may prevent options within the config files or even entire config files to not generate. If you do have errors, fix those before changing config options. @@ -68,7 +72,7 @@ Below is a picture of where the `Config Editor` feature is. ## Running your game with mods -To run mods, you **must** press the `Run Modded` button within r2modman. +To run mods, you **must** press the `Run Modded` button within R2ModMan. If you would like to run the game modded through Steam, making the ease of use and usefulness of profiles irrelevant, please see the bottom of the `General` section of the `Help` menu on the left. diff --git a/src/installing/mod_formats.md b/src/installing/mod_formats.md index dfdef1f..90d34bd 100644 --- a/src/installing/mod_formats.md +++ b/src/installing/mod_formats.md @@ -6,55 +6,19 @@ uid: formats Mods are packaged in a few different ways, partially due to what they rely on. However, **all mods** require [BepInEx](https://h3vr.thunderstore.io/package/BepInEx/BepInExPack_H3VR/). -## r2modman Packages - -File Extension: `zip` - -r2modman packages encompass all mods that can be used within r2modman. They may contain the formats below as well, but -aren't required to. - -### Thunderstore Packages - -Thunderstore packages are a subset of r2modman packages that contain additional metadata. All mods found -on [Thunderstore](https://h3vr.thunderstore.io) are Thunderstore packages. Much like how all squares are rectangles but -not all rectangles are squares, all Thunderstore packages are r2modman packages but not all r2modman packages are -Thunderstore packages. - -## BepInEx Plugins - -File Extension: `dll` - -BepInEx plugins have no additional requirements. - -## Deli Mods - -File Extension: `deli` - -Deli mods require [Deli 0.4.1](https://h3vr.thunderstore.io/package/DeliCollective/Deli/), but they may also rely on -other mods. For instance, Deli mods that contain custom items or ammo also -require [OtherLoader](https://h3vr.thunderstore.io/package/devyndamonster/OtherLoader/). - -> [!NOTE] -> File extensions are disabled by default in File Explorer. In that case, uncommon file extensions will appear under `File Type` column. - -## Sideloader Mods - -File Extension: `hotmod` or `h3mod` - -Sideloader mods require [Sideloader](https://h3vr.thunderstore.io/package/denikson/H3VR_Sideloader/), which in turn -requires [XUnity.ResourceRedirector](https://h3vr.thunderstore.io/package/bbepis/XUnity_ResourceRedirector/). These mods -mostly replace assets, such as audio and textures, but can add items. - -## Asset Bundles - -File Extension: none (shows as the `FILE` file type) - -Asset bundles are loaded through [OtherLoader](https://h3vr.thunderstore.io/package/devyndamonster/OtherLoader/)'s -legacy loading system. These bundles are almost always a firearm, and are often accompanied with a `.manifest` file. -This `.manifest` file is not needed for load the mod. - -## TnH Music - -File Extension: `.bank` - -TnH Music requires [PTNHBGML](https://h3vr.thunderstore.io/package/Potatoes/Potatoes_TNH_BGM_Loader/). +### Currently used formats: + +| Name | Extension | Description | +|------------------------------|:---------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| R2ModMan Package | `.zip` | R2ModMan packages encompass all mods that can be used within R2ModMan. They may contain the formats below as well, but aren't required to. | +| Thunderstore Package | `.zip` | Thunderstore packages are a subset of R2ModMan packages that contain additional metadata. All mods found on [Thunderstore](https://h3vr.thunderstore.io) are Thunderstore packages. | +| Take & Hold Background Music | `.bank` | TnH Music requires [Potatoes' TNH BGM Loader](https://h3vr.thunderstore.io/package/Potatoes/Potatoes_TNH_BGM_Loader/). | +| BepInEx Plugin | `.dll` | BepInEx plugins have no additional requirements. | + +### Legacy formats: + +| Name | Extension | Description | +|----------------|:----------------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Deli Mod | `.deli` | Deli mods require [Deli 0.4.1](https://h3vr.thunderstore.io/package/DeliCollective/Deli/), but they may also rely on other mods. For instance, Deli mods that contain custom items or ammo also require [OtherLoader](https://h3vr.thunderstore.io/package/devyndamonster/OtherLoader/). | +| Sideloader Mod | `.h3mod`
`.hotmod` | Sideloader mods require [Sideloader](https://h3vr.thunderstore.io/package/denikson/H3VR_Sideloader/), which in turn requires [XUnity.ResourceRedirector](https://h3vr.thunderstore.io/package/bbepis/XUnity_ResourceRedirector/). These mods mostly replace assets, such as audio and textures, but can add items. | +| Asset Bundle | `FILE` (no extension) | Asset bundles are loaded through [OtherLoader](https://h3vr.thunderstore.io/package/devyndamonster/OtherLoader/)'s legacy loading system. These bundles are almost always a firearm, and are often accompanied by a `.manifest` file. This `.manifest` file is not needed for load the mod. | diff --git a/src/installing/troubleshooting/getting_assistance.md b/src/installing/troubleshooting/getting_assistance.md index 859f27f..935c0de 100644 --- a/src/installing/troubleshooting/getting_assistance.md +++ b/src/installing/troubleshooting/getting_assistance.md @@ -1,5 +1,8 @@ # Getting Assistance -If this article did not help to solve your issue then your next step is to ask for help in the `#modding-help` channel -of the [main H3VR server](https://discord.gg/gnXA9Qs4QM). Be sure to include your [BepInEx log](log_file.md) and as much +You can get community support in either the +**[#modding-help](https://discord.com/channels/332262044550037516/1043762022061457462)** forum +of the [main H3VR server](https://discord.gg/gnXA9Qs4QM) and/or the +**[#help-and-bug-reports](https://discord.com/channels/685655713845870602/1145044590890602587)** +forum of the [Homebrew H3VR server](https://discord.gg/83yTrfr). Be sure to include your [BepInEx log](log_file.md) and as much information about your issue as you can. diff --git a/src/installing/troubleshooting/index.md b/src/installing/troubleshooting/index.md index ab21636..2e51030 100644 --- a/src/installing/troubleshooting/index.md +++ b/src/installing/troubleshooting/index.md @@ -6,15 +6,15 @@ Read through this guide from top to bottom and follow the steps within to narrow potential fixes you may have. > [!WARNING] -> This guide assumes you are using r2modman / Thunderstore Mod Manager. +> This guide assumes you are using R2ModMan / Thunderstore Mod Manager. ## None of my mods are working / the game doesn't open Make sure that a console window is opening up on your desktop alongside the game when you start the game modded. If one -does not then it is highly likely that your issue is with r2modman and you should read +does not then it is highly likely that your issue is with R2ModMan, and you should read their [troubleshooting guide](https://github.com/ebkr/r2modmanPlus/wiki/Why-aren%27t-my-mods-working%3F). -### [x mod] depends on y, but it is not installed +### "[x mod] depends on y, but it is not installed" Log error: @@ -25,23 +25,12 @@ Log error: This message will appear when you have Otherloader 1.0.0 installed, but not [Deliter](https://h3vr.thunderstore.io/package/Stratum/Deliter/). Since Otherloader now uses stratum, it is not deli -compliant. Install [Deliter](https://h3vr.thunderstore.io/package/Stratum/Deliter/) and it will convert your deli mods +compliant. Install [Deliter,](https://h3vr.thunderstore.io/package/Stratum/Deliter/) and it will convert your deli mods to stratum mods. -Potential fixes: - -1. Install [Deliter](https://h3vr.thunderstore.io/package/Stratum/Deliter/). - -... or ... - -1. Downgrade Otherloader: - 1. Go to the `Online` section. - 2. Download Otherloader. - 3. Select `0.3` as the version. - -This can also happen when you have outdated or mods that aren't installed. +#### This can also happen when you have outdated mods or mods that aren't installed. -* You have a mod X that requires Y to also be installed but it is outdated or missing. If the mod is installed, update +* You have a mod X that requires Y to also be installed, but it is outdated or missing. If the mod is installed, update it, and if not, install it. ## Only some of my mods are working @@ -76,11 +65,11 @@ Potential fixes: * Update your game to the latest version. If it is already up to date, try restarting Steam and or your computer as sometimes it can fix the Steamworks API not initializing correctly and reporting the correct game version. -## A specific mod +## Issues with specific mods If you already know what mod you're having issues with or have found out by reading your log file you can select it from below to get more specific troubleshooting steps. -* [WurstMod and custom maps](wurstmod.md) +* [WurstMod-based custom maps](wurstmod.md) [!include[Getting Assistance](getting_assistance.md)] diff --git a/src/installing/troubleshooting/log_file.md b/src/installing/troubleshooting/log_file.md index f1eeccf..453ec92 100644 --- a/src/installing/troubleshooting/log_file.md +++ b/src/installing/troubleshooting/log_file.md @@ -2,11 +2,11 @@ title: The BepInEx Log --- -# What is the BepInEx Log +# What is the BepInEx Log? The BepInEx log is essentially just a list of messages from the game and plugins, a log of what has happened since you -started the game. When you run the game modded a console window appears along side it and shows the log in real-time, -but the messages are also written to a file in your profile folder so the messages can be retreived after the game is +started the game. When you run the game modded a console window appears alongside it and shows the log in real-time, +but the messages are also written to a file in your profile folder so the messages can be retrieved after the game is closed (usually for the purposes of troubleshooting an issue). Some mods may also implement in-game features using the log, such @@ -15,11 +15,11 @@ any time. ## Finding your log file -1. Open r2modman and go to the `Settings` section. Open your profile folder by clicking the following button: +1. Open R2ModMan and go to the `Settings` section. Open your profile folder by clicking the following button: ![image](../images/r2modman/settings/browse_profile_folder.png) -2. After clicking on the settings entry your current r2mm profile folder will be opened. Inside might look something +2. After clicking on the settings entry your current R2ModMan profile folder will be opened. Inside might look something like this: ```text @@ -47,7 +47,7 @@ helpful to know what comes before and after errors. > [!NOTE] > Sometimes log messages might show up as coming from the "Unity Log". Most of the time these messages come from the game itself, but in rare cases it might be a plugin using the game's Unity logger instead of the BepInEx provided logger. -Next, we'll take a look at some warnings. Warnings can be a bit ambiguous as they sometimes are important and sometimes +Next, we'll take a look at some warnings. Warnings can be a bit ambiguous as they are sometimes important and sometimes can be ignored. For example, most warnings from `HarmonyX` can be ignored as they are intended for the mod developer and not the end user. With any other kind of warning you will have to read the message to see if it may be important. @@ -70,7 +70,7 @@ easy to read and can often be solved just as easily as they tell you exactly wha Next we have the unexpected errors, the exceptions. These are not usually errors you solve by yourself and will be much longer and contain almost entirely information exclusively for the mod author. They will still contain a message on the -first line but it may be of no use to you, and the rest just tells the author where in the code this happens. If you see +first line, but it may be of no use to you, and the rest just tells the author where in the code this happens. If you see one of these, chances are you will need to ask for assistance and share your log file through Discord. ``` @@ -90,15 +90,10 @@ TNHTweaker.TNHTweaker.Awake () If you are asked to share your log file to receive assistance, sharing it via Discord is quite easy. -1. Go to the `Settings` section of r2modman -2. Search for "log", and select "Copy LogOutput contents to clipboard". +1. Go to the `Settings` section of R2ModMan, +2. Search for "log" and select "Copy LogOutput contents to clipboard", ![copy](../images/r2modman/settings/copy_LogOutput.png) -3. Then, paste the log output into Discord by right clicking on the chat box and selecting 'paste', or with the chat box - focused use `Ctrl + V` -4. A message will appear asking you to upload a file instead, insert a caption describing the issue if you haven't - already, then click upload. - - ![upload](../images/Discord/large_message.png) -5. Hopefully someone will look at your log soon and provide a fix or forward the issue to whoever needs to see it. +3. Then paste the log output into Discord by right-clicking on the chat box and selecting 'paste' or pressing `Ctrl + V`, +4. And hopefully someone will look at your log soon and provide a fix or forward the issue to whoever needs to see it.