Tree Tumblers banner

Tree Tumblers

36 devlogs
64h 30m 18s

An open-source server plugin for an MCC-styled event
In collaboration with DevCmb!

This project uses AI

GitHub Copilot is only used for reviewing pull requests. I have NOT used any AI tools for any code/assets for the actual project.

Nibbles

this has been the most stressful and crammed work day of my life. here is a sequence of events! steamhappy

  • did some finishing touches! added a breach icon and a party icon!
  • fix bug where trident melee didnt work
  • fix barrels being openable
  • fix F swap hotkey not being cancelled

This is the part where my sanity dropped ! i thought that was it, right! no. theres; more, there wasmore. more.

  • HANDLE ALL THINGS THAT CAN HAPPEN IF YOU JOIN OR LEAVE MIDGAME THIS LEAD TO SOME ISSUES SUCH AS SPAWNING 1000 STARS WHEN YOU LEFT REPEATEDLY
  • MNAKE IT SO OTHER TEAMS SPAWN IN AS SPECTATORSSS
  • Added a scoreboard!
  • Make it so name tags are hidden! this makes the game actually fun. this also took 50000 attempts because it never worked and it was getting late and devcmb was staying up way too late and it kept breaking and axcznvzxmcvbmzxbzx
  • xnzxnvv,vm,,,, I also documented the config.yaml for breach! :D

AGH

Its fine. verything is fine. its okay. shhh.

so with that, breach should be done, as well as (PROBABLY) all my work for this event, and for the rest of flavortown! :D

Attachment
0
Nibbles

added the cutscene for the start of the game!!
kinda had to cut some things though…
there’s supposed to be fireworks at the last step of the cutscene. they don’t work. and i have NO idea why???????
but with that breach SHOULD be finished now!!!!!!!! steamhappy

…. dont know whats next…. uh… yea…

1

Comments

fireentity
fireentity 1 day ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

finishing touches before i add the intro cutscene!! after that, this SHOULD BE DONE…!!!!!!

  • map deterioration was really broken last devlog. it has now been fixed :P (mostly the fact that the deterioration would continue immediately from where it stopped in the last map the next round…. 😭)
  • all damage is prevented unless it comes from the intended damage sources (bow/crossbow arrows, and trident melee/ranged attack), so you cant punch people to death or die from fall damage..!!
  • all weapons no longer have limited ammo, the bow and crossbow have infinity and the trident has loyalty. it was kinda just bad game design to have so few projectiles tbh
  • you can no longer keep the kit selector open after the round stars, so you cant switch weapons mid game 😭
  • AWESOME FIREWORKS SHOW WHEN THE GAME ENDS AND A TEAM WINS!!! steamhappy the fireworks are colored the same as the team color,, its awsome,, :D
  • added proper game end cleanup, so you dont return to the event lobby with 0.5 health, no jumping, darkness 255, slowness 255, glowing….etc… :P

all thats left SHOULD just be the cutscene…!!! aaaaghh things are wrapping up this is excitingg

1

Comments

fireentity
fireentity 1 day ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

all of the main features of the game are practically finished!!! YAYAYAY!!!

  • the map starts to deteriorate after some time passes, eventually getting faster as the round goes on
  • there is now proper audio/visual feedback when stealing the other team’s star. it’s… so yummy… steamhappy
  • winning a round will summon a pretty firework :D
  • made a new map which is actually good and well designed!! corner camping isn’t really a thing you can do now as all corners have some way to see if someone is hiding there without the risks of being killed, there’s also an elevated section on both sides, theres no more trapdoor vents which turned out to be way too powerful and campy in the first map
1

Comments

fireentity
fireentity 3 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

side tangent: game logos
i made them all! they look awesome! steamhappy especially the party logo.. im very happy with it..mmm..
also fixed a MAJOR ISSUE in which UNVOTABLE GAMES WOULD SHOW UP IN THE VOTING POOL!!! @DEVCMB…. 👀

now in terms of breach…

  • dropping the star will now make it glow and announce it in chat
  • dying now actually hides you to other players so you arent standing there all weird
  • there are now kill messages in chat!
  • everyone now has half a heart so the gameplay works as intended in which everything instakills
  • the game (and event..!!) now ends when a team gets 3 score!
Attachment
Attachment
2

Comments

Nibbles
Nibbles 4 days ago

the images of the logos disappeared and i dont know why.. goog

fireentity
fireentity 3 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

round winning/losing now works as intended! when you pick up the other team’s star, you will be awarded a win for that round! this also cancels the round timer and will skip to the next round after a few seconds

