Jump to content

[mod] CBO Unofficial


Recommended Posts

Posted
3 hours ago, csirke128 said:

 

Hi, not sure why this mod would affect language, or why this mod was trying to fix language, maybe its related to everyone having courts or something like that, so maybe just need to do what carnal court lite does and disable courts for non kings. Or did you also use carnal court lite?

It's an inherent issue with everyone having courts from what I remember, any mod that enables it will cause the court language issue. Best method probably is to go the CC lite route and figure out how to properly disable it for people who shouldn't have it in the base game.

Posted

Hello. I am having issues trying to download this mod through both google drive and meta. Meta stop downloading after a certain amount of times. Reloading allow me to continue downloading but I'll have to start over. Using VPN didn't work. Google Drive is always over its limit and won't let me download. I have tried different times of the day but to no avail.

What other options do I have to download this mod?

Posted
4 hours ago, jojotheblonde10 said:

Hello. I am having issues trying to download this mod through both google drive and meta. Meta stop downloading after a certain amount of times. Reloading allow me to continue downloading but I'll have to start over. Using VPN didn't work. Google Drive is always over its limit and won't let me download. I have tried different times of the day but to no avail.

What other options do I have to download this mod?

 

Hi, for Mega, you can grab the app, and it will remember where it left off with the download, and continue when you are no longer over the limit.

I think google drive limit resets maybe daily.

Not sure what other good places there are that can be used for file sharing.

Seems like CBO used pixeldrain as secondary link, I can try that, but then probably I'll drop google drive one.

Posted
37 minutes ago, CobraPL said:

@csirke128 FYI:
CBO Unofficial 1.2.zip - 2.4GB

CBO Unofficial 1.2.7z  - 1.2GB

 

Settings used:
image.png.5d782ddcf3e96f181bcc07e135704b70.png

 

Thanks, thats real wizarding. Could use same dict size, but it did go down to 1.2GB, ill swap the link in the downloads.

Hopefully no one complains they dont have 7zip

Posted
17 hours ago, csirke128 said:

 

Hi, can you try a minimal load order of

AGOT

Carnalitas

CBO Unofficial

AGOT CBO Patch

 

I think you either have some thing overwrite some .asset file, or gene file, maybe even portraits file, but hard to tell form your list of mods, which one.

If the minimal load order works, you might have to enable them few at a times, and figure out which mod exactly causes the issue.

AGOT CBO Patch seems to fix nearly everything, i just have buggy Make love / court sex interaction

 

I Installed "Big Event for Everyone" is that the reason it's buggy ?

 

image.png.20ddeb0385e9fbb9b695f35f5bfcf64f.png

 

Posted
6 minutes ago, Hylisang said:

AGOT CBO Patch seems to fix nearly everything, i just have buggy Make love / court sex interaction

 

I Installed "Big Event for Everyone" is that the reason it's buggy ?

 

image.png.20ddeb0385e9fbb9b695f35f5bfcf64f.png

 

 

Hi, yea its not compatible with big event for everyone, as that mod seems to overwrite the gui files, which this mod also does.

Due to this, you will have weird camera angles, and over lapping characters.

Posted
3 minutes ago, csirke128 said:

 

Hi, yea its not compatible with big event for everyone, as that mod seems to overwrite the gui files, which this mod also does.

Due to this, you will have weird camera angles, and over lapping characters.

Okay thanks a lot, plan to make it compatible ?

Posted

Hi I am trying to add an additional gene ( pubic_decal from the Pubic Hair Gene mod  also on this site )to the dna files and bookmark portrait files and saw the python script in the folder. I have never used python before, but tried to give it a try. Added in the additional gene, using areolas as a template and ran the script (by double clicking on the file) but nothing happens. Probably do not understand what the file does. Do you have any pointers?

 

This is the amended file:

 

import os
import re
import random

