Fursona Generator.py
import random

def generate_anthro_character():
    def get_weight():
        return random.randint(100, 160)

    def get_mental_wellbeing():
        mental_disorders = ["Anxiety", "Depression", "ADHD", "Bipolar Disorder", "OCD", "Schizophrenia"]
        return {"Mental Disorders": random.sample(mental_disorders, random.randint(0, len(mental_disorders)))}

    def get_country():
        countries = [
            {"Name": "China", "Language": "Chinese", "Accent": "Mandarin", "LGBTQ Stance": "Neutral", "Religiosity": "Low"},
            {"Name": "United Kingdom", "Language": "English", "Accent": "British", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "United States", "Language": "English", "Accent": "American", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "France", "Language": "French", "Accent": "Parisian", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Germany", "Language": "German", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Italy", "Language": "Italian", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "Japan", "Language": "Japanese", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Low"},
            {"Name": "Russia", "Language": "Russian", "Accent": "Standard", "LGBTQ Stance": "Opposed", "Religiosity": "High"},
            {"Name": "Saudi Arabia", "Language": "Arabic", "Accent": "Modern Standard Arabic", "LGBTQ Stance": "Opposed", "Religiosity": "High"},
            {"Name": "Sweden", "Language": "Swedish", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Brazil", "Language": "Portuguese", "Accent": "Brazilian", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Netherlands", "Language": "Dutch", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "South Korea", "Language": "Korean", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "India", "Language": "Hindi", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "High"},
            {"Name": "Bangladesh", "Language": "Bengali", "Accent": "Standard", "LGBTQ Stance": "Opposed", "Religiosity": "High"},
            {"Name": "Vietnam", "Language": "Vietnamese", "Accent": "Northern", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "Turkey", "Language": "Turkish", "Accent": "Standard", "LGBTQ Stance": "Opposed", "Religiosity": "Moderate"},
            {"Name": "Australia", "Language": "English", "Accent": "Australian", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Canada", "Language": "English", "Accent": "Canadian", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Mexico", "Language": "Spanish", "Accent": "Mexican", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "South Africa", "Language": "Zulu", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Argentina", "Language": "Spanish", "Accent": "Argentinian", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Egypt", "Language": "Arabic", "Accent": "Egyptian", "LGBTQ Stance": "Opposed", "Religiosity": "High"},
            {"Name": "Greece", "Language": "Greek", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "New Zealand", "Language": "English", "Accent": "New Zealand", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Thailand", "Language": "Thai", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "Ireland", "Language": "Irish", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Spain", "Language": "Spanish", "Accent": "Castilian", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Norway", "Language": "Norwegian", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Denmark", "Language": "Danish", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Finland", "Language": "Finnish", "Accent": "Standard", "LGBTQ Stance": "Supportive", "Religiosity": "Low"},
            {"Name": "Switzerland", "Language": "German", "Accent": "Swiss German", "LGBTQ Stance": "Neutral", "Religiosity": "Low"},
            {"Name": "Portugal", "Language": "Portuguese", "Accent": "European Portuguese", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Belgium", "Language": "Dutch", "Accent": "Flemish", "LGBTQ Stance": "Supportive", "Religiosity": "Moderate"},
            {"Name": "Austria", "Language": "German", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "Czech Republic", "Language": "Czech", "Accent": "Standard", "LGBTQ Stance": "Neutral", "Religiosity": "Moderate"},
            {"Name": "Poland", "Language": "Polish", "Accent": "Standard", "LGBTQ Stance": "Opposed", "Religiosity": "High"}
        ]
        return random.choice(countries)

    names = ["Jian", "Li Wei", "Hiroshi", "Mateo", "Anouk", "Luka", "Federico", "Amara",
             "Aarav", "Sofia", "Zara", "Aiden", "Aya", "Kai", "Yuna", "Oscar",
             "Nina", "Ethan", "Chloe", "Ravi", "Zain", "Aria", "Luca", "Zara",
             "Lila", "Tariq", "Lina", "Eva", "Vikram", "Rahul", "Ayesha", "Priya",
             "Hana", "Takumi", "Yuki", "Riko", "Haruka", "Tatsuya", "Sakura", "Daiki",
             "Alya", "Luka", "Lucas", "Zoe", "Mia", "Liam", "Maya", "Zayn",
             "Lila", "Rohan", "Sadie", "Kian", "Abby", "Aarush", "Anaya", "Aaryan",
             "Ziggy", "Sophie", "Akira", "Emi", "Ren", "Haru", "Yuki", "Sakura",
             "Hikari", "Kaito", "Yuna", "Hiroki", "Aki", "Haruka", "Kazuki", "Yuki",
             "Mila", "Gigi", "Ryota", "Sasha", "Ella", "Leo", "Mia", "Luna",
             "Stella", "Max", "Gigi", "Leo", "Aria", "Bella", "Ella", "Kai"]

    sexualities = ["Heterosexual", "Homosexual", "Bisexual", "Pansexual", "Asexual"]
    genders = ["Male", "Female", "Non-Binary", "Genderqueer", "Agender"]
    fur_colors = ["Brown", "Gray", "Black", "White", "Orange", "Red", "Blue", "Green", "Purple", "Rainbow"]
    clothing_styles = ["Femboy", "Tomboy", "Casual", "Formal", "Bohemian", "Gothic", "Sporty", "Vintage", "Hipster", "Elegant"]
    personality_traits = ["Adventurous", "Kind-hearted", "Intelligent", "Playful", "Loyal", "Optimistic", "Calm", "Creative", "Energetic"]
    skills = ["Programming", "Art", "Cooking", "Singing", "Dancing", "Writing", "Photography", "Gardening", "Martial Arts", "Craftsmanship"]

    country = get_country()

    character = {
        "Name": random.choice(names),
        "Species": random.choice(["Fox", "Wolf", "Lion", "Rabbit", "Cat", "Dog", "Bear", "Tiger", "Cheetah", "Squirrel", "Raccoon", "Panda", "Lynx", "Chameleon", "Platypus", "Arctic Fox", "Jaguar", "Leopard", "Red Panda", "Red Fox", "Protogen"]),
        "Country of Birth": country["Name"],
        "Language": country["Language"],
        "Accent": country["Accent"],
        "Sexuality": random.choices(sexualities, weights=[30, 30, 20, 10, 10])[0],
        "Gender": random.choice(genders),
        "Fur Colors": random.sample(fur_colors, random.randint(1, 3)),
        "Clothing Style": random.choices(clothing_styles, weights=[15, 15, 10, 10, 5, 5, 10, 10, 5, 15])[0],
        "Personality Traits": random.sample(personality_traits, random.randint(2, 4)),
        "Skills": random.sample(skills, random.randint(1, 3)),
        "Weight": get_weight(),
        **get_mental_wellbeing()
    }

    description = (
        f"This is {character['Name']}, a {character['Species']} born in {character['Country of Birth']}. "
        f"They speak {character['Language']} with a {character['Accent']} accent. "
        f"{character['Name']} identifies as {character['Gender']} and is {character['Sexuality'].lower()}. "
        f"Their fur has {', '.join(character['Fur Colors'])} colors. "
        f"{character['Name']} likes to dress in a {character['Clothing Style'].lower()} style. "
        f"They are known for being {', '.join(character['Personality Traits'])}. "
        f"They are skilled in {', '.join(character['Skills'])}. "
        f"They weigh {character['Weight']} lbs. "
        f"{', '.join(character['Mental Disorders'])}." if character.get('Mental Disorders') else ""
    )

    return character, description

if __name__ == "__main__":
    anthro_character, character_description = generate_anthro_character()
    print("Random Anthro Character:")
    for key, value in anthro_character.items():
        print(f"{key}: {value}")
    print("\nCharacter Description:")
    print(character_description)