Lots of Reblogs

@zichqecs-hoard / zichqecs-hoard.tumblr.com

This blog is my personal hoard of stuff I like, mostly cats/cute animals and Undertale. My art is at Zichqec.tumblr.com ^^
Avatar
reblogged

Ghost Jam 2024 is starting soon!

It's that time of year again, it's time for Ghost Jam 2024! If you're not familiar, Ghost Jam is an event we host annually where participants build a brand new ghost in just a week!

We're changing some things up this year, and our rules are now available outside of our Discord server. That means anyone can join, whether they're a part of our Discord or not!

You can find the rules and information for the event here: https://ukagakadreamteam.com/events/ghost_jam_2024.html

We have a Japanese translation for the rules again this year, thanks to the hard work of @ nikolat (Don). If you are interested in our event, we would be happy to have you join us!

The jam will be starting on May 24th at midnight (EDT). That gives you about two weeks to find teammates if you want them, and plan out what you'll be making.

IT'S TIME!!!

Come make a ghost! Make a tiny ghost! Team up and offer your art or your writing if you don't know what you wanna make! Get involved!!

Avatar
reblogged

hey tumblr followers of mine and/ or tag searchers

do you (!) know/ understand belarusian? are you reasonably confident in your ability to navigate a computer filesystem? have you ever wonder just what the fuck an "ukagaka" even is (and how theyre made)? Most importantly, are you any good at giving feedback?

if yes to like at least one maybe 2 of these questions i have . A quest. For you, even.

... 👉👈 help me proofread my belarusian ghost guide? (No images for now)

I already know it's going to be full of grammatical errors & random russian words (it was a nano project,,) i am just not sure where exactly all those grammatical errors are. Also stray typos.

To contact me you can start a reblog chain (long) tumblr ask (ok) or a tumblr ask about discord* (off anon so i dont give my discord to like everyone)

*(or if you want to join the ukagaka dream team discord & find me there that also works)

thank you! :-)

I don't think like, anybody actually follows me anymore, but if anyone does and can help with this, here is a cool thing!

Avatar
reblogged

We're trying out a new event! The Etc. Jam is an event where participants will create someting ukagaka related that is not a ghost itself. This can be a variety of things, including translations, shells, SAORI, plugins, calendar skins, balloons, and guides!

If you're interested in becoming an ukagaka dev but it seems too intimidating, we welcome you to join us and create a smaller project for this event! It's a great way to get started. And if you're already a dev, this is a chance to try something new and expand your skillset, or to finally make that side project you've been thinking about!

Etc. Jam will be a 72 hour event, taking place from 12:00 AM September 22nd to 12:00 AM September 25th (EDT). That's in just a week, so don't delay if you'd like to take part!

Since this is a brand new event that we haven't tried before, we'll be looking for feedback afterwards on how participants liked it and what they'd like for us to do differently. So if you want to help shape this event or others like it going forward, do join us on Discord to participate and make your voice heard!

New event upcoming! If making a ghost is too big, it may help to start out with something small like a balloon!

Avatar
reblogged
Avatar
logicpng

I think I can with certainty say I'm past the halfway point with this. there's not that much random dialogue left to make up

I can only hope the switch works as intended on other computers, since a different timing left them mid-transition. it seems like it doesn't interrupt the bubbles switch but it's only if the menu switch/shell reset comes at a specific point before it 🤔

sakurascript is really weird with calling functions, but I Think if you call it as a variable ( %(function) ) it doesn't interrupt the script?? maybe??

[Image ID:

Two gifs showing off Vega complaining about the messiness of Windows' system32 folder, providing the user with a link to open it and see for themselves, and the right click context menu changing its color scheme alongside Vega switching to Rigel.

End ID]

What interrupts scripts is when a new SHIORI event is generated! SHIORI events are things that start with On, like OnMouseDoubleClick, OnBoot, or even user-made events like OnMainMenu, etc.

So if you use sakurascript’s raise tag, what you’re doing is starting a new event, and if it returns an output, that will interrupt the current script! You can use the embed tag instead, if you want to run an event and display the result in the current script.

Or, you can use YAYA’s embedded elements in order to run an event and display the result in the current script. Those sound similar, but there’s actually pretty big differences between them. Most notably, YAYA’s embedded elements will run every time the function they are in is run, even if the script they’re a part of is not chosen (do not put variable changes into %(these)! Especially if you’re wanting to change variables in randomtalk! It will cause you pain and suffering. Been there, done that 😂). Sakurascript tags like raise and embed, on the other hand, will only run when the script they are in is run, and in particular won’t even run until the ghost reaches that part of the script.

