Files
UE5-Modular-Game-Framework/docs/blueprints/06-ui/50_WBP_JournalDocumentViewer.md
Lefteris Notas 411edea8ce add blueprints
2026-05-19 13:22:27 +03:00

4.2 KiB

WBP_JournalDocumentViewer — Widget (Document and Journal Viewer)

File: Content/Framework/UI/WBP_JournalDocumentViewer Parent Class: UUserWidget Dependencies: BPC_DocumentArchiveSystem, BPC_JournalSystem

Purpose: Displays collected documents, notes, and the player journal. Supports text scrolling, page turns, and image plates. Read-only presentation — never modifies game state.


Variables

Name Type Description
ActiveDocument S_DocumentEntry Currently displayed document
DocumentList Array of S_DocumentEntry All collected documents for sidebar navigation
ActiveJournalEntry S_JournalEntry Currently displayed journal entry
JournalEntryList Array of S_JournalEntry All journal entries for sidebar navigation
bShowPageTurnAnim Bool Enable page turn animation
FontStyle E_DocumentFontStyle Handwritten, Typewritten, Digital
ViewMode E_DocumentViewMode Document, Journal, or Combined
DocumentTitleText TextBlock Active document title
DocumentBodyText RichTextBlock Scrollable document body
DocumentImage Image Optional plate/figure image
SidebarList ListView Navigation sidebar

Enums

E_DocumentFontStyle
{
    Handwritten,
    Typewritten,
    Digital,
    BloodScrawled
}

E_DocumentViewMode
{
    DocumentsOnly,
    JournalOnly,
    CombinedTimeline
}

Functions / Events

Name Inputs Outputs What it does
OpenDocument DocumentTag: GameplayTag Loads document from archive, displays with font style
CloseDocument Returns to document list
OpenJournal EntryTag: GameplayTag Loads journal entry, displays
NextDocument Selects next document in list
PreviousDocument Selects previous document in list
NextPage Scrolls body text to next page
PreviousPage Scrolls body text to previous page
SetViewMode Mode: E_DocumentViewMode Switches between document/journal/combined
MarkAsRead DocumentTag: GameplayTag Sets bIsRead on document entry
RefreshList Rebuilds sidebar from archive and journal systems
SortByChapter Sorts documents/entries by discovery chapter
SortByType Sorts documents by type, entries by date

Event Dispatchers

Name Parameters Fired when
OnDocumentOpened DocumentTag: GameplayTag Player opens a document
OnDocumentClosed Player closes document viewer
OnDocumentRead DocumentTag: GameplayTag Document marked as read

Blueprint Flow Diagram

flowchart TD
    A[Player opens Journal/Documents] --> B[ViewMode = CombinedTimeline]
    B --> C[RefreshList from BPC_DocumentArchiveSystem + BPC_JournalSystem]
    C --> D[Populate SidebarList]
    D --> E[Wait for selection]

    E --> F{Item selected?}
    F -->|Document| G[OpenDocument with DocumentTag]
    F -->|Journal Entry| H[OpenJournal with EntryTag]

    G --> I[Set ActiveDocument = entry from archive]
    I --> J[Display title, body text, optional image]
    I --> K[MarkAsRead]

    H --> L[Set ActiveJournalEntry]
    L --> M[Display heading, body, timestamp]

Communications With

Target System Method Why
BPC_DocumentArchiveSystem Direct read Get all found documents
BPC_JournalSystem Direct read Get all journal entries
WBP_InventoryMenu Parent navigation Open from inventory tab
SS_UIManager Push/Pop Menu stack management

Reuse Notes

  • The E_DocumentFontStyle enum lets each project set the visual tone per document type
  • ViewMode can be restricted to DocumentsOnly for games without a journal
  • The page-turn anim is optional; disable for performance or minimalist UI
  • RichTextBlock supports markup — use for emphasis, different speaker colours, or lore highlight