Tree Tumblers banner

Tree Tumblers

82 devlogs
158h 51m 46s

An open-source server plugin for an mcc-styled minecraft event

This project uses AI

Copilot was used mainly for cleaning up code, optimizing code, and pull request review, not for major features. It was hardly used compared to the amount of human-written code, and any AI code is declared in-code with a comment.

Demo Repository

Loading README...

DevCmb

Shipped this project!

Hours: 158.86
Cookies: 🍪 4645
Multiplier: 29.24 cookies/hr

Demo video: https://www.youtube.com/watch?v=WFtXUpfsdHM

I finally did it. I finished a new biggest project!!!!!!
I’ve always loved events like MCC and Blockwars, and finally being able to make my own is so cool, and something I’ve been wanting to do for a long time.

This project helped me learn so much about kotlin in ways that my last projects simply haven’t allowed me to. It was a lot of hard work, and now its time for it all to (hopefully) pay off.

This was an ambitious project and one I’m so proud of, and I hope the world enjoys it too ❤️

DevCmb

And with that, its done yay

This is a project i’ve wanted to do for such a long time now, im so grateful that I could finally do it and actually finish it for flavortown
As always, here’s the changes ;)

  • Remove curseforge from the readme because they deleted my project sad-cat-thumbs-up
  • Fixed a bug where sniffer caretaker wouldn’t disable the countdown after the game ended
  • Fix a bug where you could convert farmland into grass by placing a block on top of it
  • Make a dumbed down version of the resource pack (the original has some assets that i was given that were payed for by that individual, so its not right to include them publically)
  • Make a template server with db mode off
  • Fix a bug where some games wouldn’t enable the countdown bossbar after they joined
  • Disable dev mode
  • Fix a bug where nametags were still visible in breach
  • Properly clear starPickupTimes in breach
  • Fix a bug where you could take the star out of your offhand by hotkeying in breach.

Changelog

Attachment
1

Comments

matt.bh27
matt.bh27 about 12 hours ago

Yo this is so tuff great job I hope to play it with my friends soon

DevCmb
  • Hide scores during and after the 4th game to build suspense on whos in the final duel
  • Add download instructions to the readme
  • Announce the finalist after all 4 games have finished, then start breach
  • Added a little cutscene for the score breakdown where all but the top 3 scores are revealed

Changelog

Attachment
Attachment
0
DevCmb
  • Convert the hub world to a template so it can be version controlled (and to prevent it from saving and messing it up)
  • Added the remaining game dioramas that get pasted in when the game gets shown in voting
  • Fix a party bug where players in a team matchup wouldn’t be taken out of spectator

Changelog

Attachment
Attachment
0
DevCmb
  • Add proper score commands for setting, getting, nuking, distributing, and replicating scores
  • Add a server MOTD
  • Fix a bug where players would spawn with 10 hearts in deathrun if they joined during the game start sequence
  • Give reasonable defaults to certain lateinit fields in the TumblingPlayer to prevent potential race conditions
  • Add a score property to the teams enum that gets and sets the value to/from the EventController
  • Fix outdated countdown documentation in GameBase

Changelog

Attachment
Attachment
0
DevCmb
  • Fix a bug where the cutscene would run multiple times if players joined halfway through
  • Add documentation to the config.yml file (majority of the time)
  • Move the vote sign quaternions to the config file (and fix bugs associated to that where I did .take on the wrong list)
  • Move the first teleport of a CutsceneStep to its constructor
  • Change the lines in the cutscene message from a UserInterfaceUtility method to a custom minimessage tag

Changelog

0
DevCmb
  • Pasted the dioramas for the game in the voting cutscene
  • Changed the arena center to basically be on the ground
  • Started the process of documenting the config files
    not much else, locking in on the last few things

Changelog

Attachment
0
DevCmb
  • Make the walls come up when voting ends
  • Added the plugin dependencies to the runServer task to automatically be downloaded for dev stuff
  • Added build settings that allow me to debug the plugin properly, as well as hot reload methods that need changing (not requiring a full server restart)
  • Added a system to the timer class where code can be executed whenever the timer reaches a certain number

Changelog

Attachment
0
DevCmb