for file in os.listdir(os.curdir):
    filename = os.fsdecode(file)
    if not filename.endswith(".txt"):
        continue
    with open(file, "r") as f:
        old_lines = f.readlines()
        
    random.seed()
        
    new_lines = []
    for line in old_lines:
        if "gene_bs_penis_size" in line or \
           "gene_bs_penis_thickness" in line or \
           "gene_bs_ball_size" in line or \
           "gene_bs_butt_size" in line or \
           "gene_bs_body_fat_distribution" in line or \
           "gene_bs_upper_body_muscle" in line or \
           "gene_bs_lower_body_muscle" in line or \
           "gene_muscle_definition" in line or \
           "gene_bs_nipples" in line or \
           "gene_areolas" in line or \
           "gene_bs_hips" in line or \
           "gene_bs_shoulders" in line or \
           "gene_pubic_decal" in line or \
           "gene_bs_waist" in line:
           continue
        if "gene_bs_body_type" in line:
            new_lines.append(line)
            weight = int(re.search(r'\d+', line)[0])

            # Distribution based on ethnicities_portraits
            penis_size_index = random.randint(1, 48)
            penis_size = 0.0
            if penis_size_index <= 5:
                penis_size = random.uniform(0.00, 0.14)
            elif penis_size_index <= 16:
                penis_size = random.uniform(0.14, 0.28)
            elif penis_size_index <= 29:
                penis_size = random.uniform(0.28, 0.42)
            elif penis_size_index <= 40:
                penis_size = random.uniform(0.42, 0.58)
            elif penis_size_index <= 45:
                penis_size = random.uniform(0.58, 0.72)
            elif penis_size_index <= 47:
                penis_size = random.uniform(0.72, 0.86)
            else:
                penis_size = random.uniform(0.86, 1.00)

            penis_thickness_index = random.randint(1, 48)
            penis_thickness = 0.0
            if penis_thickness_index <= 5:
                penis_thickness = random.uniform(0.00, 0.14)
            elif penis_thickness_index <= 16:
                penis_thickness = random.uniform(0.14, 0.28)
            elif penis_thickness_index <= 29:
                penis_thickness = random.uniform(0.28, 0.42)
            elif penis_thickness_index <= 40:
                penis_thickness = random.uniform(0.42, 0.58)
            elif penis_thickness_index <= 45:
                penis_thickness = random.uniform(0.58, 0.72)
            elif penis_thickness_index <= 47:
                penis_thickness = random.uniform(0.72, 0.86)
            else:
                penis_thickness = random.uniform(0.86, 1.00)

            ball_size_index = random.randint(1, 48)
            ball_size = 0.0
            if ball_size_index <= 5:
                ball_size = random.uniform(0.00, 0.14)
            elif ball_size_index <= 16:
                ball_size = random.uniform(0.14, 0.28)
            elif ball_size_index <= 29:
                ball_size = random.uniform(0.28, 0.42)
            elif ball_size_index <= 40:
                ball_size = random.uniform(0.42, 0.58)
            elif ball_size_index <= 45:
                ball_size = random.uniform(0.58, 0.72)
            elif ball_size_index <= 47:
                ball_size = random.uniform(0.72, 0.86)
            else:
                ball_size = random.uniform(0.86, 1.00)

            butt_size_index = random.randint(1, 48)
            butt_size = 0.0
            if butt_size_index <= 5:
                butt_size = random.uniform(0.00, 0.14)
            elif butt_size_index <= 16:
                butt_size = random.uniform(0.14, 0.28)
            elif butt_size_index <= 29:
                butt_size = random.uniform(0.28, 0.42)
            elif butt_size_index <= 40:
                butt_size = random.uniform(0.42, 0.58)
            elif butt_size_index <= 45:
                butt_size = random.uniform(0.58, 0.72)
            elif butt_size_index <= 47:
                butt_size = random.uniform(0.72, 0.86)
            else:
                butt_size = random.uniform(0.86, 1.00)

            hips_size_index = random.randint(1, 48)
            hips_size = 0.0
            if hips_size_index <= 5:
                hips_size = random.uniform(0.00, 0.14)
            elif hips_size_index <= 16:
                hips_size = random.uniform(0.14, 0.28)
            elif hips_size_index <= 29:
                hips_size = random.uniform(0.28, 0.42)
            elif hips_size_index <= 40:
                hips_size = random.uniform(0.42, 0.58)
            elif hips_size_index <= 45:
                hips_size = random.uniform(0.58, 0.72)
            elif hips_size_index <= 47:
                hips_size = random.uniform(0.72, 0.86)
            else:
                hips_size = random.uniform(0.86, 1.00)

            nipples_size_index = random.randint(1, 53)
            nipples_size = 0.0
            if nipples_size_index <= 2:
                nipples_size = random.uniform(0.00, 0.14)
            elif nipples_size_index <= 4:
                nipples_size = random.uniform(0.14, 0.28)
            elif nipples_size_index <= 14:
                nipples_size = random.uniform(0.28, 0.42)
            elif nipples_size_index <= 40:
                nipples_size = random.uniform(0.42, 0.58)
            elif nipples_size_index <= 50:
                nipples_size = random.uniform(0.58, 0.72)
            elif nipples_size_index <= 52:
                nipples_size = random.uniform(0.72, 0.86)
            else:
                nipples_size = random.uniform(0.86, 1.00)

            shoulders_size_index = random.randint(1, 53)
            shoulders_size = 0.0
            if shoulders_size_index <= 2:
                shoulders_size = random.uniform(0.00, 0.14)
            elif shoulders_size_index <= 4:
                shoulders_size = random.uniform(0.14, 0.28)
            elif shoulders_size_index <= 14:
                shoulders_size = random.uniform(0.28, 0.42)
            elif shoulders_size_index <= 40:
                shoulders_size = random.uniform(0.42, 0.58)
            elif shoulders_size_index <= 50:
                shoulders_size = random.uniform(0.58, 0.72)
            elif shoulders_size_index <= 52:
                shoulders_size = random.uniform(0.72, 0.86)
            else:
                shoulders_size = random.uniform(0.86, 1.00)

            waist_size_index = random.randint(1, 53)
            waist_size = 0.0
            if waist_size_index <= 2:
                waist_size = random.uniform(0.00, 0.14)
            elif waist_size_index <= 4:
                waist_size = random.uniform(0.14, 0.28)
            elif waist_size_index <= 14:
                waist_size = random.uniform(0.28, 0.42)
            elif waist_size_index <= 40:
                waist_size = random.uniform(0.42, 0.58)
            elif waist_size_index <= 50:
                waist_size = random.uniform(0.58, 0.72)
            elif waist_size_index <= 52:
                waist_size = random.uniform(0.72, 0.86)
            else:
                waist_size = random.uniform(0.86, 1.00)
                
            areolas_index = random.randint(1, 79)
            if areolas_index <= 17:
                areolas_index = 0
            elif areolas_index <= 49:
                areolas_index = 0
            elif areolas_index <= 65:
                areolas_index = 1
            elif areolas_index <= 73:
                areolas_index = 2
            elif areolas_index <= 77:
                areolas_index = 3
            elif areolas_index <= 79:
                areolas_index = 4
            else:
                areolas_index = 5
                
            pubic_decal_index = random.randint(1, 22)
            if pubic_decal_index <= 6:
                pubic_decal_index = 0
            elif pubic_decal_index <= 9:
                pubic_decal_index = 0
            elif pubic_decal_index <= 11:
                pubic_decal_index = 1
            elif pubic_decal_index <= 15:
                pubic_decal_index = 5
            elif pubic_decal_index <= 16:
                pubic_decal_index = 6
            elif pubic_decal_index <= 18:
                pubic_decal_index = 10
            elif pubic_decal_index <= 21:
                pubic_decal_index = 15
            elif pubic_decal_index <= 21:
                pubic_decal_index = 16     
            elif pubic_decal_index <= 22:
                pubic_decal_index = 19                       
            else:
                pubic_decal_index = 20    

            penis_size_int = round(penis_size * 255.0)
            penis_thickness_int = round(penis_thickness * 255.0)
            ball_size_int = round(ball_size * 255.0)
            butt_size_int = round(butt_size * 255.0)
            hips_size_int = round(hips_size * 255.0)
            nipples_size_int = round(nipples_size * 255.0)
            shoulders_size_int = round(shoulders_size * 255.0)
            waist_size_int = round(waist_size * 255.0)

            new_lines.append("             gene_bs_penis_size={ \"penis_size\" %d \"penis_size\" %d }\n" % (penis_size_int, penis_size_int))
            new_lines.append("             gene_bs_penis_thickness={ \"penis_thickness\" %d \"penis_thickness\" %d }\n" % (penis_thickness_int, penis_thickness_int))
            new_lines.append("             gene_bs_ball_size={ \"ball_size\" %d \"ball_size\" %d }\n" % (ball_size_int, ball_size_int))
            new_lines.append("             gene_bs_butt_size={ \"butt_size\" %d \"butt_size\" %d }\n" % (butt_size_int, butt_size_int))
            new_lines.append("             gene_bs_nipples={ \"nipples\" %d \"nipples\" %d }\n" % (nipples_size_int, nipples_size_int))
            new_lines.append("             gene_bs_hips={ \"hips\" %d \"hips\" %d }\n" % (hips_size_int, hips_size_int))
            new_lines.append("             gene_bs_shoulders={ \"shoulders\" %d \"shoulders\" %d }\n" % (shoulders_size_int, shoulders_size_int))
            new_lines.append("             gene_bs_waist={ \"waist\" %d \"waist\" %d }\n" % (waist_size_int, waist_size_int))
            new_lines.append("             gene_areolas={ \"areolas_%d\" 0 \"areolas_%d\" 0 }\n" % (areolas_index, areolas_index))
            new_lines.append("             gene_pubic_decal={ \"pubic_decal_%d\" 0 \"pubic_decal_%d\" 0 }\n" % (pubic_decal_index, pubic_decal_index))
            new_lines.append("            gene_bs_body_fat_distribution={ \"body_mid\" %d \"body_mid\" %d }\n" % (weight, weight))
            new_lines.append("            gene_bs_upper_body_muscle={ \"upper_body_muscle\" 0 \"upper_body_muscle\" 0 }\n")
            new_lines.append("            gene_bs_lower_body_muscle={ \"lower_body_muscle\" 0 \"lower_body_muscle\" 0 }\n")
            new_lines.append("            gene_muscle_definition={ \"body_muscle_definition\" 0 \"body_muscle_definition\" 0 }\n")
            continue
        new_lines.append(line)

    with open(file, "w") as f:
        f.writelines(new_lines)

 

