Last updated at 16:23, 17 Jun 2017 Uploaded at 14:54, 24 May 2017
What is this?I got a bit of post-game depression, as all the main characters from the story line had disappeared from the world.
So I looked for a companion mod, and found one here, however it didn't work with the latest version.
Having some experience with programming, I updated the mod to working status again, improved a few things, and uploaded it here
But being the procrastinator I am, I decided to keep working on it, and so here we are, with version 2.1.0.
But wait, 'What does it do?' you may ask.
Simply, it allows you to have followers, AKA 'companions', who help you in battle. These can be almost anything in the game, from Ciri, to Yen, to a drowner or a bear You can have (almost) whoever you want, and however many of them you want!
What's so special about this mod?Console commands are all good and stuff, but they can really break the immersion. So, in version 2, I've done the following:
Upon COMPLETING the game, Ciri* Triss and Yennefer will all appear in Novigrad in Dandelions cabaret.
And now as of v2.1.0, heaps more NPC's can be found around the world in places such as Velen(1), Novigrad(12), White Orchard(1) and Kaer Morhen(3).
To go on an adventure with one (or all!) simply walk up and ask them for help!
The 3 main NPCs, Ciri Yen and Triss (and as of v2.3.0, Shani!), all have custom dialog scenes.
The rest currently do not sorry. It took hours to piece together those small pieces of dialog, finding the right words, spoken by the right person in the right way. Eugh. If I get time I might add more.
Ciri also has a hug scene, and Triss and Yen have romance scenes, depending on whether you romanced them...
As of v2.3.0, Ciri Triss and Yen all have some extra combat abilities:
Ciri can now perform her Blink and Dash abilities.
Triss and Yen can now summon meteorites down on their enemies. (be careful, they can hurt you if you're too close!)
If the extra abilities break the game, then you can disable them with the command 'DisableSpecialCombat(0)'
Also, ignore the... wierdness of some of the custom scenes. When they say "I'll wait here", they're lying. They will TP back home once out of sight.
How it Works:There are two types of companions (NPCs), special, and... err... non-special.
Special companions will spawn around the world. You can interact with them, and they will follow you.
Special companions will ONLY SPAWN in the world, once you've completed the main quest line. You can't have multiple special companions of the same type, i.e. 2 special Ciri's. (You can however have many different types, i.e. 1 Ciri and 1 Yennefer)
If there's a bug and they're not spawning, try
This will make sure you've enabled NPC spawning, and will force the mod to ignore if you have/haven't finished the game and just spawn them anyway.
Non-special NPC's must be spawned in from the command line. You can spawn as many as you wish, of whatever type, with the only restriction being your computing power. You can have multiple non-special NPCs with the same type.
Want 10 Yennefers teleporting around and smiting Gryphons out of the sky? You got it.
Special NPC's have their dialogues overridden. Ciri Triss and Yen all have custom dialogues. The rest do not, and they will merely acknowledge you when you interact with them.
Non-Special NPC's, for the most part, use their default dialogue lines (except for the few that TP you to another location for the dialog cutscene. I've overridden them manually)
Spawned NPCs are set to your current level. However some disregard this and are still terrible fighters.
So the damage dealt by NPC's is incremented by your level*12. This makes them not too powerful, but also no longer useless.
I haven't tested all the NPC's but this should work well.
Spawned NPCs are also set to their default appearances. So no more yen having vomit on her. Yay!
Though, if you think it looks cool then feel free to add it back... you sick ba.s.t.a.d '__q401_yennefer_puke'
SpawnCompanion(nam : name, optional count : int, optional mortal : bool, optional level : int, optional appearance : name)
- The main function. Spawns 'count' companions (or just 1 if the parameter is not provided) at your current location.
Will change their appearance if the parameter is given
- EXAMPLE: SpawnCompanion(ciri)
Spawns ciri at your location
- EXAMPLE: SpawnCompanion(triss, 2)
Spawns 2 Triss' at your location
- EXAMPLE: SpawnCompanion(ciri, 1, 1, 23, __q505_hooded)
Spawns a level 23 mortal Ciri at your location, with a hood on.
CallCompanion(optional nam : name, optional count: int)
- Calls up to 'count' companions with the given name 'nam' to your location
- EXAMPLE: CallCompanion()
Calls one companion
- EXAMPLE: CallCompanion(triss)
Calls Triss to your location
- EXAMPLE: CallCompanion(, 4)
Calls up to 4 companions to your location (algorithm prefers companions further away)
- Calls all companions to your location
- EXAMPLE: CallAllCompanions()
- It removes all of the 'special' Companions. Companions spawned using the 'SpawnCompanion' command are NOT removed.
- EXAMPLE: ResetCompanions()
RemoveAllCompanions(optional includeSpecial : bool)
- Removes all companions from the world. Does NOT remove 'special' Companions, unless specified
- EXAMPLE: RemoveAllCompanions()
Removes only companions spawned using 'SpawnCompanion' command (i.e. not special ones)
- EXAMPLE: RemoveAllCompanions(1)
Removes ALL companions, both special and non-special
RemoveCompanion(nam : name, optional count : int)
- Removes up to 'count' companions. Will remove normal companions first, then special companions.
- EXAMPLE: RemoveCompanion()
Removes the closest non-special companion
- EXAMPLE: RemoveCompanion(ciri, 2)
Removes the 2 closest non-special ciri companions
- EXAMPLE: RemoveCompanion(triss, 3)
Removes the 3 closest triss companions
- EXAMPLE: RemoveCompanion(all, 3)
Removes the 3 closest companions
SpawnSpecialCompanion(nam : name, optional mortal : bool, optional level : int, optional appearance : name)
- Spawns in a special companion with the given name, mortality, level and appearance. These companions you can ask to follow you. Only some companions work, mostly just the main NPC's. Ciri Triss and Yen will occasionally say some one-liners or have a conversation. The rest are silent.
- EXAMPLE: SpawnSpecialCompanion(zoltan)
Spawns Zoltan, if he's not already spawned. Upon talking to him he will start/stop following you.
- EXAMPLE: SpawnSpecialCompanion(yen, 1, 10, yennefer_hooded)
Spawns a mortal level 10 Yennefer with a hood.
DisableCompanionTalking(disable : bool)
- Disables/Enables companion's abilities to talk, and say one-liners.
- EXAMPLE: DisableCompanionTalking(1)
Disables companions from talking
DisableCompanionSpawning(disable : bool)
- Disables/Enables companions from automatically spawning in the world once you've finished the main quest line.
- EXAMPLE: DisableCompanionSpawning(1)
Disables auto companion spawning
ForceCompanionSpawning(force : bool)
- Forcibly make companions spawn in the world, even if you haven't finished the main quest line.
- EXAMPLE: ForceCompanionSpawning(1)
Forces companions to spawn at Dandelions Cabaret
spawn2(nam : name, optional count : int, optional level : int, optional appearance : name)
- A helper function I made. Does the same thing as the vanilla 'spawn' command, but gives you the choice of setting the entities level, as well as it's appearance.
- EXAMPLE: spawn2(drowner, 1, 50)
Spawns a level 50 drowner
- EXAMPLE: spawn2(drowner, 40, 500)
Spawns your death.
- EXAMPLE: spawn2(triss, 1, 900, triss_tortured_bloody_face)
Spawns a badass Triss.
Obviously requires the Debug Console to be enabled.
This mod modifies npc.ws and r4Player.ws . As such, you may get mod conflicts if you don't use a script merger.
If you've completed the game and NPC's are auto spawning, then upon removing the mod the NPCs will remain in the world.
In order to fix this, you must perform the following steps before uninstalling the mod:
This will stop companions from automatically spawning in the world.
Then, travel to every place that you've spawned companions in, i.e. Velen/Novigrad, Skellige, White Orchard, Vizima, KaerMorhen and Toussaint
And in each place, execute the command
This will remove all companions from the world, including special ones. You must physically be in each of the above listed locations, in order to remove companions that are in that location.
Once you've done this, you can uninstall the mod, and no NPCs should remain.
If you ever decide to reinstall this mod, make sure you execute the command: 'DisableCompanionSpawning(0)' to re-enable automatic companion spawning. The flag is stored as a fact in the save game, and will remain even after the mod is uninstalled.
Below is a list of all of the NPC's you can spawn and have as your companion.
Some are useless, and will simply follow you around. Some will cower during a fight (I'm working on it!!) Others are glitched.
And some are fantastic fighters!
Most NPC's are CASE SENSITIVE. Some names I have 'corrected' in code, so that, i.e. 'ciri'='Ciri'='cirilla'='Cirilla'.
But in most cases, especially for the monsters and uncommon NPCs, I have not done this.
Some DLC NPCs:
Hope you enjoy the mod :)