Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Sophie Houlden

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

Creator of

Recent community posts

Sorry! If the solution above doesn't help there isn't anything I can do right now. I'll look into making a signed version but I'm pretty busy with  other things right now and I haven't done it before so it might take quite a while!

I don't know of any automated way to do it and I haven't implemented that myself, sorry. You'll need to do it manually by copying the files betweein the dice folders:

yep! When you create a new dice bag, you can choose to include the example dice in it, this will add a copy of all dice and bags as they were when the app was first run.

This is a bug, sorry! If you test the die after closing and opening the app it should work properly.

The bug is that edited dice have several hundred faces (that don't get used), and loaded dice have the right number of faces. So any time you make or change a die, it will do this when testing (until the app reloads). I keep meaning to fix this issue but I've not been able to get round to it yet, sorry!

After running the app, there should be a "Sophie's Dice" folder in your documents directory, put the divination dice in there and they will be loaded the next time you run the app. 

There's a little more detail in the app documentation here:

if you go to the settings and then “Results”, you can disable String Stacking. This is ungrouped, but not necessarily unsorted, because they will be in the order that the dice spawned. If all the dice are the same type, or you spawn the dice in an arbitrary order, then the order of results will also be arbitrary. Hope that helps :)

Yes! This is part of the idea behind the “Dice-Type Swap” variant, though having the extra difficulty of determining which die is which piece for which player might make it more of an obstacle than an aid…

Hmm, perhaps instead, a kid could roll “with advantage” (roll twice and take the higher value)? Something I’ll have to test!

dropped/disregarded dice are not counted towards dice sums, though I am not familiar with Wretched and Alone mechanics - if you need to completely remove a certain kind of dice from a pool so that they aren’t included in re-rolls, you will need to do that manually for each individual die (though it may be simpler to just have an expression that counts the 1s, and then you can roll a pool with that many fewer dice next time).

I hope that helps!

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!