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

onako

@onako

Joined June 5th, 2026

  • 24Devlogs
  • 3Projects
  • 2Ships
  • 3Votes
Doing LLM related stuff and Minecraft stuff haha
Currently working on: MegaSkins
Ship Changes requested

What did I make?

WorldLoot allows you to spawn structures post-generation in your world.
This can be used for stuff such as random loot drops inside your world that spawn inside generated and new chunks.

Showcase video: https://youtu.be/desu4AxK-B4

What was challenging?

There were a few challenge. One challenge was to find out which classes/methods in the Minecraft source code to use (difficult if there is no documentation online)
Another challenge was that I had to restart the game each time I changed something because mixin reload requires additional setup. I’ve configured mixin hot-swapping somewhere at the end. Additionally I was debugging a problem with the map containing a map because I tried adding 0 maps to a map…. (the debugger showed me that the original map had elements but the other one didn’t)

What am I proud of?

I’m proud of myself not becoming crazy with the difficulties I had especially because of the bug with the map

How to try

  1. Download latest release from the releases page
  2. Put the mod inside a Minecraft 26.2 instance (useful guide https://docs.fabricmc.net/players/installing-fabric/)
  3. Launch Minecraft with the mod
  4. Configure inside <minecraft_dir>/config/worldloot.json
  5. Restart the game and test the change
  • 5 devlogs
  • 11h
Try project → See source code →
Open comments for this post

1h 1m 33s logged

Touch watergrass

I’ve added a small water check to ensure that structures cannot spawn on water (or any liquid blocks that extend LiquidBlock)

Seems like the plugin’s now feature complete (please brain, no last minute ideas)

0
0
84
Open comments for this post

40m 56s logged

The Polish (not Poland)

The documentation should be much easier to read than before and I’ve polished the source code a bit (removed commented out code that was outdated)

0
0
24
Open comments for this post

6h 34m 5s logged

MegaSearchSkins big update

It’s been a long time since the last devlog!
The search inside MegaSkins is much better now!
I’ve added to the search that it checks if your entered string such as “red uniform” also look at if a description contains exactly “red uniform”. Previously it wouldn’t care about the exact string but only if the words/tokens are inside the description, not the connected words. Now it works how you’d imagine it.
Inside the video you can see the difference :D

In case you plan to use the API: You don’t have to do anything at all. The update applies to the current search endpoint.

also another update: In case you’re opening a skin that isn’t inside the database then the skin is downloaded for you so it works like if it was in the db <3

0
0
71
Open comments for this post

4h 32m 54s logged

The mod is feature complete now. Currently I am writing the documentation. Somehow I forgot to include the progress…

Most things were easy except the separate dimensions feature. You can configure structures per dimension but it took a really long while to figure it out how to fix a bug that snuck in and was difficult to spot.
From the non-dimension-aware version there was stuff left that broke it at first.

config.structures.forEach((id, structures) -> {
    timer.put(id, new ConcurrentHashMap<>());
    // old code
    // it tried to use the ConcurrentHashMap which was empty...
    timer.get(id).forEach((structure, intervalTicks) -> {
        timer.get(id).put(structure, structure.intervalTicks);
    });
});
config.structures.forEach((id, structures) -> {
    timer.put(id, new ConcurrentHashMap<>());
    // new code
    // now it uses the provided structures properly
    for (Config.Configuration.Structure structure : structures) {
        timer.get(id).put(structure, structure.intervalTicks);
    }
});

That bug had cost me the most time.
Second comes testing. Debugging using breakpoints was almost impossible because I had mixins from Lithium interfering with the breakpoints.

The mod does also support additional placeholders now.

  • {x}: structure spawn x pos
  • {y}: structure spawn y pos
  • {z}: structure spawn z pos
  • {name}: structure name
  • {formatted_time}: Time formatted e.g. 2026-08-12 13:40:09
  • {dc_relative_time}: Shows 2 minutes ago, etc. inside Discord (adapted to time zone)
  • {dc_short_time}: Shows 13:42, etc. inside Discord (adapted to time zone)
  • {dc_long_time}: Shows 13:42:00, etc. inside Discord (adapted to time zone)
  • {dc_short_date_time}: Shows 12/08/26, etc. inside Discord (adapted to time zone)
  • {dc_long_date_time}: Shows 12 August 2026, etc. inside Discord (adapted to time zone)
  • {dc_long_date_short_time}: Shows 12 August 2026 13:42, etc. inside Discord (adapted to time zone)
  • {dc_long_date_day_of_week_short_time}: Shows Wednesday, 12 August 2026 13:42, etc. inside Discord (adapted to time zone)
  • {unix_millis}: Milliseconds since Jan 01 1970. (UTC): e.g. 1786535327509
  • {unix_secs}: Seconds since Jan 01 1970. (UTC): e.g. 1786535327
0
0
44
Open comments for this post

1h 32m 17s logged

New: OpenGraph preview with MC Skin heads

I’ve added Minecraft skin heads to the OpenGraph preview so it doesn’t look boring anymore.
If you’ve not read the previous devblogs already: OpenGraph is the cool thing that allows you to display a preview in apps such as Twitter(X), Discord, Whatsapp, Slack, etc.
Previously there was only a description inside that preview. Now I’ve added the head of the skin to that preview.

Want to try out the feature? Post a link from a skin such as https://nuc.de.majic.rs/megaskins/skin/103605da15e8ba3e73de52e20bd96227bc258eabc3f65797a3a1d6f8ca7fdf4b inside any chat (you can also send this to yourself on Slack)

In case you need the skin head yourself you can get a png with the following format: https://nuc.de.majic.rs/api/megaskins/skin/head?hash=[hash]&scale=[scale,optional]
The scale must be between 1.0 and 64.0
Or if you like the Api-Tester 3000 I’ve added yesterday, you can test it out at the bottom of the page (beginning of the video)

Feedback? I am open to suggestions in the comments ♥️

0
0
67
Open comments for this post

3h 53m 52s logged

API? Easy to learn? Easy to experiment with?

Yes, you’ve heard it right. The MegaSkins public API ( https://nuc.de.majic.rs/api/megaskins/ ) is now much easier to learn.

I’ve added documentation and interactive demos to every page.

There is also a page that contains all API usage demos: https://nuc.de.majic.rs/megaskins/api

On this page you can experiment with the MegaSkins API inside the web browser without using specialized tools such as Insomnia.
Info: API usage limits also apply to the website (I doubt that it is possible to reach limits with legitimate request)

Next steps:

  • full opengraph compat

Feedback? I am open to suggestions in the comments ♥️

0
0
40
Open comments for this post

2h 28m 51s logged

Skin Safety details can now be viewed from the web browser. This feature uses the skin safety api.
The safety API has a rate limit of 3 requests per second per ipv4 (Good luck hitting that limit bro).
The value the user receives is between 0 and 1, the same as on the API.
Even if a skin displays 404, you can try the button because it downloads the skin from Mojang’s servers if it isn’t in the db.

0 = completely safe
1 = seriously unsafe, exact match

Want to try out the feature? https://nuc.de.majic.rs/megaskins/skin/10594735a3796fa80b9aad48fc013f1af831735bc968c7d870c036b367db02ae

The recommended threshold for declaring a skin unsafe is 0.95 (95%)

Feedback? I am open to suggestions in the comments ♥️

0
0
80
Open comments for this post

15m 46s logged

Added native light mode support for the header now :D. Previously it was completely dark when light mode was enabled.

Also the header should look better on dark mode.

this isn’t an excuse to use light mode because dark mode is a billion times better

Next steps:

  • full opengraph compat
  • add safety page that allows checking skin safety in the browser
  • add api documentation to the website
0
0
24
Open comments for this post

2h 41m 40s logged

Search inside the browser

You can search for Minecraft skins inside the web browser now.
Search in the browser has the same rate limit as the search API (the page uses the search API)

Also, the UI should look much better on vertical monitors.

Example search: https://nuc.de.majic.rs/megaskins/search/police

In case you prefer the api (max 10 results): https://nuc.de.majic.rs/api/megaskins/skin/search?query=police

Feedback? I am open to suggestions in the comments <3

0
0
13
Open comments for this post

6h 57m 10s logged

Safety? Ever wanted to have a skin filter on your Minecraft server?

Now you are able to check if a Minecraft skin is sus (aka. not child friendly). The system detects how similar a skin is to an existing flagged skin in the database.

Technical

The only thing you provide is the skin hash (the id Mojang gives your skin) and then the server tries to find it locally. If it can’t be found locally then the skin is downloaded directly from Mojang. After that step each pixel that is valid for a skin is compared against every pixel of flagged skins and a percentage value is calculated from 0 to 1.
Meanings:

  • 0 not similar at all or an error has occurred
  • 1 identical image

0.95 = 95% similarity

Practical use

This system will be improved in future to be more reliable against false positives. I am planning to create a Minecraft plugin that does this job for you

Ahh btw. The server takes ~10-20ms to process one request at the moment. (it is a really old one haha)

Current false positives:

  • toddler/baby skins (they have tons of skin)
  • (almost) fully yellow skins (confuses these skins with a skin that contains symbols illegal in Germany)

More details

You can see more details in the screenshot!

You can try it yourself with for example: https://nuc.de.majic.rs/api/megaskins/skin/safety?hash=101f6e9ae23fe8997d9fdf2c1409d97e7270b32f0590c1111eea1e04d1e05d4

If you have any questions or feedback then you can leave a comment or contact via Slack 😀
Good night <3

1
0
94
Open comments for this post

1h 43m 49s logged

Got Minecraft structure spawning working yay. (I used a small radius for spawning). Next step: Checking the ground to ensure that structures don’t spawn in the air

0
0
47
Ship

projekatiOS is a webOS for my personal and other people’s stuff that might be interesting. Currently it is a playground but it’ll develop into a portfolio website once I have more projects to offer. The feature that the guide didn’t list is that you can restart individual apps.

What I am proud of: Apps are easy to create (they are essentially iFrames).

In case you want to test it out: minimized apps continue to play audio, if you want to stop the audio, reload the app. In case anything breaks, you can reload the app.

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

2h 10m 23s logged

projekatiOS makes creating custom apps easy now! Apps can be isolated and will automatically move to the front when moved.

0
0
17
Open comments for this post

42m 59s logged

OpenGraph? What’s that open thingy?
It’s a pretty cool thingy!

MegaSkins supports OpenGraph now 🎉

What is OpenGraph?

  • OpenGraph is a protocol for websites that allows them to provide a title, description, thumbnail, etc. which should be shown in other apps such as Slack.

Why is it cool?

  • Almost every good app supports it and instead of a plain URL, you get a rich preview that looks much better and provides useful information at a glance.

Plans for the OpenGraph feature:

  • Minecraft skin previews are currently being rendered. This may take a little while, but once they’re ready, they’ll be integrated into the previews!

Feedback? I am open to suggestions in the comments <3

0
0
32
Loading more…

Followers

Loading…