# Project Info

BFScript is a scripting language that makes implementing complex MCBE command systems easy & accessible!

Convenience & useability is my top priority when it comes to this project. If you have any ideas or suggestions for the project then join our Discord server & share your thoughts with us!

{% hint style="info" %}
<https://dsc.gg/bfscript>
{% endhint %}

<details>

<summary>👤Contributors</summary>

### 👑PhosphorusXD:

**Socials:**\
**-** Discord: "@phosphorusxd"\
\- Replit: "@phosxd"

Lead developer & original creator of the project.

</details>

<details>

<summary>🗄️Version History</summary>

## 1.2.1

**Released:** ?\
A quick fix, sticky lines generated from Statement type or Keyword Handler funtions would overwrite non-sticky lines in the same output file. I don’t know how I let this get passed me.

* Bug fix.
* Renamed BFSC\_statements is now BFSC\_kwHandlers & all references of "Statement type"(s) have been replaced with "kwHandler"(s).
* <mark style="color:green;">Added</mark> ability to define sort order & command names for Terminal Commands

## 1.2.0

**Released:** May 12th 2024\
Now much easier to modify & read source code. Also the parser/tokenizer is much better & has more capability if I ever need it.

The ZIP file containing the project now contains a README.md file & an EXE of the compiler.

* <mark style="color:green;">Added</mark> command terminal & "autoRun" config setting (default is "no").
* <mark style="color:green;">Added</mark> "when"/"event" statement.
* <mark style="color:green;">Added</mark> "clear", "clearspawnpoint", "difficulty" & "kill" commands to "cmd" statement.
* <mark style="color:green;">Added</mark> ability to chain multiple conditions together with "and" or "&" parameter in "if" & "loop while" statements.
* Statement types can now be referenced by multiple keywords instead of a single keyword. Every statement type now has multiple keywords.
* De-Centralized source code, each statement type is added as a seperate file. This makes modifying the code much easier.
* <mark style="color:green;">Added</mark> ability to nest lists.
* <mark style="color:green;">Added</mark> "defaultVarDomain" config setting (default is "bfsGlobals").
* Many minor changes..

## 1.1.1

**Released:** May 1st 2024\
More convenience 😃\
Also the default statement seperator in config files is now "\n" or a new line instead of a semicolon (";”). I wasn’t able to do this before due to the terrible parsing, but now it’s not as terrible ;D

* <mark style="color:green;">Revamped</mark> "cmd" statement. "cmd" is now actually useful & doesnt just do the same thing as "line".\
  Currently there are only 5 commands (Tellraw, titleraw, time, weather & event).
* <mark style="color:green;">Added</mark> variable domains.
* <mark style="color:green;">Added</mark> ability to define functions with parameters & call functions while passing parameters to them with call statements.
* <mark style="color:green;">Added</mark> ability to delete all variables in a group using "del".
* Other changes..

## 1.1.0

**Released:** April 25th 2024\
A huge update for BFSC!

* <mark style="color:green;">Added</mark> "group" statement.
* <mark style="color:green;">Added</mark> "line" statement.
* <mark style="color:green;">Added</mark> "call" statement.
* <mark style="color:green;">Overhauled</mark> loop statements, replaced old loop statement with for & while loops.
* <mark style="color:red;">Removed</mark> "reloop" statement.\
  Reloop re-used/called the given loop.
* <mark style="color:red;">Removed</mark> "break" statement. Break was used to end loops.
* <mark style="color:red;">Removed</mark> "is" & "isnt" conditional operators.
* <mark style="color:green;">Added</mark> "statementSeperator" setting to config. Default is ";".
* <mark style="color:green;">Added</mark> "ignoreAllErrors" setting to config. Default is "no".
* <mark style="color:yellow;">Fixed</mark> "!=" conditional operator throwing error: "Operator does not exist".
* <mark style="color:green;">Added</mark> support for comparing integers using "<" & ">" operators.
* <mark style="color:green;">Added</mark> support for "Int to Var" comparisons. Before, the Var always had to be first ("Var to Int").
* <mark style="color:red;">Removed</mark> variable definition checking.
* Many other changes & fixes..

## 1.0.0

**Released:** April 23rd 2024\
Github Repo: <https://github.com/phosxd/BFScript/tree/1.0.0>\
Replit Page: <https://replit.com/@phosxd/BFScript-Compiler>

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aspiro.gitbook.io/bfscript/project-info.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
