Jump to content

The Return Of The White Wolf (a comprehensive Witcher 3 modding guide)


rootsrat

Recommended Posts

Thanks , i used to read the whole stack of comics at my friends house ( he had the whole collection ) whe i came over . :p

 

The trick above sadly did not work .

 

I did discover that uninstalling friendly hud as well as the assorted mod  patches  makes the game work .

 

Also one thing i noticed is that pressing R does not pause the game  but makes me use food .

 

I think you used the same key for both  food and the  pause function .  

I know what was wrong. You've had FH 7.1 installed, while the guide specifically says to install the old 7.0 version. It used to be in the main files section, but the author moved it to the Old Files now. I updated the relevant part of the guide.

 

I've had some problems before when merging some 7.1 scripts, but I managed to sort it out just now. 7.1 will be coming in the next update.

 

In the meantime, if anyone wants to use 7.1 feel free to:

 

1. Uninstall Friendly HUD 7.0

2. Install Friendly HUD 7.1 from Nexus

3. Grab this archive and unpack it directly into your Mods folder, overwriting all files.

 

LINK

Link to comment
Share on other sites

Hello and i am having a problem with my setup when i come to try to play the error comes up

Error [modfriendlyhud]game\modfriendlyhudconfig.ws(55): Unexpected '\'

Error [modfriendlyhud]game\modfriendlyhudconfig.ws(56): Unexpected '\'
Error [modfriendlyhud]game\modfriendlyhudconfig.ws(57): Unexpected '\'

i hope somebody can fix this thank you 
Link to comment
Share on other sites

 

Hello and i am having a problem with my setup when i come to try to play the error comes up

Error [modfriendlyhud]game\modfriendlyhudconfig.ws(55): Unexpected '\'

Error [modfriendlyhud]game\modfriendlyhudconfig.ws(56): Unexpected '\'
Error [modfriendlyhud]game\modfriendlyhudconfig.ws(57): Unexpected '\'

i hope somebody can fix this thank you 

 

It seems you have incorrectly added a "\" character in lines 55-57 in the modfriendlyhudconfig.ws file. Post the file contents here and I'll have a look.

Link to comment
Share on other sites


const var userMarkerTextFont : string; default userMarkerTextFont = "" size=\"15\" color=\"#3CB371\">";

const var currentMarkerTextFont : string; default currentMarkerTextFont = "" size=\"15\" color=\"#FFD700\">";

const var otherMarkerTextFont : string; default otherMarkerTextFont = "" size=\"15\" color=\"#EEE8AA\">";


 

that was line 55 - 57 and i hope it helps

 

Link to comment
Share on other sites

OK, change these lines to:

 

const var userMarkerTextFont : string; default userMarkerTextFont = "";
const var currentMarkerTextFont : string; default currentMarkerTextFont = "";
const var otherMarkerTextFont : string; default otherMarkerTextFont = "";
 
Sorry, that's the STEP Wiki reformatting the code from the file and removing parts of it. I changed the instructions in the guide. Thanks for flagging this up :)
Link to comment
Share on other sites

thank you but now i get this error

Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(36): Structure 'SentStatsData' already defined.

Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(10): Enum 'EInventoryMenuState' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(19): Enum 'InventoryMenuTabIndexes' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(29): Enum 'InventoryMenuStashTabIndexes' already defined.
Error [modamp]game\gui\hud\hud.ws(5): Class 'CR4Hud' was already exported.
Error [modamp]game\gui\hud\hud.ws(12): Class 'CR4ScriptedHud' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(42): Class 'CR4InventoryMenu' already defined.
Error [modkngcslm]game\player\playerwitcher-20150912-132043.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modrefillalcohol]game\player\playerwitcher-20150912-132046.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modkngcslm]game\player\playerwitcher-20150912-132459.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modalchsideefx]game\player\playerwitcher-20150912-132500.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modfriendlyhud]game\player\playerwitcher-20150912-132621.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modamp]game\player\playerwitcher.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modeverywhereplayable]game\player\r4player-20150912-132730.ws(5): Class 'CR4Player' was already exported.
Error [modfacethem]game\player\r4player-20150912-132731.ws(5): Class 'CR4Player' was already exported.
Error [modmanualcam]game\player\r4player-20150912-132735.ws(5): Class 'CR4Player' was already exported.
Error [modnolevelrequirements]game\player\r4player-20150912-132736.ws(5): Class 'CR4Player' was already exported.
Error [modamp]game\player\r4player.ws(5): Class 'CR4Player' was already exported.

