+1 vote
by (560 points)

Hi there,

I'm using SugarCube 2.18.0

I've made a twine game that simulates a patient encounter for medical students. I'm looking to see if there's a way I can get them to easily export their variables at the end of the game to let us see how they've answered questions - if there's a way to make a clickable link or something that sends the data to a surveymonkey or an email address?

If there is a way, it would also be incredibly useful if there was a way to timestamp how long they spend on each passage?

Thanks a lot for all the effort you put in to these Q&As!

1 Answer

+1 vote
by (63.1k points)
selected by
Best answer

Without a server you can access, your only options are largely to rely on the user to copy and paste data and send it manually, but that comes with a couple issues. 

  1. You'll probably want to encode that data to prevent the user from tampering with it, this is fine, and doable, but leads to problem 2: 
  2. It's possible some of the data could be lost or corrupted in transition (things like certain file editors replacing characters with typographic equivalents, or the user simply failing to copy everything, etc). This will be hard to fix (probably impossible) if the data isn't human-readable. 

I hate to recommend other products, but something like a Google form might be easier for this. 

Another option, though, could be to have the user export their saved game and send that. Again, though, this isn't an automatic process. 

by (560 points)

Thanks a lot for your suggestions and help, I really appreciate it! 

I've just went with a surveygizmo clickable link, that has a variable url in relation to scores etc that auto-populates my survey when clicked on - seems to be working well!

Thanks to Greyelf for showing me how to set it up as a clickable link rather than a copy and paste (as I couldn't work out how to get the variables to show up as numbers rather than $variable at first when doing a proper link).

You're all very helpful on this forum and it's really appreciated!


<<set _url to "https://www.surveygizmo.eu/...Test-Twine?gp=" + $duration + "&mat=" + $mat>>

<<silently>> [[Send Data|_url]] <</silently>>


by (110 points)
edited by

Hey @natstudent, I think I've got a pretty good grasp on the whole 'passing data with URL variables' thing from surveygizmo's help section, but I just wanted to clarify one thing on this workaround. You use the <<silently>> macro as such;

<<silently>> [[Send Data|_url]] <</silently>>

So that opens the URL without the player clicking anything, correct? Do you have auto-submit set up as well? Not sure if this is something you need, but it could be helpful if you want to prevent participants from editing data. 

It's a shame that the tool is so expensive though. This definitely looks like the easiest workaround for me, but there's no way I can afford a subscription to their market research plan (where URL variables are available) for one research project. If there's some way of getting access to this tool that I'm ignoring though please let me know!!!

by (560 points)
Hey @barndoon :)

The silently is just in there because without it, the [[send data|_url]] becomes a link to a non-existent passage. Then I just display _url below it and it prints the link all set up. Not sure how you launch the url without the player clicking anything? Would be very useful! I actually didn't know about the auto-submit function, so thank you very much!

I know there is a way of using URL variables on SurveyMonkey, I'm not sure if it's quite as sophisticated as surveygizmo though.
by (110 points)

Ah, I see. I know that in Harlowe there's the (open-url:) and (goto-url:) macros, but not sure what would be or if there are any Sugarcube 2 equivalents (nothing came up on the macro list).

As for SurveyMonkey and other survey site competitors, I could only find one that advertised URL variables as a free feature (SurveyCrest) and it ended up being non-functional. I think I'm going to try to use Firebase or some similar service for storing my data. Might need to dive a bit deeper than I'm comfortable with into Javascript, but at least I'll learn something along the way!