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.


Name & Title UI Colors

Through Studio:

  • Just like the preset rigs I’ve made, each NPC’s head typically contains a BillboardGUI named “Overhead”, which includes two TextLabels: Name and Title.
  • If a BillboardGUI with Name and Title is detected anywhere in the NPC’s model, the script will automatically copy their colors.
  • If no BillboardGUI is found inside the NPC’s body, you can manually edit the name and title colors through the script.

Through Script:

  • You can directly set the colors of the NPC’s name and title by adding the optional fields npcNameColor and npcTitleColor to your dialogueData entries.
  • These fields should be assigned a Color3 value. For example:
npcNameColor = Color3.fromRGB(127, 127, 255),  -- sets the name color to a light blue
npcTitleColor = Color3.fromRGB(255, 170, 255),   -- sets the title color to a light pink
  • This feature is only avaliable if the “Through Studio” option isn’t applied.

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

10 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:

did somebody told you about it or you just somehow really “accidentally” found it?

i was browing through roblox github stuff

did it contain rbxl file?
or rbxm files?

well obviously

die


i updated
this bozo exists now

new updat
image
colr @everyone @everyone @everyone @everyone @everyone

@everyone doesnt do anything so stfu

i forgot to mention

Some of the dialogue is WILD :sob: thanks for sharing this is pretty cool!

1 Like

oh this is sick man, surprised i didnt see this before

1 Like