QuestJS extends FTB Quests with extra quest task types and client-side KubeJS events for the FTB Quests GUI.
Use it to:
Everything is additive. The addon does not replace FTB Quests or KubeJS, and existing quest books keep loading unchanged.
Available on Forge 1.20.1, NeoForge 1.21.1, and NeoForge 26.1.2.
A quest completes once the player's attributes satisfy every condition you configure. Add as many conditions as you need — all of them must match.
In the in-game quest editor you pick an attribute from a searchable list (modded attributes included), choose a comparison, and set the threshold:
| Comparison | Meaning |
|---|---|
| Greater than | Attribute must exceed the threshold |
| Greater than or equal | Attribute must reach the threshold |
| Less than | Attribute must stay below the threshold |
| Less than or equal | Attribute must not exceed the threshold |
| Equal | Attribute must match the threshold exactly |
| Range (inclusive) | Attribute must fall between the lower and upper bound, both ends included |
Progress is checked automatically about once a second while the quest book is open, so a player who gains the required attribute mid-session sees the task complete without re-opening anything. The task shows an iron chestplate icon by default.
Task type ID: ftbq_attribute_tasks:attribute_check
A quest completes when a numeric value stored in the player's persistent data satisfies the comparison you configure. This is the task to use when a quest should depend on a counter that some other mod — or your own scripts — maintains.
points or shop.balance.PersistentData store. If a path is missing, or the value is not a number, the task simply stays incomplete.To try it out, write a value and let the task read it back:
# KubeJS store — command name differs by version
/kubejs persistent_data merge entity @s {shop:{balance:50}} # Forge 1.20.1
/kubejs persistent merge entity @s {shop:{balance:50}} # NeoForge 1.21.1, NeoForge 26.1.2
# Loader store
/data merge entity @s {PersistentData:{points:10}}
In scripts, the same value is reachable as entity.persistentData.
Progress is checked automatically about once a second. The task shows a name tag icon by default.
Task type ID: ftbquestskubejs:custom_data_number
Quests already authored with the standalone More And More Quest mod keep working unchanged — the task type IDs are the same, so existing quest books load as they are. That mod is no longer needed alongside this one.
FTBQuestsKubeJSEvents.openChapterGroup(event => {
console.log(`opened group: ${event.chapterGroup.id}`)
})
FTBQuestsKubeJSEvents.openChapter(event => {
console.log(`opened chapter: ${event.chapter.id}`)
})
FTBQuestsKubeJSEvents.openQuest(event => {
console.log(`opened quest details: ${event.quest.id}`)
})
FTBQuestsKubeJSEvents.closeChapterGroup(event => {
console.log(`closed group: ${event.closedObject.id}`)
})
FTBQuestsKubeJSEvents.closeChapter(event => {
console.log(`closed chapter: ${event.closedObject.id}`)
})
FTBQuestsKubeJSEvents.closeQuest(event => {
console.log(`closed quest details: ${event.closedObject.id}`)
})
openChapterGroup: fired when a chapter group is opened.openChapter: fired when a chapter is selected.openQuest: fired when the quest detail panel is opened.closeChapterGroup: fired when a chapter group is collapsed.closeChapter: fired when the selected chapter changes or the quest screen closes.closeQuest: fired when the quest detail panel closes or changes to another quest.Close events provide the object being closed through event.closedObject. Open events provide the object through event.openedObject and the matching typed field.
The event group is named FTBQuestsKubeJSEvents so it remains compatible with the FTBQuestsEvents group provided by FTB XMod Compat.
| Minecraft | Loader | GUI events | Quest task types |
|---|---|---|---|
| 1.19.2 | Forge | Yes | No |
| 1.20.1 | Forge | Yes | Yes |
| 1.20.1 | Fabric | Yes | No |
| 1.21.1 | NeoForge | Yes | Yes |
| 26.1.2 | NeoForge | Yes | Yes |
Download the file matching your Minecraft version and loader. If a build for your version is missing, check the files page for the latest release.
Install this addon together with:
See the repository README for the exact dependency versions and source for each supported target.