Jump to content

CK2 Modding Quick Question Thread


Recommended Posts

Just now, Angelo_Merkel said:

Ahh very interesting. I havent looked into the DWF mod yet. Thanks a lot.

So I just need to set up a new trait (that is not applied randomly to other characters) and define this trait in the clause. THANKS ?

I recommend checking out this page - Static Portrait Replacer

 

It is set up to easily create trait-portraits. Just gotta read through some stuff there to figure it out.

Even if you dont use one of the files there it might tell you more then I can.

Link to comment
35 minutes ago, Angelo_Merkel said:

Ahh very interesting. I havent looked into the DWF mod yet. Thanks a lot.

So I just need to set up a new trait (that is not applied randomly to other characters) and define this trait in the clause. THANKS

It's a bit more complicated than that. It uses the Remedy portrait style, so you need to set up an entirely new portrait layer in the interface file, then assign the trait using portrait_has_trait = xxx then create the trait in the traits file, then assign the trait in the create_character command. Feel free to download Dark World Fantasy and take a look through the interface/portrait/ files on how to do it.

Link to comment
38 minutes ago, rookie189 said:

Do conditions like any_courtier or any_child work with event triggers like with decision triggers? So like

 

trigger = {
    any_child = {
        trait = dwse_dragon_adult
        is_adult = yes
    }
}

 

for example?

any_child is a scope, not a condition. Scopes work everywhere.

A condition would be the trait = dwse_dragn_adult or is_adult = yes (which is actually kind of redundant since you only get that trait as an adult).

 

So to answer your question, yes, that will work perfectly.

Link to comment
1 hour ago, lockeslylcrit said:

any_child is a scope, not a condition. Scopes work everywhere.

A condition would be the trait = dwse_dragn_adult or is_adult = yes (which is actually kind of redundant since you only get that trait as an adult).

 

So to answer your question, yes, that will work perfectly.

Ah, my mistake(s). Thanks!

Link to comment

Thanks to all who answered ? 

So I can use portrait_has_trait = xxx in a portraitType clause in the portrait-file for the culturegfx? I have to look in Static Portrait Replacer anyways. 

 

And I can also use this code for the trigger. Bascially I triggering a child but by setting it to adult its an adult. 

trigger = {
    any_child = {
        trait = dwse_dragon_adult
        is_adult = yes
    }
}

 

 

Right now Im having issues with my main mod.

(1) The way the game renders hair colors is kind of weird for light hair colors. For dark colors its nice. 

e0b6b7-1565364688.pngb2b0c6-1565364814.pngec3657-1565364836.png5a65eb-1565364909.pngf0f183-1565364930.png

(The eyes also need a little fix, there a micro seams.)

 

But the light colors look greenish and weird. I dont know how the game uses the rgb values in the portrait-file. Is it multiplying the values to the hair image? Or how does it work? If I make the hair images files lighter, the dark colors dont have a nice contrast.

a8964b-1565365027.png

 

(2) Somehow the game is not rendering my clothes file. I have set up the spirtetype and linked the sprite in the PortraitType clause. 

719832-1565365056.png

But somehow it is rendering something else. A game cloth like in the screenshots above. Weird.

 

(3) Plus there is something in the back that is not the base_file and not one of the undermain files. Wtf.

 

edc7e6-1565365094.png

 

 

 

AHHHH. 

 

Link to comment

This probably isn't the place to ask this, but does anyone know which mod causes stillbirths? Whatever's causing stillbirths isn't removing the Final Months trait and an increasing amount of female rulers are getting permanently stuck with regents. I've been trying to track it down but it's so hard to fire off in game that testing individual mods could take all day on my crappy laptop and sifting through event files doesn't bring anything up when I search for stillborn or stillbirth. It's getting frustrating because I might be searching for the wrong words or maybe even searching in the wrong location. The 3 most recent mods I've added were The 3 Towers, Crusader Milk, and Dark World Tentacles but it's possible that I just never noticed this happening before these mods were added.

 

Now a question that sort of belongs here: when I do find whatever's causing stillbirths, can I just add a "remove_trait = pregnancy_finishing" to solve this issue? Sorry if this is an ignorant question, my coding experience is limited to a semester of C++ some time ago and I'm not at all confident in my ability to update a line of code beyond changing a value or copying segments. If I don't find the culprit, can I make a decision action to scour my world of Final Months traits?

