promotional bannermobile promotional banner

SableCraft Chronicler

Quests that are given by someone, somewhere . Chapters, quests and storylines from datapack files, played entirely on a vanilla client. A quest is offered by a person ,a block, or a place ; it is told in beats, with choices that branch and consequences.
Back to Files

Chronicler 1.5.0 / MC 26.1.2

File namechronicler-1.5.0-mc26.1.2.jar
Uploader
sablednahsablednah
Uploaded
Nov 6, 2026
Downloads
9
Size
1.4 MB
Mod Loaders
NeoForge
File ID
9479603
Type
R
Release
Supported game versions
  • 26.1.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:sablecraft-chronicler-1690352:9479603"

Learn more about Curse Maven

What's new

  • With JourneyMap: the quests' people (givers, a mini quest's people) within 64 blocks are drawn on the minimap and full map by the name over their heads, gold while they have a quest for you. JourneyMap's own radar never showed them -- a phantom NPC is not on the tab list it reads, and a mob body's name hides with villager names. Only Chronicler's own people, only nearby, only where they actually stand; marks, not saved waypoints. tracker.mapPeopleRadius (0 turns it off). The network channel moves to version 3, so an older Chronicler client simply gets no map payloads from a newer server rather than misreading them.
  • With CityWorld 6.12.0 or later, a mini quest's lot search asks for a cold city's plan on CityWorld's own threads (lotAtAsync) and reads what is already planned at once (lotAtIfPlanned), so a wild Bank Job never waits on the server thread; the search waits for the nearer ring, then carries on next second ("still looking" while it does). At most four plans are asked for at once. An older CityWorld keeps the budgeted search, and the log says which.
  • The quest tracker HUD starts near the top of the screen (hud.top 0.04, was 0.3), so more quests fit above the chat. A config that already says 0.3 keeps it; a top-left minimap (Xaero's) wants 0.3.
  • Fix: a mini quest looking for a CityWorld lot could freeze the server -- 55 seconds in ZARP as the Bank Job was offered -- because each chunk it asked about made CityWorld plan the city there, far-off villages included, all on one tick. Lot answers are now remembered per chunk for the server run, and every mini quest's looking -- a wild offer, a typed /quest accept, a quest's ending, the API -- shares minis.wildSearchMillis (20 ms) a second, carrying on the next second where it stopped ("Finding where X happens" when somebody asked). Nobody is placed until every lot is known, so a slow search no longer places and removes a person each second.
  • Fix: placing a mini quest's person far from every player loaded -- or generated -- the land there to find their footing (ZARP's Mum, up to 480 blocks off). Choosing a spot now never loads a chunk: they stand at a stand-in height, saved, until their land loads, and are then settled where they were meant to be (inside the house, on dry ground). If their quest ends first they are simply gone.
  • The once-a-second work (objectives, HUD, waypoints, escort bars, giver offers) runs for each player on their own tick of the second instead of everyone's on one; an objective already done and latched (a visit, a flag, an escort that has arrived) is no longer polled; and an arrived escort charge walks to one spot chosen once, instead of a new room every second.
  • Waypoints are sent only when they change (they were sent every second whatever); availability is tested yes-or-no without wording every reason first; what is inside carried backpacks is counted again only when the inventory changes or every 5 seconds, not every second per objective; and the journal panel takes at most four opens or button clicks a second from a client.
  • A mini quest's block slot scans chunk sections that can hold the block instead of every block in a 48-block cube (~900,000 lookups, the wanted id parsed again each time). Givers and the HUD's Nearby test distance before availability; the map's giver marks look for a giver before working out a quest's status; message templates with {term.*} are filled once, not by walking the whole catalogue each time.
  • Fix: a spawn whose ring landed only on unloaded land put its creature at the bottom of the world (an unloaded column's height is the floor). Loaded spots are preferred; with none, the one chunk it lands in is loaded first.
  • Fix: a structure slot's radius was read as chunks where vanilla wants placement cells: a 2400-block search for a village looked some 80,000 blocks out. It is now in cells, capped at 64.
  • party_health on a spawn: a once spawn in a party quest multiplies the creature's max health by 1 + party_health x (members - 1) and starts it full, as a permanent modifier over whatever the genus, health and equipment made of it. One story boss facing three people is not the fight it was for one. A boss that own_kill brings back (a Bloater that blew itself up) comes back scaled to the party on the quest at that moment, restart or not. (Sable.)
  • Party effects run once where once is right. Every effect in a party quest ran once per member online: three of them heard every npc_say line three times, and a story boss spawned three times. A person now says a line once to the party (heard in earshot, relayed to the rest), and "once": true on any effect runs it for the member who moved the beat on alone.
  • "scale": false on an objective in stages: its target stays as written in a party quest while the beat's others grow with the party -- one boss, killable by anyone, credited to all. On a stageless quest's own objectives it is refused with a pointer to the quest's scale: false.
  • Party catch-up. A party quest only ever reached the members online at the time; one who was away never got it. Chronicler now files what a party finished (and the endings it reached, and the player flags its choices set) under the party's group id, and catches a member up on login or on joining: done, with the rewards that belong to a person (party.catchUpRewards, on by default), never re-running what happened to the world. A party quest an online member is still on is joined at their stage. A chapter replay clears the party's record of it too. (ZARP: one world, one party.)
  • Fix: a person npc_remove took away came back on the next server start (Cast forgets a removed NPC, and the start placed it again). They now stay gone; a world that removed someone with leave before this agrees on its own.
  • Fix: the block a removed person left gave only its giver_for quest, so their own quests -- and every one shared with them by of -- had no giver, and a delivery or talk to their quest could not land (ZARP: Wrench's bench would not take Pump Action's valve). The block now stands in for them completely: their quests first, then the giver_for one, with marks, waypoints and visit giver pointing at it. Rebuilt on every start from what the world already recorded, so no replay is needed; npc_restore undoes it.
  • collect, kill and reputation take a label, as every other objective already did -- it was dropped without a word, so Bigger Boxes said "Barrel" as if any barrel would do, and a kill by tag named the tag. A variants entry can reword them too.

This mod has no additional files