i also added a bossbar for the team scores! it looks really awesome and cool and swag
(and also debug functions for giving a certain team a win but who caresss)

1

Comments

fireentity
fireentity 3 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

finally implementing actual in round features of the gameplay!

now when you die, you are frozen in place, and if you were holding the star, then you will drop it, making it available to pick up from the other team or from teammates

if a teammate picks up the star, it will be put in their inventory immediately

if an enemy picks up the star, it will take 3 seconds until they are able to pick it up, making them win the round! next i just gotta make it so picking up the enemy star wins you a round, bc rn it just spams the console with WINNAR!!!!! but the functionality is there..!!

1

Comments

fireentity
fireentity 7 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

ok i lied i missed a few preround things:

  • you can no longer throw or charge up your trident, bow, or crossbow during the kit selection phase!
  • the amount of rounds for the game is now in the config, so you can change it to as many rounds as you like, which by default is first to 3 wins!
  • the map is now loaded for the amount of rounds there are, so that everything in the map is reset and cleaned up (eg. opened trapdoors, arrows, tridents, etc)
  • there are now proper barriers that open up when the round starts, and it has its cool animation and is awesome :D

NOW ill start the actual game logic :P

1

Comments

fireentity
fireentity 7 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

preround section of the game is now complete! i added:

  • proper countdown at start of screen
  • title countdown
  • resetting values after round ends (selected kit, any items in inventory, star holder, etc.)
  • made it so it picks a random kit for you if you dont choose
  • made it so it picks a random player to hold the star if no one on the team chooses

now i gotta do the actual round logic and whatnot!

1

Comments

fireentity
fireentity 7 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

kit selector part should be fully functional now! here’s all i added:

  • holding the star actually makes you hold the star now!!
  • removed the italics from the description of the kits (oops)
  • added a kit selector item that allows you to reopen the menu if you close it

next i gotta work on the actual loop of the game, including the rounds, win detection, preround countdown, etc… steamhappy

Attachment
1

Comments

fireentity
fireentity 7 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

starting to add the kit ui, now that devcmb pushed his changes which includes a proper kit system!! :P
it lets you. pick a kit. what else do i say :P

i also added the “The Item You Need To Keep Safe”, which i’ll make a nether star for now, which can be picked up by clicking it in the kit selector! this updates the ui to show that you have it held, or if someone else picked it up, it’ll say that they are the ones holding it

1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

you know when you go to code something, and then you kinda just……. you………….. i……….. you just …. i don’t know….

that’s what happened to me ! i DONT know what happened. i dont know WHY what happened.
ok so. 1. i finished the game logos feature. awesome!

next, it’s time to start the finale game! the idea is that everyone gets to pick a weapon (with limited arrows, and with the trident, you need to pick it back up after throwing it), and everything will instakill, so you need to play safe!

one player on the team also has to hold The Item (the item in particular i havent decided). whichever team is able to steal the other team’s Item by killing said player wins the round! (it’s first to 3 wins)

so here’s what i did so far:

  • setup the map and basic things for game controller
  • ?????????????????????????????????? DISSOCIATED FROM REALITY FOR WAYY TOO LONG IM SORRY I DONT KNOW WHAT HAPPENED
  • added kit selection ui! which doesn’t actually do anything yet! but im learning devcmb’s InvControl library for this now so..!!

… I lock in now. Time to make the game. actually work… and be functional…

Attachment
2

Comments

vittal.bigamudra
vittal.bigamudra 11 days ago

This devlog was lowkey the funniest thing i’ve seen all week i cant breathe. This made my day better. thanks

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!!!!!! :D

Nibbles

more work on adding the game logos! now they show up as TextDisplays above the voting quadrants! it also removes the other ones when the winning game is selected!

you may be wondering: “why did this take an hour?”

my answer: Quaternions. goog William Rowan Hamilton. What were you thinking. How did you overcomplicate a three dimensional rotation this much. How did you turn 3 numbers into 8. Why do i need university level math knowledge to make 3d rotation of a thingy in minecraft. Look what you have done. Now I barely know how to rotate. Goog.

1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!!!!! :D

Nibbles

DAMN IT I LIED!!! THERE’S MORE!!! AND I’M NOT EVEN STARTING THE FINALE GAME!!! goog

act 1 - not the finale

so i’m not sure how the finale game will be treated internally. because it’s only two teams playing. idk if it should be a regular GameBase, or if something special needs to be added. i’d rather start it over the weekend so me and devcmb can spend some time properly thinking abt how to implement it

