AO's Dialog System Recreation [OPEN SOURCE]

Hi.
I had the idea to recreate AO’s dialog system to match the original game’s as close as I could.

and i did, so im releasing it open source.

DISCLAIMER:

MUST READ!!!

  • This is open source.

  • Though i’m flattered, this is NOT the original game’s dialog system.
    the base of the dialog system is made by @CrazieKing , who released his
    AO dialog system in JTN’s discord server. I just coded it to be more like AO’s.

  • This DOES use some assets of the original game (e.g, dialog UI, dialog sound)
    the rest (like lighting, titles, etc) is publicly released.
    unfortunately enough, I couldn’t get permission to use the game’s assets (I tried asking JTN very nicely, but instead got blocked somewhy), so for that reason, i will delete the game upon request. please don’t ban me.
    if you wonder how I even got the assets I used here, for whatever reason there is a decompiled version of an older AO on a github?? (which i will NOT share, unless you’re an admin or a mod who wants to do something about that thing)

GUIDE:

  • This is a very, very easy system to use.
    It doesn’t rely on external scripts, and runs on only one.
    In Studio, go to WorkspacePlace Name (contains the rigs).

Adding Dialogue:
find dialogueData and add a new entry:

dialogueData.Rig1 = {
    npcName = "name", 
    npcTitle = "title",
    dialogues = {
        {
            response = "die",
            text = "uwu",
            UnskippableDialogue = false,
            pitch = 1.0
            animation = "rbxassetid://123456789"
        }
    }
}

Key fields:

  • response: Your response to the text
  • text: NPC dialogue (supports color formatting)
  • UnskippableDialogue: Prevents skipping (if set to true)
  • pitch: Adjusts the pitch of the text sound
  • animation: (Optional) NPC animation
  • Obviously, name and title represent the name and title of the NPC

Adding a New NPC:

  1. Create a new model inside PlaceName (e.g, "Rig3").
  2. Add a ProximityPrompt inside the model (name it "Prompt").
  3. Update dialogueData:
dialogueData.Rig3 = {
    npcName = "king calvus",
    npcTitle = "king of ravena,
    dialogues = {
        {
            response = "shut the fuck up",
            text = "I am king calves",
            UnskippableDialogue = false,
            pitch = 1.0
        }
    }
}
  1. Connect Prompt to the Script:
PlaceName.Rig3.Prompt.Triggered:Connect(function()
    if not MainGUI.Enabled then
        PlaceName.Rig3.Prompt.Enabled = false
        ShowGUI()
        StartDialogue("Rig3")
    end
end)

How to Use Colors in Dialogue

Use <font color="#HEXCODE">Your Text</font> inside the text field.

Example:

text = "hi, <font color=\"#FF0000\">this is red text</font>!"

This will display: hi, this is red text (in red).
Inside the script there is actually a color cheat-sheet you can select colors from.

NPC Idle Animation

  • This uses an external script.
    You can find it in one of the preexisting rigs and edit it to your liking.

As I’ve mentioned before, I aimed to make this as close as possible to the actual dialog system in AO, for that reason using it here is just like using it in the actual game.

keep in mind that I WILL remove this upon request, so if you want this gone— just hit me up. don’t ban me pls. I am trying to do something good here :disappointed_relieved:

GAME LINK

4 Likes

pretty dope but

joke

also what

i will only disclose such information with a mod…

i am a mod send me the link please

:fu::fu::fu: :angry: :heart_eyes: