{"id":14961384,"url":"https://github.com/godotengine/godot-proposals","last_synced_at":"2025-05-16T00:07:38.517Z","repository":{"id":37454798,"uuid":"180609575","full_name":"godotengine/godot-proposals","owner":"godotengine","description":"Godot Improvement Proposals (GIPs)","archived":false,"fork":false,"pushed_at":"2024-07-03T15:44:00.000Z","size":46,"stargazers_count":1216,"open_issues_count":5260,"forks_count":99,"subscribers_count":63,"default_branch":"master","last_synced_at":"2025-04-08T10:43:46.129Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/godotengine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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},"funding":{"patreon":"godotengine","custom":"https://godotengine.org/donate"}},"created_at":"2019-04-10T15:22:05.000Z","updated_at":"2025-04-05T19:41:59.000Z","dependencies_parsed_at":"2022-07-14T06:20:29.542Z","dependency_job_id":"5cad61a1-676d-4c7c-818c-68f35bef7b84","html_url":"https://github.com/godotengine/godot-proposals","commit_stats":{"total_commits":31,"total_committers":14,"mean_commits":"2.2142857142857144","dds":0.5806451612903225,"last_synced_commit":"357e20aedb967a29c299af6c795eec32dc028d81"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-proposals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-proposals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-proposals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-proposals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/godotengine","download_url":"https://codeload.github.com/godotengine/godot-proposals/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442854,"owners_count":22071878,"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":[],"created_at":"2024-09-24T13:24:58.058Z","updated_at":"2025-05-16T00:07:33.469Z","avatar_url":"https://github.com/godotengine.png","language":null,"funding_links":["https://patreon.com/godotengine","https://godotengine.org/donate"],"categories":["Game Development","Others"],"sub_categories":["Godot: Official Resources"],"readme":"# Godot Improvement Proposals\n\nThis repository serves as the central hub for proposing, discussing, and\nreviewing new features and enhancements in Godot Engine. While there exists\nsome leeway, most changes made to the engine must go through the proposal\nprocess first. The goal is to determine whether the suggestion makes sense\nfor the majority of Godot users, and to figure out the best approach to\nimplement it.\n\nAs such, everyone is welcome to participate in ongoing discussions, or start\na new one.\n\n\u003e **Tip:** Use the [Godot proposals viewer](https://godot-proposals-viewer.github.io/)\n\u003e to view all open proposals on a single page. This allows for easy searching\n\u003e in proposal titles using \u003ckbd\u003eCtrl + F\u003c/kbd\u003e or \u003ckbd\u003eCmd + F\u003c/kbd\u003e.\n\nBug reports are not a subject of the proposal process. If you experience\nan issue while using Godot that cannot be attributed to a missing feature,\nplease open a report in the [main Godot repository](https://github.com/godotengine/godot).\nFeel free to open a pull-request based on any bug report as well!\n\n## Suggesting improvements\n\nYou have two options to make a suggestion for the future of the engine. You\ncan either open a proposal [**Issue**](https://github.com/godotengine/godot-proposals/issues/new/choose),\nor you can create an open [**Discussion**](https://github.com/godotengine/godot-proposals/discussions/new).\n\nProposal *issues* are required to explain in technical detail how the suggested change\nshould be implemented. It is also preferred that the submitter of a proposal is\nready to implement it if it was approved. If you have a more general idea for\na feature but are not well versed in Godot's architecture or do not possess\nthe necessary knowledge to implement it in the engine, feel free to open a\n[*discussion*](https://github.com/godotengine/godot-proposals/discussions/new)\ninstead of an [*issue*](https://github.com/godotengine/godot-proposals/issues/new/choose).\n\nA valid feature proposal will be held open to allow fellow Godot users and\ncontributors to weigh in on the suggestion and its implementation. While all\nopinions are considered, a core developer must approve the feature and its\nimplementation for a proposal to be considered ready to implement.\n\n**Proposals should be made by opening an issue or a discussion, not a pull request.**\nDon't fork this repository to open a proposal.\n\n## Rules for submitting a proposal\n\n\u003e **Note:** The following points describe requirements for a proposal issue. A\n\u003e [discussion](https://github.com/godotengine/godot-proposals/discussions/new),\n\u003e on the other hand, can be started in any form.\n\n1. Only proposals that properly fill out the template will be considered. If\nthe template is not filled out or is filled out improperly, it will be closed.\n\n2. Please open one proposal per feature requested. Do not cram multiple feature\nrequests in a single proposal, as this makes it harder to discuss features\nindividually.\n\n3. All proposals must be linked to a substantive use-case. In justifying your\nproposal, it is not enough to say it would be \"nice\" or \"helpful\". Use the\ntemplate to show how Godot is not currently meeting your needs and then\nexplain how your proposal will meet a particular need.\n\n   * If you feel that you cannot provide highly detailed instructions with the\n     proposal, consider creating a more simple, open-ended issue in the\n     unofficial, community-maintained\n     [Godot Ideas](https://github.com/godot-extended-libraries/godot-ideas)\n     repository.\n\n4. Other users must express interest in your proposal for it to be considered.\nGodot is community-driven: if no other users are interested in your proposal,\nit may be closed. It is up to you to draw interest in your proposed feature.\nStart by reaching out on the community channels (Reddit, Discord,\n[Godot Contributors Chat](https://chat.godotengine.org/)), etc.\nsee the [Community Channels](http://docs.godotengine.org/en/stable/community/channels.html) doc),\nthen create your proposal once you have gained some interest.\n\n5. You can make a PR implementing the feature in the main repository before\nmaking a proposal. However, if it is a large change, a core developer may\nrequire that you make a proposal before your PR can be merged. It is always\nbetter to make and discuss a proposal before spending your time implementing\na new feature.\n\n6. If you or another user is capable of making a PR, include that fact in\nthe issue or in a subsequent comment so that a core contributor can\nfast-track the approval process.\n\n## What to do if your proposal is closed\n\nIf your proposal was closed because the template was not filled out, then\nfill out the [template](.github/ISSUE_TEMPLATE/feature_proposal.yml)\nand ask the person who closed the issue to re-open it.\n\nIf your proposal was closed as a duplicate and had a different approach to solving\nthe problem described in the linked proposal, please comment in the linked proposal\nwith your own idea. You don't need to copy-paste your whole proposal's text. Instead,\nrephrase the main ideas and add mockups if needed.\n\nIf your proposal was closed because of lack of interest, then try to build up\nsome interest on the [community channels](http://docs.godotengine.org/en/stable/community/channels.html)\nand then ask the person who closed the issue to re-open it.\n\nIf your proposal was closed because a core contributor determined that it was\nnot worth pursuing and you feel that it was wrongly closed, then feel free\nto join the [Godot Contributors Chat](https://chat.godotengine.org/)\nand have a more in-depth discussion with other core developers about the feature.\n\n## How core developers evaluate proposals\n\nThe following is a list of considerations that core developers use when deciding\nto accept, close, or leave a proposal open. It is intended to be useful for core\ndevelopers when considering proposals and for proposal-makers in drafting their\nproposals.\n\n#### 1. Does the proposal comply with the rules?\n\nRead the proposal and check to see that it complies with the above-stated rules.\nIf it does not, close the proposal.\n\n#### 2. How much support is the proposal receiving?\n\nEvaluate the amount of support the proposal is receiving. This is an ongoing\nanalysis. If a proposal receives little support at first, it may receive\nadditional support later on.\n\n#### 3. Can this proposal be implemented with an addon?\n\nEvaluate whether it is possible for the proposal to be implemented in an addon.\nIf it is possible for the proposal to be in an addon, it is less likely to be\naccepted.\n\n#### 4. Does this proposal benefit most users?\n\nDetermine whether this proposal benefits all users, or just certain users.\nFor example, a feature that can only be used for 3D FPS games is less\nlikely to be accepted than a feature that benefits all 3D games.\n\n#### 5. Can this proposal be implemented in a robust, general-purpose way?\n\nDetermine whether the feature can be implemented in a robust way that benefits\nall use-cases. For example, many games use an inventory system, but every game\nimplements inventory differently. Accordingly, a proposal for an inventory\nsystem will likely not be accepted because it would be impossible for us to\nimplement an inventory system that works for most users that need an inventory\nin their game.\n\n#### 6. Does this proposal help users overcome a limitation?\n\nProposals that overcome a specific limitation are more likely to be accepted\nthan proposals that are just helpful. In short, need-to-have features will be\nprioritized over nice-to-have features. Further, the core developers prioritize\nchanges that enable users to implement features themselves over implementing\nthose same features in core.\n\n#### 7. How complex would the proposed feature be?\n\nA highly complex new feature involving substantial changes to core is less likely\nto be accepted than a feature that can be contained within a single node, or a\ngroup of nodes.\n\n#### 8. Can the feature be worked around in script with a few lines?\n\nIf the feature is only intended to save users a few lines of code it is unlikely\nto be accepted.\n\nThe above considerations are all balanced, no one is more important than another.\nCore developers have discretion to weigh the factors as they see fit.\n\nIn addition to the above guideline, consider [this article](https://docs.godotengine.org/en/latest/community/contributing/best_practices_for_engine_contributors.html)\nwhich outlines what core developers consider when evaluating PRs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Fgodot-proposals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgodotengine%2Fgodot-proposals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Fgodot-proposals/lists"}