Quest 5.8 beta

A beta version of Quest 5.8 is now out.

The big change in this version is to the appearance of the editor, and is thanks to SoonGames. Note that you will need to uninstall the old version to see all these changes (your games should not be affected). It should still work fine if you do not uninstall, but you will only see half the changes.

This is a beta release so there may be issues, though most of the other changes were fixing bugs, so hopefully not much. PM me if you find anything.

Please don't forget my pull request

Is this another release, or the same one?

(Never mind my silly question. I'll stop being lazy and look on GitHub.)

Seconds later...


It's a new version.

The source code is still that of Quest 5.7.1

The source code is still that of Quest 5.7.1


I tried that, too. I was hoping to just build the beta release and run the compiled .exe file rather than installing.

That's cool, though. There's always a workaround, and I bet Pixie has a good reason for not adding the new files to the master branch until we've thoroughly tested his build.

I am having problems integrating the source code with the update to the interface, so yes, it is behind. I am working on that (and Pertex pull request). I do not really know Visual Studio (as opposed to the Quest code) well enough yet!

I would suggest creating a new 5.8 branch on GitHub, but it's a little bit more difficult to work with from your desktop.

Plus, I wouldn't know if you could make the 5.8 branch into the master branch (and the current master branch into an archive branch, if necessary) once you've made the official switch.

I have had a rethink on this, and will be doing this in two steps. Here is the first step, which has the changes to the game (including Pertex's bit), and is sinced with Github:

The changes to the interface I will sort later (but soon!).

Not sure if I'm doing this correctly, do I still need to uninstall 'Quest', if so, how do I do this.
Also, what changes or bug fixes have been made to this new version.

if using windows, the best/correct way to uninstall programs/software is via the 'control panel -> add/remove software/program -> quest', whereas the wrong ways: simply deleting folder/files causes lots of problems and/or using the software's 'uninstall' can cause issues too... or if malware/virus/whatever it can cause more bad stuff to happen, as a trick upon you, or it just doesn't remove everything...

example with windows 7:

in the control panel window, in the top right, you can chose the size of the icons, if you choose 'small icons/whatever', aka switch it from 'category' to 'small icons', it'll show you all of the control panel options, which I like better than trying to find/navigate to them if you don't switch over to using 'small icons'

google if you need help if using a different window OS version

Thank you The Pixie for the new version, does it have the updated spanish translation that I sent you?

Also Pertex, I wanted to ask you, when Quest is in gamebook mode the interface is in english, how can I translate it also to spanish? I didnt see those templates on the file.

Best regards,

Hmmm, I've uninstalled and now run the 'quest572.exe' program and completed the installation process. When I've gone into 'Quest' and clicked on the 'Help' tab and then 'About...' it' showing up as 'Quest 5.7.1' and not 'Quest 5.7.2'.
Is this correct?

Edited post: I guess I must've installed correctly as I've some different shaped icons over my scripts.
Apart from that, what other changes have been made?

It takes quite a few steps to change the version build when compiling from the source code.

I theorize Pixie didn't feel like doing all that work because this is not an official release, and he'd just have to change it all again when updating to 5.8.

5.7.2-beta is more like a "say goodbye to the current interface" release, I think.

There are quite a few bug fixes. (I know that much. ...and that if you don't notice anything, that means Pixie did it correctly! Ha-ha!)

NOTE: Pixie's last post takes you to the release page for 5.7.2-beta, but all the first post on this page take you to the 5.8-beta downloads. (You probably want 5.8, unless you're just nostalgic (like me).)

5.7 is the current interface. 5.8 is the new interface.

5.7.2 may be a little bit of both. I think Pixie fully intended the next release to be 5.8, then decided to give us one last update to the 5.7 version just before switching everything over.

I was expecting a new layout, new desktop icon for Quest, and what's 'Pertex "Pull request"'.
Just curious to know what's new pussycat

I was expecting a new layout, new desktop icon for Quest

You want 5.8.0-beta.1, then.

what's 'Pertex "Pull request"

Also Pertex, I wanted to ask you, when Quest is in gamebook mode the interface is in english, how can I translate it also to spanish? I didnt see those templates on the file.

The gamebook mode is not (yet) adapted to translate the interface. EditorEnglish. aslx is always included, you can't change this to spain or german. In addition, the hard coded labels in the core files of the gamebook were not replaced by templates.

Changes in this version:

DefaultListenTo, DefaultSmell use the gender not the article

Added "npc_type", and female and male both inherit from this now. If you want to check if something is a character, use this instead of checking both.

Modified ScopeCommands to look also at the region (higher level room)

You can now set the colour of labels on the map.

Added ObjectCannotBeStored dynamic template

The text processor pop-up now uses the new JSSafe function, which strips most punctuation from a string.

Quest now supports AGAIN/G (from K.V.).

Added lots of options to GetScope (plus GetScoping command to support it) (thanks to mrangel) and added scope attributes to put/in and remove/from

Rearranged the order of the functions and added lots of comments in CoreParser.aslx, to make it easier to understand how it works

Modified removefrom template to allow TAKE and OUT OF/OFF

The CloneObject function now sets the "prototytpe" object to the original, unless it is already set. New CloneObjectAndInitialise that does the same as CloneObject but also runs the initialisation script on the clone if there is one.

Modified how multiple commands (GET ALL) etc. are handled so they give a message if there is nothing there, and to use scripts rather than delegates. Also, GET ALL will ignore any object that inherits from npc_type.

Modified ListObjectContents (first line) so contents of a transparent container will get printed, even if closed (bug reported by Darryl Huen)

The Split function can now be used with just one parameter. If no separator is specified, it will default to ";", which is the standard used by Quest.

Annotations modified so a "room/object" will get a Notes tab too, which is how it was intended (a room/object turns out to be neither a editor_room or a editor_object)

Updates to playercore.js

These are changes to the JavaScript. They will not work online until this version goes live and gets up-loaded by Louis.

Now includes JS.addScript; this is an alternative to JS.addText (which is used by msg, etc), which inserts the text without any side effects, so is much safer way to add your own JavaScript, CSS and out-of-sequence HTML, as it will not mess up the paragraph ordering.

After a ShowMenu-style selection is made, the title and options are hidden, but this left an ugly gap. Now the command bar will scroll up to fill the gap.

Corrected an issue that meant the paragraph counts could go awry in some situations, including after loading a save game.

Reading data from external files


Russian.aslx - removed "r" at start of line

GamebookCoreEditor.aslx, GamebookCoreEditorExpressions.aslx, EditorDeutsch.aslx, EditorEnglish.aslx modified by SoonGames to support game books in other languages

Some language files were modified to include English.aslx, which ensures there is some version of every template, even if in the wrong language.

@Iam Curio

Hmm, looks like something went wrong. Your espanol.aslx file is included, but checking back, I think espanoleditor.aslx got overwritten by a latter update. I will put out another beta with it included.

@Doctor Agon

Yes, it is reporting the wrong version. As KV says, it needs to be changed in numerous places (why?!?) and I must have missed one (or more). The new layout will be in 5.8, and the source code has issues on my PC, so will be a little while yet, but will happen.

@Pertex and Iam Curio

SoonGame's updates mean that game books should also be language neutral in 5.8.

The Split function can now be used with just one parameter. If no separator is specified, it will default to ";", which is the standard used by Quest.

This is freakin' sweet!

Really excited for this one! :) I think I'm really lucky to come along at this point where there's so much happening for Quest. I mean, maybe that was always the case, but it really feels like a case of continuous improvement that's just making a good thing better and better!

Just uploaded a new beta correcting a number of minor issues, some of which I should have sorted previously! Hopefully the version number is correct now.

How do I use mrangel's scope stuff?


How do I use mrangel's scope stuff?

A quick summary of the new scope stuff.

  • The scope attribute (string) of a command
    • Can now be split up if a command has multiple objects.
    • Multiple values can be supplied separated by semicolons
    • As well as 'all', 'notheld', and 'inventory', scope can now include 'world' (AllObjects(), useful for debugging commands), 'container' (all visible containers), 'contents' (all objects inside visible containers), or 'none'
    • If scope isn't one of the words listed above, it can be any of:
      • The name of an objectlist attribute of the room
      • An object attribute of the room, whose children will be in scope
      • The name of an object whose children are in scope

Eample: if you have an inaccessible room called "spellbook" containing objects representing spells, and another called "special targets" that contains objects names "all", "front row", "room", "nobody", etc; and some rooms have a "window" attribute which refers to an adjacent room you can cast spells through
then you could make a command with pattern cast #object1# on #object2#
and its scope attribute could be object1=spellbook|object2=notheld;window;special targets

(Things that I've added to my script that didn't make it into the final version... items in the scope list such as "@objectname" to ensure that a single object is always in scope; "!objectname" to remove an object from scope (so you can do "inventory;!contents" to get things you're holding that aren't inside a container), and "?attribute" to specify objects with a certain attribute (so the drop command's scope can be "inventory;!?cursed")

(Another thing I'd really like to do, but keep putting off until I've got the desktop version of Quest so I can test properly, include entries with dots in, so that if you really want to you could put "@game.pov" to force the player object to be in scope; and being able to change the order of execution ("object2=all;?isopen|object1=inventory;[email protected]" so that "put box in box" executes without any additional prompts if you have an open box and a closed box)

Part 2 (for any unexpected cases)
Any command or room, or the player object, or the game object, can have a script attribute changecommandscope.
This is passed a list variable items which it can modify. If multiple such scripts are found, they are processed closest first (command, player, room, parent room, parent parent room, game) ... though now I think about it, it would have made more sense to reverse that.
The script gets the parameters:

  • items (objectlist - you can modify this)
  • command (the command object)
  • variable (string. "object1" or "object2" etc in case they have different scopes)
  • objtype (I think this is either "object" or "exit")
  • matched (variables already matched, I think. So when determining the scope for object2, this dictionary contains a key "object1" - so that your command only needs to pop up one disambiguation menu when the player types "put box in box" if they can see 2 boxes)

Examples this could be used for.

  • A command like "transmute #object1# into #object2#" could have a changecommandscope script that, for object2, fetches a list of things that object1 can be turned into
  • A 'viewing gallery' room might have a script that adds objects in the room below to the scope, but only for certain commands.


I wish I'd asked that before I did this:

Log in to post a reply.