THE WITCHER 3
Multi Companion Mod by Jamezo97
The Witcher 3 » Characters
Added: 24/05/2017 - 02:54PM
Updated: 17/06/2017 - 04:23PM

125 Endorsements

2.3.0 Latest version

2,000 Unique D/Ls

4,026 Total D/Ls

36,063 Total Views

Uploaded by Jamezo97

Description

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
DisableCompanionSpawning(0)
  AND/OR
ForceCompanionSpawning(1)
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'


Commands:
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)

CallAllCompanions()
- Calls all companions to your location
- EXAMPLE: CallAllCompanions()

RemoveSpecialCompanions()
- 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.


Conflicts:
This mod modifies npc.ws and 
r4Player.ws . As such, you may get mod conflicts if you don't use a script merger.

Uninstalling:
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:
Execute:
DisableCompanionSpawning(1)
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
RemoveAllCompanions(1)
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.

Spawnable Names:
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.


Common NPCs:
ciri
yennefer
triss
vesemir
lambert
eskel
letho
keira_metz
philippa_eilhart
fringilla_vigo
sheala_de_tancarville
dandelion
zoltan_chivay
priscilla
edna_var_attre
rosa_var_attre
vernon_roche
ves
crach
cerys
hjalmar
lady_bran
avallach
baron
emhyr
dijkstra
king_beggar
segeant
olgierd

Some DLC NPCs:
shani
iris
olgierd
mirror_man
anna_henrietta
regis
syanna
dettlaff
guillaume
palmerin
vivienne
gaetan
lynx_rock_witch



Uncommon NPCs:
canaris
cirilla_young
cyprian_willey
eredin
imlerith
mousesack
radovid
uma
voorhis
witch_brewess
witch_weavess
witch_whispess
witch_brewess_beauty
witch_weavess_beauty
witch_whispess_beauty
ambassador_var_attre
anabelle
arnvald
bandit_grenn
bard_drogodar
bart_the_troll
borys_the_troll
carduin
chamberlain_emhyr
coroner_psycho
coroner_psycho_incognito
coroner_psycho_incognito_vampire
djinn
donar_an_hindar
dreamer_corine_tilly
druid_yolar
dudu_biberveldt
dwarf_bashful
dwarf_doc
dwarf_grumpy
dwarf_sleepy
dwarf_sneezy
elihal
eunuch_happen
felicia_cori
fergus_graem
fugas
geels
godling_johnny
graden
graham
guslar
halbjorn
hallgrim
hallgrim_beserker
hattori
hemmelfart
hjort
holger
ida_emean_aep_sivney
inkeeper_elza
irina_renarde
jonas_mattsson
jorun
karl_varese
lugos_the_glaucous
lugos_the_mad
luiza_la_valette
marabella
margarita
marquise_serenity
master_alchemist_gremista
master_blacksmith
menge
molly
mr_mirror
nathanel_priest
ojkm_gatekeeper
olivier
otrygg_an_hindar
philippa_owl
prologue_smith
prologue_village_herbalist
steingrim
stjepan_innkeeper
svanrige
talar
tamara
udalryk
vernossiel
vespula
vimme_vivaldi
von_gratz
whistling_wendy

Wild Hunt:
wildhunt_sword
wild_hunt_axe
wild_hunt_halberd
wild_hunt_hammer
wild_hunt_minion
wild_hunt_spear
wild_hunt_sword
wildhunt_axe
wildhunt_halberd
wildhunt_hammer
wildhunt_minion
wildhunt_spear


Humansie Wumansies
fists
fists_medium
fists_hard
shield
shield_axe
shield_mace
shield_hard
hammer2h
hammer2h_hard
axe2h
halberd2h
spear2h
bow
bow_hard
sword1h
sword1h_easy
sword1h_hard
sword1h_super_hard
axe1h
axe1h_hard
club1h
club1h_hard
1hand
1handed
sword2h
shortsword_hard
bowman
bowman_hard
xbow
rider
shovel_test
pitchfork