Link to comment
20 hours ago, ContractKiller said:

This probably isn't the place to ask this, but does anyone know which mod causes stillbirths? Whatever's causing stillbirths isn't removing the Final Months trait and an increasing amount of female rulers are getting permanently stuck with regents. I've been trying to track it down but it's so hard to fire off in game that testing individual mods could take all day on my crappy laptop and sifting through event files doesn't bring anything up when I search for stillborn or stillbirth. It's getting frustrating because I might be searching for the wrong words or maybe even searching in the wrong location. The 3 most recent mods I've added were The 3 Towers, Crusader Milk, and Dark World Tentacles but it's possible that I just never noticed this happening before these mods were added.

First of all, are you sure this is stillbirth and not your wives lying to you about a tentacle child? Dark World Tentacles has an event chain where you can lie to your spouse about these things.

 

Second, this issue is almost certainly because you have a mod that overwrites vanilla pregnancy events, which will conflict with Dark World Tentacles in weird ways. There is a disclaimer in the Dark World Tentacles page about exactly this issue. What is the FULL list of mods you're running?

Link to comment

I'm playing on Crusader Kings 3.0.1.1 with the mods:

Dark World Fantasy 2.0.4

(+Modules associated with release of 2.04)

Beyond Heresy 2.0.1

House Irae 1.12.3?

Dark World Extras

Elven Expansion 1.1.3

 

The recently added mods were

The 3 Towers/Les Trois Tours 0.98

Crusader Milk 0.2

DW Tentacles 2.0.x? (I can only find the archives for 1.6 but Pheromones are able to be gained through the event chain so I may have just deleted the compressed 2.0.0)

Barn Fun (Removed shortly after testing)

 

Previous to adding these 3 mods, I don't believe stillbirths were a part of my game, but I do think the issue is connected to stillbirths because the female character I was running to test Tentacles and a female courtier both had a stillbirth event without interacting with tentacles, returning something similar to if not exactly "Character.Name gave birth to a stillborn little boy/girl." both having Final Months stuck afterwards. The event itself wasn't a part of a chain so I couldn't see what it led to with charinfo and the window only gave EventID = 2 which probably doesn't say anything. I wish I had saved so that I could have looked at the save file. I'm slightly suspect that it may be due to Les Trois Tours because it's an overhaul mod mostly for economic realism but it's hard to say because I can't read French.

 

I tried to test mods through repeated batch trials to find stillbirths but my low spec laptop took so long loading every boot up and game start that I gave up and just removed every Final Month trait from the affected save file. I'll probably just habitually scour Final Months every few years until I become annoyed enough to make a decision action to do so. As I am using outdated mods, if this issue was fixed with an update or due to an old conflict, I apologize for necroing an old problem. Even though I probably won't play old save files again, the possibility to do so is lost with updated mods that break old saves and it just feels nice to have the option.

Link to comment
5 hours ago, Celedhring said:

modifier = { # Prioritize players
                factor = 99
                ROOT = { ai = no }

 

 

What's the factor range?  1-100 or 1-1000?

Factor is how much you want to multiply the modified number by. It can be as little as 0 (which would prevent the modified number from ever being chosen, as zero times anything is zero), to 0.5 (one half), to 1 (no modifications), to as high as you want.

Link to comment
4 hours ago, ContractKiller said:

[snip]

It sounds like Les Trois Tours is the issue here. It seems to be activating the dummied-out stillbirth in vanilla, which will cause all sorts of issues. In general, mods that invasively alter the base gameplay of CK2 are not going to be compatible with other mods.

 

For what it's worth, the new release of Dark World Tentacles will now always clear the Final Months trait when a character is impregnated with tentacles. You can also edit your save to turn off the pregnancy flavor game rule so that the Final Months trait won't be applied to pregnant mothers.

Link to comment

@lockeslylcrit heyyy Im reading myself into the static portrait replacer mod and I have used the template version of it. However, when I try to use the specific trait the only thing thtat happensis that the clothing and headgear gets removes from the character who gets the trait.

 

F.e.:

I wanted to add the trait 'africanstrangers_portrait1" to the wife of a character.

help1.jpg.d89fcb85864d1889619a105c695fc02b.jpg

But thats the only thing that happens: it added the trait but just removed the clothing and headgear.

help2.jpg.257a76ce421e5096603d791e39770817.jpg

 

Im thinking that is part of the code (from the interface/portraits/txt-file that I made) for the layer is somehow not correct (but its the same from the other mod).

help3.jpg.bdd90bafb9dbfa501f521f267e4529f7.jpg

 

Or does anyone knows what the problem is here?

 

Link to comment
58 minutes ago, Angelo_Merkel said:

 

 

 

You're gonna have to post the full code, not just a snippet.

 

Spoiler

# Misc characters
	spriteType = {
		name = "GFX_portrait_dwf_core_npcs"
		texturefile = "gfx/static_portraits/DWF_Core_NPCs.dds"
		noOfFrames = 16
		norefcount = yes
		can_be_lowres = yes
	}

    portraitType = {
        name = "PORTRAIT_dwf_misc_npcs_static"
		effectFile = "gfx/FX/portrait.lua"
        weight = {
            additive_modifier = {
                value = 100000
                portrait_clothing = yes
				OR = {
					portrait_has_trait = dwf_npc_ginny
					portrait_has_trait = dwf_npc_luna
					portrait_has_trait = dwf_npc_hermione
					portrait_has_trait = dwf_npc_sorcey
					portrait_has_trait = frog
					portrait_has_trait = dwf_npc_redridinghood
					portrait_has_trait = dwf_npc_mey
					portrait_has_trait = dwf_npc_redsonja
					portrait_has_trait = dwf_npc_conan
					portrait_has_trait = dwf_npc_lynness
					portrait_has_trait = dwf_npc_lenora
					portrait_has_trait = dwf_npc_ying_li
					portrait_has_trait = dwf_npc_mwamba
					portrait_has_trait = dwf_npc_traplink
					portrait_has_trait = dwf_npc_asha
					portrait_has_trait = dwf_npc_charlotte
				}
	 		}
        }

        layer = {
			"GFX_empty:p0"
			"GFX_empty:p2"
			"GFX_empty:c0"
            "GFX_empty:c2"
            "GFX_empty:c3"
            "GFX_empty:c1"
            "GFX_empty:c4"
            "GFX_empty:p1:h:y"
			"GFX_empty:p6"
            "GFX_portrait_dwf_core_npcs:c5"
        }

        allow_property_values = {
            1 = {
				0  = { always = yes }
            }
            19 = {
				0  = { always = yes }
            }
			33 = {
				0  = { always = yes }
            }
            34 = {
				0  = { always = yes }
            }
            35 = {
				0  = { always = yes }
            }
            36 = {
				0  = { always = yes }
            }
            6 = {
				0  = { always = yes }
            }
            5 = {
				0 = { portrait_has_trait = dwf_npc_ginny }
				1 = { portrait_has_trait = dwf_npc_luna }
				2 = { portrait_has_trait = dwf_npc_hermione }
				3 = { portrait_has_trait = dwf_npc_sorcey }
				4 = { portrait_has_trait = frog }
				5 = { portrait_has_trait = dwf_npc_redridinghood }
				6 = { portrait_has_trait = dwf_npc_mey }
				7 = { portrait_has_trait = dwf_npc_redsonja }
				8 = { portrait_has_trait = dwf_npc_conan }
				9 = { portrait_has_trait = dwf_npc_lynness }
				10 = { portrait_has_trait = dwf_npc_lenora }
				11 = { portrait_has_trait = dwf_npc_ying_li }
				12 = { portrait_has_trait = dwf_npc_mwamba }
				13 = { portrait_has_trait = dwf_npc_traplink }
				14 = { portrait_has_trait = dwf_npc_asha }
				15 = { portrait_has_trait = dwf_npc_charlotte }
			}
		}
	}

 

 

Link to comment

Ok. I have altered the code but its still not working.

 

Here is the code Im using right now:

#sprites and portraittypes for static portraits
spriteTypes = {
	spriteType = {
		name = "GFX_portrait_africanstrangers_remedy_portrait_swapping"
		texturefile = "gfx/static_portraits/africanstrangers_remedy_portrait_swapping.png"
		noOfFrames = 3					# same frame count as the image for special scepters
		norefcount = yes
		can_be_lowres = yes
	}
	portraitType = {
		effectFile = "gfx/FX/portrait.lua"
		name = "africanstrangers_PORTRAIT_static_1" 
		weight = {
			additive_modifier = {
				value = 10000
				portrait_age > child
				portrait_is_female = yes
				portrait_clothing = yes
			}
		}

        layer = {  
            "GFX_portrait_africanstrangers_remedy_portrait_swapping:p36" #trying to put the static portrait image at layer 36
        }
        allow_property_values = {
			36 = { 					# property layer
			# following values are the frame numbers, p36 has 3 frames in the portraits_properties.txt defined so: 0-2				
				0 = { always = no }	
				1 = { always = no }
				2 = { 
					portrait_has_trait = africanstrangers_portrait1	#wanted to use this frame from layer 36 for the first trait
					always = yes
					hide_layers = { 1 = { } } 		# i tried this out, but its not helping
					hide_layers = { 2 = { } } 
					hide_layers = { 3 = { } } 
					hide_layers = { 4 = { } } 
					hide_layers = { 5 = { } } 
					hide_layers = { 6 = { } } 
					hide_layers = { 7 = { } } 
					hide_layers = { 8 = { } }
					hide_layers = { 9 = { } }
					hide_layers = { 10 = { } }
					hide_layers = { 11 = { } } 
					hide_layers = { 12 = { } } 
					hide_layers = { 13 = { } } 
					hide_layers = { 14 = { } } 
					hide_layers = { 15 = { } } 
					hide_layers = { 16 = { } } 
					hide_layers = { 17 = { } } 
					hide_layers = { 18 = { } }
					hide_layers = { 19 = { } }
					hide_layers = { 20 = { } }		
					hide_layers = { 21 = { } } 
					hide_layers = { 22 = { } } 
					hide_layers = { 23 = { } } 
					hide_layers = { 24 = { } } 
					hide_layers = { 25 = { } } 
					hide_layers = { 26 = { } } 
					hide_layers = { 27 = { } } 
					hide_layers = { 28 = { } }
					hide_layers = { 29 = { } }
					hide_layers = { 30 = { } }
					hide_layers = { 31 = { } } 
					hide_layers = { 32 = { } } 
					hide_layers = { 33 = { } } 
					hide_layers = { 34 = { } } 
					hide_layers = { 35 = { } } 		
				}		
			}
		}
	}
}

 

Im using this image file in gfx/characters/static_portraits

 

africanstrangers_remedy_portrait_swapping.png.png.11ce11ccf271b96e43dc3df404f93020.png

 

Thx for all help.

 

 

Link to comment

Well you're not going to get anywhere with that code.

 

First of all, the static portraits uses the clothing layer, not a new layer. Having both portrait_clothing = yes and a defined 36 = { layer isn't going to help you. Clothing is always going to be layer 5.

 

Second, you use the portrait trait in your defined layer, but not in the additive_modifier. Again, this isn't going to help you. Having a low additive_modifier probably isn't helping either.

 

Third...
 

Quote

# following values are the frame numbers, p36 has 3 frames in the portraits_properties.txt defined so: 0-2

The frames in this block refer to the individual 152x152 sections of the portrait graphic file. Without the dds file on hand, I'm only going to assume that it's 456x152 in size and that the portrait you want is in the final 152x152 block

 

Fourth, each individual conflicting layer in the allow_properties_values need to be disabled. Using hide_layer just don't cut it.

 

Fifth, don't use png. Ever. Either use tga (not suggested) or dds. Download paint.net and save as dds using DXT5, Iterative Fit, and Perceptual settings.

 

 

After all that, try this:

 

Spoiler

#sprites and portraittypes for static portraits
spriteTypes = {
	spriteType = {
		name = "GFX_portrait_africanstrangers_remedy_portrait_swapping"
		texturefile = "gfx/static_portraits/africanstrangers_remedy_portrait_swapping.dds"		# Needs to be TGA or DDS
		noOfFrames = 3			# This is the number of individual 152x152 blocks in your image
		norefcount = yes
		can_be_lowres = yes
	}
	portraitType = {
		effectFile = "gfx/FX/portrait.lua"
		name = "africanstrangers_PORTRAIT_static_1" 
		weight = {
			additive_modifier = {
				value = 100000		# Added a zero to ensure that nothing else takes priosity
				portrait_has_trait = africanstrangers_portrait1
				portrait_clothing = yes
			}
		}

        layer = {  
			"GFX_empty:p0"
			"GFX_empty:p2"
			"GFX_empty:c0"
            "GFX_empty:c2"
            "GFX_empty:c3"
            "GFX_empty:c1"
            "GFX_empty:c4"
            "GFX_empty:p1:h:y"
			"GFX_empty:p6"
            "GFX_portrait_africanstrangers_remedy_portrait_swapping:c5"
        }
        allow_property_values = {
            1 = {
				0  = { always = yes }
            }
            19 = {
				0  = { always = yes }
            }
			33 = {
				0  = { always = yes }
            }
            34 = {
				0  = { always = yes }
            }
            35 = {
				0  = { always = yes }
            }
            36 = {
				0  = { always = yes }
            }
            6 = {
				0  = { always = yes }
            }		
		
			5 = {	
				0 = { always = no }	
				1 = { always = no }
				2 = { 
					portrait_has_trait = africanstrangers_portrait1
				}		
			}
		}
	}
}

 

 

Link to comment

@lockeslylcrit wow thanks a lot. It works now.

 

proof:

finally.jpg.177dff99c738953ae0e890ddcd05ced2.jpg

 

Sadly the image appears slightly blurred. Does anyone know why?

 

Just for my understanding (I will try this technique also for new traits that will have a graphical effect on the portraits):

(1) Why have you blocked only layer 1, 6, 19, 33, 34, 35, 36?

(2) F.e. when adding an african lip plate as a trait with a graphical effect as a warpaint, I have to

(a) look in the portraits_properties.txt and change the framecount there, right? 

 

I will add this image as a new warpaint for having the lipplate trait:

 

new default westafrican male

westafrican_male_base_1.png.de3b2f4c01d6549923e26b8cb11847f2.pngwith lip plate trait:westafrican_male_lipplate.png.97c9361eaa2e33bfb49148cbdf11e121.png

And maybe this when the lipplate gets removed hahahaa.

westafrican_male_lipplate_removed.png.fa93513cec2482f8172f052cc08e04df.png

(context: I plan on making this an event for westafrican males where they can choose to get a lip  plate and then some events where they can get rid of it but it will leave the warped skin behind lol).

 

(b) set up the trait in common/traits as txt file

(c) write a description in localisation as csv. file

(d) add a new gfx file in interface/portraits where I set up the spirtes and the portraittype

-> Here I cant use layer 5 (bc I want the clothing to stay). So I want to use layer 29, I have to get the gfx-name here in the layer 29 slot:

layer = {  
			"GFX_XXX:p29"

Btw I know what :dx (dna) and :px (property) means, but what is f. e. :c5, wjhat does the c stand for? Does it also mean layer?

And I will have to set the (last) frame in the allow_property_values-clause:

allow_property_values = {
			29 = {	
				0 = { always = no }	
				1 = { always = no }	
				#and so an for all layers
				xxx = { portrait_has_trait = traitnameXXX }		
			}

Am I right?

(e) when I want the trait only for a specific graphical culture (like westafricangfx), do I have to set the condition "portrait_gfx_culture" in the common/traits txt-file or in the properties-gfx-file in interface/portraits?

 

Ah and one question: why not png? Is it something the game doesnt read? I have donwloaded paint.net and will use it.

 

Thanks for all help. You guys are amazing.

Link to comment
8 minutes ago, Angelo_Merkel said:

(1) Why have you blocked only layer 1, 6, 19, 33, 34, 35, 36?

Because the static portraits are technically considered clothing, those are the layers that have the ability to disable the clothing layer (layer 5). It was a major annoyance of mine in the early days of DWF before I discovered that little issue and corrected it.

 

43 minutes ago, Angelo_Merkel said:

(2) F.e. when adding an african lip plate as a trait with a graphical effect as a warpaint, I have to

(a) look in the portraits_properties.txt and change the framecount there, right? 

You can set those individual items in a separate layer, much like hair or such. You just need to lower the file in the layer property so it will appear on top of the static image.

 

        layer = {
			"GFX_empty:p0"
			"GFX_empty:p2"
			"GFX_empty:c0"
            "GFX_empty:c2"
            "GFX_empty:c3"
            "GFX_empty:c1"
            "GFX_empty:c4"
            "GFX_empty:p1:h:y"
			"GFX_empty:p6"
            "GFX_portrait_dwf_core_npcs:c5"
			"GFX_african_lips_whatever:p36" # Your lip images
        }

 

50 minutes ago, Angelo_Merkel said:

Btw I know what :dx (dna) and :px (property) means, but what is f. e. :c5, wjhat does the c stand for? Does it also mean layer?

p is normal portrait layer, c is clothing layer

 

53 minutes ago, Angelo_Merkel said:

Ah and one question: why not png? Is it something the game doesnt read?

Except in very rare instances, the game doesn't use png, only tga and dds

Link to comment
Quote

Because the static portraits are technically considered clothing, those are the layers that have the ability to disable the clothing layer (layer 5). It was a major annoyance of mine in the early days of DWF before I discovered that little issue and corrected it.

Ah okay. But all the scars/boils/blinded eyes etc graphic from the layers that are not set to frmae 0 yet would appear over the static portrait, if the char with the static portrait would like get wounded in an battle event f. e., right?

 

Quote

You can set those individual items in a separate layer, much like hair or such. You just need to lower the file in the layer property so it will appear on top of the static image.

Okay. So the way the GFX files are listed equals the way to game renders the graphics over each other? I thought it would render the layers by their number that is defined in the portraits_properties.txt. 

Quote

p is normal portrait layer, c is clothing layer.

Except in very rare instances, the game doesn't use png, only tga and dds

Thanks ?

 

 

After setting everything up I will write the events, lets see how it all works then ?.

Thanks again for helping me.

 

Link to comment
5 hours ago, Angelo_Merkel said:

Ah okay. But all the scars/boils/blinded eyes etc graphic from the layers that are not set to frmae 0 yet would appear over the static portrait, if the char with the static portrait would like get wounded in an battle event f. e., right?

 

5 hours ago, Angelo_Merkel said:

Okay. So the way the GFX files are listed equals the way to game renders the graphics over each other? I thought it would render the layers by their number that is defined in the portraits_properties.txt. 

The layer = { block in the portrait interface file is what controls the layering of the various things like hair, scars, clothes. The number in the portrait properties file doesn't matter one tiny bit. That's just there to separate the different stuffs. The lower the property number is in the layer block, the higher up the layering it is, and the more visible it is. Things like scars, clothing, and helms go at the bottom so they appear on top of your character, not behind them

 

For example:

			"GFX_byzantine_male_headgear_mid:p5:c3"
			"GFX_byzantine_male_ear:d7"			
			"GFX_frankish_male_overlayer_mid:p31"
			"GFX_byzantine_male_beard:p4:h:y"
			"GFX_frankish_male_overlayer_mid:p31"
			"GFX_character_eyepatch:p13:y:o32x63"
		   	"GFX_byzantine_male_hair:p1:h:y"

d7 (ears) is lower in the list than p5 (middle headgear), but higher than p1 (hair). This means that the hair will overlay on top of the ears, and the ears will overlay on top of the middle headgear.

 

For scars to be overlayed on top of a static picture, it needs to be lower in the list than the static picture.

			"GFX_portrait_african_static_portrait:c5"
			"GFX_character_scars:p7:y"
			"GFX_character_scars_mid:p25"
			"GFX_character_scars_high:p26"

 

Link to comment
Quote

The layer = { block in the portrait interface file is what controls the layering of the various things like hair, scars, clothes. The number in the portrait properties file doesn't matter one tiny bit. That's just there to separate the different stuffs. The lower the property number is in the layer block, the higher up the layering it is, and the more visible it is. Things like scars, clothing, and helms go at the bottom so they appear on top of your character, not behind them

Yes, thanks for clearing that up ?.

 

Quote

For scars to be overlayed on top of a static picture, it needs to be lower in the list than the static picture.

Yes, but the main mod Im making is a graphical redo of the african gfx so I already have a new westafrican male base for all ages, I have fitting new eyes, noses, mouth, chin, cheeks, etc. I have made a new hair set, new headgear and new clothing. And I have also made new or reassigned images for the harelip, blinded, possessed, blood splatter, scars and so on. The images above with the lip plate are merged onto the base image to show the effect for this thread, I have them all in pieces (dynamic).

 

Right now Im trying to figure out how to game applies f.e. the blood splatter imagery. Some things like the harelip or the ugly trait are controlled via the traits and a gfx-file in interface/portraits. BUT. The blood splatters seem to be character modifiers (?), and that is new information to me.

help1.jpg.63319f354a705550142cac30e4a31d4a.jpg

 

This is the new blood splatter imagery for the westafrican male (I have merged the blood splatter layer onto the westafrican portrait base to show whats up). I haven't done the last 152x152 frame yet, I dont know what the mud_splatter-thing is supposed to be, so I have just left the old image there (looks weird I know).

help2.png.04d8f9cbab34d4ce44f632d9a2e7e346.png

 

Do the blood splatter-assignment works via scripted effects like for the scars?

Or do I simply have to set up layer 27 in the westafrican_portraits.gfx (I guess not, right).

 

Link to comment

You can add in an extra layer to 00_portrait_properties.txt file to be similar to the vanilla scarred/blooded/whatever properties, and edit the original properties so the two don't conflict. These are pretty much exact copies of the layer = { block you're used to. Then you will need to add in  "GFX_whatever_you_named_it:pXX" at the bottom of  the layer block of the portrait, where XX is the new portrait property layer.

 

You'll of course need to define the spritetype for them, but that's easy enough to do.

Link to comment
Quote

you can add in an extra layer to 00_portrait_properties.txt file to be similar to the vanilla scarred/blooded/whatever properties, and edit the original properties so the two don't conflict. These are pretty much exact copies of the layer = { block you're used to. Then you will need to add in  "GFX_whatever_you_named_it:pXX" at the bottom of  the layer block of the portrait, where XX is the new portrait property layer.

 

You'll of course need to define the spritetype for them, but that's easy enough to do.

Ok, thanks a lot ?

 

Im not even ready to set that up. I have been trying to set up the westafricangfx-file (interface/portraits/portraits_westafrican.gfx) with some of the new dds files and is see NOTHING when I run the game with the mod. Lol. WHY?

 

(1) I have updated the gfx file

*this is what I have added yet*:

Quote

spriteTypes = {
    
    ### westafrican gfx ###
    ### children ###
    spriteType = {
        name = "PORTRAIT_westafricangfx_child_male"
        texturefile = "gfx\\characters\\default_son_westafrican.tga"
        noOfFrames = 1
        norefcount = yes
    }
    
    spriteType = {
        name = "PORTRAIT_westafricangfx_child_female"
        texturefile = "gfx\\characters\\default_daughter_westafrican.tga"
        noOfFrames = 1
        norefcount = yes
    }
    
    ### NEW BACKGROUNDS ###
    
    spriteType = {
        name = "GFX_character_background_westafrican"
        texturefile = "gfx\\characters\\westafrican_male\\character_background_westafrican.dds"
        noOfFrames = 10
        norefcount = yes
    }
    ### westafrican MALE ####
    ### clothing ####
    spriteType = {
        name = "GFX_westafrican_male_clothes"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_clothes.dds"
        noOfFrames = 12
        norefcount = yes
    }
    spriteType = {
        name = "GFX_westafrican_male_clothes_behind"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_clothes_behind.dds"
        noOfFrames = 12
        norefcount = yes
    }
    ### hair ###
    spriteType = {
        name = "GFX_westafrican_male_hair"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_hair_1.dds"
        noOfFrames = 10
        norefcount = yes
    }
    spriteType = {
        name = "GFX_westafrican_male_hair_behind"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_hair_behind_1.dds"
        noOfFrames = 10
        norefcount = yes
    }
    ### headgear ###
    spriteType = {
        name = "GFX_westafrican_male_headgear"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_headgear.dds"
        noOfFrames = 12
        norefcount = yes
    }
    spriteType = {
        name = "GFX_westafrican_male_headgear_behind"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_headgear_behind.dds"
        noOfFrames = 12
        norefcount = yes
    }
    ### beard ###
    spriteType = {
        name = "GFX_westafrican_male_beard_behind"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_beard_behind_1.dds"
        noOfFrames = 10
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_beard"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_beard_1.dds"
        noOfFrames = 10
        norefcount = yes
    }
    ### base ###
    spriteType = {
        name = "GFX_westafrican_male_base"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_base_1.dds"
        noOfFrames = 1
        norefcount = yes
    }
    ### facials ###
    spriteType = {
        name = "GFX_westafrican_male_chin"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_chin_1.dds"
        noOfFrames = 10
        norefcount = yes
    }
    spriteType = {
        name = "GFX_westafrican_male_eyes"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_eyes_1.dds"
        noOfFrames = 10
        norefcount = yes
    }
    ### special imagery ###
    spriteType = {
        name = "GFX_westafrican_male_blinded"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_blinded.dds"
        noOfFrames = 2
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_harelip"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_harelip.dds"
        noOfFrames = 2
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_blood_splatters"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_blood_splatters.dds"
        noOfFrames = 5
        norefcount = yes
    }        
    spriteType = {
        name = "GFX_westafrican_male_reddots"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_reddots.dds"
        noOfFrames = 2
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_boils"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_boils.dds"
        noOfFrames = 2
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_black_eye"
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_black_eye.dds"
        noOfFrames = 4
        norefcount = yes
    }    
    spriteType = {
        name = "GFX_westafrican_male_possessed" #not listed. trait?
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_possessed.dds"
        noOfFrames = 2
        norefcount = yes
    }
    spriteType = {
        name = "GFX_westafrican_male_ugly"  #not listed. trait?
        texturefile = "gfx\\characters\\westafrican_male\\westafrican_male_ugly.dds"
        noOfFrames = 2
        norefcount = yes
    }
    # scars normal, high, mid?
    # specials masks, helmets, crowns, scepters?


    # CULTURE_INDEX: 0 = clothes behind, 1 = headgear behind, 2 = clothes, 3 = headgear mid, 4 = clothes infront, 5 = headgear

    # westafrican Male
    portraitType = {
        name = "PORTRAIT_westafricangfx_male"
        effectFile = "gfx/FX/portrait.lua"
        layer = { # GFX_TYPE:[d|p]INDEX:COLOR_LINK
            "GFX_character_background_westafrican:p0"
            "GFX_westafrican_male_clothes_behind:p3:c0"
            "GFX_westafrican_male_headgear_behind:p5:c1"
            "GFX_westafrican_male_hair_behind:p1:h:y"
            "GFX_westafrican_male_beard_behind:p4:h:y"
            "" #p5 c6
            "GFX_westafrican_male_base:p2"
            "" #GFX_westafrican_male_neck :d0
            "GFX_westafrican_male_chin:d1"
            "" #GFX_westafrican_male_cheeks :d4
            "" #GFX_westafrican_male_mouth :d2
            "" #GFX_westafrican_male_nose :d3
            "GFX_westafrican_male_eyes:d6"
            "" #GFX_westafrican_male_eyes2 :d6:e
            "" #GFX_character_scars :p7:y
            "GFX_westafrican_male_reddots:p8"
            "GFX_westafrican_male_boils:p9"
            "GFX_westafrican_male_blinded:p10"
            "GFX_westafrican_male_clothes":p3:c2"
            "GFX_westafrican_male_headgear_mid:p5:c3"
            "" #GFX_westafrican_male_ear :d7        
            "GFX_westafrican_male_beard:p4:h:y"
               "GFX_westafrican_male_hair:p1:h:y"
            "" #:p5:c7
               "" #character_mask :p12:y:o40x45
            "" #:p3:c4
            "" #:p12
            "" #black eye :p23
            "" #harelip :p24
            "" #tattoos :p28
            "" #warpaint :p29
            "GFX_westafrican_male_blood_splatters:p27" #blood splatter
            "GFX_empty:p13:y:o32x63" #character_eyepatch
            "GFX_westafrican_male_headgear:p5:c5"
            "GFX_player_overlay:p11"
            "GFX_character_imprisoned:p6"
        }

        hair_color_index = 8
        hair_color = { # dark, base, highlight
            
            { 10 10 10 } {  50 50 50 } { 255 255 255 }
        }

        eye_color_index = 9
        eye_color = {
            { 120 74 46 }
            { 120 74 46 }
            { 120 74 46 }
        }
        
        headgear_that_hides_hair = { 3 4 10 11 }
    }
}
 

 

(2) I have set up the dds files in my mod folder (gfx/characters/westafrican_male)

 

 

And nothing happens. Uhh.

Its not even blank. It doesnt recognize anything. 

ueh.jpg.96921e73b7233ad8458871abc705fd96.jpg

 

 

Link to comment

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

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use