Giter VIP home page Giter VIP logo

roblox-dialogue-maker's Introduction

Roblox Dialogue Maker plugin

About

The Dialogue Maker is an open-source plugin for creating RPG-like dialogue boxes for NPCs in your Roblox game! It comes with a GUI that allows you to add messages and player responses to your NPCs.

Features

  • Responsive dialogue editor
  • Trigger dialogue with proximity regions and ClickDetectors
  • Prioritize your dialogue with conditions and message stacking
  • Run functions before and after a message
  • Impose dialogue timeouts
  • Embed variables that are customizable throughout the conversation
  • Add responses for the player to add interactivity to the conversation
  • Add dialogue redirects
  • Customize themes per NPC and per screen size
  • Add message pauses

Where can I get it?

You can either get the version Beastslash updates at the Roblox Library or you can build your own version by using the scripts in this repository.

How do I use it?

Check out How to use the Dialogue Maker on the wiki!

Can I contribute?

Sure! If you feel like that the Dialogue Maker can be improved for everyone, just send a feature request in the issues. You could also submit a pull request if you already added it yourself. Beastslash will sync changes made between the plugin and repository.

Acknowledgements

roblox-dialogue-maker's People

Contributors

bhickey94 avatar christian-toney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

roblox-dialogue-maker's Issues

Wait tags break when there's more than one

โœ… Expected behavior

The dialogue should pause at each wait tag.

๐Ÿ’” Actual behavior

The client refuses to render wait tags when there are more than one in a message.

๐Ÿ“ธ Screenshots

image

Dialogue should be removable

Dialogue can't be deleted unless I manually go to the NPC's DialogueContainer and delete the dialogue folder. This is too much just to delete one message.

View Parent always goes to the root directory

Behavior

What should happen: My view should be placed in a directory that's one parent above the current directory.

What actually happens:

  • The Dialogue Maker goes to the root directory (1).
  • The current directory number isn't shown; it only says "Viewing".
  • Pressing View Parent again causes the following error:
14:23:48.643 - Dialogue is not a valid member of Model
14:23:48.646 - Stack Begin
14:23:48.649 - Script 'Plugin_4880346258.DialoguePluginScript', Line 77
14:23:48.651 - Stack End

Reproduction

Method:

  1. Open the Dialogue Maker editor after selecting a model.
  2. Create a new dialogue.
  3. Open that dialogue's children.
  4. Repeat steps 2 and 3.
  5. Press View Parent.

Frequency: Happens all of the time.

Parse messages using ContentArray

This will help with adding text effects.

Completion criteria for developers

Make the redirect and response buttons more explicit

regarding feedback:

image
image

Completion criteria for developers

Make ClickToContinue button optional

Current workarounds

  • Change the ImageTransparency of both circles to 1
  • Add a LocalScript in the ClickToContinue button with the following code:
script.Parent:GetPropertyChangedSignal("Visible"):Connect(function()
  if script.Parent.Visible then
    script.Parent.Visible = false;
  end
end)

Completion criteria for developers

Use ModuleScripts instead of Folders, StringValues, and BoolValues

New features

Dialogue Maker allows dialogue creation after deleting an NPC's DialogueContainer

Behavior

What should happen: Dialogue Maker should warn the user that the folder no longer exists, create a new folder, then take them back to the root directory.

What actually happens: Dialogue Maker allows me to make dialogue, but it isn't saved in the NPC's DialogueContainer because it doesn't exist.

Reproduction

Method:

  1. Open the Dialogue Maker editor after selecting a model.
  2. Create a new dialogue.
  3. Go into Object Explorer and delete the DialogueContainer folder that is in the NPC model.
  4. Create a new dialogue.

Frequency: Happens all of the time.

Can't undo and redo in TextBox

I feel like this might be a Roblox issue. I wonder if this can be fixed using events.

Completion criteria for developers

Dialogue sound effects

A sound effect when the player clicks the box would be nice.

This'll probably be in the NPC settings.

Fix bug in SpeechBubbles

The SpeechBubble offset is broken due to an incorrect property name in ClientAPI script. Line 63 reads

SpeechBubbles[npc].StudsOffset = properties.StudsOffset

but the property name in the Settings script on line 21 is SpeechBubbleStudsOffset

SpeechBubbleStudsOffset = Vector3.new(0,4,0); -- Replace this with how far you want the speech bubble to be from the NPC's head. Measured in studs. [accepts Vector3]

This causes the the ClientAPI to throw an error "expects Vector3, got nil" or similar. Changing the reference to the correct property in ClientAPI fixes this problem:

SpeechBubbles[npc].StudsOffset = properties.SpeechBubbleStudsOffset

After the player dies, conversations can't be held with NPCs

Behavior

What should happen: Conversation should reset.

What actually happens: Conversations can't be held with NPCs.

Reproduction

Method:

  1. Have a conversation with an NPC, but don't exit the dialogue.
  2. Die.
  3. Try to trigger a conversation with an NPC.

Frequency: Happens all of the time.

Can't change priorities using UI

Completion criteria for developers

No tasks being tracked yet.

Dialogue can't be seen after the 7th priority

Behavior

What should happen: A scrollbar should appear on the right side of the frame when there are more priorities than the frame can fit.

What actually happens: No scrollbar appears, yet the dialogue is created in the folder.

Picture:

image

Reproduction

Method:

  1. Open the Dialogue Maker editor after selecting a model.
  2. Create 7 new messages.

Frequency: Happens all of the time.

The shown directory number should be truncated if it's too long

If the user enters a directory that is really deep, then the directory number becomes illegible. This not only looks bad on the GUI; it prevents the user from easily being able to add redirects that point to said directory.

Picture:

image

Solution: Truncate the directory number and print full version to the console.

Add types and enable strict mode in scripts

This may require an overhaul of the entire code.

Completion criteria for developers

Redirects are misinterpreted with higher priority dialogue

Behavior

What should happen: Redirects should point to dialogue on a different priority.

What actually happens: The redirect gets trumped by higher priority dialogue.

Reproduction

Method:

  1. Open the Dialogue Maker editor after selecting a model.
  2. Create two new messages (1.1 and 1.2) on the root directory.
  3. Open the message's children.
  4. Add a new response. (1.1.1)
  5. Open the response's children.
  6. Add a new message. (1.1.1.1)
  7. Open the message's children.
  8. Add a redirect (1.1.1.1.1) pointing to 1.2.
  9. Test the dialogue in-game.

Frequency: Happens all of the time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.