Game crashing when I try to run it

I just opened quest today to continue working on the game I'm developing, but when I tried to run the game to see what I needed to work on(I haven't edited the game at all yet today) it crashed.
I've tried to play the game several times, every time it loads for awhile and then the entire application crashes.
I tried to locate a crash report to see if I could figure out what happened but I can't find anything, and I have no idea how to troubleshoot this. It ran fine yesterday.
The editor runs fine, just hitting 'Play' causes this.


It is hard to diagnose without further information, I cannot troubleshoot for you but I can tell you some information you can give for others to evaluate about your client crash.

  1. Size of your quest file.
  2. How many pictures? How many music? How many youtube links?
  3. Show us the last code or function you have written.
  4. Possibly send your whole code with code via code view, only if you do not mind.
  5. What are the codes that triggers upon starting up of your game?

For self-resolve

  1. Copy your game file and experiment on your copied file.
    Cut and paste your codes elsewhere where it would not trigger like an empty function that is not called.
    Keep cutting more and more until the game stops crashing.
  2. Redo your whole game if it is just a small game.

The file for the game is 13kb
There's only 2 pictures, not counting the cover image, and one small audio file that does not play when the game first runs
I haven't been writing any code myself, just using the editor, I don't remember what the last thing I changed was but I usually test out the game immediately after each change so I doubt anything I did caused it to start crashing. This wasn't happening when I stopped working on it yesterday.