Posted
39 minutes ago, Hylisang said:

Okay thanks a lot, plan to make it compatible ?

 

I will need to mess with the camera, and maybe animation locations to make it useful. The problem is that the animations are placed kinda all over the place, so some are closer to the camera, some are away. Currently some animations barely fit on the screen, and are clipping the head and so on, because they are too close to the camera.

This is kinda less obvious in the small character event window, but becomes really obvious in the big event window, which is meant for more horizontal space, not vertical space.

So I'll probably do something to make the big event window usable, but that will take some work.

Posted
11 minutes ago, Kekmongus said:

Is this compatible with statues of CK3? If yes what's the load order?

 

I dont think statues mod has updated to the new version yet. Once it does, I can make a patch.

Posted (edited)
6 minutes ago, joemann said:

When I say nothing happens, the file executes (I have downloaded phyton 3.12. ) but the gene does not get added.

 

Hi, and the script file is in the same folder, as the dna files?

Edited by csirke128
Posted
14 minutes ago, joemann said:

When I say nothing happens, the file executes (I have downloaded phyton 3.12. ) but the gene does not get added.

 

Really weird, not sure if its just the forum, or why, but when I try copy what you pasted, there is an extra space before the first import statement, so the whole file ends up doing nothing, due to how python handles blank characters.