I wish I could’ve done more, but I ran into some really annoying bugs I had to solve

  • Add player join and leave methods to party
  • Fix a bug where players wouldn’t be teleported back to the hub after the game ends if there were any spectators
  • Fix a bug in deathrun where players joining in the round-end wouldn’t be put into spectator
  • Rebalance scores on Deathrun for 32 players
  • Change the runnables on deathrun from being per-player to having 1 that manages all players
  • Move the deathrun un-spectate logic to pre-round instead of post-round
  • Edit deathrun to use all possible running players for scoring, not just those that were online
  • Fix the spectator page controls having a minimessage key that didn’t exist (<!_i>)

Changelog

Attachment
0
DevCmb

New biggest devlog! I did a lot of fixes for every game (except party, thats next but its been too long since a devlog)
Sniffer Caretaker was very bugged, so I fixed a bunch of those issues, as well as fix my own bad code elsewhere yay
Anyways, here’s the changelog for everything (its so much)

  • Added a system for muting the chat during the pre-game cutscene
  • Added the backend system for player join/leave
  • Change milk buckets to not clear effects
  • Fix the crumble and deathrun round timer running its callback even if it ended early
  • Implemented methods for leaving and joining in deathrun (it spawns an attacker if they are one, spawns a runner at the start if its pre-round, and spawns them as a spectator otherwise)
  • Implemented methods for leaving and joining in sniffer caretaker (it just spawns them at their base and kits them)
  • Added handling for joining mid-cutscene
  • Implemented methods for leaving and joining in crumble (not enough chars to explain)
  • Added a system in crumble where players who weren’t online would be killed and give score to the opponent team
  • Change scoring to give a potential remainder so the lowest scoring players instead of just giving less score.

Sniffer Caretaker bugfixes

  • Fix a bug where you could re-collect blocks from the bored task
  • Fix gravel being able to drop flint
  • Fix a bug where you could convert coarse dirt into mud
  • Fix a bug where milking a cow would give you a water bucket (how do you mess this up 😭)
  • Restrict crafting to a select few recipes

Changelog (names dropped for character limit)

Attachment
1

Comments

Nibbles
Nibbles 11 days ago

Bro is larping as a sniffer caretaker😂 bro doesnt even goog bro doesnt sniff bro doesnt even know his sniffer cartektaker tasks. goog steamhappy bro doesn tret ubmler

DevCmb
  • Add text channels for local (everybody), team (only players on your team), and staff (just developers and organizers).
  • Fix a bug where spectating players would get concurrently modified in 2 cases
  • Added messages for getting kills, as well as an icon for every type (sword, bow, trident, explosion)
  • Added a config value that allows you to run the server without a mysql database. This is going to make review be much easier
  • Make a cool thumbnail for the project
  • Fix a bug where players who died in deathrun wouldn’t be marked as dead properly
  • Fix a bug where players who died in deathrun could still trigger checkpoints
  • Properly set up the permissions in the config.yml
  • Add a buffer and page controls to the spectator menu

Changelog

Attachment
0
DevCmb

We’re in the homestretch now

I’m done making games so now its time to polish up everything and get ready to ship.
The event ends in a bit over a week, so I have to LOCK IN
Anyways, here’s all I did

  • Added a standard spectate system with a compass for teleporting to players
  • Fix crumble not putting players into survival
  • Fix a bug with the cancelCountdown method using old variables that weren’t properly tied to the new system
  • Added a flag USE_SPECTATOR_DEATH_SYSTEM to cancel death events and place players into spectator
  • Fix a bug where the format method on timers would fill the current minute seconds (0:XX) instead of the minutes (X:00)
  • Remove the player respawn logic from crumble because its not needed now that death events are handled
  • Fix natural regeneration being enabled in party and made it a new flag DISABLE_NATURAL_REGENERATION
  • Change any instance of green concrete to lime concrete because its more vibrant
  • Make it so spectating teams get automatically added to the spectator list
  • Add a flat player skull to the resources (looks way better)

Changelog

Attachment
0
DevCmb

And with that, it is ACTUALLY done 🎉

