0 votes
by (250 points)
closed by

Hello, I'm making a dungeon crawler style game in Sugarcube, and things have mostly been going great. In order to potentially have more control over UI, and possibly open up better options for in-line menus rather than passage-based menus with copious control logic, I was advised to update to the latest version of sugarcube.

Unfortunately, this seems to have broken my functionality, in at least one of my widget-containing passages.

Furthermore, as you can see, the error is being cut off. This is not new behavior - all of my error messages have been cut off since install, but usually the first line has been enough to get me started on a fix.

The full passage is quite long, but I do have it tagged with 'widget' (it was working before the update.)
Here is a small example widget:

<<widget "FightMenu">><span id = "FightMenu"><<if $charmedTurnsLeft > 0>><<Resist>><<else>><<if $tethered>><<RemoveTether>><br><</if>><<Attack!>><br><<DodgeAndWait>><br><<Flee!>><br><<Spellbook>><</if>></span><</widget>>

I'm really at a loss as to how to proceed, other than to revert to the old version of Sugarcube. Any help is appreciated, thanks.

closed with the note: Answered

1 Answer

0 votes
by (156k points)
selected by
Best answer

There are differences between how things work in the 1.x series and the 2.x series of SugarCube, I strongly suggests you read the Instructions for upgrading from prior SugarCube releases part of the the SugarCube 2.x documentations (if you haven't done so already. I would start at the bottom Upgrading to any release ≥2.0.0 section and work your way upwards.

I am going to assume that you have correctly tagged the Combat Widgets passage with the widget tag.

It is difficult to debug a widget that references other widgets/macros without access to the source code of those other widgets/macros, but looking at the example you did supply I did noticed a couple of things.

1. You are including punctuation characters (in this case an exclamation mark ! ) in your widget/macro names and that makes them invalid. Simply removing them will solve that issue. It is also not a good idea to include punctuation characters in passage names either.

2. You have a space character between the span element's id attribute and it's equals sign, and it's equals sign and the attribute's value. This isn't correct and can lead to issues.

<span id="FightMenu">

After I changed your example to include the above (and created dummy widgets for those you didn't supply) and ran it I didn't get an error.

by (65.8k points)

As noted by greyelf, the cause of the widget issue is the punctuation within the widget names (e.g. since you couldn't see the error: <<widget>>: cannot create widget macro "Attack!": invalid macro name "Attack!").

As to the truncated error messages.  IIRC, that's an issue with the earlier Twine 2 releases, so updating to the latest release (v2.2.1, as I write this) should fix that.  Beyond that, the latest release of SugarCube 2 (v2.24.0, as I write this) will, in addition to the error dialogs, also log most error messages to the developer console, so you may check that for the error.

Welcome to Twine Q&A, where you can ask questions and receive answers from other members of the community.

You can also find hints and information on Twine on the official wiki and the old forums archive.

See a spam question? Flag it instead of downvoting. A question flagged enough times will automatically be hidden while moderators review it.