Tags
Creators
Details
1.0.5
Compatibility
Changes
Initial Release
This is a combined plugin that bundles four modules in a single JAR: ProgressionNPC, ProgressionQuest, ProgressionShop, and ProgressionCompanion.
NPC Module
- Fully custom NPC entities stored in YAML, independent of Citizens
- Mojang skin fetching via MojangSkinFetcher with local SkinStore cache
- LibsDisguises soft-dependency for NPC disguise support
- NPC equipment GUI for configuring held items and armor
- NPC protection listener to block griefing interactions
- NpcApi registered to Bukkit ServicesManager for cross-plugin NPC queries
Quest Module
- Quest definitions loaded from YAML files in the quests folder
- QuestStore — loads and caches all quest configs at startup
- PlayerQuestStore — per-player active, completed, and visited-NPC state
- QuestService — NPC visit tracking, clickable quest action buttons in chat after NPC dialogue
- QuestEditor — in-game quest creation and editing via chat input sessions
- ChatSessionManager / TalkContextManager — stateful player input handling
- QuestPermissionService — permission-based quest access control
- QuestBookUtil — generates a written quest log book for the player
- TalkSignListener — sign-triggered NPC dialogue Bedrock player support via Floodgate forms (FloodgateNpcForms)
- ProgressionQuestInfoProviderApi — publishes quest data to ProgressionAPI New quest architecture (this release):
- ObjectiveType — typed objectives: KILL_MOB, COLLECT_ITEM (legacy loot-field quests auto-converted in memory at load time, no file changes required)
- QuestObjective + ObjectiveParser — structured objective parsing from YAML
- QuestStage — multi-stage quest support, stages advance sequentially on completion
- RepeatType + RepeatService — daily, weekly, and cooldown-based repeat logic
- ObjectiveProgress + ProgressDisplay — per-objective progress tracking and formatted display
Shop Module
- NPC-linked shops opened on NPC right-click
- Multi-page shop GUI with configurable layout
- Per-entry buy and sell support with item matching via MatchCriteria
- Tool price integration (ToolPrices / ToolPriceService) for dynamic pricing based on ProgressionTools
- ProgressionApiItems bridge for custom item resolution in shop entries
Companion Module
- Assign NPCs as persistent combat companions
- Companion combat listener tracks attack events and assists the owner
- Companion healing with configurable heal amounts (CompanionHealingUtil)
- Armor XP awarded to companions on hit
- Ranged ammo tracking for bow-using companions
- Equipment GUI for companion gear management
- ProgressionToolsHook for companion tool interaction
- Companion lifecycle managed across login/logout
Unified command: /pnw with legacy aliases covering NPC, quest, and shop sub-commands
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:XO4LCKLm:VBoOucVf"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XO4LCKLm:VBoOucVf"
}

