Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Sophie Houlden

A member registered Mar 27, 2013 · View creator page →

Creator of

Recent community posts

The reason for that is actually mechanical! If the last wheel is correctly placed when the cam is at a certain angle, the lock can jam. The number range isn’t the same on all IRL locks, because the dial can be rotated differently to the cam - however it is common for real locks to not have the final number be set in some specified range to prevent any problems.

In the simulator, the contact points are always the same relative to the dial, and so the final number in a combination will always be outside of the same range.

The app won’t ask you specifically, but you can specify which dice you roll before rolling by using roll expressions (the button between the dice bag and the X buttons).

You can enter your expression like this for two simultaneous rolls:

5d6, 7d6

Or if tunnels and trolls uses opposed rolling, you could subtract one from the other like this:

5d6 - 7d6

You can view full documentation for notation that expressions can use here.

I’m not 100% sure I understand the behaviour you’re describing, but it can’t be done with current roll condition syntax alone.

I think, it might be doable with a customised d100 however (though the actual d100s take a long time to roll).

  1. Make a new d100, call it something unique (eg “merp”)
  2. On faces 96 and up, use string values of “[96+merp]”, “[97+merp]”, etc
  3. On faces 5 and below, use the string value “[5-merp]”, etc

Though like I say I’m not sure I understand exactly, since this can mean alternating additive and subtractive explosion on the lower rolls, and it doesn’t incorporate any rerolling.

Either way I think that is as far as you can get in the app right now without doing things manually, sorry!

Thanks! ❤️

I modelled the various swirls and stripes in blender, and made a script to colour them randomly when instanced. The glass balls themselves use a shiny spatial material, but I think it was enabling refraction that really makes them seem more ‘marble-like’.

Thanks for letting me know! ❤️

This one is actually pretty tricky, so it’s probably easier to just roll the dice and work it out yourself, but here’s my best attempt at a roll expression to do this (you might be able to do better with a good understanding of maths and the available dice notation:

roll=2d8, doubling=((roll-8)*2)*roll#, max(roll,doubling+(roll#*8))

This outputs three results, “roll” which is just the 2d8, “doubling” which sums any doubled values as a result of rolling 8s (roll# is the number of 8s in the roll pool, using the ‘count’ condition). The final result is greatest value; either the roll, or doubling plus 8 times the number of 8s rolled.

The final result will work as the value you want unless both dice roll 8, in which case you’ll need to use the ‘doubling’ result (or just remember that it is always 32 for that roll).

Like I said, it’s tricky! A lot of roll logic is deceptively complicated even when it seems simple in English (the ‘other die’ is the main complicating part here. If you wanted to just double the value of both dice for each 8 it would be much simpler:)

roll=2d8, roll*max(1,roll#*2)

Anyway that’s the best I can do for now, sorry. Hope it helps!

I’m really sorry about this, the app not running on M1 is something I’m looking into but in all honesty I’m not sure if it is an issue that I can fix.

Hey so first up:

You can make a dice bag that includes all the example dice at any time by selecting the '+' button on the hotbar and choosing the dice bag icon, from there toggle the 'Example Dice' option and then select 'Create Bag' - the new bag will have all example dice in it, including the Lancer dice :)


A "Copy from tray" option is a very good idea, especially since I've been thinking about how to check the dice other people roll when I add online play. I'll add it to my notes and think about how it could be implemented for a future version.

Thanks for the feedback, and I'm sorry I didn't reply before recreating a die the hard way (though I respect your love for ensuring a die's preservation!)

Hopefully for the next update, sorry about the inconvenience!

You could definitely explode a d20 into a d8:


but the d8 will be added to the d20 result because it is part of the same dice pool. To sum the damage pool with the exploded d8, you would need to look at the dice and do the sum yourself.

So whilst it is possible to roll both attack and damage at the same time, I would recommend rolling the attack first and then rolling damage afterward if the attack hits (this saves good damage rolls from being wasted too ;p)

(1 edit)

Yeah I know what is going on, it's not easy for me to change the app to get macOS not to do this, but you can still use the app.

The solution is to enter in the terminal:

xattr -cr “/path/to/“

sorry for the awkwardness!

edit: Just to be clear, the app isn't actually damaged. But macOS considers any unverified app to be "wrong". It's ostensibly for security but it seems more like a racket to me.

(1 edit)

thanks for letting me know! I’ll look into it and try to include a fix in the next update if I can!

Edit: There's a fix in today's update!

the trick is to use multiple results, this will let you use the same dice pool more than once in an expression.

For your example, I would use: 

a=5d10!, a#{>5}-a#{1}

This will roll your 5d10 with exploding behaviour and call it “a” (you could call it whatever you want), then we count the number of dice that rolled over 5 in “a”, and then subtract the count of dice that rolled 1 in “a”.

Hope that helps!

sorry about this, it’s an issue with me not jumping through all of apple’s hoops to verify the app. I’ve been told that entering this in the terminal fixes the issue:

xattr -cr “/path/to/“

Sorry again, I know it’s inconvenient. I’m hoping to get the app properly verified once I’m no longer updating it every other week.

v1.2 is up! It will default to max quality at first, but if you can chug through to the settings menu you should be able to get a nice framerate :)

That is all coming in the next update, hopefully tomorrow sometime!

That definitely sounds like a bug, though given it doesn't happen on other platforms it is almost certainly a unity bug and not one I can fix myself. The next update will have audio volume controls so you should be able to mute the sounds if they are annoying, though obviously that will have an impact on your ability to play the game (the spectrograph display is based on the in-game audio. I'll look into alternatives to that though).

Sorry for the trouble, but I don't think I'll be able to stop the squeaking.

Yes it’s only the one kind of lock (a group-2 style safe lock), although it can be modified for difficulty. I have thought of adding other safe/dial lock types but for the time being I have no plans to add anything else. Ultimately I’m limiting myself to keep the scope of the project small, and also fun - it might be fun for me to simulate manipulation resistant locks but it would not be fun to try and crack them (afaik many can’t be cracked without drilling!).

Other styles of locks may be possible for me to simulate, but I know less about them so I’d need to do research to know if I could simulate them well and make them fun to overcome.

That is absolutely fineand allowed, you can make any kind of thing you want to make :)

