Since there has been relatively little talking about MOTE since the Kickstarter
I thought I put this up for people to comment on.
I know that most people reading this aren't beta testing, but that doesn't mean that you can't provide feedback.
From The Mote Project Site
Welcome to the Mote Project Closed Beta!
We've tried to put together what we could as reference material for your first time use, but due to the sheer size of MapTool, and the changes made to it in Mote, we were sure to miss a couple of items along the way. Of course, this is a "living" document, so we'll keep expanding it as we go.
With this being said, please do not hesitate to contact us for help!Expectations and explanations:
Just Java 7 - Mote made the move to drop Java 6 support, and is written to be fully compatible with Java 7. With the recent release of Java 8, we feel that it is still too early to consider including it within our compatibility scope. For most end-users, moving up to Java 8 offers little or no advantage at the moment, so we do advise to use only Java 7 on the system you plan to use for Mote.
One file, to do it all - In keeping with our aim to make things simpler for the end-user. Mote is now a single-file solution, where everything needed is contained and deployed within the application. For now, and to focus testing on the application itself, everything runs directly from the mote.jar file. On the public release, we'll bundle this jar in wrappers for Windows and Linux (or perhaps a .desktop + .jar combo for the latter), and an .app bundle for OS X. A word of warning: Don't change the file name, it is part of what makes all of this work, not to mention wildcards are taken literally some (Java) updates ago
Implementing this does have a small impact on spin-up times, especially the initial run. Please allow time for the application to finish this process. We do plan to have a pre-loader made for this process, but, since we're using a VM to simulate OS X, we've had to take it out so we can do debugging, since it's made with JavaFX (more on this issue below).
User assistance from the get-go - When launching Mote for the 1st time, a dialog/wizard will pop up asking for settings for optional preferences to run Mote. This will run only once, but you can call this dialog up again using the relaunch button on Mote's toolbar.
What is important during this initial stage is, if you have stuff from MapTool in a data folder that is not found in the default location, and you want to transfer these into Mote's data directory, you MUST specify it here. This is to keep a copy for MapTool, if ever you still want to use it in the future.
During this transfer process, all settings and preferences are converted to a different preferences model, one that is file-based and stored in the Mote data directory. Note that after the initial setup for Mote is completed, it will prompt you if you wish to delete all MapTool assets and references. These include registry entries, and the MapTool data directory, so do be careful if you want to keep things intact
Default memory settings - If no user prefrences for these are set, Mote always starts with a minimum memory of 256MB, a maximum of 1024MB, and a stack size of 2.
Command line changes and new arguments - To keep the MapTool data directory intact, we set a new system property for Mote's data directory: MOTE_DATADIR, i.e. -DMOTE_DATADIR="pathHere"
Here's a list of new program arguments you can use:
"-reset"- Resets the Initial Settings flag, making the Launcher Window reappear. Mainly for debugging, or fixing a bad/corrupted setup. We advice using this argument exclusively from all others.
"-headless" - Starts Mote in headless mode. Headless mode loosely means, no GUI.
"-campaign=path" - Loads the supplied campaign file once Mote is ready. The path must be in "protocol" form, where "file:/" (platform specific, please lookup what fits your OS) is used for campaign files found locally. and "http://" or "https://" are for those accessed remotely. Currently, we haven't hooked this up to Mote's FTP capability, so no FTP transfers, for now. Don't forget to enclose the path string in double-quotes ("), if the string contains spaces. An example in Windows systems would be: -campaign="file:/C:/test campaigns/test"
"-server" - This will start a server using the preferences saved under server-preferences.xml file in the preferences sub-directory found in the Mote data directory. You can override this by providing a comma-delimited string list supplying the preference you wish to override. Each entry on the list is a key-value pair separated by a colon (":"). The valid keys for override are:
"uid" - User ID
"role" - Game role. Valid, case-insensitive values are "GM", or "Player"
"serveralias" - The name to register in the RPTools' registry
"gmpass" - The password GMs need to connect.
"pass" - The password players need to connect.
"upnp" - activates upnp, if possible, using the defined UPnP library. Valid values are "sbbi" or "cling". Other values will set this argument to "false".
"port" - manually sets the server port. We recommend, however, that this setting not be used as Mote now uses a dynamically-generated port, in line with future plans to further simplify the connection process.
"strictownership" - Sets strict token ownership. Values are "true" or "false".
"playerreveal" - Toggles player-revealed fog. Values are "true" or "false".
"autoreveal" - Toggles auto-reveal on movement. Values are "true" or "false".
"individualviews" - Toggles individual views. Values are "true" or "false".
"individualfog" - Toggles individual fog. Values are "true" or "false".
"restrictimpersonate" - Toggles strict token impersonation. Values are "true" or "false".
"campaignmacros" - Toggles whether players receive campaign macros, or not. Values are "true" or "false".
"rolltooltips" - Toggles in-line tooltips for rolls. Values are "true" or "false".
An example would be: -server=uid:Idle_Idea, gmpass:password, pass:password, upnp:cling
Backup and keep a copy of your MapTool campaigns! - We've made a ton of changes in Mote, so much so that we needed to write conversion code to make MapTool campaigns compatible with Mote. You can't go back to MapTool once this conversion process is completed.
This conversion process is initiated during first loading of the campaign. It will be lengthier than the usual load, so please be patient. After the conversion process is completed, Mote will overwrite your campaign file to make changes permanent. You have been warned!
Start Server Process: There are 2 UPnP options. One based on the old library MapTool used (sbbi-upnp), and the other based on Cling, a more modern UPnP library. These provide lenient parsers in the connection attempt. Hopefully, these cover most, if not all, router types out there.One last thing before we go
Dice Bar: Die-specific roll options always trump global roll options, when present; i.e. global roll options are ignored when any of the ff: roll modifier, roll total modifier, explode on #, bonus after explosion cap excess, are present for the die type (i.e. set through its dice options panel).
Convenient map design - This only applies to QWERTY type keyboards, at the moment. When Interaction Mode is inactive (i.e. in Design Mode), tool menus, and several other functions, can be called using a single button. Here are the hotkeys:
The scheme is: "Q", "W", "E", "R", and "T" for the Interaction, Drawing, Template, FoW, and VBL tool menus, respectively. Once a menu is active, the character range of starting from "A" to "G", activates a corresponding tool, where applicable.
"Z" - When editing VBL, undoes the last drawn topology.
"Y" - When editing VBL, redoes the last drawn topology.
"L" - Toggles the facing lock
"P" - Toggles tool menu pinning.
Map / Zone selection - We removed the Map selection button from the token bar, and made it a quick access action on the map instead. You can access the list of maps by either hitting the context menu button on the keyboard, or doing a combination of Ctrl + Right mouse button.
Application Toggles - Basically, these are convenience features for those inclined to use them. In detail:
Interaction Mode - this is best used during actual game play, when map design takes a back seat to interacting with others. When focused on the map, hitting any alphanumeric key switches focus to chat. In the future, this will switch to the last active chat interaction. Hot keys for map design tools are disabled when in this mode.
Pin tool menus - ideal for map design, tool menus are pinned and float over the current mouse pointer location.
Facing Lock - when active, players cannot rotate their tokens, effectively locking their views.
Color Pickers - one is to set the global text color, and the other, the global background color.
Translation: This will be a process done over time as there are a lot of components that bypassed the language settings. Translation volunteers are welcome once we've weeded out the "hard-coded" culprits.
Supplanted interface components - Start server dialog, Connect to server dialog, Edit Macro dialog: All these have received a facelift and/or process overhaul.
Macro Editor Hotkeys:
Ctrl-F2 = Mark/unmark line. Marked lines can be traversed/visited by using F2 and Shift-F2
F2 = Visit next bookmark
Shift-F2 = Visit previous bookmark
F3 = Clear macro editor
F4 = Clear chat (in the future, other output windows)
F5 = Save macro. Only works outside the Macro pad (i.e. other editors).
F6 = Copy editor contents into clipboard
F7 = Reload macro from last saved instance
F11 = Run macro
Ctrl-F = Open search window
Ctrl-Up = Select upward on language selection list.
Ctrl-Down = Select upward on language selection list.
Ctrl-Page Up = Activate macro editor to the left, rotating to the end of the tab list, if necessary.
Ctrl-Page Down = Activate macro editor to the right, rotating to the start of the tab list, if necessary.
[ - Hitting this key anywhere in Mote will switch to the Macro pad, for quick writing.[/list]
Chat field changes - In MapTool, a user can go through a list of previously entered text by using the Up or Down arrow keys. While nifty, it also made it impossible to edit current text without the use of the mouse. We've changed the control scheme to Ctrl-Up and Ctrl-Down, to go through the list, leaving the Up and Down arrow keys available to traverse the current text.
Macro Hotkey expansion - We've expanded the macro hotkeys to make available more keys than you'll ever need! This includes all the function, and number keys, along with most of the permutations involving Ctrl, Alt, and Shift. Lastly, we've added the hotkey parameter to the setMacroProps and getMacroProps functions (entry not included on the wiki, as of this time).
For macro reference - Use code completion first, before referring to the RPTools wiki, as the latter does not have pages for the new Mote functions.
New macro functions (refer to code-completion for details):
delay - delays macro execution.
setFacingLock - locks/unlocks token facing
Database functions - "sql.createdatabase", "sql.createtable", "sql.delete", "sql.getcurrentdatabase", "sql.insert", "sql.query", "sql.renametable", "sql.select", "sql.update"
Sound functions - "defineSoundSource", "listSounds", "listStreams", "pauseSound", "pauseStream", "playSound", "playStream", "stopSound", "stopStream"
impersonate - impersonate/unimpersonate the defined or selected token.
Regarding sound - We wanted to use a pure Java solution and are quite happy with the results. Sadly, after much digging, we found that the Java base for audio is prone to leaking memory. We still haven't found the internal culprit, but we're also thinking to either adopt JavaFX' audio base, or use non-native reources such as OpenAL. With this in mind, we advise to refrain from looping sound resources excessively/infinitely, as Java's audio base seems to keep references to the audio assets' data, preventing the garbage collection process from reclaiming their resources.
You may notice that we have separate names and functions for "sounds" and "streams". Sounds are audio assets that are loaded completely into memory before playing, whereas streams, as the name suggests, get played immediately once data portions from the source are available. Sounds' advantage over streams is that they have no "spool" time when they are subsequently played from the first time, as streams always need to reset to their start before they can go again. This make them great for small files. Streams' advantage over sounds is that they play immediately, so are suited over Sounds when it comes to large, or remote files.
Token Bars - There are 2 of these: One for player-owned, non-library tokens. While the other is exclusively for libraries, and can only be viewed by GMs. The ideal behavior when using these is that clicking on an entry should switch to the map the token is on, center the view over the token, and then impersonate it. If you encounter any problems when using these, please report it immediately.
Retool your memory settings - We've made several optimizations, all or none of which may impact how your framework performs. We suggest lowering your memory and stack settings and see what you end up with best. We make this suggestion after evaluating the frameworks sent in by several top tier supporters, where the designer provided the settings needed to run their framework. We found that we did fine with lower settings for most. YMMV
OS X - We'd just like to say that for errors encountered with the JavaFX graphical components, debugging will take a lot longer than usual. The reason for this is we're only using a Virtual Machine environment to develop for and run Mote on OS X, and running JavaFX in such a setup is not supported, which leads to an application crash. We'd get an OS X machine, but those things are expensive! (though we could probably setup a compatible machine somewhere down the line...)
Please note that there certainly will
be bugs encountered when MapTool macros meet the changes in Mote. The likeliest errors to happen are ones that revolve around JSONs and special character formatting, due to change in the JSON library used in Mote, and the fix put in for Unicode. We've put the preliminary touches to a better error reporting system, so do let us know about any issues right away, and the code that triggered the error.
Best of luck to everyone, and we wish for great games ahead for all of you! Thank you for braving the testing period for us!
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."