And of course, the other difference is that in YAYA you’re running these as functions, whereas with sakurascript tags you are only able to raise events. That means that with sakurascript tags like raise and embed, you have to start the names with On!

(Ok, for some things like choice tags you don’t have to start the event names with On, but that’s a technicality for another time. There are special events that handle these and that’s what generates Select.options, I will explain further to anyone that wants to know if desired.)

Anyways hope you don’t mind me talking about this stuff a little 😂 I love to make these things. Good luck with your ghost, it’s looking neat!!

Avatar
logictxt

this is very informative, thank you! i have figured some of this stuff out by trial and error, but this is still helpful! your guide on YAYA has also been a huge help in the process! it's been a mix of it and AYAYA on google translate haha

anyway i feel like sharing this, maybe you happen to know how to do this better, or maybe you'll just find this interesting:

basically behind the scenes of the second gif: after the transition finishes playing, an embedded yaya function is called to change the files and ask through sakurascript to reload the shell, and then asks it to change the balloon

this explains why OnSwitchMenu doesn't interrupt the script then, it's basically equivalent to \![reload,shell] since that what the code outputs.

(i've since combined OnSwitch and OnSwitchMenu since i thought the split isn't necessary. all the FMOVE are before the actual string selection, and the embedded element is now just [reload,shell])

but apparently the oddity is in \![reload,shell]? if it's any earlier in the string, it doesn't make it through and gets stuck on mid-switch outline surface. the balloon also fails to change. so reloading the shell interrupts the string

but when it's right before [change,balloon], not only it makes it through and changes the balloon, any dialogue i have in OnBalloonChange also keeps going (that's the only way i figured out how to get Aster to speak right after the switch)

i don't mind them blinking out of existence for a moment after the switch i think, both the menu color scheme and the speech balloon change as i intended, but also this is puzzling me!

Oh I see 🤔 Hmm... yeah, messing with the reload commands can be a little fiddly, in my testing anything after a reload like that does not display. If I do eh...”\![reload,shell] shell has been reloaded” in script input, I can see “she” type out, and then the shell reloads and the rest is cut off. I think because these commands are probably expected to be used in a debug way?

You could consider having the alternates as completely separate shells instead, and locking it off so that the user can’t switch between them manually (though if you did that, you would need some additional code to prevent switches from the ghost explorer as well, if manual switches are undesirable). That way you could just give each shell its own menu in the first place, and not need the shell reload command.

The downside being, I think the blip would be more noticeable that way, and you would also need code to make the new shell loading in move to the same position that the other shell was when it was unloaded. I’ve done it before, it’s not impossible, but it is a bit of a pain 😅 If you did it that way, you could chain the balloon change command onto OnShellChanged.

That’s probably not ideal unless you’re really desperate though, I imagine it’d be difficult to switch over everything you have to deal with a multiple shell system depending on how far you are into it.

Another thought... you could set a variable in the OnSwitchMenu function like shellchange = 1 (and in that case, I would recommend changing it to an \![embed] tag rather than an embedded element, just in case the user cancels the script before it finishes executing. Or, you could use \t in the changing script to prevent the user from cancelling!), and then in one of the events that fires after the shell reloads, like OnNotifySelfInfo, check for that variable, and if it’s 1 set it to 2. Then in OnSecondChange, if it’s 2, change the balloon and reset the variable to 0. (Notify events can’t run scripts on their own, but if you don’t mind a 1 second wait you can shunt it off to OnSecondChange. It’s not my favorite method, but it’ll work in a pinch. You have to be careful with OnSecondChange though - under almost no circumstances do you want to end up outputting a script every second; it’ll interrupt your balloons and make the ghost unpleasant to use.)

That idea is definitely janky 😂 You could also try a timerraise (that’s timer raise, not time raise) command after the reload command instead, if you don’t mind waiting a second or two, and have the event that it raises change the balloon. That may come with its own kind of jank (can’t guarantee how long it’ll take the shell to switch in all environments), but it may be worth testing out to see if it’ll suit your needs.

But by far I think the most solid method, at least for changing the balloon, would actually be to combine your balloons into one. A lot of my ghosts have done this lately, where each balloon has multiple color options combined into a single balloon, and I use OnTranslate to change the balloon tags appropriately (but only if the ghost is currently on that balloon). SSP Angel is a good example of this! They go a bit overboard with the customization, in your case it should be a lot simpler. It should be as simple as an if check to make sure your custom balloon is being used, like if SHIORI3FW.BalloonName == “Aster Tooltip”, and then a check for which mode the ghost is in, and a set of replace commands if it’s in the mode with the alt coloration.

