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.
This free update contains many bugfixes, improvements and changes, but not all features are available to the player; in order to access them, you need to buy the premium version of the plugin on Polymart.
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.
Update 0.2.4 (The Final Gameplay Patch)
This update is a bit different from the others. In addition to minor tweaks, I’ve reworked the project’s architecture. The plugin no longer requires Paper to function, as the development API has been switched to Spigot. Additionally, I’ve replaced Gradle with Maven. This is the final gameplay update for QuestIntelligence.
The Final Update
I started developing this plugin in October of last year. Before me, no one had tried to integrate generative AI into games this deeply, and many of the solutions used in QI were invented by me from scratch. Take, for example, the approach to quest generation or villager personalities. I’m incredibly proud of the result. However, despite the exceptional approval my plugin has received, I haven’t earned a single cent from it. We’re all human, and we all need money. My financial situation isn’t the best right now, which is why I’ve decided to change my marketing strategy.
New Name and Marketing Strategy
The plugin is now called Ignis. QuestIntelligence was a decent name, but my plugin has long outgrown being just about quests—races, personalization, revamping trade and villagers as a whole, settlements… All of this can’t be captured in a single title, so I decided to go with something stylish. Ignis, because it’s the real fire! I believe that in terms of quality and concept, Ignis is fully on par with top-tier premium resources with unique content. That’s why all future updates for Ignis will be released exclusively on Polymart. If you’d like to invest in its development, reignite my enthusiasm, say "thank you" for my work, or simply support me—buy a copy of the plugin.
Wrapping Up
QuestIntelligence won’t be deleted or renamed—the latest version will still be available for free on Modrinth. The source code will also remain open and publicly accessible, but Ignis will be developed privately. It’s time to move forward. Thank you to everyone who believed in me and shared kind words—without your feedback, none of this would have been possible. Want to fuel my passion and support my work? Grab a copy of Ignis!