The Witcher 3

File information

Last updated

Original upload

Created by

rmemr

Uploaded by

rmemr

Virus scan

Safe to use

About this mod

Utility mod which provides a standardized autostartup capability for other mods, support for custom area hubs handling, some utilities and a reusable list menu.

Requirements
Permissions and credits
Changelogs
Community Patch - Bootstrap & Utils

Utility mod which provides a standardized autostartup capability for other mods, support for custom area hubs handling, some utilities and a reusable list menu.

Features for mod users
  • Simple, standardized way to install (simple) mods which support the bootstrap mod without modifying vanilla scripts. Please note this does NOT include any big overhaul mods!
  • Support for custom area hubs provided in other mods without any further installation/merging
  • includes the engine/telemetryKeyword.ws (once and for all) which is not available in vanilla scripts


Features for mod authors
  • provides a standardized way of automatically starting (simple) mods without modifying any vanilla scripts
  • provides a standardized way to integrate new custom hubs in mod user installations without any further patching (completely transparent to mod users)
  • provides a standard template (and example) for using custom timers without modifying any vanilla scripts
  • provides a reusable UI List Menu (and example) which can be used in mods (see screenshots)
  • provides default mounting directories for w2ents (no need for custom reddlc)
  • provides utility function to convert between Int and Uint8


Compatibility
The mod is compatible with all 1.30+ game versions. While the main functionality is independent of any vanilla scripts the support for custom hubs requires a patch to vanilla scripts. This patch has to be installed independently of bootstrap mod (bootstrap mod depends on it) and is provided in the files section for a vanilla game installation. However authors of the most popular overhaul mods kindly agreed to incorporate this patch into their mods. In this case the bootstrap vanilla-patch is NOT required to be installed! Check the top sticky forum post to see a compatibility list.


Compatibility - How it works
The mods starts automatically by leveraging a minimal, hidden quest every time a game is opened/loaded. No scripthook, piggybacking of entities or hub layer entities is required thus making the mod future-proof for usage with additional custom hubs.

To add the new menu the mod changes the file
    gameplay/gui_new/guirsrc/r4default.guiconfig

To add the worldmap support for custom area hubs the mod changes the files
    gameplay/gui_new/guirsrc/r4map.menu
    gameplay/gui_new/swf/worldmap/panel_worldmap.redswf

All mods which change this file are not compatible with this mod.


How to upgrade from previous versions
If you do NOT have a mods/modBootstrap-registry folder in your witcher 3 installation:

1. Backup the file mods/modBootstrap/content/scripts/local/mods_registry.ws from your witcher 3 mods folder
2. Uninstall bootstrap mod completely (see below)
3. Install the newest version of bootstrap mod (see below)
4. overwrite the file mods_registry.ws in the folder mods/modBootstrap-registry/content/scripts/local/ with your backup from step 1.

otherwise:

1. Uninstall bootstrap mod (see below) but skip step 2 (DO NOT DELETE your modBootstrap-registry folder)
2. Install the newest version of bootstrap mod (see below) but skip step 3 (DO NOT install the modBootstrap-registry package)


How to install
Check the top, sticky compatibility post in the forum section to see what versions to pick!

1. It is STRONGLY recommended to install the Community Patch - Base mod. This mod already integrates the custom hubs vanilla patch and creates a common base for modmakers and modusers to build and install their mods with minimal amount of conflicts. If you do not want to install this mod check the sticky post to see if you have to install the custom-hubs patch. If the patch is already integrated in one of your installed mods, proceed directly to step 2 otherwise download and unzip the modBootstrap-vanilla-patch into into your witcher game directory (so mod folder content from package goes into witcher 3/mod folder).

2. Check the sticky post to see what bootstrap package you need to install: Download either the modBootstrap or the modBootrap-unmodified-worldmap package and unzip into your witcher game directory (so dlc folder content from package goes into witcher 3/dlc folder and mod folder content from package goes into witcher 3/mod folder)

