Custom characters
Prerequisites
Create a new class
In order to use another player model than JC Denton, you'll need to create another class that inherits its properties from him.
Important
The BindName
of your custom character must always be JCDenton
. There are hardcoded references in the game, so certain things (like conversation choices) will break without it.
This is an example class that turns the player into Tiffany Savage. The file has to be placed into DeusEx/MyPackage/Classes/TiffanySavagePlayer.uc
. As always, make sure to rebuild your package whenever youve made changes to any of the compiled assets within it.
class TiffanySavagePlayer extends JCDentonMale;
event TravelPostAccept()
{
Super.TravelPostAccept();
MultiSkins[0] = Texture'DeusExCharacters.Skins.TiffanySavageTex0';
}
defaultproperties
{
BindName="JCDenton"
TruePlayerName="TiffanySavage"
FamiliarName="Tiffany Savage"
UnfamiliarName="Tiffany Savage"
CarcassType=Class'DeusEx.TiffanySavageCarcass'
bIsFemale=True
BaseEyeHeight=38.000000
Mesh=LodMesh'DeusExCharacters.GFM_TShirtPants'
MultiSkins(0)=Texture'DeusExCharacters.Skins.TiffanySavageTex0'
MultiSkins(1)=Texture'DeusExItems.Skins.PinkMaskTex'
MultiSkins(2)=Texture'DeusExCharacters.Skins.TiffanySavageTex0'
MultiSkins(3)=Texture'DeusExItems.Skins.GrayMaskTex'
MultiSkins(4)=Texture'DeusExItems.Skins.BlackMaskTex'
MultiSkins(5)=Texture'DeusExCharacters.Skins.TiffanySavageTex0'
MultiSkins(6)=Texture'DeusExCharacters.Skins.TiffanySavageTex2'
MultiSkins(7)=Texture'DeusExCharacters.Skins.TiffanySavageTex1'
CollisionRadius=20.000000
CollisionHeight=43.000000
JumpSound=Sound'DeusExSounds.Player.FemaleJump'
HitSound1=Sound'DeusExSounds.Player.FemalePainSmall'
HitSound2=Sound'DeusExSounds.Player.FemalePainMedium'
Land=Sound'DeusExSounds.Player.FemaleLand'
Die=Sound'DeusExSounds.Player.FemaleDeath'
}
If you find that your custom character is not being used when playing your map, you can try modifying the DeusEx/System/User.ini
under the [DefaultPlayer]
section like this:
Class=MyPackage.TiffanySavagePlayer
Allow your new class to spawn in-game
Add this function to your MyPackageGameInfo.uc
file:
function bool ApproveClass( class<playerpawn> SpawnClass)
{
return true;
}
Change the first map
To use your own custom map as the first one in the campaign, you can override the ShowIntro()
function:
function ShowIntro(optional bool bStartNewGame)
{
if (DeusExRootWindow(rootWindow) != None)
DeusExRootWindow(rootWindow).ClearWindowStack();
bStartNewGameAfterIntro = bStartNewGame;
AugmentationSystem.DeactivateAll();
Level.Game.SendPlayer(Self, "16_My_Map"); // <- Your map name here
}