Jump to content

Modding Alpha Protocol


Recommended Posts

I've decided to open this thread as I see huge potential in modding AP - maybe not to the extent of total overhaul, but IMHO altering some files might help fixing some minor issues, or even help dev team in creation of patch. In unlikely situation Obsidian wouldn't release any patch it might be the way to create community patch and help all those troubled souls who are whining about "unfinished" game. Personally I haven't noticed any major issues or things we mightn't be able to fix through careful tweaking.

 

If any of forum moderators think that this thread belongs to PC tech part of the forum - please move it.

 

If this thread will be interesting enough please make it sticky.

 

To all posters: please refrain from spamming, irrelevant comments and regular trolling - I would like to keep this thread clean and easy to read. I would also ask people who don't have a clue about modding games not to post their silly questions. If myself or anyone involved draw any final conclusions there will be step-by-step guide for dummies how to make all the changes with proper explanation. For now it's more experimental and reverse engineering theories. Please keep this thread as "scientific" as possible - if you have some theory or opinion give us a hint of proof and a way to reproduce your effects.

 

First post is a merged version of two posts I wrote earlier in another thread. I'll come with more later, when I'll gather all what I know so far.

 

Hopefully the developers will eventually notice this thread and give us some hints or answers to our questions...

 

Introduction:

 

Unreal engine is highly moddable, even without tools exclusive for Alpha Protocol. Tools for modding Unreal engine are already common enough. What is even more pleasing - all settings for ie. AI perception range, weapons stats, character development, visual presentation or controls are in config files - easily editable through notepad or other common text editor. I had quick look through config files and made some changes already and I've changed so far: controls responsiveness, resources allocation (no more stuttering or textures popping) moving speed of both Mike and AI (which basically means - no sliding and synchronised walking and running animation when compared to movement speed), more aware AI (both sound and visual perception), more realistic damage system (on basic endurance - one shot one kill when you get spotted), tweaked guns spread and recoil, and I've opened texture packs to some extent.

 

Hint for all people experiencing stuttering - first and foremost defrag your HD, and use all tweaks posted for ME and ME2 in the same subject as they all work.

 

To all interested - I will release all ini files and changes only when I'll be sure that none of my changes cause any glitches or errors throughout the game.

 

To the point:

 

1.Files structure.

 

I have retail DVD version bought in UK, WindowsXP SP3, all drivers up to date and all XP updates done to my OS.

 

Here's the structure I think is used:

In your game installation directory, everything in APGame is what's game using. The rest is more-less irrelevant for modding.

In CookedPC directory you have all packs and resources like sounds, textures, maps and missions. Localization directory is pretty self explainable.

Movies: if you go to that directory and change extension of slate_ap.sfd, slate_obsidian.sfd, slate_sega.sfd - your game will load straight to the main menu without opening cinematic. This way you can easily remove any cinematic in game.

 

For basic tweaks the most important directory is Config. These are the DEFAULT values for anything game related which is tweakable. If you remove all config files from MyDocuments/Alpha Protocol/Config and start the game again - it's going to create new configs from default files in game directory. I'm pretty sure that some settings *might* be saved in profile files but I'm not sure which elements are saved and which are directly read from ini files in MyDocuments. To be 100% sure if some value is or isn't used by the game it might be good to change values in game dir ini files, wipe configs from MyDocuments and start the game from the beginning. For now - there's only good few values that I'm sure are read straight from MyDocuments/Alpha Protocol/Config/xxx.ini files. Eyes colour and skin tone would be the best example as they're most noticeable.

 

I'll post more later as I need to check what values I was changing and which were having any direct impact on the game.

 

In the meantime take a look through MyDocuments/Alpha Protocol/Config/xxxxx.ini files. Some values are pretty self explanatory. Anything in sections [xxxx:APxxxxxx] is directly related and we can be sure that it's used by the game. You can also notice, that some ini files are cross referenced and in some other sections you have references to CookedPC packs.

There are sections without any AP reference - they might or mightn't be used - here's where trial and error comes to play.

  • Like 1
Link to comment
Share on other sites

Hi, cool thing youre on this -

my question:

where you able to unpack for instance the model files? (as you said you modified some textures - or was it with texmod?)