3. Unzip the modBootstrap-registry package into your witcher game directory (so mod folder content from package goes into witcher 3/mod folder)

4. Add content from "mods/modBootstrap/modBootstrap.input.settings" from the downloaded package into the input.settings file in your "MyDocuments/The Witcher 3/input.settings" to the end of the file (it will be reordered after startup anyway)

There should be no script conflicts and no merging required. If you get script errors, check once again that you followed the steps as described. If the errors persist post in the forum section, what *exactly* you did and what exact errors you get.


How to check if it's correctly installed

1. Edit the file "mods/modBootstrap-registry/content/scripts/local/mods_registry.ws" from your W3 game directory and remove the comment from line 12 as in the image below:


2. Load a savegame and make sure your HUD is visible (setting "Info messages" in HUD configuration), wait around 10 seconds. You should get some HUD notification like in the picture:


3. If the above msg was shown the mod is working as expected. You should comment out line 12 again. Please note: this msg will NOT be shown in the Ciri sequences but if it is shown for Geralt - it works.


How to uninstall
1. Delete the folders mods/modBootstrap, mods/modBootstrap-vanilla-patch and DLC/dlcBootstrap
2. Delete the folder mods/modBootstrap-regisry
3. Search and remove the section [MOD_UiInput] and all its entries from your "MyDocuments/The Witcher 3/input.settings"


Notes for mod authors
If you add a dependency for this mod make sure you provide the info which minimum version of this mod is required. Potential future updates of this mod *should* stay backwards compatible but may add new functionality.


Why would you make a dependency on this mod?
If you add a custom hub area to your mod and want your mod to work seamlessly with other custom hubs, worldmap and quest journals without any further patching by your mod users.

If your mod modifies vanilla scripts just to get started or just to get timer functionality - it's not needed anymore. With this your mod users will have fewer scripts-merge conflicts. See below.

If you want/need to use a list menu in your mod you don't have to implement it. Just reuse the provided generic list menu. Same goes for help popup (see Ui example).


How to make your mod autostartup-able
See the modBootstrap/content/scripts/local/example/ directory for a couple of examples but the basic idea is the following:

1. your mod startup class must be a subclass of CMod or CEntityMod classes provided by this mod
2. you have to provide a simple startup function like this in any of your scripts:
function modCreate_ExampleMod() : CMod {
    // do nothing besides creating and returning of mod class!
    return new CModExampleMod in thePlayer;
}
3. you have to add the call to the startup function to the registry function of the bootstrap mod in mods/modBootstrap/content/scripts/local/mods_registry.ws

Your mod users must have the modBootstrap installed and only have to do the third step. Make sure you provide the instruction to do so in your how to install.


How to use the default mount points
The bootstrap mod defines the directory dlc/modtemplates/ and all of its subfolders as entity folders in its reddlc definition. Therefore you can put w2ent files into

    dlc/modtemplates/<yourmodname>/<yourmodentityname>

within your dlc mod and use them as entities in the game. Make sure you use this folder structure convention to prevent name collisions with other mods!


How to use timers
Every script class derived from CEntity can have its own timers but it needs to be instantiated in the game (this will be done by the autostart of the bootstrap mod automatically):

1. create a new class which is a subclass from CEntity, e.g. CMyModEntity
2. copy the provided entity template mods/modBootstrap/modentity.w2ent.template into your entity directory (see above) and rename it appropriately
3. edit your modentity with the modeditor:
    - change the entityclass of the CEntityTemplate from CModExampleEntity to CMyModEntity

    - change the Type of the 2nd chunk from CModExampleEntity to CMyModEntity:


    - change the Type of the 1st chunk in the flatCompiledData from CModExampleEntity to CMyModEntity and save it (important!)


4. see the mods/modBootstrap/content/scripts/local/example/mod_example_entitymod.ws example for a working example with a timer.

Credits:
@erxv modified the UI menu-swf and patched the worldmap-swf