
Ignis 0.3.0 (1.21.1)
AI-driven next-gen RPG with an endless amount of posibilities, just in one plugin.
I decided to backport the plugin to 1.21.4 because a lot of people can't upgrade to 1.21.5. This version should work on 1.21.4.
Fixes
- Fixed a bug related to NPE during race search. Now, if any issues arise, the default race will be used.
- Fixed a bug related to quest completion and its notification display.
- Fixed a bug related to exception handling when using an invalid JSON format while retrieving quests available to NPCs.
- Fixed a bug related to distance checking during dialogue sessions between the player and an NPC when the entities are in different dimensions.
- Fixed a bug where the interaction menu would open upon clicking an NPC, even in a world where Ignis is disabled.
Changes
- The required plugin version is now 1.21.5.
- First attempt at implementing Smart Key Switcher (let's call it SKS, because it sounds cooler). Instead of a single key, you can now create a list of keys. The more keys you have, the less likely you are to hit quota limits, as each key has its own unique request limit. You can generate a bunch of keys yourself or ask your players for help. This allows for unlimited use of the Gemini API. In the future, this loophole might get closed (because it feels a bit like cheating, as we're essentially breaking the system), but as they say—use it while it lasts.)
- Two new races: Mandrathi (humanoid apes, extremely primitive jungle inhabitants that resemble animals that learned to walk on two legs) and the Verdant Veil faction. Yes, not a race. The swamp dwellers aren't a distinct race themselves—these creatures, who have lived for a very long time, got lost in the pages of history and, for some reason, banded together in the swamps. They are ancient, powerful creatures with unique skins, high health, and a mysterious culture. I tried to make this faction cool, so I bought a Mineskin subscription, generated skins with capes for them, and even created unique lore. Ignis now includes 7 races (or factions) instead of 5.
- 33 new skins: 2 for the Mandrathi race, 31 for the creatures of the Verdant Veil faction.
- Improved code handling NPC chat. NPCs should now adhere more closely to their faction's lore.
0.2.9
Changes
- Added a **common phrase pool**. Previously, villagers only spoke to the player after their personal data was generated by artificial intelligence. Now, if a villager lacks a persona, phrases will be drawn from the common pool. This addresses a gap in immersion—villagers will always react to the player’s actions.
- Complete overhaul of quest generation. The previous mechanism was decent but limited quest types due to its design. Delivery quests (regardless of their nature) quickly become repetitive.
- Quests now require acceptance before they can be completed. To accept a quest, the player must listen to the villager’s story. At the end of the dialogue, a new quest acceptance menu will appear.
- Upon accepting a quest, two things happen: a chat message appears, and a boss bar tracks quest progress.
- Dropped support for Geyser. Experience has shown that Geyser support heavily restricts developers and limits creative problem-solving. It may return in the future, but for now, I’ve decided to abandon this feature.
- Improved dialogue windows. Commas now trigger slight pauses, making text easier to read.
- Quest progress can now be tracked! A boss bar displaying progress ensures players won’t forget they’re working on a quest.
- Quest rewards are now limited to currency tied to the villager’s race who issued the quest.
- Items required to complete a quest are now highlighted (visible only to the quest holder, implemented via packets).
- Significant work done on the “quest relevance mechanism.” If a quest becomes impossible to complete (e.g., another player completed it or the quest-giving villager died), the plugin automatically detects this and removes the quest. Quests can now be failed permanently.
- The cost (and thus the difficulty of obtaining) quest items now depends on the villager’s level. Low-level villagers won’t assign complex quests.
- Villager level progression after completing quests is now twice as slow, making progression feel more rewarding.
- Minor improvements to the family of quests tied to villager profession development: better generation prompts, trade prices, and item pools.
- Added the /quest command (/q as a shortcut) with subcommands: list, remove, track, item, and stats.
- The /quest stats command collects specific statistics: total quests generated, quests completed/failed, and experience earned. More stats may be added in the future, but this is what I came up with for now.
- New quest type: hunting. These special quests involve, as the name suggests, hunting living creatures. Villagers offer quests to gather resources from creatures, and only items dropped from killed creatures can be used to complete them. These items are stored in a new database (a data.db file is now in the plugin folder), and the AI generates unique descriptions for these items each time a new quest is created.
- Added a special command for creating “hunting” quests: /quest item add <entity_type> <score> <quantity> <drop_chance>. Hold the item you want to add to the quest item pool while running the command, and NPCs will offer quests to find it. This unique implementation allows admins to add custom items from plugins like ItemsAdder, Oraxen, etc. If the item lacks a custom name, the default name is used, but the lore is always overwritten. Custom-textured heads are also supported!
- The /quest item add command supports mobs from MythicMobs, with automatic detection of the plugin.
- Added new skins for dwarves, elves, and humans (6 total).
- Fixed a bug where monster spawn reasons weren’t checked. Now, killing monsters spawned from spawners won’t grant reputation (nor will they drop quest items).
- For monster-hunting quests, 127 dynamic quest items were prepared. Each has a unique name, drop chance, cost, and required quantity. Additionally, random descriptions are generated for these items during quest creation.
- Added new settings to config.yml and language.yml.
- New saved file type: data.db. Pre-generated dynamic quest items are stored in this file.
- Improved the algorithm for generating quest names.
Changes:
- Fixed quest priority; now PROFESSION_ITEM_GATHERING will always be first.
- Player messages during NPC dialogues are now visible in the chat.
- Reputation change messages now appear at the end of NPC messages instead of the beginning.
Changes
- RESIN_CLUMP added to the treasure hunt quest: now cartographers and librarians will occasionally send the player to the pale garden.
- Clerics now brew random potions from the materials they have. Previously, clerics were idle. Now you can buy potions from them. Random ones. Even those that cannot be brewed in vanilla.
- The price of each potion effect has been added to prices.yml. This helps maintain balance.
- Slightly increased the amount of starting currency for each race.
- Quests of the PROFESSION_ITEM_GATHERING type now have the highest priority. This ensures that villagers always first ask the player to help with their profession development.
- The number of available quests has been increased by 1 for each level — more quests, more interesting interactions, more everything.
- Minor benefits for low-income villagers: villagers of the first and second levels will receive their race's currency when generating quests. This allows every villager to have quests for the player. Previously, if a villager didn’t have enough items to pay for a quest, the quest simply wouldn’t generate, and the villager would wander aimlessly without a chance to earn. This could be classified as minor cheating, since the plugin’s essence is that villagers no longer pull items straight from the void, materializing them out of nothing. But blessed is the lie that saves, right?
- When a cleric brews a potion, a sound is played. By the way, the maximum number of potions equals the cleric’s level + 1.
- Added a new quest: FUNGUS_SEARCH. This quest is a special quest for clerics and librarians. As you might guess, it involves searching for mushrooms.
- Added the ability to give gifts to villagers. To give a gift, you need to start a dialogue with a villager — open the interaction menu and press the "Chat" button. Then open the menu again and select "Gift" — after that, the next item the player drops from their inventory will be given to the villager. The AI will then generate a few phrases showing how the villager reacts to the gift: if you give an NPC, say, a stack of diamond blocks, they’ll be EXTREMELY surprised. If you give them some useless junk, they’ll throw it back. Gifts affect reputation, shape the villager’s opinion of the player, and allow you to "invest" in the villagers’ development by supplying them with materials needed for crafting items. This is a very deep mechanic, and even I don’t fully know what reactions the gifts might trigger. What if you give a villager a dragon egg, for example? How will they react?...
- Added a wealth mechanic. It’s determined by calculating the value of a villager’s inventory. For now, it only affects the dialogues generated by the AI.
- Fixed an old bug that prevented other types of quests from appearing.
- Fixed a bug related to inventory serialization, which @ubivis has been reporting for a very long time. Sorry it took so long, buddy.
- Fixed numerous bugs related to trading.
https://www.youtube.com/watch?v=HW3Klw4Kbg0
This update fixes many bugs that were missed in 0.2.4. In addition, significant balance edits: villagers no longer have rich man inventories from the start, and the goal is for players to participate in their development.
Changes
- The new feature is memory. NPCs will now remember events that happen to them. For example, if one of the other NPCs dies in front of them, it will be stored in their memory.
- Another new feature is the ability to chat with NPCs. You may have heard about the existence of chatbots like CharacterAI and so on - well, I've worked pretty hard on this mechanic, and now you can chat with NPCs almost as if they were real players. Telling them backstories, asking them how they're doing. This is combined with the already mentioned memory: if you insult an NPC, NPC will remember it. Also, because of this, your reputation in the NPC settlement will decrease. The NPC's opinion of you is updated with every phrase you say to them: this allows you to simulate the “development” of the relationship between you. I also invented a mechanism for “directives”: if a player tells an NPC that he wants to trade, a trade menu will open. NPCs are also aware of their surroundings: in their responses they will take into account the current time of day, weather, biome. The moral question of whether it is necessary, because Minecraft should be played with friends, we'll leave it for later. I know a huge number of lonely players, and perhaps this will help them to brighten their loneliness.
- Like I said, balance edits. It deepens the progression considerably: whereas before a player would just come to a village and collect all the cream off the top, now they'll have to take an active part in the development of the village, and I think it's much more reasonable. I will continue to work on the balance in the next patches.
- New type of messages from NPCs: messages about impossibility to trade. If an NPC has a job but has nothing to trade, then the NPC will say so. Previously, nothing would happen and it was confusing.
- world_nether и world_the_end added to core.allowed-worlds in the config.yml.
- Redesigning the interaction menu. The “Actions” menu has been removed - it has been replaced with a “Chat” option. If the player is chatting with an NPC, clicking on it will bring up a brand new menu where you can interrupt the dialog or give the NPC a gift (gifts will be added in the next update).
Migration from Spigot and Modrinth. For now, this version is no different from the free version — wait for updates!