Repository navigation
Releases: JakeJamesDev/formamorph
Releases · JakeJamesDev/formamorph
Release list
3.5.2
3.5.1
Added
- Mascots
- Publish a custom Mascot from the Mascot tab to share it in Community Creations
- Community Creations has a Mascots section, and you can download a Mascot as your own
- The Mascot tab lists Supporter Mascots, which Patreon Supporters install and select in one step
- The Publish dialog selects the listing your copy is linked to, so publishing again updates it
- Feedback bugs and suggestions show Pending Release when the change is done but not yet in an update
Fixed
- Saving a world works again after the browser closes its storage connection
3.5.0
Added
- The seven bundled worlds are about twice as big, and every location and entity has art
- Entity Avatars
- A world holds several Avatars in its Media tab, and each world entity picks one in its Avatar dropdown
- Mark one library Avatar as your default from its tile menu, and User's Default shows it
- Library entities pick an Avatar from your Avatar library, and a library persona shows it while you play
- Enter World shows the avatar step when the persona you pick has an Avatar
- In play, one entity view shows each entity's Avatar, 3D model or image, and replaces the separate Avatar tab
- Exported character cards and published entities carry the entity's Avatar, and importing one adds it to your Avatar library
- The World Editor's Import Entity adds a card's Avatar to your library only when you confirm the import
- A library entity's Avatar dropdown shows Missing Avatar when its Avatar isn't on this device, as the link review does
- Each Avatar in the World Overview has a Preview button that shows it in 3D, with Export
- Local Model
- Unified KV Cache is on by default, so parallel requests share one context
- K Cache Type, V Cache Type and KV Cache in RAM give you more control over the context's memory
- Local vision models see the images in your story when their projector sits beside the model
- Context Overflow chooses what happens when a story is longer than Context Size
- World Tools work on the desktop engine, and the model reads each Tool's result before it answers
- Media Tab
- The World Editor's new Media tab shows every image, sound, 3D Model and Avatar in the world, with sizes
- The Media tab header shows Publish Size and lets you group, sort and filter the gallery
- The Media tab's panel replaces or removes a sound, 3D Model, background, thumbnail or cover image
- Optimize Images moves into the World Editor's Media tab header in both modes, and now shrinks dictionary cover images
- An entity's or location's image opens one Media tab panel with its gallery, and the framed image's actions sit below
- The Media tab's No Images filter lists entities, locations, the thumbnail and the Map Background with no image
- Trait requirements and image Visibility rules can check the time of day, such as evening or night
- In the World Editor, a location's background is now a gallery, and each image can take a Visibility rule
- The Locations canvas can show a Map Background image, and the in-game Map draws it behind the locations
- Request Status Strip
- The request status strip shows a small animated icon for each request, such as a compass for Plan
- The request status strip shows a quill for Narration, a forking path for Choices, and masks for Cast and Motivation
- The request status strip shows how long the turn has run, after 3 seconds
- Placeholders
- An entity's Pronouns field now takes placeholder chips
- A connection's Travel Hints now take placeholder chips in the World Editor
- An entity's Relationship labels now take placeholder chips
- Scripts
- Scripts can now read the hour and minute of the story clock, with
clock.hourandclock.minute - Scripts can now read the player's action and the turn number, with
turn.actionandturn.number - Scripts can now hide or show a stat during play, with
hidden - Scripts can now read a location's parent, children and exits, with
location.parent,.childrenand.exits - Scripts can now switch dictionary entries on or off during play, with
enabledandconstant - Scripts can now switch a whole dictionary on or off during play, with
enabled - Scripts can now read a stat's active band text, with
descriptorandprevious.descriptor - After the AI scripts can now read the turn's page and read or change its choices, with
turn.narrationandturn.choices - In a world whose After the AI scripts use
turn, choices show once those scripts finish - Re-generate Choices now runs a world's After the AI scripts again, so a choice a script removed stays removed
- The script editor now underlines a write to
clock,locationornotes, which a run ignores
- Scripts can now read the hour and minute of the story clock, with
- Feedback Questions
- Feedback has a Questions tab, where you ask the community, reply and vote on questions you share
- While you type a question's title, the Feedback dialog lists Similar Questions
- The asker or staff can mark one reply as a question's answer, and the thread pins it under the question
- Each Formaquestion answer has an Ask the Community button, which opens a new question titled with what you asked
- Listing Review
- Your listings show a Pending Review or Resubmitted badge while a mod reviews them
- Mods review new listings in the Admin Panel's new Moderation tab, which holds Reports and Review
- Admins trust an author in the Users tab and switch Listing Review on in the Server tab
- A live listing with an update waiting for review shows Update Pending, and you can compare or discard the update
- Usernames
- New usernames are 3–20 letters, numbers, spaces,
_or-on the game's Register dialog and website's Create Account page - An account whose username breaks the rule chooses a new name in a rename dialog after login
- The website asks an account with a rule-breaking username to choose a new name
- New usernames are 3–20 letters, numbers, spaces,
- Feedback Links
- Every feedback thread shows its number, and #23 or a pasted thread address in a post shows as a chip
- A listing address in a feedback post now shows as a chip with its image, title and kind
- Typing @username in a feedback post shows the player as a chip that opens their profile
- Typing @ or # in a feedback post suggests players or threads to link
- Website Feedback
- The Suggestions and Questions boards are now readable on formamorph.ai/feedback
- Signed-in visitors can vote, reply and edit their own posts on formamorph.ai/feedback
- File suggestions and questions from the website
- The Requires picker in a large world opens on Traits, Any Trait in a Group and Stats
- The World Editor's Downscale now turns every PNG, BMP and lossless WebP image into a smaller lossy WebP
Removed
- Entity Avatars
- The 3D Player Avatar checkbox and the Custom Player Avatar uploader leave the World Overview
- The Enter World avatar step no longer has a Delete button
Fixed
- World Tools
- A world Tool on the narration or choices prompt no longer puts the model's planning into the story or choices
- A world Tool offered to the stat pass now gets called
- The code editor's Variable menu lists groups first, then fields, then verbs
- Turning off Flash Attention in the Local Model panel now turns it off when the model loads
- The bundled model's out-of-VRAM error names your Context Size and Parallel Requests settings
- Editing a stat's or trait's script on the Scripts tab no longer slows down per keystroke and crashes the editor
- The Hidden list in Community Creations now scrolls, so you can unhide one world from a long list
- Indented lists and paragraphs in narration and model thoughts now show as text, not as code blocks
- Unchecking Native Reasoning under Settings → Output now turns reasoning off on every prompt
- Test Code on a linked stat now routes writes through
owner.statsto the stat itself, as play does - Choices now stream word by word at the end of a turn in long stories, instead of appearing at once
- The turn's action row now slides open after the narration finishes, and the choices stream in after it
- The request status strip floats over the bottom of the narration, so the Pager and the action box stay still
- One drag of a World Editor slider or color picker now undoes in one step
- The Test Bench's AI Context tab now reads each entity's text with that entity's own traits and placeholders
- The Test Bench now accepts an entity whose images cover every pick of a required group
- Settings copy reads one way on every tab, and four labels drop their asides
- The desktop app now connects to ComfyUI without the
--enable-cors-headerflag - In the Feedback dialog and Admin Panel, a list that fails to load says so and offers Try Again
3.4.0
Added
- Entity Presence
- An entity can stand at one random location from its list in each new game
- The AI can know of an entity anywhere inside the locations you pick, without placing it there
- An entity set to Can Follow the Player comes with you when you invite it, and keeps following
- An entity set to Moves Between Its Locations walks between them, one Connection at a time
- Pick an entity on the full-screen Locations Canvas to place it and set where the AI knows of it
- The Entities tab marks who follows you, and the Map shows where the entities you've met are now
- Scripts can now move any entity, make it follow the player, or send it away
- One member of an entity listed in several places can follow you, and so can entities added in play
- In the bundled worlds, the AI now knows who is one Connection away from you
- Entity Relationships
- Entities can list their relationships in the World Editor, and the AI reads each one as a sentence
- Absent relatives of anyone in the scene join Entities Known Here, so the AI knows who they are
- Relationships can target Persona, and the AI knows the played persona's relationships in every scene
- NovelAI Character Prompts
- On NovelAI V4 and later, a
|in an image prompt now starts a separate character prompt - Scene images on NovelAI V4 and later now send each entity as its own prompt, so their looks don't mix
- On NovelAI V4 and later, a
- You Pill
- Your persona now carries a You pill after its name in the side panel, the Traits tab and Enter World
- A requirement on your persona's traits now reads your persona's name with the You pill
- Scripts
- Scripts can now read every location and who stands at each one
- Scripts can now read the story's memories as the Memory panel lists them, with
memories - Scripts can now pin, forget, edit or remove a memory, as the Memory Manager does
- Scripts now add a diary line through the entity, with
entities.Mira.diary(line) - Scripts can now read a dictionary's entries by name, with each entry's Trigger Keywords and Value
- Your own Tools' scripts now read the world as a Script does, with the same names and no writes
- Formamorph now rewrites your own Tools' scripts that read
worldorsceneto the new names when it loads them - Script hover cards now explain one memory or one entity in a list, as in
memories[0].text - The Variable menu now lists each group's fields first and its calls last
- The Variable menu now shows each row's type, and marks the rows that scripts can only read
- The Scripts Guide and the Tools guide now document the new script names and how old Tool scripts move
- The Stats tab in the game's side panel now lays out stats the way the Traits tab lays out traits
- The Player Name chip is now called Persona Name in the World Editor and the wiki
- A world persona's Locations are now where you can start as it, and its Starting Location dropdown is gone
- Image presets can now keep weights and NovelAI syntax in your entity and location tags
- A new tile in your library now pulses once, the first time it is on screen
- A downloaded world's library tile now shows its image optimizing, and the world opens once that finishes
Removed
- Stats no longer cap the AI's change at 20 per turn
Fixed
- Scripts
- A script asks the player for typed text with
player.input, renamed fromplayer.askText - A trait you toggle keeps the memory, pinned memory and diary lines its When a Trait Switches script writes
- Script and Tool script hover cards now read in one voice
- A script asks the player for typed text with
- The Test Bench's Openings preview now names the persona you pick, or says no persona under None
- On NanoGPT, Native Reasoning now knows which models think and which strengths they take
- The token-limit error now names the prompt that failed
- Summaries and Diary now ship with Native Reasoning off, so turns finish sooner on a thinking model
- The status bar now names the request a turn is still waiting on
- In the Chat layout, you can pick a choice as soon as choices land
- Narration now bolds only loud words, and thinking models spend less of each turn's thinking on formatting
- The Default preset's narration prompt is shorter and states each rule once
- The default prompts now call their entity sections Entities and tell the AI what each section holds
- A stat now opens at its authored value everywhere, and an authored zero stays zero
- Test Code and the Test Bench now check a Script against the same turn-one world as play
- Error Details and bug reports now show a server's HTML error page as one line: its title and Ray ID
- The Stats panel picker now lists an absent entity only once the story has named it
- Close buttons on dialogs and panels are now easier to tap on mobile
- Full-screen fields, panels, the Locations map and the Guide now exit from one button in the top-right corner
- A new item in your library now lands after your last tile, not in a gap between your tiles
- A downloaded world now shows in your library even when you close Community Creations before the download finishes
3.3.3
Fixed
- The Test Bench no longer flags a Blueprint trait whose requirement reads a Blueprint stat its entities hold
- Edit Stats in the Stats panel now edits every visible stat, entity and persona stats included
- Autosave and the save list no longer crash on a save the browser can't read
- Native Reasoning and Tools now match the model LM Studio or llama.cpp has loaded when you use
default
3.3.2
Added
- World Tools
- Worlds can now hold Tools, which every playthrough of the world offers to the AI
- Scripts can now move the location, advance the story clock and discover a new entity
- Scripts can now add a memory line, a pinned memory or a diary line for the turn
- A World Tool's script can run when the AI calls it, or after the AI, and change the game
- A During AI Output World Tool rewrites every narration sentence after the AI calls it
- You can test a World Tool in the editor, and renames and Find All Uses cover its script
- A stat re-roll keeps the changes a World Tool made during the turn
- A script's clock advance shows in the prompts the turn builds after it
- The drone world ships lock_target, a World Tool that marks the enemy the AI locks onto
- Try It in the Tool editor becomes a tab when the editor is narrow
- Code Templates
- A code template can now run in several timings, and each script box lists the templates for its own timing
- Seven new code templates fit At Game Start, When a Trait Switches and During AI Output
- A World Tool's Script box has a Templates button that lists starter code for the Tool's timing
- Code templates can now pick an entity's or persona's stats, and an entity stat's trait inputs list its own traits
- A world script's box now has a Templates button with eight starter templates
- Timed Suspensions
- In the Admin Panel's Users tab, Suspend asks for a length and the table shows when each suspension ends
- A suspended account's profile now shows its end date, and the Audit Log shows suspensions that end on their own
Fixed
- On a llama.cpp server, a prompt's Reasoning Budget slider now sets how long it thinks
- Test Code now reads the clock as play does in every timing but After the AI
- Test Code now reads an entity's
typeandpronounsas authored
3.3.1
Added
- The eight bundled worlds now have new writing and show scripts, trait gates, trait modes, pick limits and weighted openings
- Scripts
- Stats, traits and the world now hold Scripts: code boxes with a timing, replacing a stat's two code tabs
- The World Editor's Scripts tab lists every script by timing in run order and edits it in place
- Selecting a timing on the Scripts tab describes it, and the Scripts help has four tabs
- A script with the When a Trait Switches timing runs when a trait turns on or off in play
- A script with the At Game Start timing runs once before a new game's opening
- A During AI Output script rewrites each narration sentence as it completes
- A script can ask the player a question with
player.ask,player.confirmorplayer.askText - Script prompts show as a line under the narration, in play and in the editor
- A trait you switch during a script prompt keeps your setting, and scripts read a changed persona's cast
- Test Code, the Test Bench and the help's script test run every script timing on stats, traits and the world
- The help window, Scripts Guide and hover cards now explain each script timing,
narration,playerandtrait - The help window writes scripts for every timing, and Insert adds them to the open stat, trait or world
- Image Generation
- ComfyUI's Model row shows the model a workflow loads itself
- ComfyUI's File Name setting sets the folders and name for each saved image
- A setting, Strip Links And Images, sends past narration without markdown links and images
- Buttons and menu items that send an AI request now show which endpoint gets it
- Each text endpoint has Extra Parameters: a JSON object added to every request sent to it
- A prompt's Native Reasoning now shows its Thinking Room beside the strength, such as "Low · 1,024 tok"
- A disabled stat now reads "Off" and dims on the Stats tab and on its rows in the Scripts tab
Fixed
- Native Reasoning
- Models that always reason now have room to answer small prompts like Location Change
- With Max Output off, models that take a thinking budget now get the strength's Thinking Room as that budget
- On a llama.cpp server, a looping thought now stops at the Thinking Room and the model writes its answer
- A thought that uses its whole Thinking Room now says so in the error
- ComfyUI with an empty Model now uses the first checkpoint the server lists
- World music or ambient sound your browser can't play now stays silent instead of showing an error
- The world library now opens when one stored world can't be read
- Duplicating a location from the filtered list now gives the copy its own Unique chip rolls
- Signed out, the app no longer sends a login token with community requests
- Login now shows the server's reason when it refuses you
- Story export now leaves out turns that can't be read, so no error text lands in your story
- A library entity with two links to one stat now uses the same link in the editor and in play
- Formaquestion's code test function is now named
test_script, and its description and code rider say "script." - Deleting an entity, trait, location or placeholder group keeps your item order
- Arrange on the location canvas no longer freezes on a world whose locations hold each other in a loop
- A stuck semantic search no longer hangs Help or the Test Bench
- Undo no longer empties a name field that loaded after you opened it
- A failed share-code copy shows an error, Copy Paths resets, and Community sorts server dates as UTC
- Pressing Enter while a keyboard suggestion is open no longer saves a chip you are still editing
- Stat code templates load again after a failed first open
- Load World in the editor now accepts the same file twice
- Editing narration now updates the turn's entities and the Entities tab, and discovers new ones
3.3.0
Added
- Entity Stats
- Entities can own stats, set on a Stats tab in the entity panel in Advanced mode
- Stats now go in groups on the Stats tab and on each entity's Stats tab
- The Stats tab shows a node for each entity that owns stats, and Blueprints give one stat to many entities
- An entity's own traits and trait links now change its own stats, in the World Editor and in play
- An entity stat's Body Sliders now shape that entity's own 3D model in play
- Library characters keep their stats on a character card, and the library editor has a Stats tab
- Stat code now reads and writes any stat, and
ownerholds the entity that owns the stat - Stat code tools now follow
ownerand writes to any stat: the editor, Test Code, Issues, renames and the guide - Entity stats change during play: regen and both code boxes run each turn for every entity, present or not
- The Stats tab shows the selected entity's stats under yours, with a picker at the top
- Your played entity's stats now join yours in the stat panel, the AI's stat updates and the Stats chip
- The AI now updates every entity's stats with yours, in blocks for your persona, each entity and global stats
- A refused stat request falls back to stat-change lines in your preset's style, updating your persona's and loose stats only
- The Entities chip sends each present entity's stats, in their groups, to the AI
- Code Hover Cards
- Hovering a name in stat code, a Tool script or the template editor now shows a card that explains it
- The Variable menu and the Tool script reference now state whether each field is writable or read-only
- Press Ctrl+K Ctrl+I in a code box to open the card for the name at the caret
- A stat's hover card in stat code now shows its range, start value, regen, owner and who sees it
- Hovering a declared name or template slot in the code editor now shows a card
- Hover cards in stat code now show a trait's requirements and effects, and a placeholder's values and weights
- A hover card in a stat's code now has Open, which jumps to the item in the World Editor
- A code error with a near name now offers a fix, such as Change to Health for
stats.Helth - A hover card on
self,stats,clockand the other code globals now has Read in the Guide - Hover cards in stat code now have Find All Uses, listing every line that uses that exact item
- Hover cards on
personaand Blueprintownernames now show the item each reached entity holds
- Formaquestion
- The Formaquestion Search tab finds guide sections by meaning while Semantic Search is on
- A card on the first open of Formaquestion offers Semantic Search, with Turn On and No Thanks
- Formaquestion's search now finds partial words and words with typos, on the Search tab and in Ask
- You can now read the Guide full screen from the help window
- You can now open the wiki from the help window, on the page and heading you're reading
- The Guide reader has Back and Forward buttons in Wide View and the full-screen Guide
- The Formaquestion wiki page now covers Open Guide, Open Wiki, Back and Forward, and the Semantic Search card
- Global Scope Split
- The Traits and Stats tabs now list global traits and stats under a Global heading
- The trait editor now lets any entity's trait change a global stat, played or not
- A trait requirement that names a global trait, group or stat now checks global scope from any owner's trait
- The AI now reads global traits and stats under Global headings, before your persona's block
- World, character and library files now store a trait stat row's target as
global - The wiki and help window now say global stats, global traits and persona stats
- Persona
- A chip's Header can now hold the Player Name built-in, in every format
- The AI's notes now list your persona's own stats inside its block, and your world's global stats under Global Stats
- Under Staged thinking, each character now plans its turn with its own stats in view
- The Test Bench's AI Context tab now lists a Persona block, before Stats and Traits
- Stat Code
- A stat code bound write sets the number, and traits and the AI move it from there
- A new Dice Roll With Consequences template rolls a d20, pins a placeholder, and changes two other stats
- A stat's code now keeps a value above its old max when other code or a trait raises that max
- Stat Conditions
- The Availability tab can gate a trait on a stat, such as Rage >= 80
- Stat-gated traits turn off and return in play as their stat crosses the threshold
- Test Bench warns when a trait requires a stat it changes, or a percent of a stat with no range
- Visibility Rules
- Each gallery image now has a cog that sets its Visibility rule
- An entity's image in play now follows its Visibility rules as the story changes
- Test Bench warns when a Visibility rule names something missing or every image of an entity can hide
- The wiki and help window now explain Visibility rules and stat Conditions
- The World Editor now says Owner, not Bearer, for the entity or dictionary that holds a trait, stat or placeholder
- Selecting a placed chip now opens Chip Options, a dialog that shows what the AI reads as you pick
- The AI now updates your stats with fewer wrong-direction and made-up changes
- The World Editor's Content group now lists Entities first and Stats last
- A new Time Per Turn setting sets the story time each turn adds while Measured Clock is off
- The stat panel's Regen field now takes a unit, so a stat can regen 1 per day
- A new Autosaves Kept setting keeps the last few autosaves for each world, named by turn
- Four bundled worlds now show placeholder ownership on the World Editor's Placeholders tab
- The Tool script's Variable menu now works like stat code's, one level at a time down to a field
Fixed
- The placeholder and tag suggestion lists of an editor field no longer cover the help window
- The in-game Map no longer shows Connection travel hints, only the lines
- Loading a save in game no longer shows stat changes from the turn before the load
- A dictionary entry's Whole Words checkbox now works with Regex keywords
- The World Editor refuses a drag into Blueprints while something still reads the trait or stat
- A click or Escape in the help window no longer closes a menu, popover, list or dialog below it
- Regenerate Memory and a character's Regenerate wait for background passes, with a spinner you can cancel
- An image request that can't reach the image server now names the server and what to check
- The World Editor's Auto Save setting is now Autosave, the name the game's saves use
- Code completion now lists members after chains with spaces or
?., and nothing in comments - Escape in a code box inside a dialog now closes only the completion list
- A prompt routed to an endpoint now uses that endpoint's detected context window in game
- Community Creations thumbnails now show in browsers that can't cache them, such as Safari
3.2.3
Added
- History
- The World Editor has undo, redo and a History list for your world's edits
- Undo in the World Editor returns you to the tab where you made the edit
- Undo in the World Editor returns you to the sub-tab or view where you made the edit
- Undo and redo in the World Editor restore every location you had selected on the canvas
- Undo and redo in the World Editor scroll to the text field you edited and pulse it
- Typing in a different field, tab or selection starts a new undo step in the World Editor
- Undo and redo in the World Editor pulse the checkbox, select or option group you changed
- Auto Save
- The World Editor's Save button now has a menu with Export World, and Optimize Images is its own icon
- The World Editor's Save button shows Saving…, then Saved, and fades back to a dim Save
- The World Editor saves on its own after about 300 characters or 30 actions, or after a 30-second pause
- Settings now has Auto Save and Auto Save Pause for the World Editor
- The World Editor asks which copy to keep when another tab saves or deletes the same world
- The World Editor asks before you close or reload the tab with unsaved changes
- Leaving the World Editor waits for a save that is still running
- Traits
- The Requires field in the World Editor takes rows: a row unlocks the trait when all its requirements hold
- A requirement can require a trait to be off: flip its chip to Not
- The Availability tab shows Mode, Starts and In Game as three rows with one rule sentence
- Test Bench flags requirements that loop through Not and rows that can never hold
- Ctrl+S saves the world in the World Editor
- Ctrl+B and Ctrl+I make text bold or italic in fields with a formatting toolbar
- Choices stream in word by word, one choice after another, once the narration finishes
Fixed
- Narration
- Paging away from narration that is still fading in, then back, now shows all the text that has arrived
- Fade-in narration now keeps an even pace with slow models
- The narration card now grows with the words as they fade in
- Tooltips
- A tooltip now closes when you scroll
- A tooltip now closes when you press, right-click or start a drag
- A tooltip now closes when focus moves elsewhere, the window loses focus or the tab is hidden
- The Copied bubble on a help code block now closes when you scroll, press, right-click or start a drag
- Exit Without Saving in the in-game World Editor now drops the edits you made since the last save
- The app and the wiki now say In Game for the time after a game starts
- Test Bench now names the right requirements when a linked trait's default starts unselected
- The markdown Preview now shows every edit inside a list, a quote or a multi-line paragraph
- Player Name and Character Name chips line up with other chips, and the Values tab shows what they become
- A supporter's profile image sits centered in its ring in comments and notifications
- A toast's close button and View Details link now work while a dialog is open
- The ring that undo and Take Me There draw around a field shows in full at a scroll area's edge
3.2.2
Fixed
- Safari and iOS open the app without an error toast on every load