That method has a few benefits, primarily that it makes the script more straightforward so the balloon change always happens, and it cuts out any loading time for the balloon. And with OnTranslate handling the color changes, you can keep writing balloon tags as normal. (Side note, I do not recommend trying to use embedded elements for this instead. I used to do that with tags like %(b2) and %(b4), but then I found out that if I asked my ghosts to repeat the last dialogue just after I changed colors, they’d use the wrong one! So I let OnTranslate handle it now.)

I suppose eh... the problem is it’s difficult to have the reload shell command and a balloon change command in the same script and guarantee it’s not going to behave strangely. So I think the best solution, if you’re able to, is to eliminate one of those, and combining the balloons would do just that. But if that doesn’t suit your needs for whatever reason, maybe those other methods will work 🤔 just test them thoroughly, I suspect they would be plagued with issues of their own 😂

Ooh wait, I have one other idea. Have you considered using a change shell command, and simply switching to the same shell that you’re currently using? I think that would still have the effect of reloading it, but you get the benefit of the OnShellChanged event firing! That way you could set a variable, do the change, and then have OnShellChanged check if that variable is set and perform the rest of the change/dialogue on its end. \![change,shell,%(SHIORI3FW.ShellName)] should change you to the current shell, no matter what it is (uh, these SHIORI3FW variables I’m using assume you’re using YAYA and not AYA, since they come standard with YAYA specifically. I’m guessing you’re using YAYA if you’re using my guide, but I’ll make the note anyways.)

SORRY THAT’S A LOT but hopefully at least one of those things is helpful 😂

#003#Ukagaka#//thought process at like 3AM:#//Hm should I post this on my formal art blog or my reblog blog#//I wonder if there's a chance my name will be recognized 🤔 I'll use the reblog blog to be ??? less intimidating?????#//zi you donut your name is also in the url of this blog and PEOPLE WILL NOTICE...#//oh god people are seeing me in places and recognizing my name WHERE HAVE I GONE WRONG#//aaaaaaaaaaaaaaaaaaaaaaaaaaaaa 🙈 I am very glad my guide has been helpful!!#//Also yeah about the thing with the variable changes in embedded elements#//Changing variables through script input is super great!!#//The problem is uhm... *specifically* in functions where there are multiple possible output scripts and only some of them are supposed to#have the variable change#//Because the weird thing about embedded elements is that any time the function that contains them runs#//All of them run whether the script they are in is picked or not#//So if you have like... 100 dialogues in randomtalk and just one of them has a %(variable_change)#//Every single time the ghost says an idle dialogue the %(variable_change) is run#//And you can see how that would result in unintended behaviors! It's a very common bug#//Because wanting a variable to change in response to a dialogue is common#//But that behavior of embedded elements is not at all intuitive#//And it's not explained in very many places#//Embed tags and raise tags are great for such situations though!#//It's 6AM I hope this is coherent 😂#//Would be happy to talk about ghosts another time tho!! 😊 Always happy to chat about em and excited to see more people making em#//And especially seeing folks get creative with YAYA!
Avatar
reblogged
Avatar
logicpng

I think I can with certainty say I'm past the halfway point with this. there's not that much random dialogue left to make up

I can only hope the switch works as intended on other computers, since a different timing left them mid-transition. it seems like it doesn't interrupt the bubbles switch but it's only if the menu switch/shell reset comes at a specific point before it 🤔

sakurascript is really weird with calling functions, but I Think if you call it as a variable ( %(function) ) it doesn't interrupt the script?? maybe??

[Image ID:

Two gifs showing off Vega complaining about the messiness of Windows' system32 folder, providing the user with a link to open it and see for themselves, and the right click context menu changing its color scheme alongside Vega switching to Rigel.

End ID]

What interrupts scripts is when a new SHIORI event is generated! SHIORI events are things that start with On, like OnMouseDoubleClick, OnBoot, or even user-made events like OnMainMenu, etc.

So if you use sakurascript’s raise tag, what you’re doing is starting a new event, and if it returns an output, that will interrupt the current script! You can use the embed tag instead, if you want to run an event and display the result in the current script.

