Idiot Script Documentation

verion 6.2022.2a

Getting Started

Welcome to Idiot Script! Idiot Script is a simple block based programming language built in under a week. This Documentation is meant to provide explanation and walk throughs to the workings of this langauge and you can find a navigation bar to the left of this page.

First navigate to http://brohouse.dev/idiotscript. Once you have navigated to IdiotScript you will find three sections: The main board (center), the console output (right), and the block list (top). These sections will be explained as you continue

Press space to start the board (Start all of the starts start blocks)


Boards

Boards are the workspaces in which you place your blocks and block blocks. When you right click the board a context menu will appear with a few different options




Efficiency Mode

Efficiency Mode is activated whenever you set the board speed to anything less than 1. This mode will essentially pour almost all resources into running the program rather than rendering and updating the blocks. This mode is useful for making real time programs such as game or simulations.

If you are using an infinite loop with Efficiency Mode such as a render loop you must use wait blocks in between loops. If you dont the page will loop forever and freeze.

Blocks

Every action event or otherwise is a block. Blocks contain arguments but never return anything. Blocks can only adjust current variables or create new variables.

A collection or line of blocks is called a block block. Add blocks to a block block by dragging a block to the end of the block block. Move the block block by clicking and dragging the first block of a block block. If you click on a block in the middle of the block block it will split the block block in two. The first block is regarded as the start of the block block

When right clicking a block block (the first block of a line of blocks) it will open a context menu for some things you can do with the block block

When right clicking a block (any block that isnt the first in a block block) it will open a context menu for some things you can do with the block

Variables

Variables

Variables, like most languages, are named values that can be changed by blocks. For instance if you put a create variable block, set the variable name to "Test" and the value to 0, then have a set rand block set to "Test", the value of "Test" will now be a random value. If you then print out this variable with the print var block with variable name set to "Test" it will now print out the contents of "Test".

Trigger name

Trigger names differ from variables in the fact that they dont store anything. They are simply a marker for trigger/jump blocks to be linked up. You can have both a variable and trigger name without conflict

Triggers


Event Blocks

Variable Blocks

Method Blocks

Trigger Blocks

Draw Blocks

<Note> If doing an infinite loop with drawing you must use a wait block.