Farsighted Mobs (Forge & NeoForge)

Farsighted Mobs (Forge & NeoForge)

5M Downloads

[Suggestion] Add config options for separate follow ranges per difficulty.

Vaelzan opened this issue ยท 1 comments

commented

Prompted by Vazkii's posts about the development of the Bliss modpack, I've recently been thinking about ways to improve the accessibility vs challenge settings in our Valhelsia modpacks, too. Rather than take the same approach as Bliss is doing, one of the things that I think would feel natural is to be able to have a separate default mob follow range depending on the difficulty setting of the world, rather than just having a single default & overrides for each mob. For example, something like 8 on easy, 16 on normal, and 32 on hard.

This feels like it would be a pretty elegant and organic way to add more challenging combat for players who want it, while making the game more accessible for those who prefer non-combat play but don't want to set the game to peaceful mode - those playing on easy would essentially have to seek out combat rather than having it come to them.

commented

Great suggestion! Quite simple but really effective.

The implementation should be quite effective, but I'm a bit stuck on the logistics config-wise. Here are the options that seem most logical to me:

  • Having separate values for each follow range for each difficulty. This would be the simplest solution, but require entering a lot of values. This gets especially bad when you make overrides for certain mobs.
  • The same as above, but falling back to a default value when a field is left empty. This is much better and not any harder to implement, but what value should we fall back to? Most logically, you would want to fall back to the "normal difficulty" range for the global follow range if none is entered for easy or hard difficulty. The questionable part is with mob overrides though: should they fall back to the global follow range for the current diffiIculty, or the normal difficulty range for themselves?
  • Having a modifier system. That way, you could set all follow ranges to be multiplied by e.g. 0.5 for easy difficulty and 2.0 for hard difficulty. If no modifier is specified on an override, the global modifier for the difficulty is used instead.
  • Using a much more flexible system, kind of like the mod 'In Control!': making a much more expansive config system, where you can define all the rules yourself. For example, you could define a rule yourself like {difficulty:1, mob:"minecraft:*", follow_range_modifier:0.5}. This is something that would be much more flexible and future-proof, but it is also much harder to implement, and would need more documentation.

If you (or anyone else) has feedback on these possibilities, or another option, please let me know. Currently I'm thinking of implementing one of the first three options to get a quick solution, then work on the final option when I have more time on my hands.