{"id":15722635,"url":"https://github.com/critique-gaming/crit","last_synced_at":"2025-05-07T13:45:48.341Z","repository":{"id":132307695,"uuid":"166547786","full_name":"critique-gaming/crit","owner":"critique-gaming","description":"Battle-tested collection of un-opinionated modules for Defold games","archived":false,"fork":false,"pushed_at":"2022-05-04T14:13:18.000Z","size":279,"stargazers_count":52,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T10:42:27.393Z","etag":null,"topics":["defold","defold-library"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/critique-gaming.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-19T13:08:02.000Z","updated_at":"2025-03-25T10:53:17.000Z","dependencies_parsed_at":"2023-06-15T22:00:23.811Z","dependency_job_id":null,"html_url":"https://github.com/critique-gaming/crit","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/critique-gaming%2Fcrit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/critique-gaming%2Fcrit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/critique-gaming%2Fcrit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/critique-gaming%2Fcrit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/critique-gaming","download_url":"https://codeload.github.com/critique-gaming/crit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252889829,"owners_count":21820259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["defold","defold-library"],"created_at":"2024-10-03T22:08:43.226Z","updated_at":"2025-05-07T13:45:48.323Z","avatar_url":"https://github.com/critique-gaming.png","language":"Lua","funding_links":[],"categories":["Libraries"],"sub_categories":["Programming Language"],"readme":"# Crit - Building blocks for Defold games\n\nA battle-tested collection of un-opinionated modules we use at \n[Critique Gaming](https://critique-gaming.com)\nto make games with [Defold](https://defold.com).\n\nThe modules are self-contained and depend on each other as little as possible,\neach designed to solve one specific problem. Use as much or as little as you need.\n\n**Links:**\n\n* [GitHub repo](https://github.com/critique-gaming/crit)\n* [Documentation](https://critique-gaming.github.io/crit)\n* [Starter project](https://github.com/critique-gaming/crit-boilerplate)\n\n## Modules\n\n* UI\n  * [Buttons](https://critique-gaming.github.io/crit/modules/crit.button.html)\n  * [Tooltips](https://critique-gaming.github.io/crit/modules/crit.tooltip.html)\n  * [Responsive layout](https://critique-gaming.github.io/crit/modules/crit.layout.html)\n  * [Drag and drop](https://critique-gaming.github.io/crit/modules/crit.drag_and_drop.html)\n  * [Scroll views](https://critique-gaming.github.io/crit/modules/crit.scroll.html)\n  * [Scroll bars](https://critique-gaming.github.io/crit/modules/crit.scrollbar.html)\n  * [Sprite picking](https://critique-gaming.github.io/crit/modules/crit.pick.html)\n  * [Panning inertia](https://critique-gaming.github.io/crit/modules/crit.inertia.html)\n* Architecture\n  * [The message dispatcher](./docs/dispatcher.md)\n  * [Coroutine progression system](./docs/progression.md)\n  * [Observables](https://critique-gaming.github.io/crit/modules/crit.observable.html)\n* Input\n  * [Keyboard/gamepad focus](https://critique-gaming.github.io/crit/modules/crit.focus_giver.html)\n  * [Keyboard/gamepad focus state](https://critique-gaming.github.io/crit/modules/crit.input_state.html)\n  * [Analog to digital thumb stick conversion](./docs/analog_to_digital.md)\n  * [Mouse cursor hiding manager](./docs/cursor.md)\n  * [Screen corner hotspots](https://critique-gaming.github.io/crit/modules/crit.hotspots.html)\n  * [Cheatcodes](https://critique-gaming.github.io/crit/modules/crit.cheatcodes.html)\n* [Internationalisation](./docs/intl.md)\n* Utilities\n  * [Color manipulation utilities](https://critique-gaming.github.io/crit/modules/crit.colors.html)\n  * [Table manipulation utilities](./docs/table_util.md)\n  * [Function utilities](https://critique-gaming.github.io/crit/modules/crit.func_util.html)\n  * [Low-pass and high-pass filters](https://critique-gaming.github.io/crit/modules/crit.filters.html)\n  * [The environment file](./docs/env.md)\n  * [System configuration constants](https://critique-gaming.github.io/crit/modules/crit.sys_config.html)\n  * [Switch between script contexts](https://critique-gaming.github.io/crit/modules/crit.context.html)\n* Editor scripts\n  * [Layers from fonts](https://critique-gaming.github.io/crit/scripts/layers_from_fonts.editor_script.html)\n\n## Examples\n\nYou can find usage examples in this repo. Alternatively, if you need a\nready-to-go starter project based on Crit and [Monarch](https://github.com/britzl/monarch),\ncheck out [crit-boilerplate](https://github.com/critique-gaming/crit-boilerplate).\n\n## Default input map\n\nThese modules make little assumptions about your environment, but come with a\nfew sensible defaults. You can configure each module to use different\naction IDs for its input, but the default input map is the following:\n\n|Input|Action ID|\n|-|-|\n|`MOUSE_BUTTON_1`|`touch`|\n|`MOUSE_WHEEL_UP`|`wheel_up`|\n|`MOUSE_WHEEL_DOWN`|`wheel_down`|\n|`KEY_UP`|`key_up`|\n|`KEY_DOWN`|`key_down`|\n|`KEY_LEFT`|`key_left`|\n|`KEY_RIGHT`|`key_right`|\n|`KEY_ENTER`|`key_enter`|\n|`KEY_SPACE`|`key_space`|\n|`GAMEPAD_LPAD_LEFT`|`gamepad_lpad_left`|\n|`GAMEPAD_LPAD_RIGHT`|`gamepad_lpad_right`|\n|`GAMEPAD_LPAD_UP`|`gamepad_lpad_up`|\n|`GAMEPAD_LPAD_DOWN`|`gamepad_lpad_down`|\n|`GAMEPAD_RPAD_LEFT`|`gamepad_rpad_left`|\n|`GAMEPAD_RPAD_RIGHT`|`gamepad_rpad_right`|\n|`GAMEPAD_RPAD_UP`|`gamepad_rpad_up`|\n|`GAMEPAD_RPAD_DOWN`|`gamepad_rpad_down`|\n|`GAMEPAD_START`|`gamepad_start`|\n|`GAMEPAD_BACK`|`gamepad_back`|\n|`GAMEPAD_GUIDE`|`gamepad_guide`|\n|`GAMEPAD_RSHOULDER`|`gamepad_rshoulder`|\n|`GAMEPAD_LSHOULDER`|`gamepad_lshoulder`|\n|`GAMEPAD_LTRIGGER`|`gamepad_ltrigger`|\n|`GAMEPAD_RTRIGGER`|`gamepad_rtrigger`|\n|`GAMEPAD_LSTICK_LEFT`|`gamepad_lstick_left`|\n|`GAMEPAD_LSTICK_RIGHT`|`gamepad_lstick_right`|\n|`GAMEPAD_LSTICK_UP`|`gamepad_lstick_up`|\n|`GAMEPAD_LSTICK_DOWN`|`gamepad_lstick_down`|\n|`GAMEPAD_RSTICK_LEFT`|`gamepad_rstick_left`|\n|`GAMEPAD_RSTICK_RIGHT`|`gamepad_rstick_right`|\n|`GAMEPAD_RSTICK_UP`|`gamepad_rstick_up`|\n|`GAMEPAD_RSTICK_DOWN`|`gamepad_rstick_down`|\n|`GAMEPAD_LSTICK_CLICK`|`gamepad_lstick_click`|\n|`GAMEPAD_RSTICK_CLICK`|`gamepad_rstick_click`|\n\n**[Synthetic digital thumbstick actions](./docs/analog_to_digital.md):**\n\n|Input|Digital action ID|\n|-|-|\n|`GAMEPAD_LSTICK_LEFT`|`gamepad_lstick_digital_left`|\n|`GAMEPAD_LSTICK_RIGHT`|`gamepad_lstick_digital_right`|\n|`GAMEPAD_LSTICK_UP`|`gamepad_lstick_digital_up`|\n|`GAMEPAD_LSTICK_DOWN`|`gamepad_lstick_digital_down`|\n|`GAMEPAD_RSTICK_LEFT`|`gamepad_rstick_digital_left`|\n|`GAMEPAD_RSTICK_RIGHT`|`gamepad_rstick_digital_right`|\n|`GAMEPAD_RSTICK_UP`|`gamepad_rstick_digital_up`|\n|`GAMEPAD_RSTICK_DOWN`|`gamepad_rstick_digital_down`|\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcritique-gaming%2Fcrit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcritique-gaming%2Fcrit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcritique-gaming%2Fcrit/lists"}