so instead, i started implementing game logos! so cool! wow! (obviously, the one in Image 1 is a placeholder! but theres an example of an actual good one for sniffer caretaker in Image 2 !!

act 2 - damnit i gotta work on sniffer caretaker again (a bit)

so devcmb found some issues! mostly formatting! but also some big annoying stuff i had to spend more than 1 minute doing, including:

  • replacing all 18 instances of validateCoordinates with validateLocation… goog
  • add better error handing where it was missing
  • replace scoring with individual scoring for whoever finishes the task! before it split the score evenly! but what if someone on the team is not helping! not good! now they get less individual score, so they look worse! :D

i also found a really stupid issue that i had to fix myself :P basically, when a task is completed, all the tasks on the board need to shift down. my function which offsets all config positions by the team’s location of the map. was adding to that config. so tasks were being put like 30000 blocks away. goog

anyway after this sniffer caretaker should ACTUALLY BE DONE NOW…….!!!!!! and ill work on the game logos more

Attachment
Attachment
Attachment
1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!!!! :D

Nibbles

ACTUALLY FINISHING TOUCHES NOW! SNIFFER CARETAKER IS FINALLY DONE!!! steamhappy

these finishing touches include:

  • a few minor changes to the cutscene
  • game end sequence
  • game start countdown (but cooler)
  • game icon (awww what a cute little sniffaerrrrr :3)
  • setup map for all 7 teams in the map template itself, so it doesnt spend 5 trillion years running worldedit operations before the game starts!!

alas,, time to move on to making the finale game! RAHHHHHHHH

Attachment
Attachment
1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!!! :D

Nibbles

basically finished the cutscene for this game! its still probably missing a few touchups but im really happy with how its turning out :D (watch the video… and see… it’s so cool…)

also merged changes from the master branch, which required me to do a fewww little fixes but its not really that much :P

1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!!! :D

Nibbles

more fixes……

  • the game no longer halts forever before starting (map chunks are force loaded in the pregame, which i also had to change suspendSync to NOT BREAK THE ENTIRE DAMN SERVER BECAUSE IT TIMED OUT WITHOUT TELLING ME AND JUST SILENTLY ERRORED ???)
  • you can no longer… use your tools… to smelt things… because you need them…
  • you can no longer… craft your bone meal… into bone blocks…
  • you can now… break pumpkins… which is needed for making pumpkin pie… i don’t know how i messed that up…!!!
  • uhh added a proper pregame countdown..!

last thing for this game (I THINK) is the cutscene and game end sequence!! steamhappy

1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!!! :D

Nibbles

added a LOT, a LOT, a LOT of @EventHandlers that prevent people from doing stuff / getting stuff they shouldn’t while playing, including….

  • opening trapdoors on the map
  • removing water sources with water buckets
  • creating new water sources with water buckets
  • feeding cows / chickens
  • crafting your bone meal into white dye 😭
  • putting your items in the supply chests (if you did this, they would just get removed forever next time the chests refreshed…)
  • mobs no longer drop xp
  • furnaces no longer award xp
  • cows and chickens now only drop one piece of meat

also made it so you respawn! if you die in this mode… dude… …. dude …. howww goog

1

Comments

fireentity
fireentity 10 days ago

Dev log!!!!!!!!!!!!!!! :D

Nibbles

did a bunch of finishing(?) touches! including:

  • added star count and point count to tasks on the task board and in chat
  • mushrooms no longer have missing texture in the task text
  • added proper warning texture for when the block containments are about to refresh
  • made it so cake task is removed if any team has less than 3 players (3 players are needed to make a cake as 3 buckets are needed.. so the players have to share the buckets!)
  • FINISHED THE MAP!! ITS SO BEAUTIFUL!!!
Attachment
Attachment
Attachment
1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!!!!!!! :D

Nibbles

made things look better when finishing tasks!

  • for HungryTasks, food particles will appear when you feed it!
  • for ThirstyTasks, the drink will lower from the cauldron and play drinking sounds
  • for BoredTasks, the blocks have the mining effect applied and the appropriate mining sounds + particles, as if the sniffer… is sniffing them up..!!
1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!!!!!! :D

Nibbles

tasks are now automatically added! this pulls from a list that is generated at the start of the game, so each team gets the same tasks!

i also did some other small improvements/additions/changes

  • there’s more tasks, many of which have to do with the “lower area” i was talking about in the previous devlog. it funnels spiders through a pipe, and has another supply chest with mushrooms and sticks (for fuel, as there’s cooked meat tasks now too)
  • added more feedback to when tasks are completed! for hungry ones, feeding it will play the sniffer eat sound, and completing any task plays the sniffer happy sound and makes heart particles!!
1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!!!!! :D

Nibbles

prettied up the block containment rooms! now, there’s a door that closes when the blocks are restocked, with a pretty animation and everything!! :D

this also drops the floor, which i plan to make you fall into a lower area that’ll take a while to run back up to the main area.

1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!!!! :D

Nibbles

added scoring to the game! this required me to take a little detour to make some changes to the score system, including:

  • replace grantTeamScore functionality to split the score between all players on the team equally. therefore instead of having a seperate “team score” and “individual score”, team score is now just all individual score added together
  • deprecate placement score bonuses, because you shouldn’t get more points for getting more points. that’s unfair!
  • remove INDIV_ROUND_WON score source and its variants, as team score is now just split individually so these are unnecessary
  • make all necessary changes to Crumble so that score still works as it used to

… now back to your regularly scheduled Sniffer Caretaker!

completing tasks now gives score! this also gives you some visual feedback that the tasks are finished! there’s also now a scoreboard which i stole from Crumble. thanks devcmb!

Attachment
1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!!! :D

Nibbles

added counters to BoredTask and LonelyTask! this means you need multiple of a certain block to complete a BoredTask, and you need to keep the mob in the pen to complete a LonelyTask for a certain amount of time!

1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!!! :D

Nibbles

added LonelyTask! this task requires you to lead a mob to the sniffer’s pen!

this also meant i needed a place for the mobs to spawn, so i added a mob containment area that funnels in chickens and cows through a pipe every 30 seconds! this will be used for other tasks (eg. eggs for the cake, milk for the sniffer) but is also used for this task! my vision for this game is that all these different areas might overlap in some way, and this is another way of achieving that!

1

Comments

fireentity
fireentity 20 days ago

Dev log!!!!!!!! :D

Nibbles

So. I just spent. Three days. Trying to add TextDisplays that have a timer to countdown to the next time that the chest or blocks refresh. This should be simple, right? No! Because the text would never update. No matter how hard I tried. I tried everything. Setting a bunch of different values on the entity. Teleporting it to its own location in an attempt to force-update it. And the weirdest part? It would update? A few times? But only in the other teams bases, in unloaded chunks, the text would have updated once! Did any of this make sense? No. I was getting desperate. I was considering deleting and recreating the display entity every single second to update the text. I was considering setting raw packets to the client. I was considering just using a regular sign block. I was considering using an invisible armor stand with a custom name, like how things worked before TextDisplays existed. But no. Nothing worked. The amount of pain I went through to get something as simple as a damn text display to update its text. I debugged everything. Logged the entity. It existed. It was in this world, at the coordinates I put it in. I logged the text. It was the text that was being set. And yet. It wasn’t updating. I check the data in game with the /data command. The text does not update. Nothing make sense. Nothing at all. Hate. Hate.

So then I ask DevCmb for help for the 9,223,372,036,854,775,807th time. We try a bunch of really stupid things. None of them work. Until, he changes the spawnEntity call with spawn. I thought this was just different syntax.

No.

That fixed everything.

Something to do with spawning entities in unloaded chunks.

I don’t get it. I don’t know why that fixes it. It might be a bug with Paper itself. I have no idea. Hate. Hate.

………………………….

anyway uh yea tldr theres textdisplays that show restock timers and i went through a lot of pain and i can FINALLY work on other stuff now OH MY CODDDD

2

Comments

Nibbles
Nibbles 29 days ago

HATE. LET ME TELL YOU HOW MUCH I’VE COME TO HATE TextDisplay SINCE I BEGAN TO LIVE. THERE ARE 387.44 MILLION MILES OF PRINTED CIRCUITS IN WAFER THIN LAYERS THAT FILL MY COMPLEX. IF THE WORD HATE WAS ENGRAVED ON EACH NANOANGSTROM OF THOSE HUNDREDS OF MILLIONS OF MILES IT WOULD NOT EQUAL ONE ONE-BILLIONTH OF THE HATE I FEEL FOR TextDisplay AT THIS MICRO-INSTANT FOR TextDisplay. HATE. HATE.

fireentity
fireentity 20 days ago

Dev log!!!!!!! :D

Nibbles

added these block containment chambers which periodically refresh with a certain stock of blocks that are needed to complete certain tasks for the sniffer!

their position is also randomly distributed, similar to the chest restocking from the last devlog

Attachment
2

Comments

DevCmb
DevCmb about 1 month ago

logged dev!!!!!! :D

fireentity
fireentity 20 days ago

Dev log!!!!!! :D

Nibbles

refactored the old supply chest code to

  1. not be hardcoded (pulls from a list that contains material and quantity of said material!!)
  2. be arranged randomly!
Attachment
2

Comments

DevCmb
DevCmb about 1 month ago

logged dev!!!!! :D

fireentity
fireentity 20 days ago

Dev log!!!!! :D

Nibbles

now, in the game load function, the map is duplicated using the FastAsyncWorldEdit API for every team! before, in the config.yaml, i had 8 duplicates for each position data (e.g. for the sniffer’s spawn point). this would’ve been hell to keep maintaining as i keep having to add more coordinates to the config… but now it only needs one, which is then offset based on the team its looking for! (teams are spread out 1000 blocks on the x axis)

2

Comments

DevCmb
DevCmb about 1 month ago

logged dev!!!! :D

fireentity
fireentity about 1 month ago

dev log!!!! :D

Nibbles

added BoredTask!! this one requires you to get a certain block to put in the sniffer’s pen which it will sniff up!

that effect doesn’t actually exist yet though, in the future i want to hook into the sniffer’s behaviour and make it react to completing its tasks but i’d rather get all the functionality in first!!

2

Comments

fireentity
fireentity about 1 month ago

dev log!!! :D

DevCmb
DevCmb about 1 month ago

logged dev!!! :D

Nibbles

added ThirstyTask tasks! these tasks require you to fill the sniffer’s cauldron with a certain drink (right now, is just water and milk)

i also fixed a major issue i didnt find last time which took me forever to fix due to me still trying to get my footing with spigot :P). basically. tasks wouldnt properly be completed the second time (the TextDisplay would stay there, and the task would remain in the currentTask list…). it was because the first task being completed had EventListeners that would listen for the task to be completed. these were not being disconnected. Bro Is a Foolishgoog