Big things are happening since I did a small playtest with 1 other person and found a bunch of things to fix and balance.

  • Remove horses from the spear duels game because its very jank
  • Degrate the tier of the spear in the spear duels game to diamond
  • Change the quick charge level on crossbows in the bow duels game from 1 -> 2
  • Remove the density enchantment from the mace in mace duels
  • Fix a bug where bow shots would bounce off players due to a difference in how the entity damage is handled
  • Add the new arena loading title that I forgot about to team games
  • Fix a bug where players would be shown async, causing an exception and breaking a bunch of stuff
  • Fix a bug where team players would only get 5 ticks of blindness instead of 5 seconds
  • Fix the x position of arenas being used for multiple arenas, causing overlap (actually this time, last time I thought I fixed it, didn’t test it, and it was still around)
  • Change the party game cleanup method from being async to being under a suspendSync
  • Fix a bug where team players weren’t added to the inGamePlayers list, breaking stuff
  • Add an allowRefights config value for if 2 players/teams can fight twice in a row (used for testing in low-player environments)
  • Add a showToAll call in the cleanup method to show players when the game cleans up
  • Fix a positioning bug with the 4th voting sign

Changelog

Attachment
0
DevCmb

And with that, it might be done 👀

  • Added a pre-game cutscene to party
  • Update the party matchmaker to not put you with the same player or team twice in a row
  • Fix a bug where the start and cleanup methods wouldn’t get called
  • Fix a bug where the horses could still move in spear duels before the game started
  • Add a small delay to matches starting after the loading finishes
  • Change the loading text to have fade up and down

Changelog

Attachment
0
DevCmb
  • Add the axe duels party game
  • Add the mace duels party game
  • Add the spear duels party game
  • Add the bow duels party game
  • If the player is riding a vehicle, remove it when the player joins to prevent problems
  • Cancel bow charge events whenever the player is frozen to avoid being able to shoot into the pre-game darkness
  • Silence cutscene pigs because Nibbl_z really wanted me to
  • Remove draws from the scoreboard because of the line restrictions
  • Add enchantments and item count to the AdvancedItemStack system

Changelog

Attachment
Attachment
Attachment
0
DevCmb
  • Added the system for matching teams
  • Added an actionbar to indicate the player’s current state in the game
  • Add the intermediary period where games don’t start, waiting for team games to activate
  • Fix a bug where kill events would be tracked for other players in active games, not just the current matchup
  • Fix a bug where players could hit eachother in the lobby
  • Fix a bug where spectators could attack regular players
  • Add score sources for all game stuff

Changelog

Attachment
0
DevCmb

I did so much! Would’ve made a devlog sooner but a lot of it was internal changes.
Anyways back to your regularly scheduled changelog

  • Added a simple matchmaker for individual games (team games next)
  • Converted the PartyGame interface to an abstract class and implement kill tracking for game results
  • Redo the timer system to use a domain-specific language (DSL) for more control over its behavior
  • Redo the kit system to have support for both regular ItemStacks, as well as AdvancedItemStacks
  • Freeze players in party before their game starts
  • Added a method to the Format object to apply standard minimessage formatting to text

Changelog

Attachment
0
DevCmb
  • Added spawning after the arena loads
  • Unified the IndividualPartyGame and TeamPartyGame classes into a single class because they basically have the same behavior
  • Added the pre-round countdown which shows the matchup and a speedy 3-step timer (400ms per step)
  • Move the StandardSwordDuelsgame to the shared directory instead of the individual one
  • Allow the name format method to take null as an argument to provide a generic placeholder “Player” name
  • Fix a bug where the kit system wouldn’t clear your inventory

Changelog

Attachment
0
DevCmb
  • Got a method working for loading the maps for the different minigames
  • Added a kit system where you can define a preset kit and give it out to players. I’ll likely expand this to be like player-specific/team-specific, but thats for a future time
  • Added the pregame cutscene which says that individual games are first, then followed by a countdown
  • Change the method in the individual games to be postSpawn instead of spawn (spawning will be handled by the main game itself)

Changelog

Attachment
0
DevCmb

Its that time again 👀

New Game: Party

I love those quick-paced minigame games (i’ve been told its similar to warioware), so its time to make a version of that for Tree Tumblers!
For the first half of the game, players will fight individually in 1v1s across a bunch of minigames, then, at the 5 minute mark, it’ll transition to team 4v4s (or however many people on teams)