and if so, would it be possible to exchange them by renaming? for instance to play as some NPC instead of the PC? (is possible in just cause2 or thewitcher) - or even add/modify models.. anyway, ive never seen an unreal engine game capable of it (except unreal tournament)

- indeed all the unreal engine games (but UT3) havent been really modded at all. the best thing ive seen were some retextures (arkham asylum - and rainbow6vegas)

Link to comment
Share on other sites

It would be nice to be able to tweak the AI a bit. I look forward to your results. Please say that awful skybox can be replaced. This game has the worst skybox since Doom 2.

 

 

I noticed the perks are easily editable.

Edited by Spydude
Link to comment
Share on other sites

It would be nice to be able to tweak the AI a bit. I look forward to your results. Please say that awful skybox can be replaced. This game has the worst skybox since Doom 2.

Not likely without added textures.

 

Question for everyone out there, does anyone knows what the +seekfreepackage lines are for?. They are in the Defaultengine.ini

Edited by Orogun01
I'd say the answer to that question is kind of like the answer to "who's the sucker in this poker game?"*

 

*If you can't tell, it's you. ;)

village_idiot.gif

Link to comment
Share on other sites

Hi, cool thing youre on this -

my question:

where you able to unpack for instance the model files? (as you said you modified some textures - or was it with texmod?)

and if so, would it be possible to exchange them by renaming? for instance to play as some NPC instead of the PC? (is possible in just cause2 or thewitcher) - or even add/modify models.. anyway, ive never seen an unreal engine game capable of it (except unreal tournament)

- indeed all the unreal engine games (but UT3) havent been really modded at all. the best thing ive seen were some retextures (arkham asylum - and rainbow6vegas)

 

You can check this by yourself by using this tool:

 

Gildor's Unreal Model Viewer

 

Thanks to Gildor we can make high res textures. :p

Link to comment
Share on other sites

Found these on another site, haven't tested.

 

Go to APEngine.ini (My Documents --> Alpha Protocol), make sure read only is unchecked in the file's properties. Makes these changes:

 

[system Settings]

Trilinear=True(This is originally set to False.)

MaxAnisotropy=16(This is originally set to 4. You can set this to 4, 8, or 16 depending on how powerful your system is.)

EnableHighPolyChars=True(This is originally set to False.)

MinShadowResolution=32(32 is the absolute minimum resolution. You can set this higher, like 512, but this can affect the performance greatly and can also cause shadows to start gltiching.)

MaxShadowResolution=4096(This can be set lower if you system does not have a powerful graphics card. Remember to set it in normal resolution numbers like 1024, 2048, etc. 4096 is the highest this can be set.)

bEnableBranchingPCFShadows=True(This is originally set to False.)

bEnableForegroundShadowsOnWorld=True(This is originally set to False.)

 

Save, close the file, then make it read-only again.

I'd say the answer to that question is kind of like the answer to "who's the sucker in this poker game?"*

 

*If you can't tell, it's you. ;)

village_idiot.gif

Link to comment
Share on other sites

Change these valors in APGame.ini (My Documents)

 

InteractDistance=250

CoverWalkSpeed=75.f

CoverRunSpeed=125.f

PlayerRotationSpeed=80000.0f

MoveSpeedNormal=240

MoveSpeedScoped=80

SprintSpeed=320

 

This should improve the animations and player speed. ;-)

Link to comment
Share on other sites

It would be nice to be able to tweak the AI a bit. I look forward to your results. Please say that awful skybox can be replaced. This game has the worst skybox since Doom 2.

 

Not likely without added textures.

 

Question for everyone out there, does anyone knows what the +seekfreepackage lines are for?. They are in the Defaultengine.ini

 

As I understand it's reference for files caching and streaming. My advice - don't mess with defaultXXXXX.ini files unless you know exactly what you're doing.

 

As to your post above - they do work to some extent, especially shadows settings. Not that huge impact on visual quality though.

 

I'm going to try decompile AP files with Unreal Development Kit and will post results later this week... If we can use UDK for AP - well... we might be able to alter whatever we want and even create new maps and missions.

 

Can someone explain to the devs that the game we can mod are the game with unlimited lifespan? :p

 

Confirmed revelations above about moving speeds.

Edited by MarteenDee
Link to comment
Share on other sites

More tweaks I've found on the internet.

Mouse tweaks.

set bEnableMouseSmoothing=False

