Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Scarlet String Studios

A member registered Oct 13, 2015 · View creator page →

Creator of

Recent community posts

(1 edit)

I recognize that font!

This is cool. I played Flowers in the Mist; not sure if that was the only story. Clearly there's a lot left to implement, both in terms of polish and gameplay, so I'll try and skip the obvious comments. (I got a bit of a laugh out of the mouse hover sounds in the combat bc they sounded like BFXR 8-bit sounds).

  • In this ( situation, I think the second comma shouldn't be used. As in, I think it should be "A curious, glowing flower" or "an urchin's small, dirt-covered hands." But I could be wrong, so I would go with whatever you've seen in novels.
  • In the battles (, I couldn't figure out what the [C1] was supposed to mean. It seemed like I got locked into repeating the same actions every turn. Also, the feedback button blocks the battle dialogue.

More broadly, I think the biggest thing missing right now is the timing at which information is delivered. For example, when you do a job, the order of events is "Click the button -> hear the 'success' sound of coins in your pocket -> eyes dart over to your stats to confirm that you gained money -> read the lore on the screen to figure out wtf you just did".

Ideally, the order would be different, right? Click the button, read the text, see some juice (particles/audio), and finally see the number increase in your char sheet.

So, in a general sense, I would probably work on slowing down the text and having it appear sentence-by-sentence, or having it read out like a VN. Of course it's worth including a read delay setting as well, because some people will want it to scroll faster. But I thought the reading effect in the beginning was cool, while the in-game walls of text needed to be slowed down to sync with the events. I always felt like the gameplay events occurred first, and I was playing catch-up by reading the text to understand what I just did.

Anyway, I'm not into horror per se, but I enjoy story games, so I hope you keep this up.

Ah, I see what you mean. I think that wouldn't work in this case, because my use case right now is showing/hiding a menu. It's not a read/unread effect; I'm simply fading in all the text or Images for the menu - either manually via a coroutine or with an Animator - and then fading them out when you exit the menu. So, I don't think draw animations could be set up to work like that, unless I'm mistaken.

I was setting up some UI text with STM, and I just remembered some strange behavior that I had noticed a while ago.

So — inline color is supposed to take priority over the component's color property, right? That makes sense. But, there are some situations where you'd want to control the text's alpha separately from its color, right? E.g. you might want to fade some UI text in and out, but it's impossible to fade any text that's wrapped with an inline color, because the inline color also defines an alpha value that takes priority.

Do you think you could solve this with some kind of "fade" slider that controls the alpha only? I've seen a similar behavior in some shaders, where the alpha is multiplied by a 0-1 float at the end (completely separate from the Tint property). As far as I can tell, I don't think it's possible for us to fix this from outside the STM source code, because I don't see other properties related to color in there.

Yep, the hack worked. Thanks!

Good news, this one should be easy because I was able to reproduce it in a demo scene.

1) Create a canvas

2) Add a bunch of STM objects inside (UIDefault shader)

3) Select them all and try to change the Position -> Anchor enum in the editor

Result: Only one of them will change.

Seems to be an issue only with Anchor. The other fields change as expected.

Nice work! I'm a dev too, so I thought I'd check the game out.

I think I encountered a bug here: 

The character was in the bottom-right corner, but when I jumped up to the roof, the camera bounds moved over to this other room with the boxes. Not sure if that was intentional or if the bounds of the box room was placed incorrectly.

One more thought: I like that you can't cancel your attacks into a parry, otherwise you could cheese the boss by parrying on reaction. However, because of this, it feels like the best strategy is to jab the boss instead of comboing. If you get locked in a combo when the boss attacks, you'll get hit, so it's safer to use individual attacks and wait for a chance to parry. 

Could probably be fixed if the boss enters hitstun when you combo them - but you also don't want the player to button mash, either, so it's a little tricky. Just something to keep in mind.

Either way, great work so far!

Perfect — all working with Read() instead of Rebuild() now. Thanks for the fix!

Oh! Okay. Rebuild(true) is working, and that's good enough for my purposes right now. Of course, still let me know when the bug is fixed, but I should be fine for now.

Hmm. It should look like this, right?

That still doesn't work for me. Same behavior as before.

Hey, just reporting something that I think is a bug. It seems that setting up an STM component with an AudioSource to only works when autoRead is true. If autoRead is false and you force the text to read (e.g. by calling Read(0f)), the audio will play once at the end of the line, but it won't play continuously while the line is reading. I tested it on two unrelated objects so I think the bug will be reproducible. This is ver 1.11.

This seems neat, but one feature request: I'm guessing there is some personal or artistic reason for your chosen aspect ratio, but I think there's a setting in Unity to force a custom ratio instead of a custom window size. That would allow people to fullscreen the game without breaking the aspect ratio. I might be in the minority here but I always struggle to play games that can't be fullscreened.