Monsters:
_quest__bear_grizzly_honey
_quest__endriaga_spiral
_quest__fogling
_quest__godling
_quest__him
_quest__miscreant
_quest__miscreant_greater
_quest__noonwright_pesta
_quest__werewolf
_quest__witch_1
_quest__witch_2
_quest__witch_3
alghoul
alghoul_lvl1
alghoul_lvl2
alghoul_lvl3
alghoul_mh
arachas
arachas_armored
arachas_lvl1
arachas_lvl2__armored
arachas_lvl3__poison
arachas_mh__poison
arachas_poison
armoredarachas
baronswife
basilisk
basilisk_lvl1
bear
bear_berserker
bear_berserker_lvl1
bear_black
bear_grizzly
bear_lvl1__black
bear_lvl2__grizzly
bear_lvl3__white
bear_white
bees
bies
bies_lvl1
bies_lvl2
bies_mh
black_mage_lvl1
black_troll
blacktroll
blood_flies
botchling
burnedman_lvl1
cave_troll
cavetroll
cockatrice
cockatrice_lvl1
cockatrice_mh
cyclop
cyclop_lvl1
cyclops
czart
czart_lvl1
czart_mh
dao
ddead
djinn
drowned_dead
drowneddead
drowner
drowner_lvl1
drowner_lvl2
drowner_lvl3
drowner_lvl4__dead
ekima
ekimma
elemental_dao_lvl1
elemental_dao_lvl2
elemental_dao_lvl3__ice
elemental_dao_mh
endrega
endriaga
endriaga_lvl1__worker
endriaga_lvl2__tailed
endriaga_lvl3__spikey
endriaga_spikey
endriaga_tailed
endriaga_worker
erynia
evil_dog
fogling
fogling_lvl1
fogling_lvl1__doppelganger
fogling_lvl2
fogling_lvl3__willowisp
fogling_mh
forktail
forktail_lvl1
forktail_lvl2
forktail_mh
frozen_soldier
fugas
fugas_lvl1
fugas_lvl2
gargoyle
gargoyle_lvl1
ghoul
ghoul_lesser
ghoul_lvl1
ghoul_lvl2
ghoul_lvl3
golem
golem_lvl1
golem_lvl2
golem_lvl2__ifryt
golem_lvl3
gravehag
gravehag_barons_wife
griffon
grizzly
gryphon
gryphon_lvl1
gryphon_lvl2
gryphon_lvl3__volcanic
gryphon_mh__volcanic
hag_grave__mh
hag_grave_lvl1
hag_grave_lvl1__barons_wife
hag_water_lvl1
hag_water_lvl2
hag_water_mh
harpy
harpy_lvl1
harpy_lvl2
harpy_lvl3__erynia
heart
him
ice_giant
ice_golem
icegiant
ifrit
ifryt
iris
katakan
katakan_large
katakanlarge
lamia
leshen
leshy
lessog
lessog_lvl1
lessog_lvl2__ancient
lessog_mh
lessun
leszy
lycan
lycanthrope
miscreant
nekker
nekker_lvl1
nekker_lvl2
nekker_lvl3__warrior
nekker_mh__warrior
nekker_warrior
nightwraith
nightwraith_lvl1
nightwraith_lvl1__doppelganger
nightwraith_mh
noonwraith
noonwraith_lvl1
noonwraith_lvl1__doppelganger
noonwraith_mh
pesta
poisonarachas
poisonedarachas
rotfiend
rotfiend_large
rotfiend_lvl1
rotfiend_lvl2
simulacrum
siren
siren_lvl1
siren_lvl2__lamia
siren_mh__lamia
succubus
troll
troll_black
troll_cave_lvl1
troll_cave_lvl2
troll_cave_lvl3__ice
troll_cave_mh__black
vampire_ekima_lvl1
vampire_ekima_mh
vampire_katakan_lvl1
vampire_katakan_mh
volcanic_gryphon
warewolf
waterhag
werewolf
werewolf_lvl1
werewolf_lvl2
werewolf_lvl3__lycan
werewolf_lvl4__lycan
wight
wild_dog
wild_dog_lvl1
wildhunt_mage
wildhunt_minion_lvl1
wildhunt_minion_lvl2
wildhunt_minion_mh
willo_wisp
willowisp
wolf
wolf_alpha
wolf_lvl1
wolf_lvl1__summon
wolf_lvl1__summon_were
wolf_lvl2__alpha
wolf_white
wolf_white_lvl2
wolf_white_lvl3__alpha
wraith
wraith_lvl1
wraith_mh
wyvern
wyvern_lvl1
wyvern_lvl2
wyvern_mh


Hope you enjoy the mod :)