header

Description


Participant MCreator x CurseForge ModJam 2024
Requires GeckoLib & Curios API

 

About:

The mod adds a complete system of repeatable quests, almost like in MMORPGs. Traveling around the world you can encounter new structures with NPCs inside. Talk to them to recieve a procedurally-generated quest. 
Use your Quest Journal (Default: J) to read info, or enable Quest Tracking Overlay (Default: K) when you have a quest, to finish it with more comfort.

 

Quests

'Optional tasks, by completing which you earn rewards'

How to Start?

  • Find a new structure in the overworld with NPC inside. Talk with him to start a quest. You will see all the information you need in the chat. Most quests have a unique start and end phrase from the npcs. Some tasks are worth reading carefully, however, the most important words are always highlighted in yellow color (e.g. required item and it's amount).
  • Open the Quest Journal by pressing J (default, can be changed in key bind settings). Here you will see what type of the quest it is. Feel free to hover your cursor over the different inscriptions, they may have useful hints. You can also track your current quest with Quest Tracking Overlay by pressing K (default, can be changed in key bind settings). You will see your progress at the left side of the screen.
  • Complete the task and return to the NPC. Talk with him, and he will give you a random reward, ranging from emeralds to more rare and useful items.

 

More About Quests

  • Quest system is JSON-based, meaning it can be configured by player, or even expanded with new quests (read more about it on the bottom of this page).
  • Full compatibility with multiplayer with competitive element: whoever completes the task first gets the reward.
  • The quest will be stopped if NPC dies, or other player completes this quest before you, or someone use the Oblivion Potion on this NPC.
  • When you start a quest or it is interrupted while there is one, you will receive a notification in chat. It is distinguished by orange or red color and square brackets.
  • One quest at a time principle. You can love it or hate it, but you won't be able to complete 30 quests with similar goals from different NPCs at the same time, since it would ruin the game balance.
  • The same NPC never gives out the same quests in a row. You won't gather wood for Angler's bobbers twice in a row, but that doesn't change the fact that same quest could appear often.
  • If you don't like current quest, or if you want to take the quest from another NPC, just click the Refuse button in your Quest Journal. When hovering over this button, a notification will appear that you will lose your progress. This is not important for Delivery-type quests, as no one will take away your items when you cancel the quest.
  • Quest Journal also exists in form of an item, if you don't like using hotkey. Crafted with 3 Paper and 1 Emerald in inventory or crafting table. 
  • Potion of Oblivion is a useful item, that can be used on an NPC to skip current quest and start a new one.
  • If you have already achieved the required progress, then by hovering over the Return to NPC text in Quest Journal, you will see the coordinates of your last meeting.
  • In Quest Journal hover the cursor over left corner of a book to see the amount of quests you've completed.

Quest Types

Quest types refer to the actions a player will need to perform to complete a quest. There are currently 8 types of working quests in-game:

  • Delivery - gather required items and deliver to NPC. Note: items will be consumed.
  • Crafting - craft the required items to complete the task. Note: items will stay with you.
  • Hunting - kill the specified creatures. Mob variants counts (if a Spider is specified, a Cave Spider will count as well).
  • Training - deal critical hits (strike while jumping or falling) to specified creatures.
  • Fishing - go fishing with the use of a fishing rod.
  • Building - place the required blocks to complete the task. Breaking blocks of this type will reduce progress.
  • Destruction - break the required blocks to complete the task. Placing blocks of this type will reduce progress.
  • Tillage - use a hoe to till the ground. Trampling the soil will reduce progress.

 

Quest Rarities

A quest can be one of two rarities: Common or Rare. Common Quests is what you will be doing most of the time. These have nice rewards and are mostly not difficult to complete. Rare Quests are indicated with purple color, they can be more difficult or dangerous, but the reward for these may be very good. When you start doing quests for NPCs, the first three quests will always be Common. A subsequent quest will have a rarity with a probability that depends on the player's current game progress. In multiplayer, this probability is calculated for the last player who completed a quest for that NPC. Example: You've already visited the End and are now on a quest from an Angler near your house. A friend who has no progress in this world joins your game, but he somehow manages to complete this quest before you. The rarity of the next quest for this Angler will be calculated based on friend's progress, not yours. But what are chances for rarities at different game stages? 

  • Brand new player - First 3 qusts are always Common.
  • After first 3 quests: Common (95% chance), Rare (5% chance).
  • After finding the first Diamond - Common (90%), Rare (10%)
  • After visiting the Nether - Common (80%), Rare (20%)
  • After visiting the End - Common (70%), Rare (30%)
  • Rare quests always appear more often in the current builds for the ModJam and easier testing*

Quest NPCs

Angler 
'The old man who can't seem to get anything right. You wouldn't leave him without a new fishing rod, even if he broke the last two, would you?'

  • /locate structure realmrpg_quests:anglers
  • Can be found in Angler's House near rivers. The structure is randomly generated and may be surrounded by small bridges, docks and other additional buildings to fit the terrain.
  • Has 24 repeatable quests in total (15 common, 9 rare). All quests already have written text lines in-game.
  • Can ask for items from other mods, if those are installed (Create, Farmer's Delight, Aquaculture, Upgrade Aquatic)

Common Quests:

  • A variety of 24 simple tasks perfect for early and mid-game (e.g. the fisherman has a damaged fishing line, so he asks you to get some String for him)

Rare Quests:

  • Glow Bait. The NPC asks you to get him a glowing clot that will be used to create glowing bait. You will have to find and kill the 'Turquoise glowing things that swim in the depths' in order to get it. When completing this task, the Angler will give you some glowing bait in addition to the reward, which you can use yourself. To do this, you need to take it off-hand while fishing at night, and then you will have 50% chance to get 1-3 additional fish. This item is consumable.
  • Guardians. Angler reports that the Guardians have arrived. During this quest, fishing out items will cause a guardian to spawn. You must kill required amount of them to complete the quest.
  • Azure Daggerfin. Catch many of these fishes. Caught anywhere (50% chance) during rain or thunderstorm, while this quest is active.
  • Scarlet Grouper. Catch a strong red fish, that damages your fishing rod producing a distinctive sound. Caught anywhere (20% chance), while this quest is active.
  • Thornback Flounder. Catch and deliver a spiny fish that deals 6 damage to you. Caught anywhere (25% chance), while this quest is active.
  • Pearlescent Catfish. Catch and deliver a fish that can blind you for a short amount of time. Caught anywhere (25% chance) during sunny day, while this quest is active.
  • Blackfin Snapper. Catch and deliver a fish that calls for the help of Phantoms. Caught anywhere (50% chance) during night, while this quest is active.
  • Copperfish. You need to catch a fish that can oxidize over time (this mechanic is currently disabled). Caught anywhere (25% chance), while this quest is active.

 

Cook
'A supreme chef who's ready to feed everyone in the world..... if someone brings him the right ingredients, of course.'

  • /locate structure realmrpg_quests:cooks
  • Can be found in Cook's House in plains. The structure is randomly generated and may be surrounded by roads, wheat fields, barns, houses, chicken coops, street lanterns and other additional buildings to fit the terrain.
  • Has 12 repeatable quests in total (9 common, 4 rare). All quests already have written text lines in-game.
  • Can ask for items from other mods, if those are installed (Farmer's Delight, Upgrade Aquatic)

Common Quests:

  • A variety of 12 simple tasks perfect for early and mid-game (e.g. the Cook need some Brown Mushrooms for cooking a meal, or asks you to till the soil)

Rare Quests:

  • Creeper Fruit. The cook asks you to find Creeper Fruit for him, which can be obtained by killing a Creeper exposed to sunlight. A good reason to go fight early in the morning.
  • Ochre Kelp. During this quest, sea grass has a chance to drop Ochre Kelp, which the cook asks you to get.
  • Velvet Truffle. Dig any blocks of earth to be able to find a Velvet Truffle and deliver it to the cook.
  • Advanced Meal. Cook asks you to prepare one of the complex dishes (using a crafting table). If Farmer's Delight is installed, this task can be either easier or more difficult depending on your luck.

 

Monster Hunter
'A legendary hero who has defeated more than a hundred skeletons. But even he will need your help.'

  • /locate structure realmrpg_quests:monster_hunters
  • Can be found in Monster Hunter's Tower in forests. The structure is randomly generated and may be surrounded by roads, warehouses and other additional buildings to fit the terrain.
  • Has 9 repeatable quests in total (6 common, 3 rare). All quests have simplified text for now.
  • Can ask for items from other mods, if those are installed (Farmer's Delight, Upgrade Aquatic)

Common Quests:

  • A variety of 9 simple tasks perfect for mid and late game (e.g. kill some zombies, go for combat training and deal critical strikes to creepers, etc)

Rare Quests:

  • Illager Nose. Monster Hunter talks about having old scores to settle with the Illagers. He asks you to get their noses... and you know how get these. (Any illager is suitable for the task, including Vindicator, Evoker, etc)
  • Ghast. NPC asks you to defeat a Ghast.
  • Blaze. NPC asks you to kill several Blazes.

Miner's House
'An underground shelter near the surface'

  • /locate structure realmrpg_quests:miners
  • Entrance to this structure can be found on surface rarely in most grassy biomes and in desert.
  • Miner NPCis currently cut from the mod and replaced with Monster Hunter.

 

Lumberjack's House
'A forest cabin hidden among the trees'

  • /locate structure realmrpg_quests:lumberjacks
  • This structure can be found in forest and taiga biomes rarely.
  • Lumberjack NPC is currently cut from the mod and replaced with Villager.

 

Other Characters

Headless Skeleton
'This Wither Skeleton seem to have lost his head. Literally.'

  • Can be found in small Nether Brick Ruins alongside regular Wither Skeletons.
  • He doesn't notice or attack the player. Maybe you should try to help him somehow? (There can be several consequences)

Piglin Gambler
'Absolutely non-suspicious person, driven solely by the desire to entertain the visitor (well, and earn quite a bit of gold for that)'

  • For a modest fee of 1 gold ingot you can participate in his Pot Game. 
  • He shows you which pot the reward lies in and then stirs them in front of you.
  • Choose one pot out of three and get a reward. Or make a mistake and accept the consequences (they may be different or nonexistent.)
  • He's definitely not cheating. You can be sure of that.

 

Configs / Adding New Quests

You're probably thinking, how should I add my own quests to the game? The following will detail the knowledge required to do so.

Configs

Currently mod adds config files for quests themselves. Location at your minecraft install folder (e.g minecraft/config/realmrpg/quests/)

How it works?

Even before entering your world, the game creates json config files, if there are none at your Minecraft game folder. If config already exists, then within the game NPCs will be able to generate quests based on data from these files. For example, an Angler will have quests from the file angler.json. You can edit this file right while the game is running, but this will not affect quests that have already been generated. Only after the current task is completed, the next one will be generated based on your changes.

How does the quest look like in JSON?

This is the example of a random quest. It has Common rarity, it's id is 9. Main text is based on Angler's tackles quest. It will require a player to Deliver a random amount of candles (from 7 to 21) of random color. It will give a player loot from vanilla desert temple chest. It will award the player with 11 points of exp.

  "questType_c9": "deliver",
  "questText_c9": "quest.realmrpg_quests.angler.tackles",
  "questRewardText_c9": "quest.realmrpg_quests.generic.reward",
  "questTarget_c9": "minecraft:candles",
  "questReward_c9": "minecraft:chests/desert_pyramid",
  "questSpecialEvents_c9": "",
  "questCustomName_c9": "",
  "questTaskCustomName_c9": "",
  "questTargetCustomName_c9": "",
  "questTargetEnchanted_c9": false,
  "questTargetMin_c9": 7,
  "questTargetMax_c9": 21,
  "questExp_c9": 11,

 

What all this means?

Each quest consists of the lines shown above. Line order does not matter, but all the lines are needed for the quest to work. At the end of each line you see the first letter of quest rarity (c or r, meaning Common and Rare), as well as a number of quest ID. This ID is important when the game chooses the next quest, and the amount of checked IDs are indicated in commonQuestCount and rareQuestCount lines (almost in the beginning of .json file).

For example, you want to add a Common Quest to the Angler. By default he has "commonQuestCount": 15 in a json file. All you need to do is copy and paste all the lines associated with quest 15 and change the numbers at the end of them to 16. Then simply change commonQuestCount to 16 (so the game will now check all the 16 possible common quests). That's it, the quest is ready! You can change the values ​​of any lines to whatever you want.

However, If any of these lines feel complicated for you, below you can see the detailed explanation:

questType
(type of the quest depending on required player actions)

  • Accepts one of values: deliver, craft, kill, crit, build, destroy, catch, till
  • You can't add your own new quest types

questText
(what the NPC will say to the player upon receiving this quest)

  • Accepts any localization entry
  • If localization entry contains {Target} or {Count} it will be replaced with name of quest target and the count of required action to complete the quest.
  • Replacement example: "Gather {Target} and bring me {Count} pieces" = "Gather Apple and bring me 12 pieces"
  • Generic text (Delivery): quest.realmrpg_quests.generic.deliver
  • Generic text (Hunting): quest.realmrpg_quests.generic.kill

questRewardText
(what the NPC will say upon completing this quest)

  • Accepts any localization entry
  • Basic reward text is quest.realmrpg_quests.generic.reward

questTarget
(what is required to complete quest)

  • For Delivery and Crafting quests it's an Item Tag from which one random item will be chosen each time. Example: minecraft:candles
  • For Hunting and Training quests it's an Entity Tag from which any entity is suitable to complete the quest. Example: minecraft:skeletons
  • For Building and Destruction quests it's a Block Tag from which any block is suitable to complete the quest. Example: minecraft:coal_ores
  • For Fishing and Tillage quests the value is not important and can be left empty or set to none

questReward
(what will be given to player who completed the quest)

  • Accepts any loot table
  • Example (Vanilla): minecraft:chests/simple_dungeon
  • Example (Mod): realmrpg_quests:rewards/cook/generic

 questSpecialEvents
(events and checks that happens during Rare Quests)

  • Mostly hardcoded in base mod. For now it's impossibe to add custom events via configs.
  • You still can make 'your versions' of current rare quests with different text, reward loot table, exp amount and etc.
  • Check existing json config files and copy possible values (example from Angler: scarlet_grouper)
  • Leave empty or set to none to make quest having Common colors.
  • Insert any other value (even blahblah) to make this quest have purple colors, like Rare one.

 questCustomName
(display name of the quest in Journal)

  • Accepts any localization entry. (e.g. biome.minecraft.swamp in-game will be displayed as Swamp)
  • If left empty or set to none, it will be replaced as quest type in-game (e.g. Delivery or Hunting)

questTaskCustomName
(display name of quest Task in Journal)

  • Accepts any localization entry.
  • Always set this value to so

questTargetCustomName
(display name of quest Target in Journal)

  • Accepts any localization entry.
  • Always set this value to something in case of Hunting, Training, Destruction or Building quest to display it as a Target in quest.

questTargetEnchanted
(should the quest Target be enchanted, if it's item)

  • Currently useless. Will be used future Delivery quests with enchanted items.

 questTargetMin, questTargetMax
(should the quest Target be enchanted, if it's item)

  • Minimum and maximum value of required actions to complete quest (kills / placed blocks / amount of items)
  • Do not set Min value larger than Max value and vice versa
  • Do not set these values to zero or below.
  • For Delivery type quests do not set value above 64, because quest will be impossible to complete.

questExp
(how much exp is given upon finishing the quest)

  • Amount of exp point in the 'reward exp orb' that npc gives to the player
  • Do not set this value to zero or below.

 

This ModJam has given me idea to take a break away from all current projects and try my best making a small yet extraordinary mod for my RPG Series as fast as I can. Despite the fact that I could only work roughly half the time of this contest, I tried to push MCreator to its limits and have learned so many new things in modding. I hope that my project even in it's current unfinished state turned out interesting enough to stand on par with the other participants. I can't wait to check out what others have made this month!