<asl version="580">
  <include ref="English.aslx" />
  <include ref="Core.aslx" />
  <include ref="ConvLib.aslx" />
  <game name="Crow School">
    <gameid>696d901f-b04d-41cf-b4b6-769aeca7b4ba</gameid>
    <version>1.0</version>
    <firstpublished>2023</firstpublished>
    <description>you are philza minecraft</description>
    <category>Mystery</category>
    <showhealth />
    <feature_limitinventory />
    <feature_asktell />
    <attr name="feature_devmode" type="boolean">false</attr>
    <allowlookdirections type="boolean">false</allowlookdirections>
    <colourblend />
    <colourblendtop>Black</colourblendtop>
    <colourblendbottom>Red</colourblendbottom>
    <setbackgroundopacity type="boolean">false</setbackgroundopacity>
    <defaultforeground>AntiqueWhite</defaultforeground>
    <defaultlinkforeground>GoldenRod</defaultlinkforeground>
    <feature_annotations />
    <attr name="feature_advancedscripts" type="boolean">false</attr>
    <appendobjectdescription />
    <turnoffcompass type="boolean">false</turnoffcompass>
    <gridmap type="boolean">false</gridmap>
    <feature_pictureframe />
    <clearframe />
    <panestheme>Blood</panestheme>
    <cover>CrowschoolLogo.png</cover>
    <setcustompadding type="boolean">false</setcustompadding>
    <showdescriptiononenter />
    <autodescription />
    <autodescription_youarein_useprefix />
    <showtitle type="boolean">false</showtitle>
    <menuhoverbackground>NavajoWhite</menuhoverbackground>
    <menubackground>NavajoWhite</menubackground>
    <menuforeground>FireBrick</menuforeground>
    <defaultfont>Tahoma, Geneva, sans-serif</defaultfont>
    <defaultwebfont>Crete Round</defaultwebfont>
    <showborder />
    <bordercolour>DarkGoldenRod</bordercolour>
    <custompaddingtop type="int">50</custompaddingtop>
    <custompaddingbottom type="int">50</custompaddingbottom>
    <custompaddingleft type="int">50</custompaddingleft>
    <custompaddingright type="int">50</custompaddingright>
    <setcustomwidth type="boolean">false</setcustomwidth>
    <customwidth type="int">800</customwidth>
    <multiplecommands />
    <changeroom_newline />
    <pov type="object">Phil</pov>
    <start type="script">
      msg ("You are Philza Minecraft. Enter the school.")
    </start>
    <onhealthzero type="script">
      msg ("You died.")
      play sound ("NOOOO-phil.mp3", true, false)
    </onhealthzero>
  </game>
  <object name="front of the school">
    <inherit name="editor_room" />
    <isroom />
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix type="string"></prefix>
    <descprefix>You're in</descprefix>
    <picture>school-front.png</picture>
    <object name="Phil">
      <inherit name="editor_object" />
      <inherit name="editor_player" />
      <inherit name="namedmale" />
      <usedefaultprefix />
      <look>You are Philza Minecraft. The man. The myth. The legend.</look>
      <attr name="pov_look">You are Philza Minecraft. The man. The myth. The legend.</attr>
      <visible />
      <scenery />
      <drop type="boolean">false</drop>
      <maxobjects type="int">6</maxobjects>
      <containermaxobjects>Dude, your backpack is already full</containermaxobjects>
      <volume type="int">0</volume>
      <alt type="stringlist">
        <value>myself</value>
        <value>yourself</value>
        <value>phil</value>
        <value>philza</value>
      </alt>
      <ask type="scriptdictionary" />
    </object>
    <command>
      <exit alias="in" to="School">
        <inherit name="indirection" />
        <message>You go inside</message>
      </exit>
    </command>
  </object>
  <object name="School">
    <inherit name="editor_room" />
    <objectslistprefix>You can see</objectslistprefix>
    <description>Why are there so many crows here?</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix type="string"></prefix>
    <descprefix>You're in</descprefix>
    <picture>hallway-lockers.png</picture>
    <firstenter type="script">
      msg ("You look around for Kristen, but she isn't there. Did something happent to her?")
    </firstenter>
    <exit alias="out" to="front of the school">
      <inherit name="outdirection" />
    </exit>
    <object name="Lockers">
      <inherit name="editor_object" />
      <inherit name="plural" />
      <inherit name="container_lockable" />
      <look>Just some normal lockers. Where was yours again?</look>
      <not_all />
      <drop type="boolean">false</drop>
      <attr name="feature_container" type="boolean">false</attr>
      <isopen type="boolean">false</isopen>
      <open type="boolean">false</open>
      <close type="boolean">false</close>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>some</prefix>
      <takemsg>....They're bolted to the wall</takemsg>
      <scenery type="boolean">false</scenery>
    </object>
    <object name="Your locker">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <feature_container />
      <isopen type="boolean">false</isopen>
      <openmsg>You open your locker.</openmsg>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <closemsg>You close your locker.</closemsg>
      <look>It's your locker.</look>
      <drop type="boolean">false</drop>
      <not_all />
      <takemsg>It's bolted to the wall.</takemsg>
      <open />
      <listchildren />
      <listchildrenprefix>You can take</listchildrenprefix>
      <hidechildren />
      <scenery type="boolean">false</scenery>
      <onopen type="script">
        msg ("Inside is a Picture of Kristen, and a Shiny Objec-......A crow stole your Shiny Object")
      </onopen>
      <object name="Picture of Kristen">
        <inherit name="editor_object" />
        <inherit name="plural" />
        <take />
        <takemsg>You slip it into your pocket for good luck</takemsg>
        <drop type="boolean">false</drop>
        <dropmsg>Why would you want to get rid of this?</dropmsg>
        <usedefaultprefix />
        <look>She's beautiful.</look>
        <attr name="feature_usegive" type="boolean">false</attr>
        <attr name="feature_startscript" type="boolean">false</attr>
        <linkcolour>GoldenRod</linkcolour>
        <inventoryverbs type="stringlist">
          <value>Look at</value>
          <value>Drop</value>
        </inventoryverbs>
        <ontake type="script">
          UnlockExit (exit3)
          msg ("Time to go look for her.")
        </ontake>
      </object>
    </object>
    <object name="Brian">
      <inherit name="editor_object" />
      <inherit name="namedmale" />
      <inherit name="talkingchar" />
      <look>That's Brian, he can talk to the crows for some reason. You suspect he might be one.</look>
      <activeconversations />
      <exchange>Hey, what's up?</exchange>
      <askdefault type="script">
        msg ("*Brian whispers to the crow on his shoulder, who shrugs(how did that bird just shrug?)* We don't know about that.")
      </askdefault>
      <greet type="script">
      </greet>
      <ask type="scriptdictionary">
        <item key="Where is Kristen?">
          msg ("I heard she went to get something back from the crows- you know how they love to steal shiny objects, no one's seen her since. I wonder if the crows have her locked in one of the classrooms?")
        </item>
      </ask>
      <object name="Where is Kristin">
        <inherit name="editor_object" />
        <inherit name="startingtopic" />
        <alias>Have you seen Kristin?</alias>
        <visible />
        <exchange>I heard she went to get something back from the crows- you know how they love to steal shiny objects, no one's seen her since. I wonder if the crows have her locked in one of the classrooms?</exchange>
        <hideafter />
        <inventoryverbs type="stringlist">
          <value>Look at</value>
          <value>Drop</value>
        </inventoryverbs>
      </object>
      <object name="What do I do">
        <inherit name="editor_object" />
        <exchange>h</exchange>
        <hideafter type="boolean">false</hideafter>
      </object>
    </object>
    <exit alias="into the Hallway" to="Hallway">
      <inherit name="northdirection" />
      <locked />
      <lockmessage>You can't leave yet.</lockmessage>
    </exit>
  </object>
  <object name="Hallway">
    <inherit name="editor_room" />
    <descprefix>You're in</descprefix>
    <description>It's just a hallway, but you notice a trail of feathers leading to one of the classrooms. Maybe there was a struggle?</description>
    <exit alias="south" to="School">
      <inherit name="southdirection" />
    </exit>
    <exit alias="into the classroom" to="Classroom" />
  </object>
  <object name="Classroom">
    <inherit name="editor_room" />
    <description>Weird, you don't think you've ever been in here before. Feathers coat the floor in a thick carpet, and the desks are arranged to form a sort of 'alter' in the center of the room. </description>
    <firstenter type="script">
      msg ("The door slams shut behind you. Before you can react, you hear a click and the sound of wings flapping. The crows locked you in! Better find a key.")
      LockExit (door)
    </firstenter>
    <object name="Alter">
      <inherit name="editor_object" />
      <inherit name="surface" />
      <visible />
      <takemsg>It's way too heavy to pick up.</takemsg>
      <displayverbs type="stringlist">
        <value>Inspect</value>
        <value>Take</value>
      </displayverbs>
      <linkcolour type="string"></linkcolour>
      <feature_container />
      <hidechildren />
      <listchildren />
      <listchildrenprefix>On the alter is</listchildrenprefix>
      <isopen />
      <scenery type="boolean">false</scenery>
      <look>It's an alter formed out of desks. On top of it sits a strange Box.</look>
      <object name="Box">
        <inherit name="editor_object" />
        <inherit name="container_closed" />
        <inherit name="container_lockable" />
        <look>You pick up the box and shake it, hearing a small metal object inside.</look>
        <feature_container />
        <nokeymessage>You try to open it, but </nokeymessage>
        <keycount type="int">1</keycount>
        <autoopen type="boolean">false</autoopen>
        <autounlock type="boolean">false</autounlock>
        <inroomdescription>a box with a Heart-Shaped Indent on the top</inroomdescription>
        <feature_usegive />
        <alt type="stringlist">
          <value>strange Box</value>
          <value>box</value>
        </alt>
        <displayverbs type="stringlist">
          <value>Look at</value>
          <value>Open</value>
          <value>Close</value>
        </displayverbs>
        <locked type="script">
          SetObjectFlagOn (Box, "locked")
        </locked>
        <useon type="scriptdictionary">
          <item key="heart">
            SetObjectFlagOff (Box, "Locked")
          </item>
        </useon>
        <object name="Shiny Key">
          <inherit name="editor_object" />
          <feature_usegive />
          <take />
          <look>A regular Door Key, polished to perfection. You doubt the crows even know what this is.</look>
          <selfuseon type="scriptdictionary">
            <item key="Door">
              UnlockExit (Door)
            </item>
          </selfuseon>
        </object>
      </object>
      <object name="under alter">
        <inherit name="editor_object" />
        <inherit name="surface" />
        <not_all />
        <feature_container />
        <contentsprefix>You see</contentsprefix>
        <hidechildren />
        <listchildren />
        <listchildrenprefix>You see</listchildrenprefix>
        <scenery />
        <object name="heart">
          <inherit name="editor_object" />
          <feature_usegive />
          <take />
          <takemsg>You pick up the stone. It seems to be the same size as the indent on the box.</takemsg>
          <alias>Heart-Shaped Stone</alias>
          <placein type="script">
          </placein>
          <selfuseon type="scriptdictionary">
            <item key="Box">
              HelperOpenObject (Box)
              msg ("You place the stone into the indent on the box.")
            </item>
          </selfuseon>
        </object>
      </object>
    </object>
    <object name="Door">
      <inherit name="editor_object" />
      <take type="boolean">false</take>
      <takemsg>You can't take the door.</takemsg>
    </object>
    <exit name="door" to="Hallway">
      <visible type="boolean">false</visible>
    </exit>
  </object>
  <walkthrough name="Walkthrough" />
</asl>```

First of all there are three extra buttons at the end of code view which are: ```
Secondly, your game seems to requires an advanced technique that I do not even know it exists, downloading a file from here and add it into same folder:
https://github.com/ThePix/quest/blob/master/ConvLib.aslx
Thirdly, your game did not crash, therefore it could mean you do not have that convlib file downloaded into your folder, or your pictures or audio inside the game is crashing the game, since I do not have those pictures and audio, thus I can start the game. So download Convlib or remove your pictures and audio.

Finally, the game is still not fixed.

Error running script: Error compiling expression 'this.locked and HasScript(this, "onlock")': AndOrElement: Operation 'And' is not defined for types 'LazyLoadScript' and 'Boolean'
You are Philza Minecraft. Enter the school.
You're in front of the school.

This specific error is resolved by deleting the object "box", so lets look at its code.
lock verb

if (this.locked) {
  msg (DynamicTemplate("AlreadyLocked", this))
}
else if (this.isopen and not this.canlockopen) {
  msg (DynamicTemplate("CannotLockOpen", this))
}
else {
  if (AllKeysAvailable(this)) {
    msg (this.lockmessage)
    this.locked = true
  }
  else {
    msg (this.nokeymessage)
  }
}

unlock verb

if (this.locked) {
  msg (DynamicTemplate("AlreadyLocked", this))
}
else if (this.isopen and not this.canlockopen) {
  msg (DynamicTemplate("CannotLockOpen", this))
}
else {
  if (AllKeysAvailable(this)) {
    msg (this.lockmessage)
    this.locked = true
  }
  else {
    msg (this.nokeymessage)
  }
}

Now you shall pray to the heavens for someone to solve your lock and unlock verb, or perhaps, redo the script and choose an easier code to make.


I definitely have ConvLib installed since I've been using features from it with no issue(again, this hasn't happened before, and I've been using ConvLib in my game this whole time), and removing all images and audio files doesn't change my result. If it didn't crash when you ran it, is it possible there's something wrong with the application itself? I'm not getting any error messages, the game just can't load at all. When I press Play I just get a white screen for a few seconds and then Quest crashes.

The backticks, btw, I added when I posted the code to format the text, I don't know why they were visible to you. Maybe I messed up there, but they're not in the actual code.

(Edit: As a test, I ran someone else's game, it played without issue. It's only my game that causes Quest to crash.)


Try to delete box objects or any objects that have huge code in it, and see whether you can start up the game or not.
It is hard to say something is wrong with the app, since I have been using it for so many years, and pretty much created about 6 games recently.


Your box object has a script attribute named locked containing the script SetObjectFlagOn (Box, "locked").

The error is complaining that locked needs to be a boolean (true or false), not a script. Although I'm not sure how that script got there, as it seems completely pointless.


Some things I have found:

  1. You are placing Exit: School inside an object you created called Command, perhaps you are trying to create your own command, but this is now how command works, but anyway, lets choose the easier route, drag your Exit:School up one level or inside front of the school, now your exit is working, yes, there is no need to do commands, your whole game can be just click to play.
  2. I have found another long code at Lockers, it seems to be lock and unlock verb, I am not sure what is your intention but I will write a simple lock and unlock verb for you.
  3. Lock verb
MakeObjectInvisible (gold nuggets)

Unlock verb

