- tools/quests.py writes pack/config/ftbquests/quests/ in FTB Quests 2101's format (data.snbt, chapters/*.snbt, texts in lang/en_us.snbt) with ids derived from the YAML names, so progress survives regeneration. Flexible progression, no lock icons, no rewards (Adrian, 2026-11-03). tools/build.py runs it. - docs/quests.yaml: 18 chapters, 74 quests. Getting Started; one chapter per zone and the End from a zone template (reach it, catch three of its Pokemon, mine its ores, beat its guardian) plus chapter extras (Mire Waders, Eyes of Ender, Eternatus); Pokemon Machines; Base and Jobs. - Node positions: --pull reads them from an FTB Quests folder into the layout block (only moved nodes); tools/prism_instance.py pulls from the instance before each sync and rebuilds if something moved. - The pack's own events as hidden advancements (cobblesurvival:events/...), granted by QuestEvents: zone reached, guardian beaten, machine filled, End boss beaten. - Self-tests quest_book_loads and quest_events_mark_zones; the guardian and furnace tests check their events. Self-tests and island check pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
109 lines
2.5 KiB
SNBT
109 lines
2.5 KiB
SNBT
{
|
|
default_hide_dependency_lines: false
|
|
default_quest_shape: ""
|
|
filename: "jungle"
|
|
group: ""
|
|
icon: {
|
|
id: "cobblemon:leaf_stone"
|
|
}
|
|
id: "0F763138AA0551CF"
|
|
order_index: 6
|
|
quest_links: [ ]
|
|
quests: [
|
|
{
|
|
icon: {
|
|
id: "minecraft:filled_map"
|
|
}
|
|
id: "190884D7C1509137"
|
|
tasks: [
|
|
{
|
|
advancement: "cobblesurvival:events/zone/jungle"
|
|
criterion: ""
|
|
id: "6D2ED8A178EE3B43"
|
|
type: "advancement"
|
|
}
|
|
]
|
|
x: 0.0d
|
|
y: 0.0d
|
|
}
|
|
{
|
|
dependencies: ["190884D7C1509137"]
|
|
icon: {
|
|
id: "cobblemon:poke_ball"
|
|
}
|
|
id: "1CC49658829D508F"
|
|
tasks: [
|
|
{
|
|
action: "catch"
|
|
amount: 3L
|
|
biome: ""
|
|
dex_progress: ""
|
|
dimension: ""
|
|
form: ""
|
|
gender: ""
|
|
id: "2B6ECDA368144338"
|
|
max_level: 0
|
|
min_level: 0
|
|
natures: ""
|
|
poke_ball_used: ""
|
|
pokemon: "cobblemon:aipom,cobblemon:bellsprout,cobblemon:bounsweet,cobblemon:bulbasaur,cobblemon:chatot,cobblemon:darumaka,cobblemon:exeggcute,cobblemon:exeggutor,cobblemon:fomantis,cobblemon:grafaiai,cobblemon:grookey,cobblemon:grovyle,cobblemon:ivysaur,cobblemon:jangmoo,cobblemon:kecleon,cobblemon:litten,cobblemon:natu,cobblemon:panpour,cobblemon:pansage,cobblemon:pansear,cobblemon:pikipek,cobblemon:servine,cobblemon:shroodle,cobblemon:simipour,cobblemon:simisage,cobblemon:simisear,cobblemon:slakoth,cobblemon:snivy,cobblemon:steenee,cobblemon:stunfisk,cobblemon:swoobat,cobblemon:tangela,cobblemon:tangrowth,cobblemon:thwackey,cobblemon:torracat,cobblemon:toucannon,cobblemon:treecko,cobblemon:tropius,cobblemon:trumbeak,cobblemon:tsareena,cobblemon:unown,cobblemon:vigoroth,cobblemon:weepinbell,cobblemon:woobat,cobblemon:xatu"
|
|
pokemon_type: ""
|
|
region: ""
|
|
shiny: false
|
|
time_max: 0L
|
|
time_min: 0L
|
|
type: "cobblemon_tasks:cobblemon_task"
|
|
}
|
|
]
|
|
x: 2.0d
|
|
y: -0.75d
|
|
}
|
|
{
|
|
dependencies: ["190884D7C1509137"]
|
|
icon: {
|
|
id: "minecraft:iron_pickaxe"
|
|
}
|
|
id: "176EAF7AF6072172"
|
|
tasks: [
|
|
{
|
|
count: 8L
|
|
id: "1C5D2E8AEDE391CA"
|
|
item: {
|
|
count: 1
|
|
id: "cobblemon:leaf_stone"
|
|
}
|
|
type: "item"
|
|
}
|
|
{
|
|
count: 8L
|
|
id: "6DAC1EB6531FC107"
|
|
item: {
|
|
count: 1
|
|
id: "minecraft:redstone"
|
|
}
|
|
type: "item"
|
|
}
|
|
]
|
|
x: 2.0d
|
|
y: 0.75d
|
|
}
|
|
{
|
|
dependencies: ["1CC49658829D508F"]
|
|
icon: {
|
|
id: "minecraft:netherite_sword"
|
|
}
|
|
id: "3D8B1B2FA845C406"
|
|
tasks: [
|
|
{
|
|
advancement: "cobblesurvival:events/guardian/jungle"
|
|
criterion: ""
|
|
id: "26D7F4049F9F71AF"
|
|
type: "advancement"
|
|
}
|
|
]
|
|
x: 4.0d
|
|
y: 0.0d
|
|
}
|
|
]
|
|
}
|