You read that right, folks!
I'm working right now on a tool to condense and reformat a mission export file into a sort of screenplay file that you can then bring into a tool like Microsoft Word to do spelling and grammar checking on. It should even be able to help you find out if you have any pesky unnamed NPCs or ships.
I just started on it and the work is going really well. I'm testing it using stoutes "
Collectiveness Strikes Gold I", "
Collectiveness Strikes Gold II" and my own "
The Sins of the Fathers".
UPDATE 6-NOV-2013 - BETA 1: This tool is now in a sort of beta state. I'm not distributing the tool yet, but anyone wanting to help find bugs in the tool and provide feedback is welcome to participate. Just send me a PM and I'll provide you with an email address where you can send your mission export file. I'll run your mission through the engine, deal with any problems that crop up and send you your formatted mission file output.
To generate a mission export:
- Bring your mission up in the Foundry editor.
- Run your mission or any map from it from the Foundry editor.
- In the chat window, type "/ugcEditorExportProject yourMissionName.txt". You will see a blank line appear in the chat window.
You can then find your mission export file in your
<STO install directory>\Live\Data folder.
On my system, it was in:
C:\Program Files (x86)\Perfect World Entertainment\Star Trek Online_en\Star Trek Online\Live\Data
Steam users will likely find it in:
C:\Program Files (x86)Steam\SteamApps\common\Star Trek Online\Star Trek Online\Live\Data or something similar.
Comments
I call it, the Stoutes paradox.
How do you export missions anyway? I've never seen that feature in the Foundry editor. Is that a command-line ability or something?
My Foundry missions | My STO Wiki page | My Twitter home page
It's pretty simple. From the foundry, run your mission and then type the following in the chat window:
/ugcEditorExportProject someprojectname.txt
You'll get an output file in your <STO install directory>\Playtest\Data folder.
I found out about it here: http://starbaseugc.com/index.php/trailers/essential-viewing/a-glimpse-of-the-future-mission-export/
The result is a dump of all the objects in your mission. The reports I've seen run about 1,000 - 3,000 pages.
There doesn't appear to be a way to import the file back, but at least you get this.
I'm actually pretty close to having the formatting engine for Version 1.0 done already. It's bare-bones. It looks for what it wants in the export file and formats it into a plain text file -- but it's just what you need for proofing and is much easier to read.
I'm hoping to have the engine done tonight and will slap a simple UI on it later this week.
If there's a lot of interest, I'm planning a 2.0 version that will read in the file as a series of objects. That will give me the ability to display the results in Rich Text format (hopefully with spell-check highlighting) and be able to save the report in plain text, Rich Text, HTML, Word docx, Excel xlsx and PDF formats. That will be a lot more work, but will likely be worth the extra effort.
My Foundry missions | My STO Wiki page | My Twitter home page
Parallels: my second mission for Fed aligned Romulans.
I haven't tried it in-game on someone else's map yet. I may try to confirm that right now. It will sure make editorial reviewing of other people's missions a bit easier if that's the case.
EDIT: I have confirmed that you CANNOT export missions outside of the Foundry editor. This is probably true for any chat command starting with "ugcEditor".
So the only way to get someone else's parameters is to have them export them and give them to you. This is how I got stoutes in-progress mission dumps for testing and review.
By the way, the location of the mission dump files on my computer is: C:\Program Files (x86)\Perfect World Entertainment\Star Trek Online_en\Star Trek Online\Live\Data
Your file location may be somewhat different, but should match the part starting with "\Star Trek Online_en\..."
It's wishful thinking, but be nice if that feature could be a normal function with the Foundry.
But we can wish and dream though.
If you want, I can make a tutorial for this, unless you want to make your own tutorial.
Realize that this is a one-way process, so there will still be some pasting from Word or whatever back into the Foundry editor, but at least you'll be able to do composition in the Foundry like you are used to and then only deal with the problems found in the export.
By the way... the V1 engine is COMPLETE! I'm able to extract and format all the elements that are important for proofing. This includes:
That's pretty much everything except NPC, ship and object names.
I still have some work to do to hook up the engine to do file I/O and I need to slap a minimal UI on it (or release it as a console application), but the heavy lifting for reading and formatting is done.
I'm also thinking I can sneak in the ability to do HTML formatting as an alternative. That will let you bring it into Word with tables and some slightly prettier formatting over the current plain text output.
Maybe someone still has it. I know I do .
The parsing is extremely simple:
Collect the lines that contain these values
PromptBody = Text
Action after it = Button text
Description = Mission text
Remove ", <&, &> marks and replace the \n with enter.
And that is about it. You parsed the text. Now that I think of this. Few lines of word macro could do this and bam, you can open the export file directly from word.
In the app, there was a button for copy to clipboard, so no need to select all...
My import/export tool had the following extra features over this:
The app was always on top.
Individual dialog boxes were separated. All the button texts were included over the text. The content of the current memo was copied to the clipboard automatically. No need to click on the actual app window.
You could go through the dialog boxes just by hovering over the next and prev buttons.
All this meant that you didn't have to alt-tab copy-past back and forth. Just keep on pasting while the STO client was the focused window.
And it could build and replicate map structures in a breeze .
http://www.youtube.com/watch?v=hz5F1zNr7Z8
Tried the import command. Didn't work.
This has a very different targeted use, but perhaps some of the ideas in your app can be re-used, like auto-pasting to dialog windows.
Back to the reviewer formatting app: I just ran the dump file for "Collectiveness Strikes Gold I" through the formatter and it looks really good. I may be missing some dialog boxes -- I'm not sure yet -- but that can be fixed pretty easily if it's the case. And the thing is blazing fast.
It's bare-bones -- just a plain text file, but it's really easy to read through and proofread.
I'm going to try to get it to output HTML as well tonight, which will be even easier to read.
No UI yet -- not even a command line. Everything is running from NUnit right now. I'll add a UI later this weekend once I'm happy with the parsing and formatting engines.
Dim lineText As String
Dim dline As Boolean
For Each singleLine In ActiveDocument.Paragraphs
dline = True
lineText = singleLine.Range.Text
If InStr(lineText, "PromptBody <&") > 0 Then dline = False
If InStr(lineText, "PromptBody """) > 0 Then dline = False
If InStr(lineText, "Description <&") > 0 Then dline = False
If InStr(lineText, "Action """) > 0 Then dline = False
If dline Then singleLine.Range.Text = ""
Next singleLine
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Description <&"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "PromptBody """
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "PromptBody <&"
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Action """
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "&>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "\n"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^t"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = """^p"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
and then copy the whole thing above the End Sub line.
Load the export file into word.
Go to Tools - Macro - Macro, select the macro you just created and let it run.
You should end up with the text parts only in word.
* I remade my Fed tac to be my face in the mission end dialog.
— Sabaton, "Great War"
Check out https://unitedfederationofpla.net/s/
no, screenshots are the only real way because even if you note the named things, the slides can drastically change how it looks.
With this semi transparent overlay, I could quickly adjust all the sliders exactly as they were on the original image. No alt-tabbing or stuff.
The overall formatting in both plaintext and HTML are already a vast improvement for doing editorial review of mission scripts. The dialog trees read a bit more like a script now, yet still provide information on costumes, attitude, titles and button links.
The only open items for declaring the engine finished at this point are:
I still haven't decided how to package it (open source windows UI, Silverlight app, command-line app, dedicated web-site that emails the output or delivers it on-screen) but I should have something out for public review soon -- possibly even this weekend.
How did you set that up?
— Sabaton, "Great War"
Check out https://unitedfederationofpla.net/s/
The import button made it obsolete, but alas, it is useful again.
Steps on how to write foundry missions:
(1) Write your dialogue in MS Word.
(2) Copy & Paste: MS Word content into Foundry.
(4) Done.
Steps on how to write foundry missions:
(If you are worried about character codding,..)
(1) Write your dialogue in MS Word.
(2) Copy & Paste: MS Word content into Notepad.
(2) Copy & Paste: Notepad content into Foundry.
(4) Done.
You do not need to make another program.
If you write your original dialogue out in MS Word, you do not have to worry about going backwards. Once you made changes to the original dialogue, you can copy and paste them directly into the Foundry.
Everyone is building Foundry missions backwards. rofl...
"Last Engage! Magical Girl Origami-san" is in print! Now with three times more rainbows.
Support the "Armored Unicorn" vehicle initiative today!
Thanks for Harajuku. Now let's get a real "Magical Girl" costume!
"Unsolved mysteries of 'Unsolved Mysteries'" ~ Homer Simpson
Also the story is never complete in Foundry. You alter and alter and alter the dialogs based on feedback. Again, no way to do that in word.
*facepalm*
I tried to check your missions to see how your method fares in practice. I couldn't.
Well, here is one to you. Please show us a word for this dialog tree:
Dialog starts. Player has the option to do a code break "puzzle". He has to input a 3 digits number between 000 and 999. He can also skip the puzzle anytime. If he fails, he loops back to the start of the puzzle section (not the start of the dialog). He can try to input the number as many times as he wants. He can also skip it anytime. Skipping or completing results different dialog continuation.
Also skipping or completing results different story dialogs much later in the story.
I don't want to be blunt, but you're kind of derailing this thread.
As someone who does detailed reviews (see my sig) this would be a VERY valuable application to use. When I do a review, I will be writing while playing. When the original author has created multiple storylines within one map I will only write suggestions for the one line I have followed.
With this tool I can reread ALL the dialogs which has been written, what helps the author improving his mission.
Not only that; I am no native English speaker, when I'm building my mission it's more or less guaranteed that I'll be making grammar mistakes. People tend not to test my missions (...thanks to the eternal grind...) when I ask others to test it.
However they DO want to help me review the dialogs if I could deliver it in a word doc. And that's where this application can shine.
I call it, the Stoutes paradox.