I am currently utilizing the guide found at rentry to work with custom JavaScript scripts for the AI chat: https://perchance.org/ai-character-chat.

According to the guide:

shortcutButtons - this is an array of objects structured as {autoSend:false, insertionType:"replace", message:"/ai be silly", name: "silly response", clearAfterSend:true}. When a new chat thread is initiated, a copy of these shortcutButtons is transferred to the thread. Therefore, to modify the current buttons in the thread, you should adjust oc.thread.shortcutButtons. Only modify oc.character.shortcutButtons if you intend to change the buttons available for all future chat threads associated with this character.

The script I am implementing can alter the oc.thread.shortcutButtons array; however, the changes are not appearing in the chat window, which continues to display the previous list.

oc.thread.shortcutButtons = [{autoSend:false, insertionType:"replace", message:"/ai be silly", name: "silly response", clearAfterSend:true}];

Interestingly, when I manually refresh the page, the chat window correctly reflects the updated list of shortcut button options. I would prefer the updates to occur without needing to reload, similar to how messages are updated in real-time.

Has anyone else encountered this issue? If so, were you able to resolve it?

  • VioneTM
    link
    English
    12 days ago

    @[email protected] pinging dev. Though, you can try to set a temporary value to a character custom data since that triggers updates like oc.character.customData.test = ''.

    • @templexzoom69OP
      link
      English
      1
      edit-2
      2 days ago

      @[email protected] Thank you for your response.

      I had attempted to set the customData for the thread using oc.thread.customData.test = ''. Unfortunately, this approach had not yielded the desired results.

      I still need to explore updating the customData for the character rather than the thread.

      It seems to me that the method for (re)rendering the shortcut buttons is probably not getting executed when the thread is performing any save operations, although I could be mistaken.