MakeObjectInvisible (gold nuggets)
  1. As you can see here, I am not really unlocking and locking it because I do not know how, why bother to learn how when you have something faster?
    Create a object called "golden box" and "gold nuggets".
    Put lock and unlock verbs at golden box.
    Unclick gold nuggets's visible checkbox to make it invisible.
    Viola, your fake lock and unlock verb is done.

  2. Okay, now we have Picture of Kristen inside Your locker which is a different object from Lockers which have that lock and unlock verb. This seems wrong, you seems to want to control three 3 items by coding from 1 item. Your code is recommended to be placed inside the object that you want to control. If you are trying to open and close a locker, it might be best to just have one locker and write your lock and unlock verb inside it.

  3. Inside picture of Kristen, there is a code: After taking the object, unlock exit 3, this is a clever puzzle except that there is no exit 3, therefore this script will not run. To fix it, click expression tab and choose exit tab instead, and choose the prewritten exit that you want.

  4. At brian, this is a little bit funny, you have a speak to verb, which calls in three functions, P, P and converse but you have not written a function yet. To write a function you have to right click object tree and click add function or alt +f. But seriously, there is no need to learn function as well. Perhaps you could do this code instead.

  5. This code will automatically makes your chit chat more interesting by checking if your player is holding gold nuggets or whatever object or not.

if (Got(gold nuggets)) {
  msg ("Wow, what is that?")
}
else {
  msg ("Man, I am starving.")
}
  1. Now you have Where is Kristen and What do I do objects inside Brian, I suppose you are trying to create a conversation, which is once again, not how it works, you cannot control multiple items together. What I would recommend is my bad but working way:
    Add in the two verbs at Brian object:
    Verb 1 : Where is Kristen?
    Verb 2 : What do I do?

Inside the custom verbs are simply:

msg ("I heard she went to get something back from the crows- you know how they love to steal shiny objects, no one's seen her since. I wonder if the crows have her locked in one of the classrooms?")
  1. At classroom object, there is another clever puzzle, enter the room for first time, lock exit door. So this is a good example of a working script.
  2. So once again, you are trying to do a non-working code by placing Box, Shiny, under and heart inside of Alter. I would recommend to just make it simple and just place them inside Classroom with the rest of the objects.
  3. You have Door and door, because the app does not allows you to have two objects of the same name, but below the name, there is alias, alias means nickname, you can simply write Door and Door inside alias, the app does not care about nicknames.
  4. Your game only have 4 rooms, it is recommended to redo and avoid those strange container codes, your made up code by putting objects inside of each other as if they can command each other to do stuffs.
  5. Simplify your game and spam more of Look at and run msg script at enter room instead.
  6. Learn from the best, these few games uses less coding, focuses more on Look at while their game is still entertaining.
  7. Games list: (From shortest game length to longest game length.)
    https://textadventures.co.uk/games/view/yperrhjdm0qynwrbee8j_g/the-chimney-sweeper
    https://textadventures.co.uk/games/view/2yhvvr5gye_wmngukrj4dq/a-toshers-legacy
    https://textadventures.co.uk/games/view/nxbydiel0usqwa6q0tpmsw/where-is-everyone
  8. This is a bit harder to make, but since you are obssessed with unlocking and locking objects and exits.
    https://textadventures.co.uk/games/view/zwbatzexbeed5anpa8mfia/alone-in-the-void

I can't see a reason for the game to crash. The most common cause for a game failing to load is infinite loops and recursion; but I see no sign of that here.

If you are playing online, it could be that there was some kind of glitch with the site or you were disconnected. In this case, it might help to log out of the site, clear your cookies, and then log in again. Or press Ctrl+F5 to do a full refresh.

If you're playing online, it may be worth sharing a link to the game so that other people can test whether it works for them.

The only real issues I can see with the code are:

  • The Box has a script attribute named locked, which will break the lock/unlock verbs.
  • A few typos which shouldn't stop it working
  • Referring to exit3, which should work fine but may cause hard-to-find errors to crop up later in development. You should probably give any exits you want to lock/unlock a name manually.

Responding to daeun

As you can see here, I am not really unlocking and locking it because I do not know how, why bother to learn how when you have something faster?

The lock/unlock code looks correct to me. Those lock and unlock verbs are created automatically when you tick the "object can be locked" checkbox on the container tab.

Inside picture of Kristen, there is a code: After taking the object, unlock exit 3, this is a clever puzzle except that there is no exit 3, therefore this script will not run.

Unnamed exits are automatically named exit1, exit2, exit3 and so on when the game starts. So this code will unlock the third unnamed exit, in the order they are found in the file. In this case, that's the locked exit leading from School to Hallway.

