Chickytools [Deprecated at the momment],A tool based inventory system for chickynoid!

Chicky Tools

DO NOT USE THIS PROJECT ATM FOR ANY FUTURE WORK, IT IS RIGHT NOW USELLESS AND SHOULD NOT BE USED, WAIT FOR THE NEXT UPDATE.

Chickytools is a tool based custom inventory system made for Chickynoid that works with OOP to make it easier for developers to work with!

Features

  • Semifully OOP based inventory system, with support for making classes using FastSignals/events.
  • Works with chickynoid internally and utilizes it’s features (commands, Server/Client mods, Enums for state replicaton or networking)
  • Does not relies on the deffault roblox tool instances at all so all of their security vulnerabilities are not here!.

Things to note
This resource is not ready for production and it may have bugs but be aware that this resource is currently used for my games so if theres bugs I will make sure to patch them.

It doesnt works 100% with just mods and requires to insert a few lines into some chickynoid scripts so the command processing functions work correctly on client and server, The reason for this is because chickynoid has no open window to process custom data so I had to manually add this.

Theres still a few flaws with it, Main one right now is that some commands generated by the client currently still get passed to the server by deffault when they should not and it generates garbage data that wastes bandwith.

Upcomming features

  • Example Classes/CTools programmed to do something, for showing how they work and their intended behavior.
  • Documentation
  • Even more optimized code!
  • Adding compression to the CTool commands to waste less bandwidth using the bitbuffer module.
Do you use chickytools
  • Yes
  • I am considering it
  • I’ll wait till there’s more features or its fully released

0 voters

With all of the things above said, make sure to give this resource a try and report to me any bugs please anyways down here is the download of the placefile and documentation.

Documentation(W.I.P.)
Chickytools documentation [W.I.P.] - Bulletin Board - DevForum | Roblox

Download
Chickytools V1.2.2.rbxl (3.1 MB)

Previous versions
Chickytools V1.2.1.rbxl (3.1 MB)
Chickytools V1.2.0.rbxl (3.1 MB)
Chickytools V1.1.2.rbxl (3.1 MB)
Chickytools V1.1.1.rbxl (3.1 MB)
Chickytools V1.1.0.rbxl (3.1 MB)
ChickyTools V1.0.3.rbxl (3.1 MB)

18 Likes

This is awesome! I tried out chickynoid for a little bit and while I got decently far (having to mod it alot), there being no real tool system built for it was one of the main reasons I put it away.

I’ll probably look into this once there’s some documentation, but it would pair nicely with my current rollback combat system.

1 Like

Dont worry there will be documentation, I just have not worked on it since the mod is designed to be very maleable, seriously even the GUI and input system is a separate component, so you could even make your own system and gui to adapt it to however you want your game to look like.

Or you can edit the behavior of how CTools work such as not replicating, deciding what should be replicated, adding extra code and behaviors via classes etc. im making it really customisable so any dev can really adapt it to their game.

Sorry for the inconvenience, it seems that I just realized I accidentally shipped this out with a major bug that was not allowing the system to work properly on server side.

It was a very simple bug but still very major, anyways I have now patched it.

V1.0.1
ChickyTools.rbxl (3.1 MB)

1 Like

Hi,
I downloaded the latest version, enabled the tool, but there is nothing tool wise …

image

1 Like

Hi the reason nothing happens is because it is designed to not do anything, However it is supposed to print statements on both client and server proving that the ChickyTool was equipped I am looking into this as this wasn’t happening before.

umm, so there is no tool?
that is shown? on the screen 30 or more

1 Like

You are missunderstanding, There is a tool, the concept of the inventory is coded in and tools do exist as objects, the problem is that the tool you are equipping is programmed to do nothing, its the same thing as if you created a roblox tools without hooking any functions to their events, they literally do nothing.

Also I have resolved the issue on V1.0.2 and they seem to be working again, re download the resource and refresh this page.

Patch V1.0.3

  • Patched data sanitizing not working on CTool Server command processing.
  • Patched an exploit related to equipping tools not on your inventory/owned by others.
  • Fixed the destroy function not removing Objects correctly (Does not replicate’s to client yet).
  • Fixed bugs related to client and server tools ID getting mixed and tools not working correctly.

Sorry for the inconveniences woops.

Patch V1.1.1

  • Fixed mods possibly not loading in order and crashing the game due to priorities not being set using mod:GetPriority() properly
  • Also on the previous patch before this one :Destroy now replicates only to the CTool.Owner’s client

I recommend you to please install this patch as it is important for those who probably have no idea why chickytools are not working or erroring.

Also if you are not using the placefile and instead dragging its contents into a different placefile with chickynoid on it, keep in mind to also drag Server and client from chickynoid as they have been modified to support server and client command processing.