Once thats removed, the script works for me, and the gene_pubic_decal shows up in the files.

Posted

Hi, the game crashes everytime I want to create custom ruler or character. I don't know what the problem is. Maybe I missing some mods

Here's the mods I use, and the error log

load mod order.png

error.log

Posted

The file I amended and  sent you is in the bookmark_portraits folder. The file in the dna folder has not yet been changed. Could that be the issue?

 

Posted
4 minutes ago, joemann said:

The file I amended and  sent you is in the bookmark_portraits folder. The file in the dna folder has not yet been changed. Could that be the issue?

 

 

Yea, it just iterates over the files in the current folder, and for each file, it goes over it line by line, checking if it sees gene_bs_body_type, and if yes, it adds in the new lines (also removed the lines in the first if section, to make sure it doesnt add them more than once if you keep running the script).

So I just copy pasted this file to anywhere where I want to run it, so its present at both dna and bookmarks folder.

Posted

I also added the modified file into the dna folder. Same non result. Where was the blank character? maybe my file has it as well  I can't attach a python file here.

 

Posted
7 minutes ago, joemann said:

Here are two screenshots showing my file.

vlcsnap-2024-10-07-16h17m41s433.png

vlcsnap-2024-10-07-16h19m30s934.png

 

Hi, for me it was on line 1, before import.

Can you try edit->blank operations->tab to spaces?

 

Attaching what seems to work for me, added a print for filename, and a wait at the end for key press.

randomize_dna.7z

Posted

I am using the file you sent. I must be doing something wrong because it still doesn't work. How do I run it? U

p to now I have just double clicked on the file in the folder. The black python screen flashes up for a fraction of a second and that's it. When do I click on enter?

Posted (edited)
23 minutes ago, joemann said:

I am using the file you sent. I must be doing something wrong because it still doesn't work. How do I run it? U

p to now I have just double clicked on the file in the folder. The black python screen flashes up for a fraction of a second and that's it. When do I click on enter?

 

Hi, In the version I sent, its supposed to wait for key press.

I think you have a problem with some python error.

You need to use command line, or power shell to run it then, so you can see the output

 

Something like this:

PS C:\Users\csirke128\Documents\Paradox Interactive\Crusader Kings III\mod\CBO Unofficial\dna_data> python.exe .\randomize_dna.py
00_dna.txt
00_ep3_dna.txt
00_fp3_dna.txt
01_easteregg_dna.txt
02_easteregg_dna_non_developers.txt
03_fp2_dna.txt
Press Enter to continue...
PS C:\Users\csirke128\Documents\Paradox Interactive\Crusader Kings III\mod\CBO Unofficial\dna_data>

Edited by csirke128
Posted

I worked it out with the help of a you tube tutorial. I had to run the program in the windows terminal (if that is what it is called) and it worked. The gene is there now.

Thanks a lot for your help.

 

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...