You are browsing as a guest. Sign up (or log in) to start making projects!

The Wandering Modder

  • 5 Devlogs
  • 6 Total hours

A fast, AI-driven search engine for Minecraft modding. It fetches data via the Modrinth API and uses a local ChromaDB vector database, allowing you to search for mods, shaders, datapacks, resource packs and plugins using natural language.

Ship #1 Pending review

I made a tool that replaces the exact match search of the Minecraft modding website https://www.modrinth.com with a semantic search powered by the ChromaDB python package. This makes it alot easier to find mods and create a unique modpack. It has filtering for versions and modloaders, so that you can easily find the right version for your Minecraft world. This project also solves the problem of finding mods in a specific theme, since the mod creators just add alot of theme's to push the mods' downloads.

I learned how I can use open APIs and transform the data into a format that is usuable for me. I also learned to use big python libraries. I really proud of how accurate it is. I doubted if I would really ever use it myself. But it turned out so well that I can now use it to find mods for the the minecraft server with my friends.

The only thing that is not the best about this project is that the database building takes really long, averaging around an hour on my chromebook with an i5-1335U. I made sure to implement instruction on how to setup hardware acceleration, but was not able to test it, since I have no acces to a dedicated GPU.

Try project → See source code →
Open comments for this post

38m 30s logged

I’m now officially done with this project. You can see a preview on https://asciinema.org/a/vIZ6F7bfI0mkdDf5. I really happy with what it turned out to be. I learned alot of json formatting, database data flow and code structure. This is the final product:


The Wandering Modder

A fast, AI-driven search engine for Minecraft modding. It fetches data via the Modrinth API and uses a local ChromaDB vector database, allowing you to search for mods, shaders, datapacks, resource packs and plugins using natural language.

Installation

Windows:

git clone [https://github.com/Camiel13/The-Wandering-Modder.git](https://github.com/Camiel13/The-Wandering-Modder.git) the_wandering_modder
cd the_wandering_modder
pip install -r requirements.txt

Linux:

git clone [https://github.com/Camiel13/The-Wandering-Modder.git](https://github.com/Camiel13/The-Wandering-Modder.git) the_wandering_modder
cd the_wandering_modder
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Usage

To start execute this command:

python3 main.py

The Wandering Modder Commands

You have to replace {project_type} with one of the following project types: mod, datapack, resourcepack, shader or plugin. Make sure to describe your project in keywords (e.g. redstone, technical, components, wires)!

{project_type} init - Sets up the searching of a specific project type. !! REQUIRED !!
{project_type} query - Search the built database for specific mods with keywords.
help - Shows all the commands available.
clear - Clears the terminal.
exit / quit - Shuts down the program.

Hardware Acceleration

You can make the process of building the vector database up to 10-50x faster by using a dedicated Nvidia GPU with the CUDA toolkit. This is done by replacing the normal package with a GPU-supported variant and installing the CUDA toolkit onto your system. Note that this can only be done when using a Nvidia GPU with the proper installation of the CUDA toolkit and using recent drivers!

pip uninstall onnxruntime
pip install onnxruntime-gpu
0
0
4
Open comments for this post

1h 8m 16s logged

The Wandering Modder

This project is close to being finished.


  • I’ve made sure the output looks nice and is visually attractive by using the rich.panel module.
  • I added more detail to the metadata saved in the vector database, so I could show it in the output
  • I updated the README.md with installing and usage instructions.

Last things I wanna add:

  • Hardware acceleration
  • Accuracy improvements
0
0
3
Open comments for this post

2h 18m 48s logged

The Wandering Modder - Database updating, result formatting and code refactoring


  • I’ve finished the update_database() function completely to make sure unfinished databases are complete or to put new (versions of) projects into databases without having to rebuild the whole database. The hardest part was getting the data from the already existing database and comparing it to the new data, since they used diffrent formatting.
  • I’ve implemented a format_results() function to make the results into beautiful frames with the rich library. This feature is not completely finished.

My future plans are finishing the format_results() function to make it print beautiful panels into the terminal. I also wanna make the results more accurate to what you type.

0
0
30
Open comments for this post

1h 14m 57s logged

The Wandering Modder

I’ve started working on improving the performance of building the database, so that it doesn’t take an hour of building each time you wanna update the mods.

So far I’ve implemented:

  • A new function called update_database() that first checks what projects are new to the database by extracting the metadata of the already existing database and comparing them to the new data.

What I wanna implement in the future:

  • Hardware acceleration

I’ve also investigated how I built this project a month ago, because it’s a total mess and I have some issue understanding some things. So I refactored some code and did some small changes.

0
0
2
Open comments for this post

57m 49s logged

The Wandering Modder

I created this project in May. I wanted to make a better search engine for the Minecraft modders, since the popular minecraft websites often just didn’t find correlating mods, just mods that exactly matched or contained your search.

I’ve read back in, because it was a while ago since I started this project. Firstly I’ve improved the cli command syntax checker to make it less clutterd and less if- else-statements. I’ve also tested if everything was intact and if the correct rate limits we’re respected.

0
0
5

Followers

Loading…