X. Template

X. Template
Download the latest .nar file here!

X. Template is a template ghost I made! It's intended for ghost developers who already know how ghosts work, generally. If you're new to making ghosts, I suggest Zarla's GT Template instead; it includes a walkthrough to get you started!

So, if you're not a new ghost dev, why should you use X. Template? Well, for one I'm sure you've noticed that once you don't need the walkthrough comments anymore, they're a hassle to get rid of. Haven't we all had the experience of trying to remove Triangle but he keeps popping up in unexpected places? X. Template starts you without those things. Here are some differences with X. Template.

Differences users will see

Differences devs will see

Member of the Ukagaka/Ghost Development and Download webring

Previous Random Next

Version history

  • Initial release on 10/21/20

  • Fixed email checking, it should no longer spew headers all over the place before you've asked.
  • Fixed the header code, it's much simpler, cleaner, and works properly now.
  • Fixed an issue where the auto updates button wasn't appearing in the config menu.
  • Changed some options in the config menu to display a 'Back to menu' and 'I'm done' button, instead of clicking the balloon to go back.
  • Changed how new variables are added in updates, and removed that section from the 'Some YAYA tips' file since it's no longer relevant (new explanation is in Bootend because it's very short)
  • Changed the URL that links to the template in the right click menu; it now correctly points to X. Template's page instead of the website's homepage.
  • Changed wallpaper code so that it can see what OS you're running without needing the Saori, meaning that the span option should always appear if available.
  • Changed the function that checks the template's version number, the changelog will now be displayed instantly.

  • Fixed email checking again, I forgot to change the name of 1 variable and I'm very sorry for the trouble.
  • Fixed the aitalkinterval being set to 6 minutes instead of 5 during the first boot, and adjusted a check in the config menu as well.
  • Removed some unnecessary brackets in the config menu and some spots in etc, added in some semicolons instead.
  • Made the RSS/Headline failure dialogue tell the user what error it got even if it isn't a recognized error.
  • Added a note about OnSNTPFailure.
  • Added a check for ] characters when setting wallpapers, as a ] in the file name will cause the wallpaper command to break. X. Template will now tell you that you need to remove any ]s from the file name first.

  • Fixed an incorrect variable name when updates finish. 'updateavailable' should be 'AutoUpdates[1]'
  • Changed "'o clock" in the hour notifications to "o'clock"
  • Added a better loop prevention system in commu dialogue
  • Added a non-interrupt system in commu dialogue
  • Slightly restructured things in OnSecondChange
  • Checking for an update from the ghost's menu now actually starts an update, not just a check (sorry, I keep changing my mind lol)
  • Changed the recommendations for UpdateVars, now it has a proper check to see if the variable exists
  • Made a tweak to nowday and nowmonth. If you call them and include 'last' or 'next' as the second argument, you'll get the previous day/month or next day/month, respectively.
  • Added the Capitalize function
  • When done creating a .nar file, the ghost will give you a link to click that will open the folder you made the .nar in.

  • Removed some testing stuff I left in commu.dic by mistake
  • Uncommented some stuff that I had commented in aitalk.dic by mistake
  • Added some clarification about nonoverlap in aitalk.dic

  • Fixed a terrible bug I added in 1.0.2, which prevented you from changing the talk rate or the pronouns... Turns out those brackets were necessary!
  • Added a Commu Ping Menu. If the variable debug is set to 1, you can press C to get a nice window with the names of all the currently open ghosts in it. Click a name to send them a generic ping, or click the custom option to type in a custom message to send. Good for easily testing commu dialogues!
  • Added a new hotkey: pressing Y will start a commu conversation with a random ghost, same as clicking the 'Talk to another ghost' option in the menu.
  • Changed to the dedicated OnOffscreen function for offscreen dialogue, instead of using OnSecondChange. The format is a little more complicated, but now you can check if any character is off the screen, not just the sakura.
  • Related, changed the name of MikireTalk and EndMikireTalk to OffscreenTalk and EndOffscreenTalk. Same functions, clearer labels.
  • OnGhostChanging now checks to see if reference0 and sakuraname are the same, so you don't need to actually type your ghost's name in there at all.
  • New function: leapyear. Is 1 if it's currently a leapyear, and 0 if it's not.
  • When email checking fails because the user has their POP settings wrong, it opens the configuration dialogue to the POP page specifically.
  • betaTester and nowscale variables are now properly initialized on first boot
  • Got rid of the currentfile global variable. New system uses a local variable, and uses the SPLITPATH function to grab just the file name and extension instead of the whole path.
  • Viewing headlines/RSS feeds will now display a choice marker in front of every item.
  • Tweaked the format of the name change function and birthday teaching functions to better match the rest of X. Template.
  • Added cancel buttons to the name change function and birthday teaching functions. These cancel buttons will activate a bit of code in the config menu, which closes the appropriate input boxes. If you were in the middle of changing your birthday, this also resets it back to what it was before you tried to change it.
  • Updated surfaces.txt with some new info about SERIKO comments, and tweaked my comments appropriately.
  • Fixed a missing surface call when there was an MD5 error during updates, and corrected an incorrect surface call in the SNTP functions.

  • Fixed the nowday function, it now correctly handles Sunday.

  • Added the Pool function for creating pools of dialogue with proper probabilities.
  • Added the FormatLinks function and changed the links in string.dic to use a cleaner format.
  • Added the br function, for balloon-specific manual linebreaks.
  • Added a note about the LOGGING function in the test variable.
  • Edited some documentation with new information.

  • Fixed an issue where auto updates were broken.
  • Fixed a couple of incorrect links in the right click menu.
  • Removed the booting variable, and replaced it with a system that checks for certain tags during the firstboot dialogues. Please let me know if you have any issues using this! This also means I've introduced the OnUserInputCancel function, which I stuck in etc.dic for now.
  • Updated the OnOffscreen function, made it a little better and easier to understand.
  • Added some new functionality to nowday and nowmonth; you can now send them integers to get days even further in the future/past. The randomtalk has an example of how this is used.