in \Alpha Protocol\APGame\Config\DefaultInput.ini

 

Two places here.

\My Documents\Alpha Protocol\APGame\Config\APInput.ini

 

Also set in \My Documents\Alpha Protocol\APGame\Config\APEngine.ini

the following:

 

[Engine.GameEngine]

bSmoothFrameRate=FALSE

MinSmoothedFrameRate=30

MaxSmoothedFrameRate=60

 

[systemSettings]

UseVsync=False

 

In APEngine.ini (C:\Users\username\Documents\Alpha Protocol\APGame\Config), change the following settings:

 

UseBackgroundLevelStreaming=false

OnlyStreamInTextures=true

OneFrameThreadLag=False

I'd say the answer to that question is kind of like the answer to "who's the sucker in this poker game?"*

 

*If you can't tell, it's you. ;)

village_idiot.gif

Link to comment
Share on other sites

There are multiple ini files in game documents folder. Some of them are used for game constants.

 

APWeaponStats.ini includes weapon stats, APDamageTypesData.ini ammo stats, APLevelChart.ini leveling info, etc...

Spell Fixes compilation for Neverwinter Nights 2, as well as my other submissions for this great game.

Link to comment
Share on other sites

Change these valors in APGame.ini (My Documents)

 

InteractDistance=250

CoverWalkSpeed=75.f

CoverRunSpeed=125.f

PlayerRotationSpeed=80000.0f

MoveSpeedNormal=240

MoveSpeedScoped=80

SprintSpeed=320

 

This should improve the animations and player speed. ;-)

This actually works quite well, but Mike feels really slow now...

Link to comment
Share on other sites

Change these valors in APGame.ini (My Documents)

 

InteractDistance=250

CoverWalkSpeed=75.f

CoverRunSpeed=125.f

PlayerRotationSpeed=80000.0f

MoveSpeedNormal=240

MoveSpeedScoped=80

SprintSpeed=320

 

This should improve the animations and player speed. ;-)

This actually works quite well, but Mike feels really slow now...

What does it do? Magically add in more animation blending?

 

All I want is to be able to tweak some particle effects and maybe switch some models around. Can't be too hard.

"Alright, I've been thinking. When life gives you lemons, don't make lemonade - make life take the lemons back! Get mad! I don't want your damn lemons, what am I supposed to do with these? Demand to see life's manager. Make life rue the day it thought it could give Cave Johnson lemons. Do you know who I am? I'm the man who's gonna burn your house down! With the lemons. I'm going to to get my engineers to invent a combustible lemon that burns your house down!"

Link to comment
Share on other sites

What does it do? Magically add in more animation blending?

 

All I want is to be able to tweak some particle effects and maybe switch some models around. Can't be too hard.

Yes, it pretty much fixes the transition from "standing" to "running" animations. It also makes walking while on cover not feel like Sonic The Hedgehog. I'm keeping it for now.

 

Haven't noticed much graphical improvement or framerate downfalls from the graphics settings Orogun01 posted.

Link to comment
Share on other sites

Did anyone check the contents of Dialogues folder?

RS and RP files seem to contain good amount of content that never showed up in any of my playthroughs.

It also seems that there were ment to be 3 optional missons in various locations (the first one - O1 seems to be mostly completed).

Can any of this be actualy encountered and I'm just being paranoid or do we need a 'Gizka Strikes Back' team to do another restoration project? :p

Link to comment
Share on other sites

Change these valors in APGame.ini (My Documents)

 

InteractDistance=250

CoverWalkSpeed=75.f

CoverRunSpeed=125.f

PlayerRotationSpeed=80000.0f

MoveSpeedNormal=240

MoveSpeedScoped=80

SprintSpeed=320

 

This should improve the animations and player speed. ;-)

This actually works quite well, but Mike feels really slow now...

What does it do? Magically add in more animation blending?

 

All I want is to be able to tweak some particle effects and maybe switch some models around. Can't be too hard.

 

Not magically, but improves the absurd speed animation, especially in the direction changes of character. It just a little tweak but necessary :D Mike now seems slow because you're used to see him move at the speed of light ;)

Link to comment
Share on other sites

What does it do? Magically add in more animation blending?

 

All I want is to be able to tweak some particle effects and maybe switch some models around. Can't be too hard.

