smotslang
Jump to navigation
Jump to search
- Note that smotslang is typically written in lowercase.
Smotslang is a programming language designed around using commands with names related to smots gaming, a niche cultural phenomenon from the modded community of the indie game Celeste. It uses various smots-related words seperated by whitespace to simulate various I/O commands, loops, and memory cells.
List of valid commands
- Anything with
--as the first 2 characters: skip until the next command that includes a--. Effectively makes--a comment. campaign [path]executes the file given by the path as smotslangcrumble [number]to store that number in the current memory cell.climbadds 1 to the current memory celldash [number]Sets the current memory location to the number.debugsets output mode to numbers (for example, outputting 65 would output "65" to console)fallsubtracts 1 from the current memory celljump [number]sets a jump marker with index of the numberreloadsets output mode to characters (for example, outputting 65 would output "A" to console)retryoutputs current memory cell (see debug and reload)runoutputs current memory cell with a newline after itsmots5terminates the programspike [number]if the current memory cell is 0, skip all instructions until you hit a jump instruction with number as the argumentspinnerhas a 1/3rds chance of setting current memory cell to 1 and a 2/3rds chance of setting it to 0spring [number]if the current memory cell is nonzero, jump to the last jump marker with the value equal to the provided number.triggerspike [val] [addr]if the current memory cell is not equal to val, skip all instructions until you reach a jump marker with addr as its argumenttrigspikealias of triggerspikewind [number]copies the value from the current memory cell to the provided location.
examples
Hello, World!
reload crumble 'H retry crumble 'e retry crumble 'l retry crumble 'l retry crumble 'o retry crumble ', retry crumble ^32 retry crumble 'W retry crumble 'o retry crumble 'r retry crumble 'l retry crumble 'd retry crumble '! retry
the following examples were taken from the examples folder in the official interpreter github repo
truth machine
-- by: nilrem --
crumble @madeline
spike 8
jump 7
run
spring 7
jump 8
run
coin flip algorithm, prints either heads or tails (gives fair 50/50 odds instead of the 33.(3)/66.(6) odds given by spinner)
-- made by cosmnik_ --
dash ^2 crumble ^1
jump ^101
dash ^0 spinner dash ^1 spinner
trigspike $^0 ^102
dash ^2
spring ^101
jump ^102
dash ^0
-- printing --
reload
trigspike ^0 ^102
dash ^3 crumble 'H retry crumble 'e retry crumble 'a retry crumble 'd retry crumble 's retry
dash ^0
jump ^102
trigspike ^1 ^102
dash ^3 crumble 'T retry crumble 'a retry crumble 'i retry crumble 'l retry crumble 's retry
jump ^102
External Resources
- The official interpreter can be found at https://github.com/smotslang/smotslang (written in Node.js).
- The official documentation can be found at https://github.com/smotslang/docs