Glad I could finally try this! Some thoughts:

  • The environment sprites are a bit lacking in detail (e.g. the logs and door switches), but the UI work is really really nice. It's cool to see pixel art UIs nowadays, because I often see games that try to mix a modern UI with pixel graphics, and sometimes that looks odd. This feels authentic to the SNES/GBA era
  • The dialogue is cute and I like the auto-scrolling text while you're playing
  • The text during the boss battle felt odd - like there's a timer that stops you from pressing to advance, but the timer is longer than the time it takes for the text to read out. The concept is fine but the timer is probably too long
  • Gameplay-wise, I mean, it's a standard platformer. I assume some features of catgirl form have not been implemented yet, because I couldn't find a use for her compared to the cat, seeing as she walks more slowly
  • I must reiterate that the dialogue was fun, and I think the overall flavor of the game is a large part of its appeal, because the core gameplay is something that we've all played before.

Hi again. I'm fiddling with the Unread method for the first time, and I'm trying to get this text component to unread as if it's backspacing. In other words, the component would Read normally from left to right, and then Unread from right to left.

Regardless of which option I pick for Undraw Order, it always happens from left to right. For example, both "One Word At A Time" and "RTL One Word At A Time" behave the same way. It seems like a bug, but let me know if you can't reproduce it. Thanks!

(3 edits)

Hi everyone! Our game has been around for a while, but we're happy to announce that the demo of the first chapter has finally entered beta. If you'd like, please try the first chapter of Monospaced Lovers!


Clara wakes up to a phone that isn't hers.

On it, she finds a perplexing message left by a hacker named the Gòd o͏f̴ B̴in͠a̸r̨y̧, who states that her time left in this world is short. Her only clue is a series of encrypted messages locked on the device — and a mysterious new friend who woke up to a phone that wasn't his.

What does this enigmatic hacker want? Why is he talking about the end of the world? And what does any of this have to do with Clara's quaint and peaceful life in Haven Heights?

All we know for sure is that if she doesn't embark on this quest... her friends will drag her into it anyway.


A personal note, from us

Monospaced Lovers will be 4 chapters long, for a total of 10+ hrs of gameplay. We're working on Chapter 3 at the moment, so the full game should be released in 2021.

Even though the first chapter is content complete, we're still working to improve the existing content. In particular, we want to expand and improve the environment art. Once the assets are ready, we'll release an art update for the demo. We also might sell a limited run of early access keys once Chapter 2 is content complete with all of the new art. We don't plan on doing Steam Early Access, so the limited beta will be a great opportunity to try the game ahead of everyone else.

Follow the game's development!

If you're not in the mood to try the demo but you still want to receive a message when the game is finished, please give us a follow on itch! You'll automatically receive email updates when we publish a new build. We also have a mailing list, Discord, and a Steam page.

Thank you! ✨

(1 edit)

I'm glad I finally got a chance to try this game! Been seeing it around for a while. This is the type of game I'd actually buy for myself, so I took the time to play the whole (?) demo. I got the double jump and crescent kick jump.

love the physics. I think you mentioned Melee in the threads once? I can definitely feel the influence. The midair forward punch feels just like Shiek's fair, and I love the feeling of drifting around in the air. The divekick bounce feels great as well.

If this is a 1MA project, then you're off to a really good start, because you seem to have a good grasp of both programming and art. The environment art feels slightly lacking, but I can't put my finger on why, as i'm not an artist myself. The character animations and effects are awesome.

Wall of text incoming:

  • I don't think the game detected my controller when I turned it on after the game was already loaded. I had to restart the game with the controller already connected. I know Rewired handles this automatically but idk which input system you're using.
  • The camera's look-ahead feature is cool but perhaps a bit excessive. For example, let's say I'm on the left and a boss is on the right. I dash to the left to avoid an attack, and the camera leads even further to the left. But then, I try to immediately dash back towards the boss to score a couple punches, and now the camera has to swing all the way back to the right. It's easy to lose track of your location and the boss's location with the camera constantly swinging like that. But I see what you're going for, and I think it heightens the feeling of speed, but maybe it needs to be toned down.
  • I think there should be d-pad input because it feels more precise to me. Related: on my DS3, the character reaches full velocity at maybe the 50% mark on the analog stick. I found it hard to make micro adjustments while platforming because she would constantly be at full velocity, and it feels slower to swing the analog stick back and forth instead of just tapping the d-pad to adjust your position. Maybe changing the max velocity threshold would make the analog feel more responsive.
  • I unironically appreciated the Bane shoutout. I hope you keep that in the final game.
  • I think the rain sound effect doesn't loop properly?
  • Maybe there should be some kind of combo bonus? The game gives you tons of different attacks, but the easiest/safest way to beat the bosses was to dash in, punch twice, and dash away to avoid the counter-attack. Jabs felt perfectly sufficient, and trying to get fancy with combos just resulted in death.
  • Speaking of death: >the "no-waves" vandalized this place again...
  • The healing animation didn't loop, i think. She floats upward repeatedly instead of floating up and then down.
  • Penelope battle was awesome. How can I explain it. Obviously it's a low-stakes battle, because there's a save point right there. But I like the fact that the game is willing to kill you for having a slightly slow reaction time. It sets a precedent IMO.
  • You can spam attacks while a door is opening
  • Returning to the main menu doesn't seem to fully reset the game's state. For example, after flying into the void area in Downtown, I tried to reset to the main menu, but when I reloaded I was still in the void. It worked fine after closing the game and reloading.
  • Dunno how this happened
  • The fact that you can't run all the way up to a wall feels awkward. I think it's because you need a bit of space for the wall slide animation, but it looks odd. Also, if you try to run into the wall, the little dust clouds appear even though you aren't moving:
  • This area was kinda funny because you could mash jump infinitely without actually jumping:

Phew. I think that's all. Hope this helps. Overall I love the fact that the game has an actual story and setting, and it feels like there's a purpose to everything. Rainy, lonely Chinatown is always comfy. I think there's a lot of promise for a real commercial game here so I hope you become a NEETdev and finish it

(1 edit)

Just encountered a bug with STM that might be related to the recent update. I'm on Unity 2019.2.8f1.

The error is Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array, and it points to line 4324 of SuperTextMesh.cs.

For some reason this only happens on one particular dialogue box when it gets rebuilt (e.g. if it attempts to auto-read or if I change something in the Unity editor). It doesn't happen on the other boxes. I could try to find what makes this particular STM object different from the others, but do you have any clues for what to look for?

Oddly, this happens even if I delete the STM component and replace it with a fresh one

Hi, thanks for the report! I couldn't reproduce this issue exactly, but I know roughly what's causing it. I added some code to make sure your position doesn't get adjusted upwards if there's a ceiling in the way, so the problem should be gone in the next update.

>This is because, in theory, by playing tetris and changing the layout of the dungeon, eventually you may create a path for the knight

Ohh, I hadn't realized it but I guess that makes sense. I've had situations where the knight was walled on all 4 sides, like being stuck on a one-tile island with nowhere to walk (and no action points). But, if you drop a tetris  piece with an unwalled edge next to the knight, would the spot you're stuck in open up to accomodate the new piece? In that case it would indeed be possible to un-stick yourself.

>I can't be sure this is what you're talking about, but maybe the knight wouldn't move because he was out of Action Points? 

Nah it wasn't this; there was no animation or anything. I feel like it happened when I was playing quickly, like if I move a tetromino around, walk one step, press fast fall, walk another step, etc. Like if a coroutine got stuck/cancelled somewhere. I should also note that I was playing on a controller though.

I gave this a try, but I am really not a Tetris person so I can't provide much feedback. Spent 45 mins and almost made it past level 2...

Some notes:

  • The knight freezes randomly sometimes, but you can still control the tetrominos. I can't reproduce it; it felt very random
  • There should be a Start/Escape menu to restart the level
  • When you hit an enemy, I kept thinking that the hearts represented the amount of damage being dealt rather than the amount of health left
  • There should be some kind of red warning bar when you're at low health because it's easy to miss this
  • The green warning for when you're about to void yourself is extremely useful
  • It's possible to wall yourself in if you don't have enough actions, but I guess that's part of the design. I wonder if the game should end if you enter an invalid state like that. Honestly not sure.

The visuals and UI are nice, and I can see how there could be a lot of depth here. For someone who knows how to play Tetris. Apparently that's not me! It was a cool experience though.

Oh, one question

>You should soften up the edges of your tiles with grass and flowers

Do you mean the top edge, or the sides, or both? The sides are tricky because the wall slide has to look natural, but the top might be doable. If the grass is on a sorting layer in front of the characters, then it can probably be softer on top, and it won't look like the characters are standing on thin air.

(1 edit)

Hope this helps!

I encountered one bug with getting hit while climbing a ladder. Otherwise, it felt pretty solid.

(1 edit)

I remember trying to play this before but it was crashing at launch.  I have a feeling I was on Win 7 at the time but right now I'm on Win 10. This time it's working!

Hope this helps. Seems like an ambitious project but good luck with the game!

Monospaced Lovers community · Created a new topic Feedback

Don't feel like creating a new thread just to leave a simple comment? This is the thread for you!

All feedback is helpful, even if it's just a line or two. Feel free to leave your thoughts and opinions here.

Okay thanks. I feel like it would be difficult to move and dash with the same hand, but I dunno, it depends on what you're used to. I always play these games with controller so I find it hard to use my own judgment here.