and i have done the mod.settings as you asked but  i still get the error :(
Link to comment
Share on other sites

one question : does  the no soft targeting mod leave files anywhere else besides the mod file ?

 

Reason i am asking is , that after trying it out for a while but  realizing i kind of  prefer  the soft target i uninstalled it and made sure it was gone from the mod mile .

But the game still has no soft targeting .

 

So in short i am confused :p

Link to comment
Share on other sites

 

thank you but now i get this error

Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(36): Structure 'SentStatsData' already defined.

Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(10): Enum 'EInventoryMenuState' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(19): Enum 'InventoryMenuTabIndexes' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(29): Enum 'InventoryMenuStashTabIndexes' already defined.
Error [modamp]game\gui\hud\hud.ws(5): Class 'CR4Hud' was already exported.
Error [modamp]game\gui\hud\hud.ws(12): Class 'CR4ScriptedHud' already defined.
Error [modfriendlyhud]game\gui\menus\inventorymenu.ws(42): Class 'CR4InventoryMenu' already defined.
Error [modkngcslm]game\player\playerwitcher-20150912-132043.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modrefillalcohol]game\player\playerwitcher-20150912-132046.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modkngcslm]game\player\playerwitcher-20150912-132459.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modalchsideefx]game\player\playerwitcher-20150912-132500.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modfriendlyhud]game\player\playerwitcher-20150912-132621.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modamp]game\player\playerwitcher.ws(9): Class 'W3PlayerWitcher' already defined.
Error [modeverywhereplayable]game\player\r4player-20150912-132730.ws(5): Class 'CR4Player' was already exported.
Error [modfacethem]game\player\r4player-20150912-132731.ws(5): Class 'CR4Player' was already exported.
Error [modmanualcam]game\player\r4player-20150912-132735.ws(5): Class 'CR4Player' was already exported.
Error [modnolevelrequirements]game\player\r4player-20150912-132736.ws(5): Class 'CR4Player' was already exported.
Error [modamp]game\player\r4player.ws(5): Class 'CR4Player' was already exported.

and i have done the mod.settings as you asked but  i still get the error :(

 

Try getting the archive from my post #136 above.

 

one question : does  the no soft targeting mod leave files anywhere else besides the mod file ?

 

Reason i am asking is , that after trying it out for a while but  realizing i kind of  prefer  the soft target i uninstalled it and made sure it was gone from the mod mile .

But the game still has no soft targeting .

 

So in short i am confused :p

Yes, it's part of patch mod, that effectively merges scripts from other mods. You'd need manually edit out the changes from that mod - they're contained in r4player.ws file. Easiest thing to do is get the vanilla file, compare it with the No Soft Lock file to see what's been changed, and then replace these changes in the file from the patch mod. 

 

Unfortunately that's the only way of getting rid of it.

 

::EDIT::

 

OK, instructions here (note due to forum formatting the script formatting is not retained):

 

 

 

 

Find these lines:

 

orientationTarget = OT_CameraOffset;
//orientationTarget = target;
}
 
function GetOrientationTarget() : EOrientationTarget
{
return OT_CameraOffset;
//return orientationTarget;
 
 
 
and replace them with:
 
 
 

orientationTarget = target;
}
 
function GetOrientationTarget() : EOrientationTarget
{
 
return orientationTarget;
 
 
 
then find:
 
 
 

customOrientationInfoStack.customHeading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
//customOrientationInfoStack.customHeading = heading;
return true;
}
}
}
 
