OSColang
OSColang (pronounced oh-es-ko-lang) is an esolang made by User:Anywaydun meant to commemorate 16 years of Battle of Dream Island, and the object show community as a whole. It was made to show the creations of the wider OSC and represent them somewhere (though in practice that isn't true), and was also mainly made because the creator couldn't find any object show-inspired esolangs that were already made.
Instructions
OSColang is one-indexed. Programs must begin with "BFDI 1a: Take the Plunge", and end with "BFB 30: Chapter Complete".
All lines in OSColang code must follow the following format:
Acronym Number: Title
i.e. the regex (.*) (.*): (.*)
This is a list of all instructions in OSColang.
| When Number is: | Instruction |
|---|---|
| 1: Variable declaration | Declares a new variable, argument 1 (Acronym). |
| 2: Append | Places argument 2 (Title*) at the end of a variable argument 1 (Acronym). |
| 3: Attribute of line | Returns an attribute of the 2nd argument (Line), based on the 1st argument (Number). If the 1st argument is 1, it returns the Acronym. If the 1st argument is 2, it returns the Number. If the 1st argument is 3, it returns the Title. |
| 4: Return word at index | Returns the word of argument 2 (Title*) at the index argument 1 (Number). |
| 5: Return character at index | Returns the character of argument 2 (Title*) at the index argument 1 (Number). |
| 6: Print | Prints the contents of the variable argument 1 (Acronym). |
| 7: Jump if not 0 | Jumps the program pointer to line argument 2 (Number) if a variable argument 1 (Acronym) is not zero. Otherwise, do not jump. |
| 8: Request input | Requests the input from the user, returning the input. |
| 9: Increment by number | Increments a variable argument 1 (Acronym) by a number argument 2 (Number, * only for NaN). |
| 10: Decrement by number | Decrements a variable argument 1 (Acronym) by a number argument 2 (Number, * only for NaN). |
| 11: Clear variable | Clears a variable argument 1 (Acronym). |
| 12: Return variable | Returns the value of a variable argument 1 (Acronym). |
| 13: To ASCII | Returns the ASCII value of the first character in a variable argument 1 (Acronym). |
| 14: From ASCII | Returns the ASCII character of the number in a variable argument 1 (Acronym). |
| 15: Character of variable at index |
Returns the character of the variable argument 1 (Acronym) at index variable argument 2 (Acronym). |
| Not a number, or not between 1 and 9 inclusive except type Number arguments: Previous | Takes the result of the previous operation. Used as an argument in Number (and inputs marked *) inputs. |
Though not required, programs are usually made under the restrictions that:
- All lines must be real object show episodes, and
- Lines must be unique
If an OSColang program is not made under these restrictions, it is a impure program. Pure programs follow these restrictions.
Examples
Hello, World!
BFDI 1a: Take the Plunge II 1: The Crappy Cliff BFDI:TPOT 1: You Know Those Buttons Don't Do Anything, Right? BFB 3: Why Would You Do This on a Swingset BFDIE 3: Everyone’s Enemies BFAM 4: Hello Again... BFDI 4: Sweet Tooth BFB 1: Getting Teardrop to Talk BFDI 1b: Take the Plunge AIB 2: Smarter & Boulder BFDI:TPOT 2: The Worst Day of Black Hole's Life TAW 1a: Who, Me? BFDIA 3: Insectophobe's Nightmare 3 BFDI 3: Are You Smarter Than a Snowball? BFDIA 1: Yeah, Who? I Wanna Know BFDI 5: Bridge Crossing BFB 5: Fortunate Ben BFDIA 5a: Get in the Van BFDI 2: Barriers and Pitfalls BFDI:TPOT 3: Getting Puffball To Think About Rollercoasters BFDIA 5c: No More Snow! II 3: The Arena of Death II2 3: Tri Your Best BFDI 12: A Leg Up in the Race AIB 5: Sun Blocked II 2: A Lemony Lesson BFDIA 5d: It's a Monster II2 2: Marsh on Mars BFDI:TPOT 4: Gardening Zero BFDIA 5e: The Long-lost Yoyle City III 3: Snapshot Showdown IIIV 3: Run the Risk! TDOS:END 2: All the Time in the World BFB 4: Today's Very Special Episode BFDIA 6: Well Rested TAW 1b: Yes, You! III 2: The Shame of the Name BFDI:TPOT 5: Fishes and Dishes BFDI 19: Rescission TDOS 3: Tower of Evil AIB 3: Get A Grip BFDI 10: Crybaby! II 5: The Stacker BFDIA 8: Meaty BFDI 20: Gardening Hero IIIV 2: Cob Mentality BFDI:TPOT 6: The Great Goikian Bake-Off BFDI 21: The Glistening BFB 6: Four Goes Too Far BFDI:TPOT 7: The Seven Wonders of Goiky BFB 30: Chapter Complete
truth-machine
BFDI 1a: Take the Plunge BFB 1: Getting Teardrop to Talk BFDIA 1: Yeah, Who? I Wanna Know BFB 8: Questions Answered BFB 2: Lick Your Way to Freedom BFDIA 2: Get Digging BFDIA 5a: Get in the Van BFB 6: Four Goes Too Far BFDIA 3: Insectophobe's Nightmare 3 BFB 7: The Liar Ball You Don't Want BFDIA 4: Zeeky Boogy Doog BFDIA 8: Meaty BFB 30: Chapter Complete
99 bottles of beer (impure)
BFDI 1a: Take the Plunge ? 1: ? WALL, ?: ? ? 2: ? WALL, ?: ? ? 1: bottles of beer on the wall, ? 1: ? BEER. ?: ? ? 2: ? BEER. ?: ? ? 1: bottles of beer. ? 1: ? AROUND ?: ? ? 2: ? AROUND ?: ? ? 1: Take one down, pass it around, ? 1: ? WALL. ?: ? ? 2: ? WALL. ?: ? ? 1: bottles of beer on the wall. ? 1: ? NEW ?: ? ? 2: ? NEW ?: ? ? 1: ? 1: ? BEERS ?: ? ? 9: ? BEERS ?: ? ? 99: ? ? 1: ? TEMP ?: ? ? 11: # TEMP ?: ? ? 12: ? BEERS ?: ? ? 2: ? TEMP ?: ? ? p: ? ? 12: ? WALL, ?: ! ? 2: ? TEMP ?: ? ? p: ? ? 6: ? TEMP ?: ? ? 11: # TEMP ?: ? ? 12: ? BEERS ?: ? ? 2: ? TEMP ?: ? ? p: ? ? 12: ? BEER. ?: ! ? 2: ? TEMP ?: ? ? p: ? ? 6: ? TEMP ?: ? ? 6: ? AROUND ?: ? ? 10: ? BEERS ?: ? ? 1: ? ? 11: # TEMP ?: ? ? 12: ? BEERS ?: ? ? 2: ? TEMP ?: ? ? p: ? ? 12: ? WALL. ?: ! ? 2: ? TEMP ?: ? ? p: ? ? 6: ? TEMP ?: ? ? 6: ? NEW ?: ? ? 7: ? BEERS ?: ? ? 34: ? BFB 30: Chapter Complete
Cat program
BFDI 1a: Take the Plunge BFDIA 1: Yeah, Who? I Wanna Know BFB 1: Getting Teardrop to Talk BFDIA 8: Meaty BFDIA 2: Get Digging BFB 2: Lick Your Way to Freedom BFDIA 5a: Get in the Van BFDIA 6: Well Rested BFB 3: Why Would You Do This on a Swingset BFB 30: Chapter Complete
XKCD Random Number
BFDI 1a: Take the Plunge BFDI:TPOT 1: You Know Those Buttons Don't Do Anything, Right? ONE 1: Freefall BFDI:TPOT 9: Outbreak At Stake ONE 2: Just Tripped BFDI:TPOT 4: Gardening Zero BFDI:TPOT 6: The Great Goikian Bake-Off ONE 3: Screwball BFB 30: Chapter Complete
FizzBuzz (fake, impure)
BFDI 1a: Take the Plunge ? 1: ? F ?: ? ? 2: ? F ?: ? ? 1: Fizz ? 1: ? B ?: ? ? 2: ? B ?: ? ? 1: Buzz ? 1: ? FB ?: ? ? 2: ? FB ?: ? ? 1: FizzBuzz ? 1: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? F ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? B ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? F ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? F ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? B ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? F ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? NUM ?: ? ? 9: # NUM ?: ? ? 1: ? ? 6: ? FB ?: ? ? 7: ? NUM ?: ? ? 19: ? BFB 30: Chapter Complete