I just booted up Celeste to check, and it also uses Z, X, and C as the primary buttons, so I'll probably leave the defaults as-is unless a lot of people request another specific setup.

Thanks! Aiming for end of year release right now; the game's been around for a while so I'm glad if it finally feels polished and relatively less buggy. Might do a limited early access release on itch/discord to help playtest the content after ch1.

These are good points and I can address most, but I still haven't decided how to prevent the dash spam.  There used to be a cooldown where you couldn't dash again for 0.1 secs after ground dashing, but it felt slow and sticky, idk.

Re: getting stuck, you're right, I changed some stuff and accidentally made that part less obvious than it used to be. You can actually dash horizontally through the gray platform things, so it's possible to enter the cave near the Bloodthirsty Slime and travel all the way left. I'll rearrange it to make it more obvious because you're not "supposed" to get stuck there.

You can rebind the controls in the phone menu if that helps.

I always get different feedback on what the default PC keybinds should be. For a platformer, if WASD is move, where would you personally put the action buttons (jump, dash, pick up item)?

Damn, happy to hear that you're familiar with Sepia Tears. Good luck with the fixes!

Sure, I just sent it

Yeah, the mansion. I have a gaming PC so it isn't a performance issue, but it could be some obscure hardware or driver incompatability, idk. But I can try it when you push a patch.

Hm, the game crashes when I try to enter the first room. I'm on Win 7. Not sure what engine this is or where the error logs would be stored.

That said, the first 30 seconds were really good! I love the AGDG splash screen, and the dash feels great — it's super high velocity. It's neat how the character pauses at the peak of the jump as well.

Oh yeah, same here, crashes on start. Win7 64bit as well.

Nice artwork! I saw this game in the threads a long time ago and I didn't know it was still around. Some notes:

  • Not sure if it's only on my end, but the controls feel sticky. E.g. if you walk upwards into a wall, then tap left, then tap up again, she just keeps moving left while facing upwards. This makes it hard to move quickly and accurately. Here's an example
  • This is just a quality of life thing, but you should probably add an escape menu that lets you return to start and/or go to options, instead of just closing the game.
  • I think I encountered a bug with the fire? I was standing near a piece of fire when my fog ran out, and it felt like I got stuck inside it (couldn't move in any direction), but visually it looked like I was one unit above.

How strange... yeah the original problem was likely related to exectuion order, but it looks like everything's working now? Actually, the issue might have been that I was using a material called UIMasked, and I can't remember if I made that myself or if it came with an older version of STM. Either way, I'm currently using the UIDefault material (because masking is built-in now) and it appears to be working. Could have been some obscure material setting messing things up.

Hey again, just bumping this with what appears to be a related bug.

It's hard to explain, but it seems that the nested mask doesn't work properly when objects are enabled/disabled. I tried to record an example in this clip. The bigger mask is the phone area itself, and the smaller mask is the chat backlog area. If I deactivate the object hierarchy with the chat backlog mask and then re-activate it, the child mask doesn't work and the STM object only responds to the first mask (you can see the text peeking out in between the backlog area and the phone area). Then if I deactivate/reactivate the STM object (or change anything inside of it), it updates/refreshes somehow and then it works properly.

It's completed! I'm just sending out review keys to Steam curators and stuff like that before making the release date public.

Found a bug? Post it here (or PM this account). Please include the Ren'Py traceback and any other error messages that you receive.

By "auto-configured", I meant something like this.

Above is a Text component added as a child of a nested mask, and below is a Text component added as a child of the top level mask.

And while we're at it, this is what the shader properties look like when I create a Text object without any parent masks.

(1 edit)

Hi - just leaving a request here for something I was toying with recently.

If you use Unity's Mask component on an object and then add an Image as a child, you can peek at the shader settings to see how Ref, Comp, etc are auto-configured. I don't understand it fully myself, but I noticed that the STM UIMasked material stopped working when the object was placed in a nested mask (i.e. two of the object's parents had a Mask attached). I was able to fix this by poking around the editor and copying Unity's auto-configuration for what happens when I add an Image to a mask-within-a-mask. The material looks like this: 

This works for my use case. I have no idea how general it is, but I thought I should mention it since it would be a useful feature for the asset. At the very least, it looks like _MaskMode needs a range of more than 0-1, because every nested Mask that you add will have to write to another number.

(4 edits)

Found a bug? Post it here (or PM us).

Also, if you saw a red error message in the bottom-right corner of the screen, please include the error.txt file found in your save directory, which is in...

  • Windows: %USERPROFILE%/AppData/LocalLow/Scarlet String Studios/Monospaced Lovers
  • Mac: ~/Library/Application Support/unity.Scarlet String Studios.Monospaced Lovers
  • Linux: ~/.config/unity3d/Scarlet String Studios/Monospaced Lovers