LogChannel( 'SetOrientationTargetCustomHeading', "ERROR: Cannot set customHeading because stack is empty or sourceName is not found!!!" );
return false;
}
 
 
public function GetOrientationTargetCustomHeading() : float
{
var i : int;
if ( customOrientationInfoStack.Size() > 0 )
{
for( i = customOrientationInfoStack.Size()-1; i>=0; i-=1 )
{
if ( customOrientationInfoStack.orientationTarget == OT_CustomHeading )
{
return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
//return customOrientationInfoStack.customHeading;
 
 
and replace with 
 
 

customOrientationInfoStack.customHeading = heading;
 
return true;
}
}
}
 
LogChannel( 'SetOrientationTargetCustomHeading', "ERROR: Cannot set customHeading because stack is empty or sourceName is not found!!!" );
return false;
}
 
 
public function GetOrientationTargetCustomHeading() : float
{
var i : int;
if ( customOrientationInfoStack.Size() > 0 )
{
for( i = customOrientationInfoStack.Size()-1; i>=0; i-=1 )
{
if ( customOrientationInfoStack.orientationTarget == OT_CustomHeading )
{
 
return customOrientationInfoStack.customHeading;
 
 
 
then find 
 
 
 

//return newCustomOrientationTarget;
}
 
public function GetOrientationTargetHeading( orientationTarget : EOrientationTarget ) : float
{
var heading : float;
 
if( orientationTarget == OT_Camera )
heading = VecHeading( theCamera.GetCameraDirection() );
else if( orientationTarget == OT_CameraOffset )
heading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
else if( orientationTarget == OT_CustomHeading )
heading = GetOrientationTargetCustomHeading();
else if ( GetDisplayTarget() && orientationTarget == OT_Actor )
{
if ( (CActor)( GetDisplayTarget() ) )
{
 
heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );
 
 
}
else
{
if ( GetDisplayTarget().HasTag( 'softLock_Bolt' ) )
heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );
else
heading = GetHeading();
}
}
else
heading = GetHeading();
 
return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
//return heading;
 
 
 
and replace with 
 
 
 

return newCustomOrientationTarget;
}
 
public function GetOrientationTargetHeading( orientationTarget : EOrientationTarget ) : float
{
var heading : float;
 
if( orientationTarget == OT_Camera )
heading = VecHeading( theCamera.GetCameraDirection() );
else if( orientationTarget == OT_CameraOffset )
heading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
else if( orientationTarget == OT_CustomHeading )
heading = GetOrientationTargetCustomHeading();
else if ( GetDisplayTarget() && orientationTarget == OT_Actor )
{
if ( (CActor)( GetDisplayTarget() ) )
{
 
heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );
 
 
}
else
{
if ( GetDisplayTarget().HasTag( 'softLock_Bolt' ) )
heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );
else
heading = GetHeading();
}
}
else
heading = GetHeading();
 
 
return heading;
 
 
 
and finally:
 
 
 

combatActionHeading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
//combatActionHeading = heading;
}
 
public function GetCombatActionHeading() : float
{
return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;
//return combatActionHeading;
 
 
 
replace with
 
 
 

combatActionHeading = heading;
 
}
 
public function GetCombatActionHeading() : float
{
 
return combatActionHeading;
 
 

 

Bear in mind you'll need to do that every time an update to Assorted Mod Patches is released, as I don't think I'll remove this mod from the guide, unless it plays badly with New Game+ for some reason.

 

::EDIT2::

 

Sorry, there is also combat.ws file, that need these changes:

 

enableSoftLock = false; 

 

Change this to true.

Link to comment
Share on other sites

Try getting the archive from my post #136 above.

 

Yes, it's part of patch mod, that effectively merges scripts from other mods. You'd need manually edit out the changes from that mod - they're contained in r4player.ws file. Easiest thing to do is get the vanilla file, compare it with the No Soft Lock file to see what's been changed, and then replace these changes in the file from the patch mod.

 

Unfortunately that's the only way of getting rid of it.

 

::EDIT::

 

OK, instructions here (note due to forum formatting the script formatting is not retained):

 

 

 

 

Find these lines:

 

orientationTarget = OT_CameraOffset;

//orientationTarget = target;

}

 

function GetOrientationTarget() : EOrientationTarget

{

return OT_CameraOffset;

//return orientationTarget;

 

 

 

and replace them with:

 

 

 

 

 

orientationTarget = target;

}

 

function GetOrientationTarget() : EOrientationTarget

{

 

return orientationTarget;

 

 

 

then find:

 

 

 

 

 

customOrientationInfoStack.customHeading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

//customOrientationInfoStack.customHeading = heading;

return true;

}

}

}

 

LogChannel( 'SetOrientationTargetCustomHeading', "ERROR: Cannot set customHeading because stack is empty or sourceName is not found!!!" );

return false;

}

 

 

public function GetOrientationTargetCustomHeading() : float

{

var i : int;

if ( customOrientationInfoStack.Size() > 0 )

{

for( i = customOrientationInfoStack.Size()-1; i>=0; i-=1 )

{

if ( customOrientationInfoStack.orientationTarget == OT_CustomHeading )

{

return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

//return customOrientationInfoStack.customHeading;

 

 

and replace with

 

 

 

 

customOrientationInfoStack.customHeading = heading;

 

return true;

}

}

}

 

LogChannel( 'SetOrientationTargetCustomHeading', "ERROR: Cannot set customHeading because stack is empty or sourceName is not found!!!" );

return false;

}

 

 

public function GetOrientationTargetCustomHeading() : float

