Introducing the Daneel framework for CraftStudio

Since the Global Game Jam in January where I worked with others on HeartZ, I spent quite some times to built Daneel, a project that’s only the foundation for many things I have in mind for CraftStudio

Daneel is a framework for CraftStudio that aims to sweeten and shorten the code you write, to extend and render more flexible to use the API, as well as to bring news functionalities.

Read the documentation

Here is a little overview of what it allows you to do :

Call getters and setters as if they were variable : -- same as self.gameObject:GetName() = "new name" -- same as self.gameObject:SetName("new name")

Access any component (including ScriptedBehaviors with a few configuration) on the gameObject in a similar way, like you can already do with the transform :


-- the "getters/setters as variable" thing also works on components : = "folder/map name" -- you can also see here that you can use the map name instead of the map asset

-- writing this same line "the old way" takes twice as much characters :
self.gameObject:GetComponent("MapRenderer"):SetMap(CraftStudio.FindAsset("folder/map name", "Map"))

Set variable or call setters in mass on gameObjects and components.

        parent = "my parent name",

        modelRenderer = {
            model = "model name"

        myScript = {
            health = 100

Also :

  • Use the gameObject or asset name instead of the actual object with some functions
  • Simpler raycasting with `ray:InstersectsGameObject()` or `ray:Cast()`
  • Triggers (they perform a proximity check against some gameObjects and interact with them when they are in range)
  • Interact with gameObjects hovered by the mouse
  • Events
  • Hotkeys (fire events at the push of any button)

You can access the public project named “Daneel” (search for it in the Community Projects), with a small showcase scene and a few example scripts.

You may also discuss Daneel in its dedicated thread on the CraftStudio community forums.

Comments are closed.