MaskOfLoki's Fabric Tweaks

Mods
144 Downloads Last Updated: May 21, 2019 Game Version: 1.14.1

Description

A fabric mod which contains a collection of tweaks and additions to vanilla minecraft that don't require the client to be modded when used on a server. Every feature can be enabled, disabled, and adjusted in the main configuration file.

This mod requires Fabric API

Current Features

In-Game Adjustment

  • All main configurations can be read, adjusted, and saved via the /mct config command
  • All configurations, including trade configs, can be reloaded using the /mct reload command

Command Tweaks

  • Entity selectors can now filter by light levels. This light level is dependant on the time of day and nearby light sources. e.g. @e[light=0..15]

Configurable Trades

Villager trades can be created and adjusted within config files on a per-profession basis. These trades can either replace the builtin villager trades, or they can be appended to them. This feature is disabled by default. To enable it set 'tweakTrades' to true in the mct.json file.

Example

The following is an example of a json trade file which would be located in the 'config/mct' folder:

{
  "profession": "minecraft:wandering_trader", // Profession to assign the trades to
  "level": 1, // Default level for all trades in the file
  "trades": [
    {
      "uses": 1,
      "buyA": {
        "id": "minecraft:emerald",
        "amount": 1
      },
      "buyB": {
        "id": "minecraft:glass_bottle",
        "amount": 1
      },
      "result": {
        "id": "minecraft:suspicious_stew",
        "amount": 1,
        "effects": [ // Only applies to items that can have the effects tag
          {
            "id": "minecraft:blindness"
          },
          {
            "id": "mct:any" // Grab a random effect from all registered effects
          }
        ]
      }
    },
    {
      "uses": 1,
      "level": 2, // Overwrite the default level specified above for this trade
      "buyA": {
        "id": "minecraft:emerald",
        "min": 8, // Minimum amount of item required. If this is higher or equal to max, or max is not present, this is the amount the trade will use
        "max": 20 // Maximum amount of item required.
      },
      "buyB": {
        "id": "minecraft:glass_bottle",
        "amount": 1, // If amount is present along with min/max, then amount is used
        "min": 2,
        "max": 4
      },
      "result": {
        "id":"minecraft:potion",
        "amount": 1,
        "potion": "mct:any", // Select a random potion from the list of registered potion effects
        "enchants": [
          {
            "id": "mct:any", // Select a random enchant and apply it to the item
            "min": 1,
            "max": 10
          }
        ]
      }
    }
  ]
}

 

Additional Notes

  • The Wandering Trader only uses Level 1 and Level 2 for its trades. Wandering traders will try to pull up to 5 trades from level 1, and only 1 trade from level 2
  • If you wish to also use the builtin villager trades, it requires both the 'tweakTrades' and 'appendBuiltinTrades' configs in the main config file to be set to true
  • The first time you run a game with this mod installed, a default main configuration file is created in the config folder

Roadmap

Trades

  • Current trade config is very inflexible. Add in the ability to set nbt via json
  • Add ability to set min/max instead of a specific count on item counts and enchantment level
  • Any place that can take an amount should also be able to take a min and max amount as well

Quality Trades

  • Disabled by default. Can be be enabled in the main config
  • Villager badges currently represent the level of the villager. Once this is implemented, badges will represent the quality of the trades that that villager can gain
  • Villagers can go up to a configurable level instead of the builtin level of 5. Default is twenty
  • Every level gained has a configurable chance to increase the trade quality. Default chance is 5%
  • Every level gained grants the villager a trade from their current quality level
    • If there are no trades available in the current quality, it will look up to two trade qualities down for a trade
    • If the villager has tried up to a certain number of trades from the current quality and hasn't gotten a trade it doesn't have, it will look up to two trade qualities down for a trade
    • If no trades were added, then a random trade will be improved
      • Trade can be improved by either decreasing the cost, or increasing the number of purchased items
      • Increasing the number of purchased items will only work up to the stack size for the item
    • If a trade was unable to be improved, extra xp will be dropped for the player

Command Tweaks/Additions

  • /fill command will be modified to take a block tag or block id
    • If a block tag is provided, every block that will be filled is replaced by a randomly selected block in the tag
    • If a block id is provided, it acts as normal
  • /setblock will be modified to work like /fill changes, but for a single block
  • /chunk command
    • Query light levels at an entity or block position
    • Get or set biome at an entity or block position
  • /function command
    • Add ability to get the number of functions in a tag
    • Add ability to call a function from a tag using a number or scoreboard objective
  • /random <min> <max> [scoreboard] command to generate a random number
    • min argument is a number
    • max argument is either a number or a scoreboard objective
    • Generated number is returned
    • Generated number is stored into scoreboard objective if provided
  • /raycast <entity|block> <pos1> <pos2> <id|tag> <x objective> <y objective> <z objective> [blockface objective]
  • Add the ability to the entity selector to be able to filter based off the biome and light levels at their position

Comments

  • To post a comment, please or register a new account.
Posts Quoted: