I really got into IFs from your first IF and wanted to write one of my own. But I don’t know ANYTHING about coding. Where and how should I start if you don’t mind me asking?
Hi anon! You’re in the same boat as me; I didn’t know a damn thing either when I started. 😅
I’ve answered that in this ask here. I’d also recommend reading through the #coding help tag here on my blog for more specific questions and help.
The 2 main platforms you can use are Choicescript and Twine. I use the latter and don’t know anything about the former. I’d recommend researching both to see which would suit better.
And then simply start! Play around with templates. Look up how-to videos on YouTube. It’s a lot more intimidating from the outside looking in, I promise. You’ll get the hang of it quickly with how many helpful resources there are out there. 🤗
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
hi, I'm a big fan of your game and you inspired me to write my own if
I already have the plot's outline, ROs, minor characters and stats ideas, but I have no idea how to code. I've been trying with chat gpt's help, but every time I playtest the code there's an error
do you have any tips for beginners in choicescript??
Some quick tips, though this is not a full guide by any means.
I'd definitely recommend downloading this sample file from the Choicescript official tutorial: here. This is super useful because you can see what a working game looks like, and you can just amend the choices and the text from there. Also recommend reading the page for all the basics.
Start by going to web > mygame > scenes. The startup.txt file is where you should begin the game. You will also need to look at the choicescript_stats.txt file, which is where you'll put in stats that players see in the 'stats' button.
I think a lot of errors appear when you don't have a *goto at the end of every *label or *choice.
Another common error is when you don't have the right indentations (remember to put 2 spaces after every choice option like this):
Other than that, you also get useful error pop ups telling you what's wrong, and you can always google that error or read through the documentation of ChoiceScript to see what went wrong.
Hi everyone! 👋 If you’ve been scrolling through other blogs thinking, "How did they do that?" but you’re too scared to touch your theme's HTML, this post is for you.
You don't need to be a coder to make your theme look cute. I’ve put together a collection of 12 Simple CSS Codes that you can just copy and paste.
🌸 Want to see them in action first?
CLICK HERE TO VIEW THE LIVE PREVIEW
(Check out the preview to see exactly how these move and look!)
🛠️ How to Add These Codes
It is completely safe! If you don't like the result, you can just delete the code and your theme returns to normal.
Go to your blog and click Edit Appearance (the palette icon).
Click Edit Theme.
Scroll down the sidebar and look for "Advanced Options" or "Add Custom CSS". You may also put this under your <style> tag.
Paste ONE of the codes below into that box.
The Design Collection
01. Soft Corners
If your theme feels too "sharp," this softens the edges of every image.
img { border-radius: 30px; }
02. The Noir (B&W Reveal)
A classic look. Images are black & white until you hover over them.
Don't paste them all! Pick just one effect for the best result.
Customize: You can change the numbers! For example, change 0.6s to 1s for a slower movement, or 30px to 10px for less rounded corners.
Happy editing! Let me know which one is your favorite! 💖
⚠️ Disclaimer: These codes target the standard img tag, which means they will affect most images on your blog. Depending on how your specific theme was coded by its creator, these snippets might interact differently with your layout (e.g., sidebar icons or header images). If something looks wrong, simply delete the code from the Custom CSS box and save, and your theme will return to its original state. Always back up your theme code before making major changes!
I don't know if it's ever been covered, though is there a way to test specific dialogue lines for a ghost?
There are ways! This is a bit of a broad topic since the details can vary depending on the specific ghost and what SHIORI it uses. However, the general concepts should apply regardless, so hopefully this will be helpful for folks!
Note: this advice assumes you've turned on developer mode in the SSP preferences. You can do that on the General page if you've not done it yet.
This turned into a bit of a longer guide, so the details are under a cut!
Dragging and dropping text
This method works under the following conditions:
The dialogue is a single unbroken line (no line breaks).
There is at least one SakuraScript tag within it.
Basically, it works for dialogues that look like this:
\0\s[0]This is a test dialogue.\w8\w8\1\s[10]Neat!
Simply click and drag to highlight that dialogue, and drop it on the ghost that you want to play it!
This method is really handy for quick and easy stuff, and it also works with the SakuraScript examples on Ukadoc's SakuraScript list! It does have some limitations, for example it doesn't work when I try to drag and drop text from Tumblr's post editor. But if you're doing it from a text editor or plain text on a website like Ukadoc, it should work!
Note: for YAYA specifically, if you're using an English template, you almost certainly have a snippet of code that will run embedded elements for you! That means you can test dialogue with %(these) and see the expected result, usually.
Other than that, SHIORI-specific syntax will generally not work with this method, including string interpolation ( ${these} in Kawari, {these} in Aosora, etc. ). It may be possible in some cases to get it working, but I am not currently aware of methods to do so outside of YAYA!
Script input
Similar to the above, but more helpful in some circumstances.
This method works under the following conditions:
The dialogue is a single unbroken line (no line breaks).
You can open script input by clicking your ghost and pressing Ctrl + S. Or, you can open the developer palette (in the Utilities section of the right click menu, or by pressing Ctrl + Shift + D), and open script input from there.
Script input looks like this with SSP's default balloon:
Once you have it open, either type a script into it, or copy and paste a script from elsewhere. Then click OK or press enter, and the script will play!
This method is super handy because you can quickly tweak the dialogue in the script input box and see the changes with just one click.
A couple of notes for YAYA specifically:
As above, string interpolation ( %(these) ) will work here if you have the setup for it.
Script input always inserts a \e tag after the end of dialogue. This can interfere with YAYA's syntax for starting chains. If you want to start a chain dialogue, you'll need to use the next method instead.
Running a test event
This method can test absolutely anything because it is simply the same as making a ghost in general. But in this case, we'll set it up for testing purposes.
The key thing to know here is that for any ghost, in any SHIORI, you can define arbitrary SHIORI events as you see fit. Then, you can call those SHIORI events by any method you like, such as the \![raise] tag.
For example, let's say we have a YAYA dialogue like this:
"I'm currently feeling "
--
"red"
"green"
"blue"
We can't test this in script input since it's spread across multiple lines. However, we can easily put it into a SHIORI event and then call that event. For this to work, the event's name must start with On (which is what makes it callable as a SHIORI event).
Now all we need to do is save the file and reload the ghost, run the tag \![raise,OnTest] in script input, and we should see the dialogue play.
You can use this to test practically anything. In fact, if you just want to test the dialogue in a specific event (user-made or otherwise), you can call that event directly! This is mainly useful for things other than RandomTalk, stuff that only has a few dialogues. For example, I can use \![raise,OnBoot] to run OnBoot with no references.
If you need to test events and send dummy data to test specific conditions, you can just write a raise tag and put the reference data into it. For example, this tag will run the email checking event with reference0 set to 50, which in this case would make it think there are 50 emails: \![raise,OnBIFFComplete,50]
Testing optimization
I do want to quickly mention some optimizations you can do that make testing easier. For example, you may notice that the 3rd method listed above is basically the same as the "test variable" that some English ghost templates come with. Indeed, that is just an arbitrary function for you to test code and dialogue in! (The "variable" in the name doesn't strictly have anything to do with variables, it is entirely arbitrary.)
So of course, if you want, you can put your test event into your ghost's menu so that you don't need to use the raise tag. It will work just the same. For example, I can call the event OnTest with the menu choice \q[Test,OnTest], and I can do the same email test event as before with \q[Email demo,OnBIFFComplete,50]. The key thing to realize here is that you can call SHIORI events at will, and put whatever you want in them!
Debug mode
Something else that you might want to do is hide these tester menu options from users. There's a very simple way to do that! In the developer palette there is a check box for Enable SHIORI debug mode. You can set up your ghost to change behavior based on this.
In YAYA, the code for this is already handled for you, and you can simply write a check using SHIORI3FW.DebugMode in any menu (or other function that you want):
if SHIORI3FW.DebugMode
{
"\q[Test,OnTest]"
}
This if check will only be true if that check box is ticked! This makes it easy to set up debugging tools and information without needing to worry about removing it later.
You can use this with other SHIORI as well, but you may need to set up the code yourself. The event you'll need is enable_debug.
Reloading methods
Another thing worth mentioning is the method you use to reload, since this significantly impacts how quickly you can test dialogue. Quicker reloads mean much faster development!
The quickest way to reload for testing dialogue is to reload just the SHIORI from the dev palette. Just open the dev palette, click Reload…, and then select SHIORI. This reloads everything controlled by the SHIORI, which for our purposes means the dictionary files that you write dialogue and code in. This does not reload the shell, which saves time!
If you click Reload… and then Ghost, it will reload every part of the ghost, but without prompting any dialogue. This is a fast way to reload if you need to reload both shell and dialogue/code.
You can also reload by right clicking the ghost, going to the Utilities submenu, and selecting Reload ghost. This will make the ghost play its close dialogue, then reload, then play its opening dialogue.
This is slow, but you can also set custom dialogue for reloading here if you enjoy that kind of interaction with your ghost. If you don't set custom reload dialogue, then this is also a really useful way to test your open and close dialogues.
Finally, you can also effectively reload by completely closing SSP and opening it again. This isn't a method I would recommend using for general-purpose reloading, however, if SSP is behaving very strangely it is probably a good idea to try this. Occasionally developers have had problems that require an SSP restart (or even a full computer restart!) to resolve, so it's worth keeping in mind.
Hotkeys
Hotkeys can also make testing a lot faster! For example, you can set up a hotkey to reload your ghost, and another hotkey to run your test function. Here's an example of a setup in YAYA:
OnKeyPress
{
if SHIORI3FW.DebugMode //Only use these hotkeys if debug mode is enabled
{
if reference0 == "f5" //Reload when F5 is pressed
{
"\![reload,shiori]"
}
elseif reference0 == "v" //Run test event when V is pressed
{
"\![raise,OnTest]"
}
}
}
There are multiple reload tags listed on Ukadoc, so you can use hotkeys to reload things other than just the SHIORI if you like!
It takes a little bit of effort up front to make a setup like this, but once you have it set up then it pays off by letting you test things much more efficiently.
SHIORI-specific methods
There are a couple of SHIORI-specific methods that it may be worth mentioning as well.
If you use the SHIORI Aosora and the text editor VSCode, you can use Aosora's VSCode extension to send dialogues straight to the ghost. As far as I am aware this has some limitations and only works with stuff that's relatively straightforward, but it seems very useful! If you happen to be using Aosora and VSCode, definitely give it a try.
Similarly, the SHIORI Satori has the tools such as Satolist, which I believe can be used to send dialogues to ghosts directly for testing. I'm not exactly sure on the specifics here (I might have the wrong program), and there are very few English ghosts this would be applicable to, but it is mainly to illustrate that these things are possible!
Phew, that was a lot. Hopefully that helps! If you would believe, there is more detail I left out of here... but I hope that what I've chosen to present here gives anyone reading some firm starting points for testing dialogue, testing events in general, and beginning to create efficient debugging setups!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Making another post about this because I’m really desperate. I cant model or code (I can try and learn maybe??) but I really want to make a Roblox game, or direct it.
I can make art and concepts for everything, get voice lines, make backgrounds, make characters, just make everything that wouldn’t be the actual models and the code of the game. I will try and do everything I can because not being able to model or code is a lot for a roblox game so I want to be helpful to the best I can be.
It’s inspired of doors, forsaken, dandys world, and a bit of elevator games.
The concepts I have right now are a forsaken/dandys world like character selection, so when you get into the game you play as them. The game would be like doors as in theres different rooms and stuff and filler stuff. I’m not sure what the inbetween rooms would be but in special rooms fun events would happen that the team would need to work together to fight against, some maybe even turning a couple against eachother. I also want it to be a little of a horror game.
If you can’t help with the game please maybe repost this so I can find people who can. I’d really love to direct something like this, but I can’t if my posts always gain little attention.