Ceramic Defines

Ceramic apps can be fine-tuned using defines. Here is a list of supported defines and how they affect the build.


When exporting for web (with clay backend), this will enable minification of the js output. Uses uglifyjs internally.


When exporting to native targets (with clay backend), this will make ceramic use OpenAL for audio instead of Soloud. This is mostly a compatibility define as OpenAL used to be the default audio implementation for clay, but is now replaced by Soloud in more recent Ceramic versions.


Ceramic has a mecanism of sleeping for very short amount of times at each frame if it is running in background. This is to prevent the app from eating all CPU resources and running at thousands of frames per second in that case. You can use this define to disable that behaviour.


Enable clipboard when using a Ceramic app from the browser. This may trigger a permission request, that is why it is disabled by default.


A define that will add more logs to the console to help debug clipboard.


A defines that will make Ceramic print detailed logs about what is rendered, every 10 seconds. The logs allow to know the number of draw calls and what is triggering additional draw calls, which can help optimize rendering of the app.


When exporting to native targets (with clay backend), Ceramic can use SQLite instead of regular file system access to save data if this is defined. Could be useful to take advantage of additional concistency mecanisms provided by SQLite (ACID compliant etc...)


By default, Ceramic's default shaders are optimized to enable multi-texture batching. This is a very useful optimization that you should keep enabled in most situations, but you can disable with this define, which could still be useful if you want to debug rendering.


By default, Ceramic will skip Haxe compilation if no file have changed in project directory. However, you might want to disable this behaviour temporarily if you work on files that are not located within that project directory. This define will do that.


When defined, additional logs will be printed every 5 second to show how many entities are currently allocated. Can be useful to debug memory leaks related to Ceramic entities.


When defined, additional logs will be printed to know when an autorun is invalidated and run again. Can be useful to track autorun invalidations in a Ceramic app that uses them.


When exporting for unity, the default behaviour of the app is to stop executing update code when a critical error happens. This can be disabled with this define: even when failing, the code will be executed again at the next update loop iteration.


Disable clipping entirely.


Disable mesh rendering.


Allow to debug unsafe access. Only useful if you want to debug unsafeGet() or unsafeSet() methods provided by ceramic.Extensions.

Continue reading ➔ FAQ (Extras)