the invite link for the discord doesn't appear to be working? :(
Which link are you trying to use? I tested the link that's listed on this blog and our wiki, and it appears to be working on my end (although I couldn't fully confirm since I'm already a server member and it requires me to log in).
There are some other invite codes floating around, and those ones may not work, so I generally recommend using the Discord link listed on our wiki!
If that's still not working for you, could you please send another ask noting what specific link you tried, and what you encountered when clicking it?
hi!! im new to ukgk, i was wondering if theres something i could do to fix my teruno's dialogue options being all question marks whenever i talk to her?
Hello! I don't think I've heard of dialogue being specifically converted to question marks before, as opposed to mojibake. I don't actually have Teruno, so I don't know what specifically the issue might be.
What I can say is that there are two common causes of the dialogue being messed up.
If the ghost is written in Satori, you may need to update the satori.dll file, which can fix various bugs that cause mojibake.
Verify the ghost you want to update is using Satori. To do this, navigate to the folder where SSP is installed, then go into the ghost folder. Find the folder for the specific ghost you're using, and then inside that folder go to ghost/master/. If you see a file called satori.dll in there, then it's a ghost made with Satori. If you do not see satori.dll, and instead you see another dll such as yaya.dll, shiori.dll, or aosora.dll, this fix will not work for you.
Download the latest version of Satori. (Click "satori.zip" under the assets section there.)
Unzip satori.zip.
Inside the unzipped folder, select and copy satori.dll.
While the ghost in question is closed, paste the new satori.dll file into its ghost/master/ folder, overwriting the old one. (You can rename the old one before this if you want to keep a backup copy just in case.)
Boot the ghost and see if it worked.
This procedure fixes most issues with mojibake, although of course, it only applies to ghosts written in Satori. (That being said, Satori is an extremely popular choice for Japanese-speaking ghosts due to its ease of writing, so most ghosts you encounter are likely to use it.)
For other SHIORI, or issues not fixed by the above, you may need to adjust the charset.
For that, you can right click the ghost and navigate to Options>Set default charset.
The charset window itself looks like this:
For most ghosts, you'll only need to change the SHIORI option. For ghosts that have a makoto.dll file, you may also need to change the MAKOTO option. (For curious devs: MAKOTO is, to my knowledge, a shell-side predecessor to OnTranslate. It can still be used today, but it's very rare since OnTranslate covers most of what MAKOTO would do!)
The last two options are for such old ghosts that I'm actually not even sure what circumstances they'd be used in. Unless you are using ghosts from the very earliest days of ukagaka (perhaps before having different characters as separate ghosts had even been invented) you probably don't need to touch those two.
Most English-speaking ghosts are encoded in UTF-8, and many Japanese-speaking ghosts are encoded in Shift-JIS. There are exceptions of course, but those are the two encodings I would try to see if they make a difference.
It may be worth opening the ghost's descript.txt to see what it states the charset to be (this will usually be listed near the top of the file, like charset,Shift_JIS ). Try to match what's written there, especially if it's not Shift-JIS or UTF-8.
You can also try opening the ghost's dictionary files in a source code editor like Notepad++, and see what it says the character encoding is. (Usually the files you're looking for are in ghost/master/ and have "dic" or "dict" in the name or extension.) Notepad++ has a display in the bottom right corner of the window that shows the encoding as well as some other information, as you can see here.
Whatever encoding is shown there, try that one, especially if it's not Shift-JIS or UTF-8.
Hopefully one of those methods will work for you! If neither of those help, write back with some more details of what you've tried and what the situation looks like (as well as what SHIORI the ghost uses, if you can), and we'll try to help some more.
Ive been struggling with the gaster ukagaka, trying to get the brothers, even after changing my computers time i still cant get them to show up,
We'll need more info about what you've tried so far if you want specific help! Gaster's page on our wiki includes a section with instructions about how to unlock the brothers on either route. Read that carefully if you have not yet, and if you're still unable to unlock them, please send another ask describing which of the requirements listed on the wiki you've already met. Please also include which route you're on.
The more completely you can describe the situation, the better we can help!
hello! hope its just my paranoia but i recently tried to download ssp from the official site. but my chrome seemed suspicious of it, so i downloaded the file and placed it through virustotal and it said there were malware and trojans in the file. i quickly deleted it but im a bit concerned if ill get hacked just because i wanted to have a little buddy on my screen....
There's nothing to worry about! It's a known false positive. In fact, if you look on the official site, you'll see this section that mentions VirusTotal:
Running this through google translate results in the following:
While some comprehensive virus scanning sites, such as VirusTotal, may flag this software as malicious, this is a false positive due to the lack of technically perfect virus detection software. Please use it with confidence.
We scan with the latest version of ClamAV daily for viruses.
You can even click on that last sentence to be taken to the results of the daily ClamAV scan.
A lot of us have used ukagaka for years without issue. It's not just Some Mysterious Shady Program™, there's a whole thriving community of ukagaka devs out there, both in English and Japanese! That wouldn't exist if SSP were malicious software.
Honestly, I'd recommend checking out the English and Japanese communities and getting to know some of the folks involved if you're concerned. I think the community itself, with all of its history and resources and events, is the best reassurance there could ever be that this program is legitimate.
hey thank you so much for getting back to me so quickly about my floating animation question it worked a treat!
I've been trying to figure out how to get some kind of "feelings system" working but I'm not quite sure where to even start with something like that. Do you have any resources to get me in the right direction?
thank you again!
Sorry for the delay in responding this time! Last time you happened to send in your ask at just the right time to get caught up in the round of answers I sent out. My answers here tend to be a bit slow due to me being busy, tired, unwell, or a combination of all 3 😅
For quicker answers, I'd generally recommend folks try asking on the UDT Forum if they're looking for development help or usage help. Because there are multiple folks around there that can answer, questions may be attended to more quickly, and receive input from multiple perspectives! (It's also good to help build up a pool of searchable community knowledge.)
Ok, now on to what you actually asked...
In general, I actually strongly recommend against adding any kind of feelings, relationship, or mood system in your first ghost. They seem simple on the surface, but they really compound the amount of dialogue you have to write! If you're not used to writing for a ghost yet it can turn it into an insurmountable project. I've seen this happen to a lot of folks, so unless what you're wanting to make is really small in scope, I would encourage you to reconsider it.
I once wrote a section in an advent calendar post about the problems this causes. The section linked here is about mood systems specifically, but almost all of it applies equally as much to relationship systems as well.
If you decide that a relationship system is definitely the right way to go for your ghost, then here's a rough explanation of how they work and some problems to consider. (Since you didn't indicate a SHIORI, I won't write specific syntax here, but if you need specific syntax feel free to comment or send another ask indicating what SHIORI you're using and I can probably add some examples.)
Many ghosts go with a points-based system. They're very simple: create a variable that starts at 0, and over time or when the user takes certain actions, raise the variable by some amount. When the value is over a certain amount, unlock some special dialogue (or completely change dialogue pools, but I strongly recommend not doing this due to the amount of dialogue involved).
You might consider incrementing the variable when the ghost is pet (if they like that), when the user completes a minigame, when the user boots the ghost, or other actions along those lines.
Some ghosts allow you to decrease the relationship via certain actions as well, and implement a whole system where you can treat the ghost poorly and they will start to dislike you. (This, again, is something I recommend against due to the amount of dialogue involved... if the ghost really dislikes you, it should probably color everything they say! That means writing effectively a whole second ghost.)
Something to consider (if it's possible to decrease the relationship) is that the user can raise the relationship, decrease it, then raise it again, etc. That might prod at the user's suspension of disbelief! Or, if you've written it so that the character becomes more familiar with the user over time based on the relationship variable, then it may cause weird issues with the tone.
There are various ways to approach fixing this sort of thing. Some ghosts use a separate variable to track negative actions, others dispense with negative actions entirely because they're making an original character and most people are not inclined to randomly be cruel towards other people's original characters. It all depends on your specific ghost and what you want/what you think is likely to be engaged with and therefore worth your time to write. There's not generally an out-of-the-box solution for relationship systems because they really have to be custom for each ghost.
One other note I want to make before moving on: much like I mentioned with characters that can grow to dislike the user, you may find that as the character grows more friendly with the user it feels like they need entirely different dialogue pools for each stage of their friendship. Because, in general, the way you talk to someone you're close to is different from the way you talk to a stranger, so it's hard to write dialogue that suits both states. This is where the dialogue compounding effect comes in, stronger for each additional relationship stage you add. If you have to write 4 times as much dialogue as a normal ghost just to make it feel full, then you're way less likely to be able to complete your project since that's a ton of work! Even experienced ghost devs would struggle with that. Additionally, you may also find that writing for any intermediary stages is a bit demotivating, because... once people move on to another stage, then they won't see these dialogues ever again, so why spend time adding a ton when you could flesh out your final stage more? This was a problem I ran into with my first ghost and could never reconcile.
A points-based system is also not the only way to make a relationship system, and there are reasons that you may not want to pick it. If you have a purely points-based system, it can be hard to balance well so that the progression feels smooth, or you can end up with the issue that the system feels arbitrary to users and the best way to progress through it is to perform some specific action over and over.
Another solution is a flag-based system, where you set flags based on certain actions that have been taken, and calculate the relationship based on that. For example, you could set a variable if certain story events have been seen, or if a certain item has been gifted. Or you could count the number of times the ghost has been booted, etc. Anything at all that you want to feed into it, you can set up a variable to track and then check it later.
A system like this is generally more useful if you want to gate certain content behind specific interactions, rather than just "doing enough good things". If you want it to feel like you've made big progression after having a heart-to-heart with the character, then you may want to pursue a system like this instead. (Of course, you can always mix the two as well. Or, if you really take this to the extreme, you might start going the route of a linear story ghost!)
And finally, a note that relationship systems don't have to be complex entire-ghost-spanning things! For example, I wrote a ghost (Xander's Refuge) where it tracks how many times the user has booted it. In this ghost, the setting is that the user and the character are crossing paths in a cave away from town, and hiding away from responsibilities together. Each time you boot the ghost, that's you meeting again. While this character is generally aloof and not interested in the user, I decided to make it so that after you've booted the ghost at least 3 times, he has the option to select a couple of special boot and close dialogues that give away that he does care a tiny little bit.
It's very subtle, most people probably won't even notice, but I wanted to ensure those dialogues do not show up within the first few times that you use the ghost. That sort of effect is very simple and easy to do, and can be kept from sprawling out into the rest of the ghost! This, too, is a relationship system.
I hope this has answered what you wanted to know, and given you a little more insight into what a relationship system entails! As I said before, if you want specific syntax help, please do comment or send in another ask specifying which SHIORI you're using, and I can probably write some examples.
Some of you may remember I made a tiny simple ghost (what's a ghost?) a while back that put my DemoSoldier sprites (and the Spycrab) on your desktop, but I decided to add some more! This ghost is meant to be super simple, so these new shells don't have a lot of functionality, but I think they're cute little decorations and I like having them around. They can keep you company!
Demoman and Soldier - Bounce in place. Double-click and they jump! Move them close and they'll kiss. :3
Spycrab - nothing, just crabs around
Edgar and Scriabin - nothing, just hangs out
Larry and Kabu - Double click for Larry to recharge!
Gimmecat - Wanders around your desktop randomly! Double-click for a message. >:3
These shells are very simple and small so it's easy to add new ones, haha. If you want to change which sprite you've got, right click them and go to "change shell" and pick the one you want.
Anyway I decided to make them their own page since they aren't just TF2 focused now, so you can pick them up from here (or from Mediafire if you're having trouble)! If you already have SSP installed, just drag and drop the z_sprite.nar onto your current ghost and they'll install. If you don't have SSP or aren't familiar with ghosts you can check out the wiki page for more instructions! This ghost does very little other than add these little guys so don't expect any dialogue or anything, haha.
(If you make your own shells for this with your own little sprites or what have you let me know |D i dunno if anyone will but i'm throwing it out there)
Also possibly a final one. Working on the ukagaka has taught me a lot, but it's probably time to give a shot at making desktop toys that aren't dependent on SSP. My eternal thanks to Ukagaka Dream Team for their help with developing them and patience with my antics🩵.
Life circumstances have been taking up most of my time, but now there's some time to relax and dedicate myself to other parts of the craft I'll need for future works.
For Assistant Software, Terror Star, and Boredom Sim:
Shells have been updated to reflect the label on Aster having changed to a star across both Rigel, Vega, and Aldebaran.
Terror Star specific:
Certain heavier glitch effects got significantly funnier;
Fade in/out effect code replaced, might not work on older versions of SSP.
Note on Boredom Sim:
As of writing the wallpaper doesn't render correctly in the current SSP version (2.8.22), and the Aster animations are missing. Downgrade SSP if you're encountering this.
The updates are available in the respective ghosts' original .NAR packaging and via Network Update.
What a wonderful statuesque, person-thing-statue-mannequin?
Well whatever it is you can decide! as this is another freeshell to be used when making a ghost/ukagaka!
This one has, many static and animated dres sup options that come with many tasty tasty colours.
As all ways, all my freeshells are available at the bellow link:
Just a bugfix update, you should be able to buy the succulent encyclopedia and it will trigger the intended event/ unlock it as a special item in Yes Man's inventory window! If you've already bought it and it went into the normal items section of his inventory, you'll need to delete it since it's bugged. Also fixed the pansexual pride sticker not working, and miscellaneous typoes. As usual, a complete list of changes can be found in the changelog!
The link for the new .NAR is [HERE], or you can click ‘Check Updates’ in SSP’s right click menu to update if you already have him installed!
A celestial-themed mage freeshell to make your own ghost with! He comes with a ton of expressions and several arm poses, as well as dressups, idle animations, and animated spells!
I made him in ~4 days for Etc. Jam 2026.
Download Solar Runes today and write something magical!