{

var i : int;

if ( customOrientationInfoStack.Size() > 0 )

{

for( i = customOrientationInfoStack.Size()-1; i>=0; i-=1 )

{

if ( customOrientationInfoStack.orientationTarget == OT_CustomHeading )

{

 

return customOrientationInfoStack.customHeading;

 

 

 

then find

 

 

 

 

 

//return newCustomOrientationTarget;

}

 

public function GetOrientationTargetHeading( orientationTarget : EOrientationTarget ) : float

{

var heading : float;

 

if( orientationTarget == OT_Camera )

heading = VecHeading( theCamera.GetCameraDirection() );

else if( orientationTarget == OT_CameraOffset )

heading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

else if( orientationTarget == OT_CustomHeading )

heading = GetOrientationTargetCustomHeading();

else if ( GetDisplayTarget() && orientationTarget == OT_Actor )

{

if ( (CActor)( GetDisplayTarget() ) )

{

 

heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );

 

 

}

else

{

if ( GetDisplayTarget().HasTag( 'softLock_Bolt' ) )

heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );

else

heading = GetHeading();

}

}

else

heading = GetHeading();

 

return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

//return heading;

 

 

 

and replace with

 

 

 

 

 

return newCustomOrientationTarget;

}

 

public function GetOrientationTargetHeading( orientationTarget : EOrientationTarget ) : float

{

var heading : float;

 

if( orientationTarget == OT_Camera )

heading = VecHeading( theCamera.GetCameraDirection() );

else if( orientationTarget == OT_CameraOffset )

heading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

else if( orientationTarget == OT_CustomHeading )

heading = GetOrientationTargetCustomHeading();

else if ( GetDisplayTarget() && orientationTarget == OT_Actor )

{

if ( (CActor)( GetDisplayTarget() ) )

{

 

heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );

 

 

}

else

{

if ( GetDisplayTarget().HasTag( 'softLock_Bolt' ) )

heading = VecHeading( GetDisplayTarget().GetWorldPosition() - GetWorldPosition() );

else

heading = GetHeading();

}

}

else

heading = GetHeading();

 

 

return heading;

 

 

 

and finally:

 

 

 

 

 

combatActionHeading = VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

//combatActionHeading = heading;

}

 

public function GetCombatActionHeading() : float

{

return VecHeading( theCamera.GetCameraDirection() ) - oTCameraOffset;

//return combatActionHeading;

 

 

 

replace with

 

 

 

 

 

combatActionHeading = heading;

 

}

 

public function GetCombatActionHeading() : float

{

 

return combatActionHeading;

 

 

 

 

 

Bear in mind you'll need to do that every time an update to Assorted Mod Patches is released, as I don't think I'll remove this mod from the guide, unless it plays badly with New Game+ for some reason.

 

::EDIT2::

 

Sorry, there is also combat.ws file, that need these changes:

 

enableSoftLock = false;

 

Change this to true.

I have downloaded and unpacked it in the mods folder but still no luck with it
Link to comment
Share on other sites

Hi root,

 

Quite an update mate! Hats off to you!  ::):

 

A few spotted minor updates/errors/typos:

 

  1. Active Witcher Zoom: Has been updated to v. 5.0
  2. No Automatic Camera Centering: Current version should be 1.2 and author should be Keelhauled.
  3. Concept Art Cat Armor: In 05.09.2015 changelog you have mentioned that you will be using the Light version. In the newest changelog there is no mention abt it, still the guide points to v.1.0 which is not the light version. 

 

Do not think I have spotted anything else...if something missed I will let u know!

 

Thanks again for this amazing guide!

Link to comment
Share on other sites

Hi root,

 

Quite an update mate! Hats off to you!  ::):

 

A few spotted minor updates/errors/typos:

 

  1. Active Witcher Zoom: Has been updated to v. 5.0
  2. No Automatic Camera Centering: Current version should be 1.2 and author should be Keelhauled.
  3. Concept Art Cat Armor: In 05.09.2015 changelog you have mentioned that you will be using the Light version. In the newest changelog there is no mention abt it, still the guide points to v.1.0 which is not the light version. 

 

Do not think I have spotted anything else...if something missed I will let u know!

 

Thanks again for this amazing guide!

Thanks for the corrections, I'll look into it! 

 

Still no luck have I done something wrong :(

Hm... For starters:

 

 - Which game version are you running?

 - Is your mods.settings file in the same folder as user.settings, input.settings and savegames?

 - Check if you have any duplicate mod folders in your Mods directory

 

Instead of Assorted Mod Patches may I use Script Merger?

 

There are some mods that you use that I don't and others that I want to use but are not on your guide.

Sure you can. I would suggest manually editing out the mods you don't want from the relevant script(s) of AMP mod, especially for PlayerWitcher.ws and r4player.ws - and then manually merging the ones you want in. Script Merger won't handle merging all the mods that are included in the guide (I tried it once) - there are some overlapping changes that require manual merging and editing the scripts. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.