Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    I'll give it a try. I didn't really need that particular UI, but I was just testing with what was already working in the demo scene.
     
  2. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi OK, I switched to the standard UI and it works now.

    Now, I'm struggling with how to make the dialogue system work for both editor and game console. When running in the editor I need to interact with keyboard and mouse, but when I build for the Wii U, I need it to work for the gamepad. Is there some standard way to support both? Or will I need to modify code to switch things up when in editor versus standalone mode?
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Great! Standard UI is the way to go. It's more efficient and nicer to work with than legacy OnGUI.

    It's automatic. The Dialogue Manager's Input Device Manager component handles it. But there are some settings you may need to check.

    The Input Device Manager has an Input Device dropdown. Its starting value is Joystick. When the value is Joystick, it hides the mouse cursor and auto-focuses UI buttons so you can navigate them with the gamepad.

    If you move the mouse or click a mouse button, Input Device changes to Mouse. When the value is Mouse, it shows the mouse cursor and does not auto-focus UI buttons. Since the Wii U doesn't have a mouse, it should never switch to Mouse.

    If you press a joystick button, Input Device will switch back to Joystick. You can also specify joystick axes to check. The easiest way is to click the Check Joystick Axes button in the Inspector. This will automatically add Input Manager definitions for joystick axes and assign them to the Input Device Manager's Joystick Axes To Check list.

    Here are some options to be aware of:
    • To always auto focus UI buttons, even if the player is using a mouse, tick Always Auto Focus.
    • To prevent switching to Mouse mode, untick Detect Mouse Control.
    • To prevent the Input Device Manager from controlling the mouse's visibility, untick Control Cursor State.
    One other thing to keep in mind is that, in the Unity editor, if you press Escape, the editor will always show the mouse cursor.
     
    magique likes this.
  4. Azure123

    Azure123

    Joined:
    Feb 20, 2017
    Posts:
    2
    Hi @TonyLi
    I received the errors in the image below after importing the TopDown Engine Support package, any idea what is causing this and how to fix it? Using Unity 2019.1.2f1

    Thanks

    Dialogue error.PNG
    Dialogue code.PNG
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    TopDown Engine & Invector Integrations Updated

    The Dialogue System Extras page has updated integrations for More Mountains' TopDown Engine (@Azure123) and Invector's latest controller versions.

    ---

    May Madness Sale Ending Soon!

    The Dialogue System for Unity is the Asset Store's battle-tested and production-ready solution for conversations and quests, as seen in dozens of games such as Last Epoch, Crossing Souls, The Last Door, Jenny LeClue: Detectivu, City of the Shroud, Disco Elysium, Mask of Semblance, Father and Son, Terra Monsters, When Silence Fell, Grimsfield, Heroes of Issachar, State of Extinction, and many many more. And for just a few more hours you can get it for 50% off in the May Madness Sale.
     
  7. mikemuk01

    mikemuk01

    Joined:
    Dec 1, 2016
    Posts:
    39
    Hi Tony. I have dialogue databases in 3 scenes and if I start the game in any one of those scenes it works perfectly, but if I then go into one of the other scenes using an Adventure Creator hotspot I get a message saying that the dialogue database cannot be found. How can I fix that please?
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @mikemuk01 - Make sure the Dialogue Manager's Other Settings > Dont Destroy On Load and Allow Only One Instance are both ticked. This should allow the Dialogue Manager to carry through to the other scenes. You can also put a Dialogue Manager in the other scenes. With Allow Only One Instance ticked, the Dialogue Manager that carries through from the previous scene will automatically get rid of it at runtime so there's only one. But if you want to playtest that scene directly, without coming from another scene, there will be a Dialogue Manager so the Dialogue System won't complain.

    If that doesn't help, at what point does the error message appear? Can you click on it in the Console window, press Ctrl+C to copy it to the clipboard, and then paste it here?
     
  9. mikemuk01

    mikemuk01

    Joined:
    Dec 1, 2016
    Posts:
    39
    Thank you once again Tony for such a quick and problem solving response. Do you ever sleep?
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Sleep? What's that? ;)
     
    hopeful likes this.
  11. Azure123

    Azure123

    Joined:
    Feb 20, 2017
    Posts:
    2
    Great work, Thanks! @TonyLi
     
    TonyLi likes this.
  12. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,257
    Hi, do you have a video that show me how to integrate articy draft?
    Do the latest version work with the latest official unity version wich is 2019.1.2f1?
    Also do it work with articy draft 3.1.14 ?

    Edit:
    Do you give support with discord?
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @RandAlThor - Here you go:


    Yes to both.

    One of my new year's resolutions is to set up discord channels. The year's not over yet. ;)
     
  14. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,257
    Nice thank you.
    Just one question, how would you setup all the menu words in different languages in articy so dialogue system can use it as best as possible?
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    articy:draft has a Localization plugin. To use it with the Dialogue System, import the articy:draft Localization Importer package located in the Third Party Support folder. (Manual page)
     
  16. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,257
    So thats what i read in your documentation before but i do not find the localisation plugin on navigos download site and the two videos from the youtube site from navigo do two other ways and now i am confused.

    Edit:
    I am sorry, after rereading it i understand that it is a part of the unity import/export plugin or package.
     
    Last edited: May 16, 2019
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    It's built into articy. To get it all into Unity, you'll do two exports.

    First, export XML so you can use the Dialogue System's articy Import window to import it into a dialogue database.

    Second, export unity format, and tick Enable localization support and create MS Excel file(s):

    upload_2019-5-16_13-50-6.png
     
  18. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,257
    Your support is the best as always !
    Thank you.
     
    TonyLi likes this.
  19. mikemuk01

    mikemuk01

    Joined:
    Dec 1, 2016
    Posts:
    39
    Hi Tony. I hope you managed at least 40 winks . I have set up the Dialogue Manager with the Runic Standard Dialogue UI and the Runic Unity UI Quest Tracker HUD. Don’t Destroy on Load is unchecked and the prefab is in every scene. This works fine for dialogue, each scene showing the correct Dialogue Database, but the Quest Tracker HUD only shows the quest accepted in the scene where it was accepted. In other scenes it shows no quests accepted. How can I get the quest details to follow from scene to scene please?
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @mikemuk01 - The Dialogue Manager holds the Dialogue System's state (variables, quest states, etc.). When the scene change destroys the Dialogue Manager, it loses the Dialogue System's state. This is why Don't Destroy On Load is ticked by default.

    You can still use Don't Destroy On Load with multiple databases. First run your databases through the Unique ID Tool to ensure that they don't have any conflicting internal ID numbers. Then use the Extra Databases component to load your additional databases.

    If you want to keep it unticked, use the save system. Add these components to the Dialogue Manager: Save System, Dialogue System Saver, a data serializer (such as JsonDataSerializer), and a saved game data storer (such as PlayerPrefsSavedGameDataStorer). Then use one of the Dialogue System's methods to change scenes. Any of these will work:
    • LoadLevel() sequencer command
    • ScenePortal component
    • SaveSystem.LoadScene() method in a C# script
    • SaveSystemMethods.LoadScene() to hook up to a UnityEvent such as a UI button's OnClick() or a Trigger Event.
    This will save the Dialogue System's state before leaving the old scene, and then reapply it after entering the new scene. However, if a quest in the old scene doesn't exist in both databases (old scene and new scene), its state won't be reapplied because there won't be a quest to apply it to.
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Dialogue System 2.1.6 Released!

    Version 2.1.6 is now available for download on the Pixel Crushers customer download site. (PM me your Asset Store invoice number if you need access.) It should be available on the Asset Store in a few business days.


    Version 2.1.6 Release Notes

    Core
    • Added: ClearSubtitleText(#|all) sequencer command.
    • Improved: Added Dialogue Manager > Localization Settings button to clear PlayerPrefs key.
    • Improved: Dialogue System Trigger Start Conversation Start at Entry now shows dropdown for entry choices.
    • Improved: Timeline Start Conversation Start at Entry now shows dropdown for entry choices.
    • Improved: CinemachinePriority() sequencer command now has 'cut' option.
    • Improved: Custom-registered Lua functions now report exceptions that are traceable.
    • Improved: UnityUIDialogueUI.CheckForSupercededSubtitle now exposed to subclasses.
    • Improved: UnityUIQuestTracker formerly private fields now exposed to subclasses.
    • Improved: TextTable: Added right-click context menu to insert/delete fields.
    • Improved: Text Table: CSV import retains in order from file, now handles blank lines gracefully.
    • Improved: TextTable: Editor window remembers last tab.
    • Improved: Destructible Saver: Eliminated message about missing Save System when exiting playmode.
    • Fixed: Dialogue System Trigger OnCollisionEnter and OnCollisionExit weren't triggering in 2D.
    • Fixed: Fade(stay) command set opacity wrong at end (bug introduced in 2.1.5).
    • Fixed: CSV import Global User Script sometimes had extra commas when exported from Google Sheets.
    • Fixed: SetDialoguePanel() sequencer bug that caused animated subtitle panels to not reappear.
    • Fixed: TextMeshPro: Fixed typewriter effect bug with text containing rich text codes and subtitle panel Accumulate Text checkbox ticked.
    Third Party Support
    • Adventure Creator: If Conversation action set to wait until finished is now compatible with simultaneous converations.
    • articy:draft: Clear button now also resets window settings.
    • Invector: Updated to latest versions.
    • Inventory Pro: Added OpenVendor() Lua function.
    • PlayMaker:
      • Start Conversation action now shows dropdown for entry choices.
      • Sync GameObject and Sync GameObject Array actions can now load GameObjects from Resources or assetbundles.
    • SLATE: Start Conversation action now shows dropdown for entry choices.
    • TopDown Engine: Updated to 1.3.
    • uMMORPG: Added OpenTrading(), OpenGuild(), and OpenRevive() Lua functions.
    • uRPG: Updated for uRPG 1.12.
     
    Candy-Bomber likes this.
  22. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi I'm getting my quest conversations built in my game, but I can't seem to get something to work. I am using Sickscore Games HUD Navigation System and I have a HUD Navigation element attached to a location in the game. When the player asks for lodging, the NPC responds that the Inn is a great place to go and he will mark it on the player's compass. At this point, I want to enable the HUD Navigation element on the Inn. So, I am trying to drag the game object into the Object field of the OnExecute() event, but it won't let me do that. Is this not the intention of this feature?

    [EDIT]
    It seems to allow dragging objects in the project, but not the scene. I think I understand why it can't reference scene elements here so how do I get something like this to work?
     
  23. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    @magique - Dialogue databases don't exist within a scene, so they can't reference scene elements.

    If you just want to activate a GameObject, first make sure it has a unique name. Then drag it into the Sequence field. This will add a SetActive(gameObject,true) command. You'll probably also want to click "+" > Include Dialogue Manager's Default Sequence to add that to the Sequence field, too, in this case.

    To enable a component on a GameObject, use the SetEnabled() sequencer command.

    If you need to do something different with HUD Navigation, write a small sequencer command. There's a fully-commented starter template script in the Templates/Scripts folder. This is what the integrations for Compass Navigator Pro, KGFMapSystem, etc., do.
     
  24. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    This is what I want. I'm not quite getting this though. When I drag the object to the Sequence field, this is what I get:

    Camera(default,GriffInn-Waypoint);
    {{default}}

    So, not really sure how to invoke the SetActive call as you suggest.
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Through the "+" menu, you can specify what command to apply to GameObjects that you drag into the Sequence field. You can change this to SetActive(GameObject,true):

    upload_2019-5-18_15-16-26.png

    However, it be easier to simply type:

    SetActive(GriffInn,true); {{default}}

    into the Sequence field manually.
     
  26. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    Now it makes sense. That worked great. Thanks so much.
     
    TonyLi likes this.
  27. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi I'm seeing an issue where the camera jumps when entering a conversation and also during the conversation when going from NPC to Player test, etc. Here is a video of the issue. I'm sure it's probably some setting, but I don't know what to look for.

     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    @magique - Check the Dialogue Manager's Camera & Cutscene Settings > Default Sequence and Default Player Sequence for Camera() sequencer commands. You probably just want Default Sequence to be Delay({{end}}) and Default Player Sequence to be blank. Then check the dialogue entry nodes' Sequence fields.
     
  29. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    Perfect. That was it. Thanks again for the super awesome support. It looks so smooth now.
     
    TonyLi likes this.
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Dialogue System for Unity 2.1.6 Released

    Version 2.1.6 is now available on the Asset Store. A recap of the version notes is below. If you're using the latest versions of any of these third party assets, import the updated integration packages to get all the recent improvements: Adventure Creator, articy:draft, Invector, Inventory Pro, PlayMaker, SLATE, TopDown Engine, uMMORPG, and uRPG.


    Version 2.1.6 Release Notes

    Core
    • Added: ClearSubtitleText(#|all) sequencer command.
    • Improved: Added Dialogue Manager > Localization Settings button to clear PlayerPrefs key.
    • Improved: Dialogue System Trigger Start Conversation Start at Entry now shows dropdown for entry choices.
    • Improved: Timeline Start Conversation Start at Entry now shows dropdown for entry choices.
    • Improved: CinemachinePriority() sequencer command now has 'cut' option.
    • Improved: Custom-registered Lua functions now report exceptions that are traceable.
    • Improved: UnityUIDialogueUI.CheckForSupercededSubtitle now exposed to subclasses.
    • Improved: UnityUIQuestTracker formerly private fields now exposed to subclasses.
    • Improved: TextTable: Added right-click context menu to insert/delete fields.
    • Improved: Text Table: CSV import retains in order from file, now handles blank lines gracefully.
    • Improved: TextTable: Editor window remembers last tab.
    • Improved: Destructible Saver: Eliminated message about missing Save System when exiting playmode.
    • Fixed: Dialogue System Trigger OnCollisionEnter and OnCollisionExit weren't triggering in 2D.
    • Fixed: Fade(stay) command set opacity wrong at end (bug introduced in 2.1.5).
    • Fixed: CSV import Global User Script sometimes had extra commas when exported from Google Sheets.
    • Fixed: SetDialoguePanel() sequencer bug that caused animated subtitle panels to not reappear.
    • Fixed: TextMeshPro: Fixed typewriter effect bug with text containing rich text codes and subtitle panel Accumulate Text checkbox ticked.
    Third Party Support
    • Adventure Creator: If Conversation action set to wait until finished is now compatible with simultaneous converations.
    • articy:draft: Clear button now also resets window settings.
    • Invector: Updated to latest versions.
    • Inventory Pro: Added OpenVendor() Lua function.
    • PlayMaker:
      • Start Conversation action now shows dropdown for entry choices.
      • Sync GameObject and Sync GameObject Array actions can now load GameObjects from Resources or assetbundles.
    • SLATE: Start Conversation action now shows dropdown for entry choices.
    • TopDown Engine: Updated to 1.3.
    • uMMORPG: Added OpenTrading(), OpenGuild(), and OpenRevive() Lua functions.
    • uRPG: Updated for uRPG 1.12.
     
    Akshara, Candy-Bomber and SickaGamer like this.
  31. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi I'm setting up some scene portals and something isn't quite right. When my Invector player arrives in the new scene, messages appear at the top of the display saying Restarting Scene.. and then immediately You Are Dead and my character drops dead. It then respawns a couple of seconds later and my dead body is at my feet. I have the InvectorStatsSaver component on both player instances in each scene and Key is blank with Append Saver Type to Key and Save Across Scene Changes both checked.
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @magique - If you're using Dialogue System 2.1.5 or earlier, please import the updated Invector Support package from the Dialogue System Extras page. A recent change in Invector required an update to the InvectorStatsSaver component. If you're using Dialogue System 2.1.6, please import the included Invector Support package.
     
  33. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    I just got it worked out. I was first using the Scene Portal EMM and having other strange issues so I switched to the plain Scene Portal instead and that worked better except for the dying issue and no longer having the integration with EMM. But then I found that my controller was set to Use Instance. When I unchecked that and went back to Scene Portal EMM then it started working correctly.
     
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi I'm still having the issue where if a weapon is equipped that it is no longer equipped when portalling to a new scene. I'm on 2.1.5. Is this issue fixed in 2.1.6 or a newer Invector support package?
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @magique - That's a known issue. I'm working on a fix this week. Once it's implemented, you shouldn't need to do anything except import the updated Invector Support package.
     
    magique likes this.
  36. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi OK, so I thought everything was working, but now that I've gone to the next step I'm seeing a problem with scene portals. It might be just because it's the EMM scene portal, but I'm not sure. I'm not able to get the player to actually move to the spawn point in the scene that I am transitioning to. Wherever the instance of the player is in the new scene is exactly where the player remains when the scene transitions. I've checked a few things and here is what I have:

    The PositionSaver has the Save Across Scene Changes and Use Player Spawnpoint checked. And the Scene Portal EMM component has the Spawnpoint Name in Destination set to the exact name of the spawnpoint in the scene to be loaded.

    [EDIT]
    And just found another issue. If I do a Quick Save of the game and then load that save then the character just dies right at that point.

    [EDIT 2]
    I will try the updated support package. I might already have it, but I will try it and let you know.

    [EDIT 3]
    OK, so the updated support package fixes the dying issue on loading the quick save, but the scene portals still don't go to the spawnpoint.
     
    Last edited: May 23, 2019
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    @magique - Invector may also be configured to move the player to its own kind of spawnpoint. You may need to increase the Save System's Frames To Wait Before Apply Data to a higher value such as 3. This will allow it to move the player to the spawnpoint after Invector has finished its initialization.

    Also, make sure you've assigned unique keys to each of the saver components on the player.
     
  38. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    Changing the frames to wait didn't help. I even made it 30 and it still didn't move the player. So, it seems like that code isn't executing. Where would that code be so I can put debug or a breakpoint to check for execution?
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    It may be EMM. Or maybe there's a typo in the spawnpoint name. I just tested in a project without EMM, and the Save System's Frames To Wait Before Apply Data can be as low as 1.

    You can put breakpoints in two scripts:
    1. SaveSystem.cs line 641 (near the end of LoadSceneCoroutine). Make sure it finds the spawnpoint.

    2. PositionSaver.cs line 108 (the first line of ApplyData). Make sure it uses the first 'if' section:
      if (usePlayerSpawnpoint && SaveSystem.playerSpawnpoint != null)
      {
      SetPosition(SaveSystem.playerSpawnpoint.transform.position,...
      }
     
  40. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    So, all that code is bypassed when using EMM. The ScenePortalEMM script overrides the normal UsePortal and stores the scene transition info for EMM to take over and load the scene using the LoadingScene. At that point, there's no connection with DS at all,
     
  41. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi Is there a newer ScenePortalEMM script? I tried to find one in DS third party support and also in the EMM asset, but there isn't any. The one I got was posted by you here in the forums a long time ago.
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @magique - I'm checking now. If not, I'll check it with Invector and update it as necessary.
     
    magique likes this.
  43. mikemuk01

    mikemuk01

    Joined:
    Dec 1, 2016
    Posts:
    39
    Hi Tony. I have conversations in 5 different scenes. The Dialogue Manager is in the opening scene and the extra databases are entered there. The opening scene and 2 others work fine, but the remaining 2 scenes just show the opening scene dialogue again. I am using Adventure Creator action lists to trigger the conversations. As far as I can tell all the scenes are set up in the same way, yet 2 of them don’t work properly. Is there a way to fix this please?
     
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Hi @mikemuk01 - Are there any messages in the Console window?
     
  45. mikemuk01

    mikemuk01

    Joined:
    Dec 1, 2016
    Posts:
    39
    There are 2 messages in the console window. One from Dialogue System saying there is no Event System, adding one, and one from Adventure Creator saying a local Event System was found and it may cause problems
     
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    You can clear those up by inspecting your dialogue UI and unticking Add Event System If Needed since Adventure Creator will take care of adding one. If you have a quest log window, untick the same checkbox on it, too.

    Those messages aren't related to the conversation issue, however. Are you sure the AC action list is running and that it's getting to the Dialogue System Conversation action?

    Also, if you've updated to the latest version of the Dialogue System, you can also import the latest Third Party Support / Adventure Creator Support package that's included with it. I don't think it will address the issue, but at least you'll be on the latest.
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    @magique - Sorry for the delay in checking EMMScenePortal (correction: ScenePortalEMM). I'm getting through support requests as quickly as I can today.
     
    Last edited: May 23, 2019
  48. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    No worries. I'm not blocked since I can continue on other aspects of the game. So, I'm working on some quests while I wait on a solution.
     
  49. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,414
    @TonyLi When you last posted you typed EMMScenePortal, but the one I have is named ScenePortalEMM, I'm just wondering if you made a typo or is there actually a newer script that is now called EMMScenePortal?
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    9,317
    Just a typo, sorry.