About this mod
Simple and modern template that provide a base The Witcher 3 mod project made using vscode and WitcherScript IDE extension and that supports auto releases via GitHub Actions
- Permissions and credits
- Mirrors
- Changelogs
A modern and simple project template for creating The Witcher 3 mods, based on Visual Studio Code and the WitcherScript-IDE extension.
Why
The main goal of this project is to create a solid foundation for writing Witcher 3 mods or DLCs in a way that enhances readability, open-source sharing, and maintainability.
As you can see, the project structure is not intended to strictly mirror the internal Witcher mods layout for files and folders. Instead, the focus here is about providing to mods developers a project structure that divides the various tasks involved inside the modding proces into a more clear, concise and modern way, bringing everything together in a easy and ready-to-use project.
This allows you to focus on writing your code while leaving the post-edit tasks to be automated from the editor.
Feel free to use this template as a base for your mod.
How It Works
In this section, I'll explain how this template is structured:
Folder Structure
- Scripts go inside
./scripts
- DLC files go inside
./dlc
- String files go inside
./csv
- Menu manifets go inside
./menifests
- The generated mod zip will be generated inside
./build
Build Script
You can build an installable zip (ProjectName.zip) using the build.ps1 script, the build task in VS Code, or via the shortcut Ctrl+Shift+B. The generated zip file will be placed inside the ./build folder. You can install the zip with, for example, TW3 Mod Manager.
The build script checks for CSVs string files and encodes them (if they exist) using w3script encoder.
witcherscript.toml
This file is needed for go-to navigation and syntax highlighting/analysis in VS Code. See the WitcherScript-IDE manual for more information.
Automatic releases
This template comes with a preconfigured workflow with the purpose of building and releasing the mod automatically via the powerfuls GitHub Actions.
When needed, the workflow will take care of building your code and creating fully installable releases for your mod!
Take a look at the releases workflow main file to get a more detailed picture of how it works.
How automatic releases work
As I mentioned earlier, the configured action workflow will take the burden of creating releases for you when it's needed. Awesome! But you may be wondering: What exactly does "when it's ready" mean?
Obviously, triggering a release pipeline anytime a new commit is pushed to the repo would not be very useful automation! So here is chosen the more git-centric approach: using tags.When you tag your changes with something that matches the pattern: v*.*, an action that builds and releases your mod will start uploading an installable-ready zipped version of your mod on release page.
How-To
First of all commit your change:
git commit -m "my changes description"
After create a new tags with the version that you want release:
git tag v1.0
Finally push your work:
git push origin master --tags
thats all. The workflows will start building and pubblishing the tagged changes.