Jump to content
  • Introduction

    Sky Editor is a plugin-based multi-tool for Mystery Dungeon games. One of the plugins allows for the editing of ROMs, and this tutorial will show you how.

    Before we begin, let's understand how exactly Sky Editor works. Most ROM editors simply edit the ROM, leaving you to create distribution patches on your own (because distributing the full ROM is a breach of copyright). Sky Editor takes care of this for you, creating a zip file that contains all of your edits, along with a patcher that can apply those edits to another clean ROM. This zip file is called a "mod pack". Mod packs contain one or more "mods". When patching your ROM, you will be given the option to enable or disable each mod. For example, if a mod pack a mod that changes the available starters and another mod that changes the main menu backgrounds, you can choose to apply both, or you can disable the starter mod so you can enjoy the new backgrounds. Or you can leave the backgrounds as-is and enjoy the starter mod. While Sky Editor is primarily intended to edit ROMs for Pokémon Mystery Dungeon, it can be used for any NDS or 3DS ROM (more on that when I write about the Generic Mod).

    Supported Games

    US and European ROMs generally work fine, but Japanese ROMs might have issues in some cases.

    • Pokémon Mystery Dungeon: Blue Rescue Team (US is supported, Europe is untested and might not work.)
    • Pokémon Mystery Dungeon: Explorers of Sky
    • Pokémon Mystery Dungeon: Gates to Infinity
    • Pokémon Super Mystery Dungeon

    All other NDS and 3DS games can still be used if you would like to create a distributable patcher for edits made using external tools.

    System Requirements

    • Windows with the .Net Framework 4.6.2. Mono will not work.
    • Java, if you want to edit scripts or starters for Pokémon Super Mystery Dungeon or Pokémon Mystery Dungeon: Gates to Infinity.
    • A beefy computer or lots of time. I don't know what the minimum specs are, but the better computer you have, the faster things will run.

    Downloading Sky Editor

    Sky Editor is in active development, and the latest version is available on Team City. Here's how to get it:

    1. Go to the latest successful build on Team City.
    2. Click "Log in as a guest".
      image.png
    3. Click the Artifacts tab.
      image.png
    4. Download the file with the ".zip" extension.
      image.png
    5. Unblock the zip file. This can be done by doing the following:
      1. In Windows Explorer, Right-Click the zip file and click Properties.
        image.png
      2. Click or check Unblock. It may either be a button or a checkbox.
        image.png
      3. Click OK.
    6. Extract the zip file with your favorite zip extractor. I use 7-zip, but any zip extractor should do.
    7. Run "SkyEditor.ROMEditor.UI.WPF.exe".
      image.png

    You should now see the main Sky Editor window. If you do not, please let me know in the comments section below.

    Please note that these steps will need to be repeated for every new build you download, and the exact procedure may change in the future. I recommend following the Sky Editor blog, where I'll announce whenever such a change occurs:

    You can now proceed to the next part of this tutorial:

     

    Edited by evandixon



    User Feedback

    Recommended Comments

    Hi, I tried starting up Sky Editor after some windows updates were installed, and it has this error when I try to open it:

    Quote

    Exception Details:
    System.InvalidOperationException: There is an error in XML document (37, 206). ---> System.Xml.XmlException: 'AutoHideMinWidth' is a duplicate attribute name. Line 37, position 206.
       at System.Xml.XmlTextReaderImpl.Throw(Exception e)
       at System.Xml.XmlTextReaderImpl.AttributeDuplCheck()
       at System.Xml.XmlTextReaderImpl.ParseAttributes()
       at System.Xml.XmlTextReaderImpl.ParseElement()
       at System.Xml.XmlTextReaderImpl.ParseElementContent()
       at System.Xml.XmlReader.ReadEndElement()
       at Xceed.Wpf.AvalonDock.Layout.LayoutRoot.ReadElementList(XmlReader reader)
       at Xceed.Wpf.AvalonDock.Layout.LayoutRoot.ReadXml(XmlReader reader)
       at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
       at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderLayoutRoot.Read1_LayoutRoot()
       --- End of inner exception stack trace ---
       at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
       at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
       at Xceed.Wpf.AvalonDock.Layout.Serialization.XmlLayoutSerializer.Deserialize(TextReader reader)
       at Xceed.Wpf.AvalonDock.Layout.Serialization.XmlLayoutSerializer.Deserialize(String filepath)
       at SkyEditor.UI.WPF.AvalonHelpers.AvalonDockLayoutViewModel.LoadDockingManagerLayout(DockingManager docManager)
       at SkyEditor.UI.WPF.AvalonHelpers.AvalonDockLayoutViewModel._Lambda$__9-0(Object p)
       at SkyEditor.UI.WPF.AvalonHelpers.AvalonDockLayoutSerializer.OnFrameworkElement_Loaded(Object sender, RoutedEventArgs e)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
       at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
       at MS.Internal.LoadedOrUnloadedOperation.DoWork()
       at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
       at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
       at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
       at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
       at System.Windows.Interop.HwndTarget.OnResize()
       at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
       at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)

    Loaded Assemblies:
    --------------------
    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll

    SkyEditor.ROMEditor.UI.WPF, Version=4.1.0.108, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.ROMEditor.UI.WPF.exe

    PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll

    WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll

    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll

    System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll

    PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\WINDOWS\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll

    System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll

    System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll

    System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll

    SkyEditor.UI.WPF, Version=4.1.0.142, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.UI.WPF.dll

    SkyEditor.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.Core.dll

    Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll

    System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

    System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

    Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\Newtonsoft.Json.dll

    System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll

    System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll

    System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll

    System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll

    SkyEditor.ROMEditor.Windows, Version=4.1.0.108, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.ROMEditor.Windows.dll

    SkyEditor.CodeEditor, Version=4.1.0.9, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.CodeEditor.dll

    SkyEditor.CodeEditor.UI.WPF, Version=4.1.0.9, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.CodeEditor.UI.WPF.exe

    SkyEditor.ROMEditor, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\SkyEditor.ROMEditor.dll

    DSPatcher, Version=1.2.0.111, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\DSPatcher.exe

    DotNet3dsToolkit, Version=2.0.0.52, Culture=neutral, PublicKeyToken=null
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\DotNet3dsToolkit.dll

    ICSharpCode.AvalonEdit, Version=5.0.3.0, Culture=neutral, PublicKeyToken=9cc39be672370310
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\ICSharpCode.AvalonEdit.dll

    Xceed.Wpf.AvalonDock, Version=3.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4
    C:\Users\ogles_000\Documents\Game Mods\SKY EDITOR program files\Xceed.Wpf.AvalonDock.dll

    PresentationFramework.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.Aero2\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.Aero2.dll

    PresentationFramework-SystemXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXml\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXml.dll

    PresentationFramework-SystemData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemData\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemData.dll

    PresentationFramework-SystemXmlLinq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXmlLinq\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXmlLinq.dll

    UIAutomationTypes, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll

    System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Deployment\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll

    Microsoft.GeneratedCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    An error occurred while listing the Loaded Assemblies:
    System.NotSupportedException: The invoked member is not supported in a dynamic assembly.
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
       at SkyEditor.UI.WPF.ErrorWindow.UpdateExceptionDetailsMessage()
    --------------------
    User Message:

     

     

    I'm trying to uninstall the update and see if that helps, but its running updates in the background and I can't turn it off yet. Do you have any ideas what this could be?

    Share this comment


    Link to comment
    Share on other sites
    7 hours ago, jollygarchomp said:

    Hi, I tried starting up Sky Editor after some windows updates were installed, and it has this error when I try to open it:

    I'm trying to uninstall the update and see if that helps, but its running updates in the background and I can't turn it off yet. Do you have any ideas what this could be?

    Try deleting AvalonDock.Layout.config. Sounds like it got corrupt somehow.

    Share this comment


    Link to comment
    Share on other sites

    I'm getting this error. 

     

    Quote

    Exception Details:
    System.UnauthorizedAccessException: Access to the path 'Resources' is denied.
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
       at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
       at SkyEditor.Core.CoreSkyEditorPlugin.GetRootResourceDirectory()
       at SkyEditor.Core.CoreSkyEditorPlugin.GetSettingsFilename()
       at SkyEditor.Core.CoreSkyEditorPlugin.GetSettingsProvider(PluginManager manager)
       at SkyEditor.Core.PluginManager.<LoadCore>d__74.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at SkyEditor.UI.WPF.StartupHelpers.VB$StateMachine_2_GetMainWindow.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at SkyEditor.UI.WPF.StartupHelpers.VB$StateMachine_4_ShowMainWindow.MoveNext()

    Loaded Assemblies:
    --------------------
    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll

    SkyEditor.ROMEditor.UI.WPF, Version=4.1.0.145, Culture=neutral, PublicKeyToken=null
    C:\Users\admin\Desktop\SkyEditor.ROMEditor.UI.WPF Build 145\SkyEditor.ROMEditor.UI.WPF.exe

    PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll

    WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll

    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll

    System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll

    PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    C:\Windows\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll

    System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll

    System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll

    System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll

    SkyEditor.UI.WPF, Version=4.1.0.151, Culture=neutral, PublicKeyToken=null
    C:\Users\admin\Desktop\SkyEditor.ROMEditor.UI.WPF Build 145\SkyEditor.UI.WPF.dll

    SkyEditor.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null
    C:\Users\admin\Desktop\SkyEditor.ROMEditor.UI.WPF Build 145\SkyEditor.Core.dll

    Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll

    System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

    System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

    --------------------
    User Message:

     

    Share this comment


    Link to comment
    Share on other sites
    On 8/28/2018 at 4:39 PM, DeoxysInSpace said:

    I'm getting this error. 

     

     

    It looks like you have Sky Editor somewhere you don't have write access to, which is strange considering it's on your desktop. Try moving it somewhere else maybe?

    Share this comment


    Link to comment
    Share on other sites

    bear with me here, as I'm a total noob, but for some reason, when I downloaded the application and followed the instructions, the exe file wouldn't work. I figured it was the .NET framework, but when I tried to download that, it said I already had it, or some higher version. Any idea how to make it work?

    Share this comment


    Link to comment
    Share on other sites
    2 hours ago, Chungus said:

    Weirdly enough, no. It won't even display a window, let alone an error message

    If  you look around in the Application tab in the Event Viewer, do you see anything that looks related to Sky Editor?

    Share this comment


    Link to comment
    Share on other sites


    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...