Giter Club home page Giter Club logo

valheimmods's Introduction

Valheim Mod Collection

This repository hosts all of the Valheim mods created by Crystal. The primary intent of this repo is to serve as a reference for people who want to see how the mods work. If you are considering using code from this repo for your own projects, please read the license.txt file included at the root of the repo for redistribution details.

Releases

Currently, mod releases are only being published to Thunderstore. You can download releases from there, or you can install and use r2modman to download and manage the mods for you (recommended).

How to Build

For easier development, all mods are part of the same repo and share the same Visual Studio solution. Each mod is a separate project within the solution.

Before the solution will build, you will need to get some third party DLLs and place them in a lib directory at the root of the repo (next to ValheimMods.sln). This is where all of the .csproj point to for external assembly references. The following should be included in the lib directory:

  • BepInEx library. Confirmed working version is 5.4.901, but other 5.4.x versions likely will also work. These files specifically need to be included:
    • 0Harmony.dll
    • BepinEx.dll
    • BepinEx.Harmony.dll
  • Valheim script assemblies from the game client installation. These can be found in valheim_Data/Managed and start with assembly_. Currently in use are the following, but keep in mind this list may not be up to date. So others might also be needed.
    • assembly_guiutils.dll
    • assembly_valheim.dll
  • Unstripped Unity engine assemblies that match the unity version used by Valheim. These can be found in different places, but I pulled them from BepInExPack_Valheim on Thunderstore (you may need to search if this link gets broken). This pack also includes the BepInEx assemblies listed above.

Once the lib directory is populated, you should be able to open ValheimMods.sln in Visual Studio 2019 and build the solution.

How to Package for Release

The process for packaging up a build for release is not included in this repo. However, some of the supporting files are included. Within each project's root directory is a directory called package which contains these files.

The mod version needs to be updated in multiple places prior to building and packaging.

  • Within the code itself, there is a BepInPlugin attribute on the main plugin class which includes the version number and needs to be updated.
  • Also within the code, in Properties/AssemblyInfo.cs, both the AssemblyVersion and AssemblyFileVersion attributes should be updated.
  • In the mod's package directory, open manifest.json and update both the version_number and Version properties.
  • In the mod's package directory, open README.md and add a new version entry at the top of the "Changelog" section. Include notes about what changed since the last version.

Producing a releasable package involves combining the files in the package directory, along with a release build of the mod's dll, into a zip file named using the mod name and version, such as BetterChat-1.0.0.zip. Do not include the package directory itself in the zip file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.