or donate on PayPal
About • Features • Install
Project KnowledgeBook is an open-source Minecraft bot management platform that provides players with a user-friendly web interface to create and control helpful bots. Our goal is to enhance the Minecraft multiplayer experience with powerful automation tools, all at no cost to the player.
AI Stuff More info and docs about the new AI features will be added soon!
Check our (soon) Wiki for detailed guides on:
- Setting up Project Skyview
- Creating and managing bots
- Using the item delivery system
- Accessing the 2D map view
- Building an custom bot using nodes
- And more!
- Add checkboxes to nodes (booleans)
- Add an way in export and import flows.
- Auto save flows to browser.
Flow name | Description | Download |
---|---|---|
Obtain crafting table | Collects wood to craft a crafting table and drops it | Download |
Make sure you have the following installed:
- Clone the repository:
git clone https://github.com/SilkePilon/KnowledgeBook.git
cd KnowledgeBook
- Install dependencies for all workspaces:
npm run install:all
- Set up HTTPS for development:
cd backend
npm run setup-https
This will:
- Install dependencies for both frontend and backend
- Generate trusted SSL certificates for local development
- Configure HTTPS for secure communication
Note: When first accessing the backend API in your browser, you may need to accept the self-signed certificate. This is normal for local development and doesn't affect security.
You can run the frontend and backend separately or together:
npm run dev
npm run frontend
npm run backend
The frontend will be available at http://localhost:3000
and the backend at http://localhost:8080
by default.
- Frontend code is located in the
frontend/
directory - Backend code is located in the
backend/
directory - Each directory has its own
package.json
with specific dependencies and scripts
curl -sL -o main.zip https://github.com/SilkePilon/KnowledgeBook/archive/refs/heads/main.zip && unzip main.zip && cd KnowledgeBook-main && npm install && npm rebuild && cd .. && rm main.zip && cd KnowledgeBook-main && node main.js
First, make a local copy of the repository:
git clone https://github.com/SilkePilon/KnowledgeBook.git
Open the cloned repository in your preferred terminal app.
Assuming you have Node and NPM installed you can run the following commands:
npm install
npm rebuild
node main.js
That's it! You can now open up https://knowledgebook.vercel.app/ and start creating!
Welcome to the project! This guide will walk you through the steps to add custom nodes. Follow these instructions to contribute your custom functionality.
First, make a local copy of the repository:
git clone https://github.com/SilkePilon/KnowledgeBook.git
Open the cloned repository in your preferred IDE.
Navigate to the flow_functions
folder in the project directory. Create a new file for your node with the following naming conventions:
- Name Format:
your_node_name.js
- Rules:
- Use lowercase letters
- Use underscores (
_
) to separate words - Do not include numbers in the file name
For example, if you want to create a node for crafting planks, you might name the file craft_planks.js
.
In the flow_functions
directory, open the functions.json
file and add an entry for your new node:
{
"YOUR_NODE_NAME": {
"name": "YOUR_NODE_NAME",
"file": "YOUR_NODE_NAME.js",
"id": "YOUR_NODE_NAME",
"label": "DISPLAY NAME",
"hasInput": true,
"description": "YOUR NODE DESCRIPTION",
// example of input
"input": { "amount": "number", "message": "text", "sneak": "switch" },
"author": "YOUR NAME"
}
}
Replace the placeholders:
YOUR_NODE_NAME
- The name of your node (in lowercase with underscores)DISPLAY NAME
- The name displayed in the UIYOUR NODE DESCRIPTION
- A description of what your node doesYOUR NAME
- Your GitHub username{ "NAME": "number", "NAME": "text" }
- Your input fields.
Available input options:
text
- An general text input boxnumber
- An input box limited to numbers onlyswitch
- An switch that can be set to true or false
Open your newly created file and implement your node using the following structure:
const { getBot } = require("../main.js");
function main(data) {
// Get the bot object
const bot = getBot();
// Your function logic here
console.log("Executing test_node with data:", data);
}
module.exports = { main };
Key Points:
- Require
bot
from../main.js
. - The
main
function should be defined and exported. This function is executed when the node runs. - Use
try
andcatch
statements for error handling. If an error occurs, log it and rethrow it to ensure it can be caught elsewhere.
Accessing input fields
In order to the get values from the input field of a node you can use the data
argument in the main
function
an example:
in functions.json
I've added an function with the following input:
{ "Amount": "number", "Message": "text" }
now i can access them in the main
function by doing: data.amount
and data.message
the parameter name is based on the key provided in the input.
Examples
You can also checkout some of the already made nodes:
Limitations
- no way of outputting custom data from a node.
Once you’ve added your node and updated the functions.json
file, push your changes to a new branch and open a pull request on GitHub.
git checkout -b your-feature-branch
git add .
git commit -m "Add custom node YOUR_NODE_NAME"
git push origin your-feature-branch
Go to the GitHub repository and create a pull request. Your changes will be reviewed, and if everything looks good, they will be merged!
Thank you for contributing to the project! If you have any questions or need further assistance, feel free to reach out.
Happy coding! 🚀
<a href="https://www.buymeacoffee.com/silkepilon"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=☕&slug=silkepilon&button_colour=5F7FFF&font_colour=ffffff&font_family=Poppins&outline_colour=000000&coffee_colour=FFDD00" />``</a>