And with that, heres the stuff I did !!!!

  • Added the base for the party controller
  • Added a command for loading and saving game maps
  • Renamed Red Rabbits to Red Raccoons
  • Fixed players being put into survival instead of adventure when the game ends
  • Fix score replication not setting the UUID parameter
  • Changed the db to only request data of whitelisted players
  • Change the timer onComplete function to be run in a suspendSync block

Changelog

Attachment
0
DevCmb
  • Make it so when voting finishes, it automatically starts the game
  • Change the method used in the start game command to an async version
  • Fix a bug where tumbling players, when having their score changed, would essentially re-create the object
  • Properly spawn voters at the center of the arena
  • Shorten voting time 30s -> 20s
  • Fix a bug where spectators would still have their votes count
  • Fix a bug where async countdowns wouldn’t execute the onExecute method attached to it
  • Slightly re-order the countdown logic to have 0 not yield, instead ending immediately

Changelog

0
DevCmb
  • Add the voting system where players vote by standing on the color corresponding to the game they want to play
  • Add a command for setting event timers
  • Add a Material validator in the ConfigController
  • Include the name and votable state of games in their RegisteredGame class
  • Add a name field to games for public-facing events
  • Display in the scoreboard if the timer is paused

Changelog

Attachment
0
DevCmb
  • Added a pre-event cutscene that will later be used to explain voting, scoring, etc
  • Refactor cutscene steps to not require a game or LaodedMap, instead giving an option to just provide a world and configuration section
  • Move the logic to prevent dismounting inside the CutsceneContext class itself instead of being handled by the GameBase
  • Add a command to manually trigger a ready check
  • Add a command to pause the active event timer
  • Add protections to the hub world (make it so players not in creative cannot damage the map)
  • Edit the scoreboard to show if the timer is paused
  • Spawn players in adventure instead of survival
  • Force load the hub world
  • Rename Orange Ocelots to Orange Orcas to steer away from MCC-equivalence
  • Deactivate the intermission scoreboard when the game starts

Changelog

Attachment
0
DevCmb
  • Add the ready check system for starting the event
  • Add the /event start command to start the event (triggering a ready check to continue)
  • Add a section on the intermisison scoreboard to track a timer (ready check -> active timer -> “Event Inactive” -> empty component)
  • Fix a bug where the server would try to update UI for players that have already disconnected
  • Change the data replication logic to be done at the end of a game, not when the server closes. This should hopefully mean that if it crashes mid-game, we can re-run without a partial state being captured in the database.
  • Change instances of creating an audience out of all online players to a Bukkit.broadcast call instead (cleaner)

Changelog

Attachment
0
DevCmb
  • Add a scoreboard for when no game is active
  • Rework the system for the TumblingPlayer data class such that an instance is created for all whitelisted players, not just online ones
  • Replace the individual getPlayerData database function with getAllPlayerData to be invoked when the server boots
  • Make tumbling players the main parameters for format operations (with an option for players still being available)
  • Add a secondary method for getting controllers, using an inline function and a reified type generic to reduce the need for arguments and casts
  • Safeguard whitelist calls from executing if the provided profile does not have a user ID associated to it
  • Set up the basic event state class for later implementation
  • Make the team score method give score to all members of a team, not just online ones
  • Fix inconsistencies in format for scoreboard score numbers (color tag was inside the formatter instead of the template)

Changelog

Attachment
1

Comments

Nibbles
Nibbles 28 days ago

big things are happening

DevCmb
  • Change the game timer system to be class based. This allows multiple timers per game, timers outside of games, etc
  • Added the /timer command which allows setting, pausing, and unpausing timers.
  • Made it display a Paused text in the timer bossbar if the timer is currently paused
  • Fixed a bug where the /world command did not have a permission requirement
  • Fix a bug with deathrun where the first team to be trapping would get trap items during the cutscene
  • Fix a bug where all players would be affected by end-of-round run-failing instead of just participants (this would include spectators)
  • Fix kill formatting not displaying kill score

Changelog

Attachment
0
DevCmb