There are no limits! You can write as much or as little as you want to :)

I’m working on a fully illustrated version that is a little more balanced and has the rules explained a bit more clearly. Once that is done, I will be looking into some print-on-demand options :)

Thanks! I'm glad you had a good time with it :)

I’ve not made anything in TTS before, but I’ll look into it once I’ve finished making a better web version :)

Thanks for the nice comment! <3

Just as a heads-up on printing, I think I made the pdf RGB (not CMYK) and it uses large dark patches in some places so it probably isn’t printer-friendly rn. I am thinking about making a more printer-friendly version, but if you want that it may be a wait since I’m gonna take a little break to recover from 7DRL :)

The “skip 3, encounter 4th” is what I intended, but if you want to play it as stopping to play on an earlier card I think that is fine too (if it makes sense. If you took teleported or took a different route, you don’t see those cards - but if you are just travelling quickly then you could opt to stop.)

tbh whichever you think is more fun is fine, I know I wrote the rules but I’m not gonna rules-lawyer if someone wants to play a different way :)

using the “unique” roll condition (‘U’), you can roll a pool of dice that will reroll repeat values. (Details in the documentation here). If you have a die with the names of your players, you can roll an expression which will output their names in a random order like this:

if you don’t want to make a die or are in a rush, number your players and then the expression “4d4TiU” can decide what order they go in.  This rolls 4d4, converts the dice values to individual text values (so they don’t get summed) and then applies the ‘unique’ condition so that duplicates get rerolled.

When you have an expression you’re happy to use, you can save it to your dice bag and roll it with a single hotbar click/tap whenever you need it.

Hope that helps! :)

Yeah sorry about that, I am hoping to at some point make the app work better on macOS, but apple don't make it easy (actually they deliberately make it difficult).

I'll need to make some significant changes first though, so I'm not sure when it will work without the inconvenience, sorry.

this was something I had meant to do a while ago but abandoned because I couldn’t come up with a way for it to reliably work across all the different kinds of shape (there are a lot of different face shapes with different edges), but recently I improved the code I use to find each face’s centroid for label placement using edges and I think it might be possible to adapt it to generate face frames... this is definitely getting bumped up my to-do list again, though it might not be a priority for the next version sorry.

in the mean-time, I know it’s a bit of a fuss, but you can make face images which include both the face display and the frame artwork.

Spindown is accessed by clicking/tapping the result in the dice control popup (which is accessed by clicking/tapping on a die)

Example dice from previous versions are not overwritten when you update, if you want the new examples you need to create/edit a die bag and toggle a box to include them.

if neither of these work, check that you actually have v1.4, the version number is listed at the top of the credits.

 - sorry for the slow response!

there is, you can apply some roll conditions to named results, like this:

roll=d6+f6, rollK

But in the current version it only works if the conditions are applied to a result that contains all of the relevant dice, so you can’t combine results and then apply a condition like this (not yet, sorry):

roll1=d6, roll2=f6, roll=roll1+roll2, rollK

Yep, that's how you can do it! also, you can split up the results with an expression like this if you want:

physical=2d6, fire=f6, total=physical+fire

That will output both results individually and the combined total so you can quickly get whichever result you need :)

if you want a simpler expression you can do something like this, which is the same thing but results are not labelled:

2d6, f6, result1+result2

sorry, I misunderstood! <3

on that screen you can just click “no thanks, take me to the downloads”, you don’t need to pay anything :)

Hi Carlos,

I am not familiar with the fantasy age dice system but from what you have said, I think the easiest thing for now would be something like:

roll=5d6, roll#{1}, roll#{2}, roll#{3}, roll#{4}, roll#{5}, roll#{6}

Which is certainly not ideal, and probably not at all reasonable if you are rolling dice with a lot of faces. I probably could make a new roll conditions which disregard dice if there are not matching values of in the pool, or counts the number of dice which have matches, or... tbh there are a lot of variations on it and most of them will be really complicated to implement. So I’m going to hold off and just make a note to look up the fantasy age dice system and re-evaluate which conditions I could add in future.

As for your second example of adding based on total over a value, that can be done now, for example:

roll=5d6, roll + roll#{>3}

I hope this is useful (and sorry for the delayed reply!)

(2 edits)

Just a heads-up in case anyone subscribed to this forum is using Twine and WritingFantasy:

I updated it yesterday so passages can be tagged as "ending" (last numbered passage), or as "frontmatter"/"backmatter" (placing the passage before/after the numbered passages).

The full details are in the guide which has also been updated. 👍

yes you can! The dice files and custom dice folder work the same across all platforms, the only difference is where they are located. Here’s the relevant part of the documentation:

It's not supported for now other than by external screen-sharing tools. I would like to add it sometime but I can't promise anything because network stuff always gives me a headache lol.