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

OffsetMonkey538

@OffsetMonkey538

Joined June 1st, 2026

  • 16Devlogs
  • 5Projects
  • 1Ships
  • 15Votes
Open comments for this post

2h 29m 43s logged

Made spawners craftable, made interacting with spawners using a filled soul gem set the entity in the spawner.

Still not quite sure what to call the “filled” soul gem. One idea i had was to call it just a soul gem and call the not filled one an “Empty Soul Gem”, which is honestly a pretty good idea, but I’m not sure what to do when it’s in the process of being filled. Technically at that point it’s not empty, but maybe it’d be fine to call it that

1
0
3
Open comments for this post

3h 31m 54s logged

Lots of fun stuff between this and the last devlog:

  • Creative tab for filled soul gems now only contains supported ones (had to make creative tabs refresh when data is reloaded cause datapacks can change what’s supported)
  • Removed the old SampleTakerItem and FilledSampleTakerItem classes and moved most logic to custom components or mixins.
  • Soul gems can be filled by holding them in the off hand when killing the target entity ( https://imgur.com/a/Lz6PjZs )
  • Some optimizations
0
0
5
Open comments for this post

1h 55m 13s logged

Optimized the EntityTiers lookup (which I mentioned I messed up last devlog) by using a map instead of a list, and it’s also now storing a reference to the Identifier instead of EntityType, so there’s less work
converting between them for the packet codec (has to be sent as an Identifier (or, well, string) over the network) and also when doing some of the lookups (like from the tint provider, which has just the id by itself)

Not sure what to put as the screenshot it requires me to add…. I guess have some prototypes of the new soul gem texture a person’s working on (the final shape will probably not be a perfectly round pearl)

0
0
1
Open comments for this post

3h 7m 34s logged

Made “filled” soul gems have colors based on the entity they contain!
(and also switched to a different (and probably even worse lmao)
texture) The colors are the same as what spawn eggs used to have, thankfully the minecraft wiki has a list of what they all were before that was removed.

Sadly I can’t steal the entity colors from vanilla anymore as that was removed in 1.21.5, so I had to add color fields to the entity tiers config and that messed with a lot of stuff and is a bit of a hit on performance when it’s not looping over stuff in weird ways as it’s a list of entries when it really should probably be a map… I’ll fix that i guess

Also I know this texture is ass and someone a bit more talented in drawing is cooking up a new one which I’ll probably be able to show off in a few days. Question is… do I want the current one to show up when the vanilla programmer art pack is enabled or is that too embarrassing to show off?

2
0
90
Open comments for this post

54m 44s logged

Added recipes, translations, etc for soul essence and gem, removed spirit bottle, added recipe for spawner, made spawners drop with silk touch.

Thanks to neoforge there have to be separate mixins for fabric and neo for disabling the xp drop when a spawner is broken with silk touch (would lead to infinite xp otherwise lol)…. if only neoforge was just fabric

0
0
7
Open comments for this post

20m 16s logged

So I’ve been doing some brainstorming and writing things down on paper (like a caveman) and have at least redesigned some of the features that already exist.

Instead of a bottle of spirits that you get by right clicking a spawner, there’s going to be Soul Essence that you get by killing a mob while they’re standing on soul sand/soil.
Instead of the Sample taker, there’s gonna be a soul gem crafted from a diamond and 4 soul essence that will be filled by holding it in your offhand while killing x amount of the target mob.
Also thought of some recipes that I’m not gonna explain here rn.

Sadly (or thankfully) I haven’t found a wakatime plugin for Aseprite, so nobody will know just how many hours I spent on the absolute trash textures I made for the soul gem and soul essence (I promise they’ll be better at some point maybe idk if I can do any better 😭 ). Soul essence just looks off somehow, and the soul gem looks like a duck spawn egg 😭 😭 😭 😭

1
0
13
Open comments for this post

6h 30m 39s logged

It is now working on NeoForge as well! Getting the inventory to work with the neoforge transfer api was a bit of a pain, but I managed to get it to work! (Don’t mind the debug upgrades in the screenshot, they make it easier to test but dont have textures)

Next up is uhh… some brainstorming and rethinking how the whole mod works and thinking about what’s in scope for this and what’s not:

One thing I definitely want to add is a crafting recipe for spawners and making the sample takers (which will probably be renamed to something relating to souls and gems) usable as spawn eggs on spawners.
I’m not quite sure if upgradeable spawners should be a part of this though as there’s already apotheosis for neoforge (and a port in the works for fabric) that does that and probably other mods as well.
I also really wanted to add things for moving and killing mobs in the world, for which there are also already mods like Dark Utilities (got quite inspired by that) which afaik also is updated to the latest version and is for both fabric and neoforge…. Though it seems to have more random things unrelated to mob farming, and maybe it’d be fine if I really differentiate from it and other similar mods with the theme of this?
Yeahhh this’ll need quite a bit more thinking.

0
0
8
Open comments for this post

2h 3m 48s logged

Finished getting everything out of :loader:fabric and into :modded that makes sense to move. The fabric subproject now only has 4 files, two of which are just the entrypoints that invoke the common initializer and the other two are using fabric api specific things and can’t be moved out without a lot of headache!

0
0
4
Open comments for this post

15m 11s logged

(the 15m were spent working on getting MenuProvider
stuff out from fabric specific code and into the common modded
subproject, butttt I’m making a post cause I wanna share…)

Some funny screenshots from when I was porting from 1.21.1 to 26.1 (rendering changes here are a pain lol)

0
0
15
Open comments for this post

17h 58m 3s logged

Just realized this is probably something I could submit to stardance as well 😅

Basically the initial idea was to have a mob farm contained in a single block. You craft a sample taker and have to click on 10 separate instances of an entity to get a filled sample of that entity. Then you put that into a Compact Mob Farm, turn it on, maybe give it some upgrades and a sword, and it’ll start farming the drops of the entity you took samples of.

Here are some screenshots of what stuff looks like

0
0
4
Ship

I was annoyed that people still upload plain log files in the support discord for my Minecraft mods, when I clearly say that using mclogs, a pastebin for minecraft logs with syntax highlighting and whatnot, makes debugging much easier. So I made a Discord bot to fix that! It detects logs sent as attachments by their name and uploads them to mclogs. It can also be added as a user application, which will allow using the `/upload-logs` command anywhere.

This is my first full project written in Kotlin (previously I've only used it for Gradle buildscripts), so there were some initial challenges with Kotlin syntax for things like lambdas and also how instead of static functions you have companion objects, but Kotlin's documentation is pretty good. What documentation wasn't so good though was Kord, the library I used for interacting with the Discord API. It required quite a bit of guesswork to figure out how it works and should be used, the Discord API docs made it a bit easier though at least.

I've set up a discord server with an instance of the bot running, which can be used to test it out. There are also self-hosting instructions on the readme.

  • 5 devlogs
  • 21h
  • 15.96x multiplier
  • 337 Stardust
Try project → See source code →
Open comments for this post

4h 32m 39s logged

Made it now packaged as a docker container, fixed some bugs and wrote a readme with instructions for self-hosting
Also now have an instance of it running on my homelab

1
0
4
Open comments for this post

7h 3m 5s logged

Some changes over the past few days:

  • Multiple logs can be uploaded at once
  • Http requests and json parsing now done with kotlin’s own libraries instead of java HttpClient and Jankson. Kotlin serialization stuff is actually pretty great!
  • Errors aren’t silently ignored anymore and other logs added in the same batch can still be uploaded even when some fail.
  • Much less readable code, kotlin is great for that
0
0
1
Open comments for this post

6h 2m 37s logged

I have now fully implemented the command for uploading a log. It now rejects binary files like images or videos, correctly reads when the file isn’t UTF8 formatted and allows deleting the uploaded log in case it was the wrong file or something.

I’ve found that Kotlin is actually really nice. I especially like how it allows writing such unreadable code that I can’t understand it even 5 minutes after writing it

I also spent an hour or so in termux on my phone (was bored on a bus) setting up an instance of mclogs on my homelab and the bot now allows setting a custom instance url as well.

Next step will be having it detect sent log files and automatically upload them

0
0
4
Open comments for this post

40m 19s logged

I really liked the nullability stuff Kotlin has when I was writing a multiloader/version convention plugin for my mods, so I decided to use Kotlin to get more familiar with it in general usage. I saw someone talking about the Kord library a while back, so I went with that.
Safe to say that I’m still quite unfamiliar with Kotlin’s syntax (using it in gradle buildscripts is much much simpler), and I couldn’t really find anything great on Kord other than the simple example usage https://github.com/kordlib/kord/tree/main/core , but it definitely is able to play ping-pong at the very least :D

0
0
14

Followers

Loading…