And with that, Deathrun is complete for now 🎉

  • Added a cooldown indicator as a bossbar for traps
  • Fix a bug where the end display wouldn’t update due to the chunk being unloaded
  • Made it so runners cannot see other runners
  • Fix placements being 0-based instead of 1-based (0th place instead of 1st)
  • Edit the crumble bossbar to show a warning icon if something goes wrong

Changelog

Attachment
0
DevCmb
  • Add a proper cutscene to deathrun
  • Give players win score based on their placement instead of being a fixed constant
  • Add a score display at the end to indicate the score for finishing at that time
  • Rename parseCoordinates to validateLocation for consistency with Nibbl_z’s branch
  • Edit the cutscene context to hold an instance of the game its being ran for

Changelog

Attachment
Attachment
0
DevCmb
  • Added checkpoints to the deathrun course
  • Finally move coordinate parsing to a class instead of reusing the exact same logic over and over
  • Fix a bug where you’d only have 3 hearts when respawning
  • Fix a bug where you’d be given damage sfx and visuals when spawning
  • Add void height to the config (I only added it to the prod config, not the template goog

Changelog

Attachment
0
DevCmb
  • Add individual score to all the scoreboards
  • Move the repeated getTeamScoresComponent and getIndividualScoreComponent methods to UserInterfaceUtility instead of just reusing the logic
  • Move some MiniMessage placeholders to the MiniMessagePlaceholders class for global updating
  • Add an extension function for getting a player’s formatted name

Changelog

Attachment
0
cskartikey

Tagged your project as well cooked!

🔥 cskartikey marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

DevCmb
  • Add the happy ghast trap
  • Add a debug toolkit to deathrun to trigger death events
  • Added a custom void height to respawn players when they fall
  • Removed the magma floor from the beam run to instead focus on just killing those who fall
  • Remove placement bonuses from deathrun in accordance with Nibbl_z’s score system changes

Changelog

Attachment
0
DevCmb

I’m bouncing back and forth between like 20 things now because thats how im staying motivated with this project!!!

  • Give the crumble kit selector a custom inventory UI
  • Fix deathrun individual placement not giving a message for individual placement
  • Fix a bug on nibbles’ sniffer caretaker game which caused him 3 hours of problems
  • Fix a bug with deathrun where the timer wouldn’t go away after the game ends
  • Start on the noxesium Qibs for movement (a quib is just a hitbox that does something when the player enters it). This runs independent of ping so its consistent regardless of player latency. Didn’t get around to actually implementing it because the documentation is basically nonexistent

Changelog

Attachment
0
DevCmb
  • Track the amount of time the player spent in the course
  • Display that time in the actionbar
  • Show the current matchup in chat to be consistent with other game events

Changelog

Attachment
0
DevCmb
  • Add the game and round end logic for deathrun
  • Award points for trappers getting damages or kills
  • Announce when a player wins or loses
  • Move some repeated logic to the GameBase class for displaying individual and team scores
  • Make completing or failing the run turn you into a spectator
  • Fix the countdown timer being slightly offset by 3 pixels

Changelog

Attachment
0
DevCmb
  • Display the members of a team in the scoreboard
  • Refactor the database to properly update the cache when reassigning teams
  • Refactor the database to store UUIDs alongside names in the whitelist cache
  • Add the minimessage placeholder method to this branch

Changelog

Attachment
0
DevCmb

Taking a bit of a break from Deathrun to do some of the event stuff

  • Show a logo, event mode status, and team scores in the topbar
  • Hide playerss from the player list (will be re-added below the respective team next commit)
  • Spent way too long debugging an issue just to realize my resource pack was outdated
  • Moved 1px text padding calculation to UserInterfaceUtility
  • Add a command for listing all teams (was used to get pixel lengths)

Changelog

Attachment
0
DevCmb

Global Changes

  • Edit the score system to allow custom ScoreSources for later logging
  • Added a command to send a game message from the current game
  • Cancel all damage from fireworks because they’re often used for effects
  • Keep track of invisible players to hide them for when players join

Deathrun Changes

  • Define an end gate so that, when passing it, you become a spectator and get win points
  • Give the game an icon
  • Give the game messages for score sources

Changelog

Attachment
0
DevCmb

Global Changes

  • Reset a few more values when players connect
  • Fix the DISABLE_BLOCK_BREAKING flag disabling block placing instead of breaking

Deathrun Changes

  • Give attackers speed
  • Clear attacker inventories after the round ends
  • Add a safeguard that makes it so you can’t use the trap items unless your team is up
  • Fix a bug where you’d have to move to get a trap item
  • Set the player’s max health to the amount of lives they have
  • Force all damage sources to only do 1 heart and respawn the player

Changelog

Attachment
0
DevCmb
  • Added the trap system which gives the attackers an item based on where they are to control a certain trap
  • Edit the advance item system to disable dropping for items

Yes this is unfortunately all I did
I had a lot of problems while making this

Changelog

Attachment
0
DevCmb
  • Made the pre-round sequence where it announces whos attacking now
  • Place attackers at a different spawn so they can see over all of the other players. I’ll give them trap tools soon™️
  • Edited the topbar to display the current branch and a build number instead of the $version-$build
    idek why this took so long goog (prob stuggling with git for a while)

Changelog

Attachment
0
DevCmb

New Game Started: Deathrun

I played a bunch of those “out-play the killers” games when I was younger and I wanna bring the idea to this event

  • 1 team at a time will try to kill as many people as possible with traps as they go through a small parkour course (1-2m).
  • The team will get score based on how many people they’re able to kill, and each team will go 1 time.

Other changes

  • Added a dev bossbar containing the build identifier (hexadecimal) and current state (indev)
  • Include templates in the repository to help with collaboration
  • Added the GPL v3 license to the project
  • Disable the locator bar by default with a flag to re-enable it
  • Make it so players on the same team can’t attack eachother

Changelog

All changes from here on out are on a seperate branch for collaboration with one of my friends who is helping with another game.

Attachment
0
DevCmb
  • Add the scoreboard system for enabling and disabling scoreboards for a player
  • Added the crumble scoreboard
  • Change team placement and indiv placement to use team priority in the case of a tie
  • Centralize the glpyh pixel widths using a github gist I found

Changelog

Attachment
0
DevCmb
  • Make the cutscene for crumble
  • Make falling a certain distance immediately kill you
  • Reduce load when breaking walls
  • Add a minimessage instance
  • Unhide spectators in the cleanup stage instead of postgame

Changelog

Attachment
0
DevCmb
  • Add some more in-chat game messages
  • Fix team score being applied before the message was constructed (creating ghost points)
  • Correct the team score formula to actually use the right value
  • Convert some weird conjoined tables to audiences

Changelog

feat: ✨ Add more game messages and fix some ordering issues

Attachment
0
DevCmb
  • Display the scores of all teams and players at the end of the game
  • Have certain score sources tell the player a message
  • Reward individual and team score for winning, losing, and drawing matches
  • Edit the opening cutscene to include the game’s icon
  • Finally gave the teams proper icons

Changelog

feat: ✨ Announce team and individual placements at the end of the game

Attachment
0
DevCmb
  • Close the game loop with the game end and cleanup methods
  • Nerf bomber blast protection level II -> I
  • Internally non-null assert tumbling players (if they didn’t get created you wouldn’t be able to connect to the server)
  • Fix actionbar runnable not being run properly for crumble
  • Re-arrange events to be at the bottom of the game base and crumble files
  • Make it so spectators cannot take damage
  • Internally keep track of the score earned in the game

Changelog

Attachment
0
DevCmb
  • Spawn players who die at the center of their arena as spectators (players cannot see spectators)
  • Make asyncCountdown not fire if the countdown was cancelled
  • Fix a logic issue where any kill would give your team a win/draw (depends on the amount of players)
  • Fix win and loss states setting the wrong round’s result (currentRound is 1-based while indexes are 0-based)
  • Made it so if you have your block place cancelled before a round starts, it won’t also do the tnt spawn logic
  • Add a timer set command
  • Made the timer repeat until the time hits 0, not a set amount of time. This makes it respond to mid-countdown changes.
  • Reduce the amount of arenas from 7 to 4 because I thought that 8 matchups meant 7 were needed, but no, thats just the round count, the amount of arenas needed is teams/2 (2 teams per arena)

Changelog

Attachment
0
DevCmb
  • Add a countdown timer at the top of the screen
  • Add a bossbar handler for UI elements that appear up in that area
  • Give a sword pickaxe to all kits other than worker (which already has an iron one)
  • Add a Round Over title for when the round ends
  • Draw any rounds not over in 2 minutes
  • Make it so you can’t place blocks until the game starts

Changelog

fix: 🐛 Make it so you can’t place blocks before the round starts

feat: ✨ Add the timer system

Attachment
0
DevCmb
  • Add the sorcerer kit
  • Change the armor in most kits from a helmet to boots
  • Buff swords without enchantments to stone

Changelog

Attachment
0
DevCmb
  • Add the ninja kit. This one took the longest because I had to add a custom item for the ninja and resolve a bunch of dependency issues.
  • Made round spawning reset your fire ticks
  • Changed hud positioning for the kit indicator to be slighly more accurate (ninja is offset but im not sure theres much I can do for now)

Changelog

Attachment
0
DevCmb
  • Add the hunter kit
  • Rebalance existing kits
  • Fix pre-round damage still applying
  • Add cleanup functions to some of the kits that lacked them
  • Add an event to test kill powers on kits

Changelog

Attachment
0
DevCmb
  • Added the fisher kit
  • Fixed my database not working at all (most of the time was spent on this 😭)
  • Fix the kit display from being slighly offset because of rounding errors
  • Add a cleanup field to kits that gets called in between rounds
  • Sort the kit selector by the ID in alphabetic order

Changelog

Attachment
0
DevCmb
  • Added the bomber kit which allows the player to get a nuke tnt with a high blast radius but low damage
  • Fix FAWE dependency
  • Fix debug logging not displaying the correct source line (it’d always say it comes from the DebugUtil class)
  • Actually store the outcome of a match
  • Make it so you can’t use your ability until the round starts
  • Make tnt auto light when placed

Changelog

Attachment
0
DevCmb
  • Add the walls to the crumble game which go away after a short grace period (still doesn’t have a countdown or anything but thats for another time)
  • Added some debugging tools which allow me to trigger any game-specific event with a single command without needing to edit that command file (very barebones still)

Changelog

Attachment
Attachment
0
DevCmb

Update the cutscene system to use pigs for the player to mount instead of allowing them to fly (survivial mode players would get kicked for flying)

Also did an internal change to restructure the database file to use kotlin coroutines instead of yielding the thread whenever a database action needed to be completed

Finally, added the other 6 spawn arenas for matchups on the warfare map

Changelog

Attachment
0
DevCmb

Add the kit item to the hotbar while in game to allow using the ability (also add the skull for info purposes)

Attachment
0
DevCmb

Implemented the archer kit’s ability and kill effect. Also did a bunch of research on resource pack displays (can be found here) to display above your action bar what your current selected kit is.

Attachment
0
DevCmb

Make the kit selector work and create a system for managing these inventory UIs without sharing the same inventory with multiple people (oversights++)

Attachment
0
DevCmb

Start on the kit selector for the crumble minigame, as well as an internal system for creating itemstacks with left and right click actions to save myself a lot of hassle whenever I need to trigger some event off an item click

Attachment
0
DevCmb

Update the engine for team spawning. Also added the crumble specific stuff for map spawning.

This devlog took so long because I was trying to make a repeatable system for spawns instead of just passing it off to an abstract method. This is ridiculous because each game would have its own spawning rulesets instead of being consistent.

Attachment
0
DevCmb

Update the cutscene system to properly display the chat message, add the first step of the crumble cutscene, and add a world saver so I can actually save the maps without needing to do it manually

Attachment
0
DevCmb

Started on the cutscene system that plays before a game to explain rules and whatnot.

Attachment
0
DevCmb

Add a simple map loading system that uses kotlin coroutines to minimize latency

Attachment
0
DevCmb

Start the general game engine systems I’ll use to make the rest of the games

Attachment
0
DevCmb

Add a team assignment command and tweak the db structure a bit to make it so you can mark a player as not whitelisted while not deleting their data

Attachment
0
DevCmb

Get the project setup with a database and teams system

Attachment
0