Theres currently an update in the works for chickytools to rewrite somewhat the way OOP is done and also make adding classes friendly via a single function similar to :Connect() and also optimize the code mess there is right now, Dont worry this wont change any of the functions names or functionality so I think if you are already using this you wont have to rework much of your code.

Thank you for your patience.

Hello, I want to use chickynoid, but after seeing your thread I kinda confused. Chickynoid lacks of some essential things like tool equipment, but do I need modificate chickynoid a lot to implement it? I mean, can I add those essential things without editing source code? In terms of ability to implement, I can, but I only worried about interfering with chickynoid behavior. Thanks!

1 Like

Nah, You will not need to fork chickynoid’s code as far as i know since its pretty maleable thanks to its mod system, however a pretty stupid thing I found was how there was no gap for adding custom commands (data that gets sent every frame to the server and other clients and server to client) so i just added 4 lines of code so it would process my custom commands using a mod.

Maybe there is a way to add custom commands by deffault but im just an idiot lol.

1 Like

What is the benefit of adding custom commands?
Can you give me some examples please?

1 Like

I had a pretty good reason as to why but I dont think I am the right person to explain this, So I will just say that commands are used for things like updating the client with the newest WorldState from the server and sending inputs from the client to the server so the server can move your character and also control other in game mechanics that can be predicted or lag compensated.

1 Like

Hey guys sorry for not delivering an update in like 2 weeks I have been busy and also found some problems within my system which I wanna talk about.

First of all is the way it supports classes, When I wanted to code classes I noted a big issue. There was no way to add on to a function from another class’s script, what do i mean by that?

Lets say you have a :Destroy() function for an object that deletes any trace associated with the object such as all of its tables, and instances.

Now lets say you make a class for said object and make this object have more instances associated the problem is that when you call the inherited :Destroy() function it will not care about the additional instances added by the class and you cannot add or call both the class and parent class destroy functions.

The way that was solved here is using this gross solution that honestly looks super gross but its the only thing that works and calls all the :Destroy() functions in order, You basically make a fake function which just calls all the other real functions

function CTool:__SetOwner(Player)
	if CTool.InventoryRecords[Player.UserId] then
		self.Owner = Player
		CTool.InventoryRecords[Player.UserId].Backpack[self.ID] = self
		-- Run exclusive code to the Local Player
		if Player == LocalPlayer then
			CTool.OnCToolOwnershipToLocalPlayer:Fire(self)
		end
	else
		error("Inventory not found")
	end
end
-- Sets a CTool's Owner to the given Player
function CTool:SetOwner(Player)
	local ClassMetatable = getmetatable(self)
	while ClassMetatable do
		if ClassMetatable and rawget(ClassMetatable, '__SetOwner') then
			ClassMetatable.__SetOwner(self, Player)
		end
		ClassMetatable = getmetatable(ClassMetatable)
	end
end

Also I know events exist but i think creating an extremely long chain of events to fire each other is stupid and gross too.

The problem with the above solution is that it just takes too long to code since you have to make the fake function the real one and overall it uses more space and it looks gross and beginners and people trying to use the resource wont even understand wth is going on, So what I am gonna do is wrap all of that crap in one function that automatically calls all the other functions and get’s setup via chickynoid’s mod Setup system or something

Another thing I wanna update on the future is the deffault Inventory handler which is the thing that allows us to press inputs to equip CTools and display them as a gui, the problem is that it is very incomplete and does not has support to drag the icons into the backpack gui and neither does it has a way to organize your hotbar to the keybinds you want them to be at.

Anyways that was all hope you are all patient guyz!

I have no current interest in chickynoid, but I have been following your modding both on the main chickynoid thread and also here. Just wanted to say thanks for making these great contributions! Bringing these types of features to chickynoid will definitely make adopting it way easier for a lot of people!

1 Like

no way it’s you, you are the person who wrote an entire racing game with server authoritative movement wow.

Anyways yeah I mostly made this because I see potential in chickynoid since its “easy” to use and I say “easy” because its written in a way were everything is planned for modification by anyone so they can adapt it to it’s needs, And well some people just dont use chickynoid because it lacks simple features like tools so I made this so people could start developing on it easier.

I am so glad chickynoid exists because I tried to create it myself and let’s just say I got stuck on making the physics engine collision detection and response due to the lack of actually well explained resources.

1 Like

Yeah, Chickynoid is extremely impressive and beyond even what I’ve accomplished. Getting the terrain and (I believe even mesh parts?) to collide was simply incredible.

1 Like

I agree and its gonna be fully exploit proof once UDP packets roll out, roblox already said its gonna be adressed.

Currently due to the way remotes are sent chickynoid has like some tolerance or thingy so it is possible to literally float on the server with 10k ping and go slightly fast in height and speed.

Also wait what do you mean by beyond you, Dont you have like mesh collisions for your racing maps? or do you insert colliders manually.