This is a bad idea because it will break if the order of the rooms or exits changes; but it isn't broken at present.

At brian, this is a little bit funny, you have a speak to verb, which calls in three functions, P, P and converse but you have not written a function yet.

Umm… the code posted here doesn't seem to include that verb. You are referring to code automatically added by ConvLib.
Those functions are provided by ConvLib as well.

So once again, you are trying to do a non-working code by placing Box, Shiny, under and heart inside of Alter. I would recommend to just make it simple and just place them inside Classroom with the rest of the objects.

Containers are a core Quest function. I cannot see anything wrong with this.
When the player looks at the "Alter" it will list the items that are on it, and will allow the player to take them.

(Although I will point out that "alter" and "altar" are commonly confused words; and the one described here should probably be "Altar")

Now you have Where is Kristen and What do I do objects inside Brian, I suppose you are trying to create a conversation, which is once again, not how it works,

This is how it works. ConvLib reads conversations from a set of objects representing things you can say, which makes it easy to create branching conversations.


My bad, I have oversimplified my understanding of quest, I shall relearn from your explanations and read about ConvLib.


Deleting the box fixed the problem, the game is running fine again. I was doing some weird stuff I didn't fully understand with the box so I likely messed something up there that was causing the game to crash.

In regards to the code calling for 'exit3' instead of the actual name of the exit, that's what the exit is named in the debugger. Changing it to that was the only thing that made the unlock work, before that the game had no idea what I was trying to get it to do 🤷 I couldn't figure out how to make it work any other way.

On another note, the reason I was messing around with the box is because the scripts don't seem to be able to unlock objects, only exits. I'm trying to set up a puzzle where the player uses the 'heart' object as a key to unlock the box, but there doesn't seem to be a simple way to do that. It doesn't seem like it should be that complicated, but I cannot figure it out. The flag thing was something I found on a forum post, but I guess I did it wrong(and left it unfinished).


In regards to the code calling for 'exit3' instead of the actual name of the exit, that's what the exit is named in the debugger. Changing it to that was the only thing that made the unlock work, before that the game had no idea what I was trying to get it to do 🤷 I couldn't figure out how to make it work any other way.

You should go to the exit in the editor and give it a name (different from its alias) which consists only of letters and numbers, and use that.

You can use exit3, but there is no guarantee that it will always be named that. If you change the order of rooms in the sidebar, for example, it might become exit12 or something. That's a common way for older parts of a game to suddenly stop working later in development; and if it happens when the game has grown bigger, it'll be harder to find.

the scripts don't seem to be able to unlock objects, only exits.

Not actually true. The UnlockExit function works just fine on objects; it's just the name that's misleading (and I think the GUI will only give you a list of exits to choose from… but if you edit it in code view and put in the name of an object it will work fine)

It can be a little confusing, because locked exits and lockable containers are two different mechanics, and work in different ways. But they both have a locked attribute which must be true or false.

The following three statements do exactly the same thing:

  • SetObjectFlagOff (object, "locked")
  • UnlockExit (object)
  • object.locked = false - this one is more efficient

the player uses the 'heart' object as a key to unlock the box, but there doesn't seem to be a simple way to do that

This sounds like a somewhat bizarre known issue with the editor.
Make the box "lockable" in the editor, and type "1" in the "number of keys" box. (Note: It may say 1 by default; in this case, change it then change it back to 1).
Then click on another object in the editor, then go back to the box's container tab.

Under the "Number of keys" field, there should now be a drop down list asking you to choose which object is the key.
The player commands "lock box" and "unlock box" will now check if the player has the heart, and either lock/unlock the box, or tell them that they don't have the key, as appropriate.

I do think that making "use heart on box" work is a good idea, in case the player tries that command instead. I can see that you tried to do that, but in the code posted above you have:

        <useon type="scriptdictionary">
          <item key="heart">
            SetObjectFlagOff (Box, "Locked")
          </item>
        </useon>

That will set the attribute Locked to false … which won't do anything, because the open/close commands use the attribute locked (no capital letter - as far as Quest is concerned, that's a completely different attribute)

I'm typing on my phone here, and don't have Quest handy, so sorry if I've made some errors. But I think I've got most of this right.


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums