Needle
This page contains sensitive content. Please check the content warning at the top of the article and proceed with caution.
This creation has had an update since this page was written. Please ensure the content of this page is up to date with the latest version, then remove this banner.
Needle |
|
|
Type | Ghost |
Developer(s) | Galla, Zichqec |
Origin | Original Character |
Sakura | Needle |
Language(s) | English |
SHIORI | YAYA |
Release date | May 11th, 2022 |
Download |
Content warning: mentions of violence, gaslighting, general unsettlingness.
Needle is an original character by Galla and Zichqec, made for Ghost Jam 2022. It was made from scratch, using all new assets, in just 72 hours (though it did not count for the 72 hour challenge of the 2022 jam, since it was not the first 72 hours).
The ghost features a simple needle with vast amounts of dialogue. The dialogue is generally erratic, oftentimes making little to no sense or lacking context.
Features
Talks at random intervals, giving the user no control over when it speaks.
No menus at all; double clicking the ghost will result in a poke dialogue and nothing more.
If Needle overlaps another ghost, it will send a special event to that ghost, 'poking' them and letting them react to it.
Generates a 'true name' for the user when first booted, which it will always remember and refer back to on occasion.
Extremely large envelopes with hundreds of entries.
Dialogues that involve motion/jittery text are filtered out, unless the user specifically opts in in the enable_extra_content.txt
file, by changing the line #globaldefine MOTION_ENABLED 0
to #globaldefine MOTION_ENABLED 1
When changing shells, Needle will attempt to stay in roughly the same place.
An easter egg that allows Needle to change shells randomly every 10-60 minutes, when toggled on.
Communication Features
Needle uses OnOtherOverlap to detect if it is overlapping with another ghost. It will then send an event called OnNeedlePoke
to any ghosts that it is overlapping with raiseother, and say a short dialogue. Other ghosts may implement this event and respond to being poked by needle.
Which character Needle is overlapping is sent via reference0. It will be 0 for the sakura, 1 for the kero, 2 for the first extra character, etc. If Needle is overlapping more than one character in the same ghost, the events will be sent one after another.
Needle will also send the name of the shell it is currently using as reference1.
A simple implementation of the OnNeedlePoke event is as follows:
OnNeedlePoke
{
if reference0 == 0 //Sakura
{
"\0Ow!"
}
elseif reference0 == 1 //Kero
{
//An example of an optional check, to have a special comment if Needle is in the Syringe shell
if reference1 == "Syringe"
{
"\1I hate syringes!!"
}
else
{
"\1Ow!"
}
}
elseif reference0 == 2 //Third char
{
"\p[2]Ow!"
}
//etc...
}
True Name and Nicknames System
Upon booting Needle for the first time, the user will be assigned a random “true name” that cannot be changed. Needle will refer to the user with this now and then, always displaying the name as an anchor that can be clicked. Upon clicking the anchor, the user will have the opportunity to deny the true name and insist on their own instead.
Should the user choose their own name, Needle will run the name through a “name mangler” to corrupt the string, saving the result as a nickname. Every time the user boots needle, a new nickname will be generated and saved, such that the user ends up with a long list of nicknames that needle may call them by.
When a nickname is set, Needle will alternate randomly between calling the user by their true name, chosen username, and random nicknames from the saved list. All of these names will show up as clickable anchors, which the user can click to have the option to change their name again. Needle will also always call the user by their new nickname upon booting, so closing and reopening Needle may be used as a method of quickly getting to the name change option.
The user can reset the list of nicknames by attempting to change their name again, and putting in the same name as before. This will keep the same base username, but start the list anew.
The user may also choose to go back to their true name, which will clear the list of nicknames, and Needle will go back to exclusively calling them by the true name.
If the user decides they don't actually want to change their name at all, they can leave the input field blank, and their settings will be left alone.
Name Mangler
The name mangler is a function that corrupts whatever name the user puts in, which it may do in a variety of ways.
Needle will attempt to never generate the same nickname twice. Names may end up similar, thanks to slightly different upper/lowercase letters, but never exactly the same.
Needle will pick anywhere from 1-5 operations to perform on a name, and will not perform the same operation more than once per name. These “mangles” also have different rarities, so that some appear more often than others. When it picks a new mangle, it will have a 60% chance to pick from the common mangles, 30% chance to pick from the uncommon mangles, and 10% chance to pick from the rare mangles.
Click to reveal detailed information about the possible operations.
Upper
This common mangle will make a random selection of letters in the name uppercase.
Example input:
DreamTeamWiki
Example output:
DrEaMTeAMWiKI
Lower
This common mangle will make a random selection of letters in the name lowercase.
Example input:
DreamTeamWiki
Example output:
dreamteamWiki
1337
This uncommon mangle will convert some letters in the name to their counterpart in 1337speak. If a letter appears more than once in the name, only the first one will be converted.
Example input:
DreamTeamWiki
Example output:
Dr34m7eamW1ki
uwu
This uncommon mangle will convert specific letters in the name to “translate” it into “uwu” text. Rs and Ls will be replaced with Ws, and “you” will be replaced with “uwu”.
Example input:
DreamTeamWiki
Example output:
DweamTeamWiki
Reverse
This rare mangle will reverse the name.
Example input:
DreamTeamWiki
Example output:
ikiWmaeTmaerD
Title
This common mangle will prepend a title from Needle's list of titles to the name.
Example input:
DreamTeamWiki
Example output:
Legally Binding DreamTeamWiki
Suffix
This common mangle will append a suffix from Needle's list of suffixes to the name.
Example input:
DreamTeamWiki
Example output:
DreamTeamWiki the Planet Eater
Repeat
This rare mangle will choose random letters in the name, and repeat them by anywhere 0-4 times. It will do this for a random number of letters, with a maximum of 6.
Example input:
DreamTeamWiki
Example output:
DrrrrreamTTTTeamWiiki
RepeatParticle
This rare mangle will choose a random substring of letters out of the name, and will repeat it anywhere from 2-6 times. The length of the substring can be no more than half the length of the entire name.
Example input:
DreamTeamWiki
Example output:
DreamTDreamTDreamTDreamTDreamTDreamTeamWiki
Username
This rare mangle will make the name look like an old username, by prepending “xX” and appending “Xx”, and replacing all spaces with underscores.
Example input:
Dream Team Wiki
Example output:
xXDream_Team_WikiXx
Year
This common mangle will append a year onto the end of the name. It may choose either the current year, or a random year with a range of the current year - 213, to the current year - 14.
Example input:
DreamTeamWiki
Example output:
DreamTeamWiki 1899
Qu
This uncommon mangle will change all Qs in the name to have a u after them. If there are no Qs in the name, it will insert “qu” at a random point.
Example input:
DreamTeamWiki
Example output:
DreamTequamWiki
J
This rare mangle will add a smattering of Js to the name, in random positions. It will add anywhere from 1-5 Js.
Example input:
DreamTeamWiki
Example output:
DrjeajjmTeamjWiki
SpellingBee
This rare mangle will spell out the user's name one letter at a time, with dashes in between, as though Needle is pronouncing each letter individually.
Example input:
DreamTeamWiki
Example output:
D-r-e-a-m-T-e-a-m-W-i-k-i
Question
This uncommon mangle can run in 3 different ways. 1/3rd of the time it will simply place a question mark at the end of the name. 1/3rd of the time it will place a question mark in a random spot within the name. 1/3rd of the time it will sprinkle 1-5 question marks in random spots within the name.
Example input:
DreamTeamWiki
Example output:
?Dream?Tea?mW?i?ki
ToThe
This rare mangle will only run if the input string matches the current username. If they don't match, it will return the input unchanged. Therefore, it ensures that it only runs if it is the very first mangle to affect the name, to keep the name from getting excessively long.
It adds the words “to the” between every letter of the input string, as well as capitalizing each letter.
Example input:
DreamTeamWiki
Example output:
D to the R to the E to the A to the M to the T to the E to the A to the M to the W to the I to the K to the I
Space
This rare mangle will only affect the name if there are spaces in it (usually caused by other mangles, such as the ones that add titles and suffixes). All spaces will be converted to “ SPACE ”, as though Needle is actually reading out the spaces in the user's name.
Example input:
Dream Team Wiki
Example output:
Dream SPACE Team SPACE Wiki
Shout
This rare mangle will add exclamation points before every space in the user's name, as well as one at the end.
Example input:
Dream Team Wiki
Example output:
Dream! Team! Wiki!
Quotes
This rare mangle will add quotes around the user's name. This comes in the form of either the words “Quote” and “Unquote”, or two single quotes on either side, mimicking the look of quotation marks.
Example input:
DreamTeamWiki
Example output:
''DreamTeamWiki''
Double
This rare mangle will pick a random letter within the name, and double it. If that letter appears more than once, each instance of it will be doubled.
Example input:
DreamTeamWiki
Example output:
DreaamTeaamWiki
Easter eggs
One of Needle's design philosophies is that it is not supposed to have a menu. However, if the user turns on SSP's voice recognition, they can open a fake “menu” by first double clicking Needle (or saying its name to activate the double click event), then saying “please open the menu”.
The menu that is opened will display several options that say “Poke something”, as well as the current time of day and a button to cancel. Clicking any of the “Poke something” options causes Needle to say one of the dialogues that it says when double clicked.
Shell randomizer
Needle has the ability to randomize its own shell, every 10-60 minutes, if the user has additional shells installed. This option and some settings for it are controlled by mouse gestures.
Mouse gestures are performed by right clicking the ghost, then dragging the mouse in various directions.
Note that if there are not enough shells available for Needle to change to a different one, then the event will always be skipped.
Toggle on/off
To toggle the shell randomizer on and off, the user must do a gesture with the movements up, down right, up. This draws a capital N. If done correctly, Needle will display a dialogue, which vaguely hints at what state it is in.
Any of the following dialogues indicate that shell randomization has been turned on:
“sparkles mysteriously”
“picks my own clothes”
“rotates”
“full of power”
Any of the following dialogues indicate that shell randomization has been turned off:
“neatly combed”
“dressed up all fancy”
“holds still”
“smiles politely for the camera”
Click to reveal a diagram and demonstration of how to toggle this mode.
Shell exclusion
The user can also control which shells are available in the rotation of random shells. For example, this can be used if the user doesn't want shells that are very large or very small to be switched to at random.
To do this, the user must first enter a special “mode”. The user must perform a mouse gesture, with the movements left, down, right, left, down, right. This draws a capital E. If done correctly, Needle will say the name of the first shell in the list. This mode will remain active until the balloon times out or is otherwise closed, even if it gets interrupted by another event.
While in this mode, the user can gesture with a clockwise circle to move forward through the shell list, and gesture with a counterclockwise circle to move backward. It is possible to wrap around the list in either direction, which may be useful for accessing shells towards the end of the list more quickly.
Each time the user gestures with one of these circles, Needle will display the name of the shell that has just been selected. By default, all shells are included in the rotation, and each shell's name will appear normally. If the user sets a shell to be excluded, its name will be shown in strikethrough.
To exclude a shell, Needle must be displaying its name. Then the user can perform a gesture with the movements left, right, left, right. This can be thought of as “scribbling the name out”. The same gesture can be performed again to make the shell be included again.
Click to reveal diagrams and demonstrations of how to operate this mode.
To enter shell exclusion configuration mode:
To move back and forth between shells in the list:
To toggle a shell on or off:
And a demonstration of it all together:
Balloon
Needle comes bundled with Needloon, a balloon made with the image of Needle's master shell, which has been stretched and warped to make a suitable text area.
Needle also recognizes Needloon (readable), which may be downloaded separately. It is similarly made using the image of Needle's master shell, but with a clean text area and more readable colors.
Shells
| Name | Description |
| The True Needle | The default shell. A gray needle with a patchy outline. |
External shells
Click to reveal external shells.
External shells |
| A thousand thousand dots | A needle made of many small dots. |
| ASCIIdle | A needle made of text spelling out “Needle”. Comes with dressups for colors and upper/lowercase. |
| Ballpoint | A scribbly needle drawn in ballpoint pen. Comes with dressups for different designs. |
| Birthday Needle | A cake with a needle design on top. Comes with candle dressups. |
| Blushie | A needle with blushies. When using this shell, Needle will bookend random dialogues with “uwu” unless the “uwu” dressup is turned off. |
| Carved | A bone needle with a blood dressup. |
| Close-Up View | An extremely large needle. |
| Colored Pencils | A needle drawn in cool gray colored pencils. |
| Correctly Drawn Needle | A needle drawn comedically in a scribbly style. It has two similar drawings, which it alternates between in a loop. |
| Diamond Eye | An alternate needle with smooth lines and shading. |
| Eggdle | A shell of Needle on an Easter egg. |
| Expensive Needle | A gemstone needle with dressups for different gem types, and levels of sparkle. |
| Felting Needle | A needle used for needle felting. Comes with dressups for needle caps in different colors. |
| Fineliners | A needle drawn with colored fineliners. Comes with dressups for different colors. |
| Fluffidle | A fluffy-looking needle. |
| Forbidden Galla Shell | A needle in a similar art style to the master shell, but bigger, and at a different angle. |
| Foil | A needle made of aluminum foil. |
| Glitchy Needle | A needle with glitchy, jittery animations. Dressups can be used to toggle specific animations on or off. |
| Graphite | A graphite rendition of Needle, done with a mechanical pencil. Comes with 11 designs, accessible via dressups. |
| Hands Included | A needle with hands. |
| Injector | A shell with 3 different types of injectors, each from a different video game. |
| Inkdle | A Needle drawn in ink. Comes with an “ink spill” dressup. |
| Markers | A Needle colored with markers. Comes with 3 designs, accessible via dressups. |
| Maybe a Tornado | A scribbly needle shell with a loose form. |
| Moneydle | A crumpled bank note with a needle design. Comes with a dressup with a crisp version of the bill. |
| Needle Dog | A needle-themed dog. |
| Needlegon | A 3D rendering of Needle, with a low polygon count and noticeable curve. |
| Needly Accurate Angle | A conglomeration of needle trinkets on a series of keychain rings. |
| Needy | A shell of Needle dressed up as Needy from Battle for Dream Island. |
| Polished | A polished version of the original needle shell. |
| Push Pin | A push pin with dressups for colors and patterns. |
| Rotedle | A needle with “rot” hanging off it. Comes with dressups for different colors of rot. |
| Safety Needle | A plastic crochet needle. Comes with dressups for the plastic color and for decorative strings in a variety of colors. |
| Sewing Pin | Several sewing pins, with dressups for different styles and colors. |
Thumbnail hidden: gore
| Soul Edge | The Soul Edge, from Soul Calibur. |
| Spear | Spears from Rain World. Includes some additional dressups. |
| Syringe | A syringe, with different lengths of needle and different colors of liquid available as dressups. Is also a shell for the ghost Hydrate. |
| Tiny Pokey Pixels | An extremely small pixel art needle. |
| Tuxeedle | A needle in a tuxedo. Also has dressups for a gown, wedding veil, and rose. |
| Twemoji | The :sewing_needle: emoji from the open source Twemoji emoji set. |
| Upholstery Needle | A curved upholstery needle drawn in a pixel style. |
| Wobbly Mouse Art | A small mouse art needle. |
| X-ray | A needle “x-ray”, showing several bones inside. |
Gallery