Dynamic entity tasks to make your world feel alive!
Folks & Favors adds a cozy, lightweight quest system by giving certain mobs their own personalities, requests, and rewards. Instead of static NPCs, villagers and other friendly mobs can now ask you for help — and thank you with useful items in return. This mod is designed to feel vanilla‑friendly, immersive, and fully configurable, making it perfect for both casual worlds and large modpacks. By default the mod enhances Nitwit Villagers, turning them into charming quest-givers with unique personalities and item requests. Other mobs can be enabled through the simple JSON config!
There are 4 different config files for Folks & Favors, below is what each of them do and how to use them:
folksfavors_quest_givers.json
This file defines which mobs are allowed to become quest givers and how likely they are to roll a personality when they spawn. (If a mob has no personality it will recieve no quest!!!)
Example:
{
"quest_givers": {
"minecraft:villager": 1.0,
"minecraft:allay": 0.6,
"minecraft:piglin": 0.25,
"minecraft:snow_golem": 0.15,
"minecraft:bee": 0.15
}
}
The number represents the chance a mob becomes a quest giver when it spawns. (A value of 1.0 means always, while 0.25 means 25%)
folksfavors_personalities.json
Each personality defines:
Example:
"farmer": {
"preferred_tags": ["plants", "food", "animals"],
"rarity_bias": {
"common": 70,
"uncommon": 20,
"rare": 8,
"mythic": 2,
"legendary": 0
},
"reset_time": 18000
}
preferred_tags determines which quests this personality is more likely to pick.
rarity_bias controls how often each quest rarity in this personality appears.
reset_time is how long (in ticks) before they can offer a new quest after the previous has been satisfied.
You can add as many personalities as you want!
folksfavors_quests.json
Each quest entry defines the item requested, the amount, the rarity, and the personality tags it belongs to.
Example:
{
"id": "gather_wheat",
"text": "Could you bring me some wheat?",
"item": "minecraft:wheat",
"amount": 16,
"rarity": "common",
"tags": ["plants", "food"]
}
id is the unique quest ID given to each quest to call and apply to a mob.
text is the quest title that displays above the mobs head once granted. (Some symbols are auto escaped to respect JSON's formatting)
item is the item registry name of the quest item. (Ex. minecraft:dirt, minecraft:sugar_cane, etc. This works with any mod you have installed)
amount is the item stack amount needed to complete the quest. The quest will only check if the item stack is in the hand of the player. (To prevent "stuck quests" please only set the stack amount to no more than 64, unless the item supports higher stack sizes)
rarity is the weighted value that a quest has to be selected when assigned to a mob with a personality. There are 5 hard coded rarities: "common", "uncommon", "rare", "mythic", and "legendary". The weight for each rarity is defined in the personality. (You can add more personalities, though the mod will not assign a color code to the text string of your quest)
tags define what personality the quest can be a part of. You may use as many tags as you like on each mob. (To reduce massive tag lists, use "any" to call all tags)
folksfavors_loot.json
On completion of a quest, the player will be rewarded with a roll from the loot table of the corresponding quest rarity.
Example:
{
"loot": [
{
"rarity": "common",
"item": "minecraft:bread",
"min": 1,
"max": 3,
"weight": 40
},
{
"rarity": "uncommon",
"item": "minecraft:emerald",
"min": 1,
"max": 2,
"weight": 20
},
{
"rarity": "rare",
"item": "minecraft:golden_apple",
"min": 1,
"max": 1,
"weight": 5
}
]
}
rarity defines what quest rarities can roll this table.
item is the item stack ID of the reward.
min is the minimum amount of item that can be granted on reward.
max is the maximum amount of item that can be granted on reward.
weight is the chance this reward has in relation to the other rewards in the table. (These numbers are weights, not percentages. They do not need to add up to 100, they do not need to be normalized, they are used relative to each other)
Thank you for playing! Feel free to comment any suggestions you may feel are benficial to add to this project.
Conversation