Yes, it pretty much fixes the transition from "standing" to "running" animations. It also makes walking while on cover not feel like Sonic The Hedgehog. I'm keeping it for now.

 

Haven't noticed much graphical improvement or framerate downfalls from the graphics settings Orogun01 posted.

 

Well - talking about Mike's animations and walking speed - try different values to have him walking/running/sprinting fast enough for your taste but still slower than default. It will synchronize animation with speed at some stage - there is a sweet point somewhere.

 

[Engine.GameEngine]

bSmoothFrameRate=FALSE <-----if you set this value to false you don't need to alter values below, this is turning off

MinSmoothedFrameRate=30 smoothing altogether and below values aren't used

MaxSmoothedFrameRate=60

 

[systemSettings]

UseVsync=False <-----depends on the system, I have Vsync = True and no problems...

 

I'll post all my changes later today, you can test some of those and see if they're working.

 

@PastramiX

Use Gildor's utility for opening .upk files. Alpha Protocol uses modified Unreal engine what also means that packs are "protected" from opening in UDK. Don't know if that prevents AP from reading non-protected upk, though.

 

We really need someone from developing team to give us few hints about it but I imagine it can be done by setting +seekfreepackage directory in ini file as in other Unreal based titles.

Link to comment
Share on other sites

Sorry for double post.

 

Here's first part of my changes in MyDocuments/Alpha Protocol/APGame/Config/APEngine.ini

 

APEngine.ini

bAllowMatureLanguage=True

MaxPixelShaderAdditiveComplexityCount=600
MaxPixelShaderOpaqueComplexityCount=300
MaxVertexShaderComplexityCount=300
TimeBetweenPurgingPendingKillObjects=120

bEnableVSMShadows=TRUE
bEnableBranchingPCFShadows=TRUE

bDisablePhysXHardwareSupport=False

bSmoothFrameRate=FALSE
MinSmoothedFrameRate=0
MaxSmoothedFrameRate=85

MaxStaleCacheSize=512
MaxOverallCacheSize=1024

MinDesiredFrameRate=0.000000

ParanoidDeviceLostChecking=0
AllowJoystickInput=0

PoolSize=1024
StopStreamingLimit=24
MinFudgeFactor=0.5
UseTextureFileCache=TRUE

CompositeDynamicLights=False
FilteredDistortion=True
OnlyStreamInTextures=True
Trilinear=True
OneFrameThreadLag=False
EnableHighPolyChars=True

ShadowFilterQualityBias=4
MaxAnisotropy=16
MaxMultisamples=8

MinShadowResolution=32
MaxShadowResolution=2048
FoliageDrawRadiusMultiplier=8.000000

ShadowTexelsPerPixel=4.000000
bEnableVSMShadows=True
bEnableBranchingPCFShadows=True

bEnableForegroundShadowsOnWorld=True
ShadowFilterRadius=4.000000

DebrisLifetime=120.0

DisableShadowVolumes=False
DisableHWShadowMaps=False
ShadowBufferResolution=2048
MaxShadowResolution=2048
MinShadowResolution=32

Link to comment
Share on other sites

Any news on the walking animation? Is there a way to bind it to a new button or something?

Yes, you can change the settings on the DefaultInput.ini Look for the "+bindings" lines and set them to your liking.

If you are talking about the walking animations on the first minute of gameplay, then this won't help.

Edited by Orogun01
I'd say the answer to that question is kind of like the answer to "who's the sucker in this poker game?"*

 

*If you can't tell, it's you. ;)

village_idiot.gif

Link to comment
Share on other sites

Any news on the walking animation? Is there a way to bind it to a new button or something?

 

I was looking through binds and related settings as that was high on my list of fixes.

Here how it looks in my opinion:

Console controls for movement are analogue, what means, that bigger is stick pressure towards movement direction Mike is moving faster. I need to hear from people who played on consoles if animation changes for walking with slowest movement.

 

Now - when ported to PC, except of joystick, you don't have any other analogue controls. Keys are emulating pad controls. If you press "W" Mike is running forward with maximum speed possible, and when you stop pressing the key - Mike stops. Here's how console to PC translation looks in APinput.ini for movement:

 

MoveForwardSpeed=1200.000000

MoveStrafeSpeed=1200.000000

 

Bindings=(Name="MoveForward",Command="Axis aBaseY Speed=1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="MoveBackward",Command="Axis aBaseY Speed=-1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="StrafeLeft",Command="Axis aStrafe Speed=-1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="StrafeRight",Command="Axis aStrafe Speed=+1.0",Control=False,Shift=False,Alt=False)

 

Bindings=(Name="W",Command="MoveForward",Control=False,Shift=False,Alt=False)

Bindings=(Name="Up",Command="MoveForward",Control=False,Shift=False,Alt=False)

Bindings=(Name="S",Command="MoveBackward",Control=False,Shift=False,Alt=False)

Bindings=(Name="Down",Command="MoveBackward",Control=False,Shift=False,Alt=False)

Bindings=(Name="A",Command="StrafeLeft",Control=False,Shift=False,Alt=False)

Bindings=(Name="Left",Command="StrafeLeft",Control=False,Shift=False,Alt=False)

Bindings=(Name="D",Command="StrafeRight",Control=False,Shift=False,Alt=False)

Bindings=(Name="Right",Command="StrafeRight",Control=False,Shift=False,Alt=False)

 

Bold parts, as you can see, are directly connected with movement speed. What's odd, though - when I'm changing Speed=1.0 into Speed=0.1 it doesn't alter movement speed and changing MoveForwardSpeed and MoveStrafeSpeed to 100.000 seems having no effect either.

Is function Name="MoveForward",Command="Axis aBaseY Speed=1.0" used for gamepad to keyboard translation or is it for analogue joystick? If first - changing Speed=1.0 to Speed=0.1 should make Mike walking, but it isn't.

 

1.0 x 1200 = move forward with maximum speed and -1.0 x 1200 means moving backward with the same speed, so if I would change Speed=0.1 and MoveForwardSpeed=100 I should see Mike moving forward 10 times slower. It isn't the case, though.

 

Now. If it is as I think - lighter thumbstick movement means walking animation - there have to be some value = walking and everything above that value = running. In this case we have another, this time - engine related setting:

 

Bindings=(Name="Walking",Command="Button bRun")

 

which is different than, certainly AP only, scripted function:

 

Bindings=(Name="LeftShift",Command="Button bShoulder_L | APInput_SprintOn | OnRelease APInput_SprintOff",Control=False,Shift=False,Alt=False)

 

That means two things IMO - engine-wise, there's one function "bRun" switching between walking and running. Obsidian added SprintOn/SprintOff function, and also we can definitely say that Mike is capable of walking as he walks around the room in the first scene of the game. What I was trying to do was adding it as:

 

Bindings=(Name="Walking",Command="Button bRun",Control=False,Shift=False,Alt=False)

Bindings=(Name="MoveForward",Command="Axis aBaseY Speed=1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="MoveBackward",Command="Axis aBaseY Speed=-1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="StrafeLeft",Command="Axis aStrafe Speed=-1.0",Control=False,Shift=False,Alt=False)

Bindings=(Name="StrafeRight",Command="Axis aStrafe Speed=+1.0",Control=False,Shift=False,Alt=False)

 

Bindings=(Name="LeftControl",Command="Walking",Control=False,Shift=False,Alt=False)

Bindings=(Name="W",Command="MoveForward",Control=False,Shift=False,Alt=False)

Bindings=(Name="Up",Command="MoveForward",Control=False,Shift=False,Alt=False)

 

But after I've pressed LCtrl+W, there was no reaction - Mike was running as always. Which means that my reasoning might be wrong, or the control system is additionally scripted in the game files and any information about "bRun" functionality was removed by Obsidian and isn't present in the files used by the game.

 

I would encourage to have a look at these files and maybe we might eventually figure out what's the way to do it. In other case - we have to wait until having some tool for opening and compiling back game packs with scripts.

 

BTW - can anyone be so generous and upload for us Config files from X-Box version? I would like to compare those and see if there are some major differences. Thanks in advance.

 

 

 

I wonder how much time it'll take to get a romanceable Sis :lol:

 

I'm gonna try MarteenDee's settings tonight and post some feedback.

 

Just take into account that some memory and caching settings might differ from one PC to another due to hardware capabilities. If you'll experience more stuttering or graphical glitches just reduce values but still keeping them higher than vanilla. I'll maybe edit my post later today with some basic explanation for every value. You can also check Unreal Wiki for some hints.

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...