Or, you can use YAYA’s embedded elements in order to run an event and display the result in the current script. Those sound similar, but there’s actually pretty big differences between them. Most notably, YAYA’s embedded elements will run every time the function they are in is run, even if the script they’re a part of is not chosen (do not put variable changes into %(these)! Especially if you’re wanting to change variables in randomtalk! It will cause you pain and suffering. Been there, done that 😂). Sakurascript tags like raise and embed, on the other hand, will only run when the script they are in is run, and in particular won’t even run until the ghost reaches that part of the script.

And of course, the other difference is that in YAYA you’re running these as functions, whereas with sakurascript tags you are only able to raise events. That means that with sakurascript tags like raise and embed, you have to start the names with On!

(Ok, for some things like choice tags you don’t have to start the event names with On, but that’s a technicality for another time. There are special events that handle these and that’s what generates Select.options, I will explain further to anyone that wants to know if desired.)

Anyways hope you don’t mind me talking about this stuff a little 😂 I love to make these things. Good luck with your ghost, it’s looking neat!!

Avatar
reblogged

Ghost Jam 2023 Results!

Hey folks! Ghost Jam 2023 has concluded, and now it’s time to share the results! We have, once again, had a rather large turnout, so buckle up for a long post!

This year we had 25 submissions by 31 different developers. That’s 2 more submissions than last year!

Of those submissions, 6 of them were made in the first 72 hours of the jam, qualifying for our 72 hour challenge. 3 of those were even done within the first 24 hours!? That’s a first!

13 of the ghosts were made from scratch/just a single template, with no other pre-made assets, qualifying for our New Assets Only challenge!

Additionally, this year we saw a little more variety in the languages, both spoken language and coding language, used to make the ghosts! One ghost was submitted in Japanese, and another in Russian and Belarusian!

As far as coding languages go, most English ghosts use a language called YAYA (or sometimes the older version, AYA), but we had one entry in Satori, and one in Kawari!

Of the participants in the event, 20 of them were participating in a ghost jam for the first time, and 15 of them released their first ghost as a part of the jam!

Harder to quantify with stats, but still very interesting to note, was the great variety in ghosts that we saw this year! There are a lot of really creative entries that deviate from the standard ghost style. Some are desktop buds, some are focused on a single concept, some pull you into the character’s world, and some are entire games! Give them all a try, there’s a lot of cool stuff here!

With all of that out of the way, let’s see the ghosts! As mentioned, it’s a long post, so check under the cut for the listing!

Avatar
3rr0rwhite

damn why did the Wally ghost link have to be down ;-;

The download for Wally is still working for me. Is it giving you some kind of error?

Avatar
reblogged
Avatar
bittybatty

It's been a while since I posted about it, but I work on Ukagaka, which are coded little friends to sit on your desktop that you can interact with! I have one I made from some somewhat dated lore of Riccardo when his canon was a modern setting. He still gets updated about twice a year with new dialogue and such. He got one update for pride month to be able to give him the above rainbow blanket and scarf!

If anyone is interested in downloading him, he is free on my website at bittybatty.github.io/ukagaka.h… If you've never played with Ukagaka before, I recommend reading the FAQ's at the top of the page first! And also check out @ukagakadreamteam to find more ukagaka/ghosts to play with!

Disclaimer: The background above is just my current desktop. Doesn't come with Riccardo.

Avatar
Avatar
echogaster

84 Artists collaborate to celebrate the former royal scientist W. D. Gaster. The stories and personalities of the character filling every space between black and white.

Who is he? Perhaps he is all of our interpretations. All at once, unable to know, trapped between existence and not, switching between these creative channels faster than… Well.

Note that this video contains flashing images, strobbing of black and white. If you know you have an issue with epileptic seizures, DO NOT WATCH.

104 Gasters were submitted for this project. Some you may recognize, but all are worthwhile. May we all continue to be inspired and create, however it is we do.

The full list of contributors with their desired link is listed below. Please be respectful to each and every one. This video would not have been possible without everyone’s participation.

Has it been 7 years??????

Avatar
reblogged

Adoption Jam

Here is the official announcement for the Idea Adoption Jam! The basic premise is to adopt an idea from ⁠Free ideas in the thread Ukagaka Dream Team Discord, and bring it to life. The event will start on June 19th and end on June 25th (UTC +2) Go find an idea that suits you and find a team if you wish to do so. There is one rule regarding choosing an idea: The idea has to be from ⁠Free ideas thread in the Ukagaka Dream Team Discord, and it cannot be your own or any of your teammates. Join the Dream Team Ukagaka Discord Server to take part in the jam!

Another neat jam coming up, spread the word!

You are using an unsupported browser and things might not work as intended. Please make sure you're using the latest version of Chrome, Firefox, Safari, or Edge.