Improved Mobs (Fabric)

Improved Mobs (Fabric)

170k Downloads

[Suggestion] Mod Configuration Improvements

TraipsingShadow opened this issue ยท 1 comments

commented

Suggestion was made while playing on:

  • Minecraft Version:
    1.18.1

  • Mod Loader:
    Forge

  • Forge Version:
    39.0.75

  • Improved Mobs Mod Version:
    improvedmobs-1.18.1-1.8.1-forge


First of all, thanks for making this mod! I've long been looking for a mod that improved on the AI which didn't simply "buff" the damage and health of the mobs but actually utilize new mechanics to make the game more challenging.

After playtesting for a few days, I've noticed some things I wish the mod would improve on, primarily the configuration.

Suggestion 1:

Modularize/Fragment the Entity Blacklisting/Whitelisting

The current blacklisting/whitelisting method in the config file is rather confusing especially for people looking to easily modify their Improved Mobs experience.

(Snip from the common.toml file)

(...)
#Black/Whitelist for various stuff
[list]
	#By default the mod only modifies EntityMobs. Add other entities here if you want to apply modifications to them. Usage:
	#<entity registry name> followed by any of:
	#[ALL,ATTRIBUTES,ARMOR,HELDITEMS,BLOCKBREAK,USEITEM,LADDER,STEAL,GUARDIAN,PARROT,TARGETVILLAGER,REVERSE].
	#Leave empty to apply them all and REVERSE to reverse all flags. Some flags do nothing for certain mobs!
	#example: minecraft:sheep|REVERSE|ATTRIBUTES will add sheep to attributes modification (since default is a blacklist)
	#or minecraft:sheep|ATTRIBUTES will add sheep to everything except attributes
	"More Entities" = ["minecraft:cod", "minecraft:donkey", "minecraft:squid", "minecraft:glow_squid", "minecraft:mule", "minecraft:skeleton_horse", "minecraft:strider", "minecraft:trader_llama", "minecraft:parrot", "minecraft:cow", "minecraft:zombie_horse", "minecraft:horse", "minecraft:bee", "quark:shiba", "minecraft:polar_bear", "minecraft:cat", "minecraft:pufferfish", "minecraft:bat", "minecraft:wandering_trader", "minecraft:salmon", "minecraft:fox", "minecraft:llama", "minecraft:pig", "quark:frog", "minecraft:iron_golem", "minecraft:tropical_fish", "minecraft:turtle", "minecraft:sheep", "minecraft:snow_golem", "minecraft:mooshroom", "minecraft:villager", "minecraft:ocelot", "minecraft:goat", "minecraft:dolphin", "minecraft:chicken", "minecraft:wolf", "minecraft:panda", "minecraft:rabbit", "minecraft:axolotl"]
(...)

Me: "What is this entire block saying? The first comment states these mobs are modified, so does that mean I have to remove them from here if I don't want them to be modified?"

I haven't gotten deep into messing with flags because the current configuration is already messy, at least for me. As useful as the current system is, I would like to suggest restructuring this segment to make it more accessible and flexible in terms of configuring the mod.

My suggestion (at least in form; I am not a programmer/coder):

(...)
#Black/Whitelist for various stuff
[list]
    # LIST USAGE INSTRUCTIONS:
    # The list below defaults as a WHITELIST. This means any mob/entity added on this list will be modified by Improved Mobs.
    # To add an entity, place it in this format (quotation marks included): "mod:entity"
    # For example, if one wanted to add a Phantom, it would look like this: "minecraft:phantom"
    # 
    # FLAGS:
    # By default, adding flags acts as a BLACKLIST. This means adding a flag DISABLES that specific flag for that entity.
    # No flags added means all flags will apply to that entity.
    # Flags can be added inside the square brackets ([]).
    # VALID FLAGS: "ALL", "ATTRIBUTES", "ARMOR", "HELDITEMS", "BLOCKBREAK", "USEITEM", "LADDER", "STEAL", "GUARDIAN", "PARROT", "TARGETVILLAGER"
    #
    # Check the wiki (https://github.com/Flemmli97/ImprovedMobs/wiki/Config) for information about flag effects and usage.
	"Entities to Modify" = ["""\
        entityRegistryName = "minecraft:zombie"\
        flagsToExclude = []\
        reverseFlags = "FALSE", \
        
        entityRegistryName = "minecraft:creeper"\
        flagsToExclude = []\
        reverseFlags = "FALSE"\
        """]
(...)

It's way more wordy and verbose than the current setup, but it's easier in the eyes and easier to follow. Each entity has their own dedicated section which allows for more configurability (and provision for possible future additions?). The comments are clearer as to what the purpose of the list is and also links to this repository's Wiki (which avoids crowding up the config file with comments).

Suggestion 2:

Include wildcard (*) support for Block Whitelist

The Block Whitelist is enough with its current implementation but having a wildcard/sum support (*) would greatly help if one would want to include all blocks from a certain mod.

For example, instead of manually writing every single block in Minecraft, the user can simply declare minecraft:* to include all blocks within that mod/registry.

Suggestion 3:

Add Blacklist/Whitelist feature on Neutral Mobs

The current configuration only gives the user to modify the chance of a neutral mob turning aggressive towards the player. But what if the player did not want to say, let an Iron Golem, a Zombiefied Piglin, or an Enderman to be part of this, but also keep all their attributes and flags declared?

One option would be to add a neutralAggressive flag inside Suggestion 1's structure per mob (too wordy). Another would be to have another simple Blacklist/Whitelist that any mob declared here would not be part of the neutralAggressive chance.


Thank you! That is all.

commented

regarding 1. i can rewrite the comments but for the actual config it will stay like this. reason why it might look messy is cause its all on the same line but thats automatically done. not too much else i can do