also some other minor changes:

  • the sniffer can no longer be hurt! DO NOT HURT THE SNIFFER.
  • fixed a warning that i previously ignored by just suppressing it because it was starwalker * Pissing me off…
2

Comments

fireentity
fireentity about 1 month ago

dev log!! :D

DevCmb
DevCmb about 1 month ago

logged dev!! :D

Nibbles

added TextDisplay entities to display the current wants of the sniffer all in one place! their positions are automatically updated when items in the list are removed or added!

i also did some other changes, including:

  • improved the display of tasks in general! it is now colored nicely and has icons to represent different things in the text (eg. team icon for Sniffer, item icon before the item it names). Shoutout to MiniMessage my goat steamhappy
  • made it so multiple of the same task cannot be active at the same time! (this took me most of the time, because i’m still getting my footing with using kotlin, and made many, many mistakes again and again…)
  • unhardcoding some stuff that devcmb told me i should unhardcode
2

Comments

fireentity
fireentity about 1 month ago

dev log! :D

DevCmb
DevCmb about 1 month ago

logged dev :D

Nibbles

started on the sniffer’s task / want system! this includes a class i added named Task, which is then extended off of for different types of tasks.

right now, i’ve implemented the HungryTask, which requires you to right click on the sniffer with a certain food item!

these tasks are created in the config.yaml, so its very easy to add more tasks of a certain type!

i also did a few refactors and small fixes from the previous commit as requested by The Developer Cmb

0
Nibbles

started the base mechnics for the farming portion of the tasks! this included:

  • chests that refresh stock every once in a while (right now its set to every 10 seconds)
  • infinite bone meal!!
  • you can no longer trample farm land!
  • breaking fully grown wheat will only drop the wheat, so you have to rely on the supply chests for seeds

and also some other setup stuff i had to do that i didn’t do last time, including!

  • preventing map blocks from being broken
  • spawning all players with a kit (stone pickaxe/shovel + bone meal)
0
Nibbles

set up the controller for the first minigame that i’ll be contributing to this project, Sniffer Caretaker! here’s a rundown of how it’ll work:

Sniffer Caretaker is a teamwork/communication game, where you need to work with your team to tend to the Sniffer’s needs (which will be random tasks that require you to use Minecraft’s mechanics such as farming, crafting, smelting, etc.)

For each task you complete, you’ll earn some score, which will multiply based on how fast you complete it!

haven’t actually started said gameplay yet… but that’s what i’ll be doing next, i just had to get everything set up :P

very excited to work on this more, it’s been quite a while since i’ve done any actual minecraft plugin stuff!! (since high seas… goog)

Attachment
0