[{"data":1,"prerenderedAt":604},["ShallowReactive",2],{"content-/news/release-4-3-rc-4":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"index":11,"image":12,"alt":13,"ogImage":12,"tags":14,"type":16,"author":17,"authorImage":18,"published":19,"body":20,"_type":598,"_id":599,"_source":600,"_file":601,"_stem":602,"_extension":603},"/news/release-4-3-rc-4","news",false,"","Release Notes for Redot 4.3 Release Candidate 4","We're excited to announce the release of our latest version, featuring a host of enhancements and fixes","2024-11-18T10:00:00.000Z",1,"/img/news/release-4-3-rc4.avif","Screenshot of new feature",[15],"Releases","post","Redot","/img/authors/redot.avif",true,{"type":21,"children":22,"toc":591},"root",[23,39,46,456,462,567,573,586],{"type":24,"tag":25,"props":26,"children":27},"element","p",{},[28,31,37],{"type":29,"value":30},"text","The Redot team is pleased to announce the release of ",{"type":24,"tag":32,"props":33,"children":34},"strong",{},[35],{"type":29,"value":36},"Redot 4.3 Release Candidate 4",{"type":29,"value":38},". This update introduces a variety of enhancements and bug fixes aimed at improving the functionality and user experience of the Redot engine.",{"type":24,"tag":40,"props":41,"children":43},"h3",{"id":42},"enhancements-features",[44],{"type":29,"value":45},"Enhancements & Features",{"type":24,"tag":47,"props":48,"children":49},"ul",{},[50,83],{"type":24,"tag":51,"props":52,"children":53},"li",{},[54,56,63,65,74,76],{"type":29,"value":55},"Optimize ",{"type":24,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":29,"value":62},"String::replace",{"type":29,"value":64}," methods by ",{"type":24,"tag":66,"props":67,"children":71},"a",{"href":68,"rel":69},"https://github.com/Spartan322",[70],"nofollow",[72],{"type":29,"value":73},"@Spartan322",{"type":29,"value":75}," in ",{"type":24,"tag":66,"props":77,"children":80},{"href":78,"rel":79},"https://github.com/Redot-Engine/redot-engine/pull/866",[70],[81],{"type":29,"value":82},"#866",{"type":24,"tag":51,"props":84,"children":85},{},[86,88,101,103,110,112],{"type":29,"value":87},"Merge commit ",{"type":24,"tag":66,"props":89,"children":92},{"href":90,"rel":91},"https://github.com/godotengine/godot/commit/711c725",[70],[93,95],{"type":29,"value":94},"godotengine/godot@",{"type":24,"tag":57,"props":96,"children":98},{"className":97},[],[99],{"type":29,"value":100},"711c725",{"type":29,"value":102}," (",{"type":24,"tag":66,"props":104,"children":107},{"href":105,"rel":106},"https://github.com/Redot-Engine/redot-engine/pull/863",[70],[108],{"type":29,"value":109},"#863",{"type":29,"value":111},"):\n",{"type":24,"tag":47,"props":113,"children":114},{},[115,133,150,167,184,201,218,235,252,269,286,303,320,337,354,371,388,405,422,439],{"type":24,"tag":51,"props":116,"children":117},{},[118,120,131],{"type":29,"value":119},"Revert workaround for ResourceLoader resource loading crashes due to buggy TLS (",{"type":24,"tag":66,"props":121,"children":124},{"href":122,"rel":123},"https://github.com/Redot-Engine/redot-engine/commit/1c4849b162151df3f36b0e24d6f9cf70ccbce8ea",[70],[125],{"type":24,"tag":57,"props":126,"children":128},{"className":127},[],[129],{"type":29,"value":130},"1c4849b",{"type":29,"value":132},")",{"type":24,"tag":51,"props":134,"children":135},{},[136,138,149],{"type":29,"value":137},"Fix use condition_variable after free (",{"type":24,"tag":66,"props":139,"children":142},{"href":140,"rel":141},"https://github.com/Redot-Engine/redot-engine/commit/257dd2f9e51b4f770f230d0766f74880a7c8d383",[70],[143],{"type":24,"tag":57,"props":144,"children":146},{"className":145},[],[147],{"type":29,"value":148},"257dd2f",{"type":29,"value":132},{"type":24,"tag":51,"props":151,"children":152},{},[153,155,166],{"type":29,"value":154},"Properly push & pop TLS state on recursive load tasks for ResourceLoader (",{"type":24,"tag":66,"props":156,"children":159},{"href":157,"rel":158},"https://github.com/Redot-Engine/redot-engine/commit/ece392538ec4ec2742546babb4f13d77c28390b8",[70],[160],{"type":24,"tag":57,"props":161,"children":163},{"className":162},[],[164],{"type":29,"value":165},"ece3925",{"type":29,"value":132},{"type":24,"tag":51,"props":168,"children":169},{},[170,172,183],{"type":29,"value":171},"Enhance ResourceLoader deadlock prevention (",{"type":24,"tag":66,"props":173,"children":176},{"href":174,"rel":175},"https://github.com/Redot-Engine/redot-engine/commit/ea28ac510de3cef098a7624986072ff44546e87f",[70],[177],{"type":24,"tag":57,"props":178,"children":180},{"className":179},[],[181],{"type":29,"value":182},"ea28ac5",{"type":29,"value":132},{"type":24,"tag":51,"props":185,"children":186},{},[187,189,200],{"type":29,"value":188},"Optimize ResourceLoader remap check by deferring until a non-mutex zone (",{"type":24,"tag":66,"props":190,"children":193},{"href":191,"rel":192},"https://github.com/Redot-Engine/redot-engine/commit/8a78f5c323d5d6e6471c2a0182732744e47ea637",[70],[194],{"type":24,"tag":57,"props":195,"children":197},{"className":196},[],[198],{"type":29,"value":199},"8a78f5c",{"type":29,"value":132},{"type":24,"tag":51,"props":202,"children":203},{},[204,206,217],{"type":29,"value":205},"Fix ResourceLoader edge cases in the management of user tokens (",{"type":24,"tag":66,"props":207,"children":210},{"href":208,"rel":209},"https://github.com/Redot-Engine/redot-engine/commit/b3e46a913d10b029b8ebeb58017e1ce260c42988",[70],[211],{"type":24,"tag":57,"props":212,"children":214},{"className":213},[],[215],{"type":29,"value":216},"b3e46a9",{"type":29,"value":132},{"type":24,"tag":51,"props":219,"children":220},{},[221,223,234],{"type":29,"value":222},"Overhaul unlock allowance zones for WorkerThreadPool (and friends) (",{"type":24,"tag":66,"props":224,"children":227},{"href":225,"rel":226},"https://github.com/Redot-Engine/redot-engine/commit/c75c50ecac2967217966762d492c4d9d268e51a3",[70],[228],{"type":24,"tag":57,"props":229,"children":231},{"className":230},[],[232],{"type":29,"value":233},"c75c50e",{"type":29,"value":132},{"type":24,"tag":51,"props":236,"children":237},{},[238,240,251],{"type":29,"value":239},"Use better error handling for possible engine bugs with ResourceLoader (",{"type":24,"tag":66,"props":241,"children":244},{"href":242,"rel":243},"https://github.com/Redot-Engine/redot-engine/commit/fe2e862e2eba20f4f2158c40d0ef9c2fdb508b14",[70],[245],{"type":24,"tag":57,"props":246,"children":248},{"className":247},[],[249],{"type":29,"value":250},"fe2e862",{"type":29,"value":132},{"type":24,"tag":51,"props":253,"children":254},{},[255,257,268],{"type":29,"value":256},"Change warning muting so it affects all levels, but locally (",{"type":24,"tag":66,"props":258,"children":261},{"href":259,"rel":260},"https://github.com/Redot-Engine/redot-engine/commit/1fd87e8747cf1f76485d9e36a53ec70f6040168f",[70],[262],{"type":24,"tag":57,"props":263,"children":265},{"className":264},[],[266],{"type":29,"value":267},"1fd87e8",{"type":29,"value":132},{"type":24,"tag":51,"props":270,"children":271},{},[272,274,285],{"type":29,"value":273},"Handle another case of user tokens for ResourceLoader (",{"type":24,"tag":66,"props":275,"children":278},{"href":276,"rel":277},"https://github.com/Redot-Engine/redot-engine/commit/98e77113a2e8aedaf9ab1c85aa98f07ae7ffc29e",[70],[279],{"type":24,"tag":57,"props":280,"children":282},{"className":281},[],[283],{"type":29,"value":284},"98e7711",{"type":29,"value":132},{"type":24,"tag":51,"props":287,"children":288},{},[289,291,302],{"type":29,"value":290},"Fix ResourceLoader is not verbosely printing a resource path on loading (",{"type":24,"tag":66,"props":292,"children":295},{"href":293,"rel":294},"https://github.com/Redot-Engine/redot-engine/commit/f2d0f66eca23fcf4b79a71669d90d351575eed7a",[70],[296],{"type":24,"tag":57,"props":297,"children":299},{"className":298},[],[300],{"type":29,"value":301},"f2d0f66",{"type":29,"value":132},{"type":24,"tag":51,"props":304,"children":305},{},[306,308,319],{"type":29,"value":307},"Simplify ResourceLoader handling of unregistered tasks (",{"type":24,"tag":66,"props":309,"children":312},{"href":310,"rel":311},"https://github.com/Redot-Engine/redot-engine/commit/cd327055089eb867fa9064b26c228be1f97cf9d8",[70],[313],{"type":24,"tag":57,"props":314,"children":316},{"className":315},[],[317],{"type":29,"value":318},"cd32705",{"type":29,"value":132},{"type":24,"tag":51,"props":321,"children":322},{},[323,325,336],{"type":29,"value":324},"Add thread-aware ResourceLoader resource changed mechanism (",{"type":24,"tag":66,"props":326,"children":329},{"href":327,"rel":328},"https://github.com/Redot-Engine/redot-engine/commit/f806cfb72b0739e127397dee42d98677ac56510c",[70],[330],{"type":24,"tag":57,"props":331,"children":333},{"className":332},[],[334],{"type":29,"value":335},"f806cfb",{"type":29,"value":132},{"type":24,"tag":51,"props":338,"children":339},{},[340,342,353],{"type":29,"value":341},"Add last resort life-time insurance in ResourceLoader for tokens (",{"type":24,"tag":66,"props":343,"children":346},{"href":344,"rel":345},"https://github.com/Redot-Engine/redot-engine/commit/ea651a150b27302626ac9174e2209a1029576e21",[70],[347],{"type":24,"tag":57,"props":348,"children":350},{"className":349},[],[351],{"type":29,"value":352},"ea651a1",{"type":29,"value":132},{"type":24,"tag":51,"props":355,"children":356},{},[357,359,370],{"type":29,"value":358},"Fixup ResourceLoader resource changed feature (",{"type":24,"tag":66,"props":360,"children":363},{"href":361,"rel":362},"https://github.com/Redot-Engine/redot-engine/commit/251237d2b4021b9cdd25c644cf13061b98b0d0ab",[70],[364],{"type":24,"tag":57,"props":365,"children":367},{"className":366},[],[368],{"type":29,"value":369},"251237d",{"type":29,"value":132},{"type":24,"tag":51,"props":372,"children":373},{},[374,376,387],{"type":29,"value":375},"Let EditorResourcePreview loads complete after exit requested (",{"type":24,"tag":66,"props":377,"children":380},{"href":378,"rel":379},"https://github.com/Redot-Engine/redot-engine/commit/9ed06bce54002e83244fdf8cabf0a12931a2b17b",[70],[381],{"type":24,"tag":57,"props":382,"children":384},{"className":383},[],[385],{"type":29,"value":386},"9ed06bc",{"type":29,"value":132},{"type":24,"tag":51,"props":389,"children":390},{},[391,393,404],{"type":29,"value":392},"Report error for ResourceLoader if resource type unrecognized (",{"type":24,"tag":66,"props":394,"children":397},{"href":395,"rel":396},"https://github.com/Redot-Engine/redot-engine/commit/a0c17446add3a35f4b402e7c855301e5bf36cf47",[70],[398],{"type":24,"tag":57,"props":399,"children":401},{"className":400},[],[402],{"type":29,"value":403},"a0c1744",{"type":29,"value":132},{"type":24,"tag":51,"props":406,"children":407},{},[408,410,421],{"type":29,"value":409},"Fix deadlocks related to ClassDB queries about global classes (",{"type":24,"tag":66,"props":411,"children":414},{"href":412,"rel":413},"https://github.com/Redot-Engine/redot-engine/commit/a5f6e498627e79c0bff36526440300de7aebc84b",[70],[415],{"type":24,"tag":57,"props":416,"children":418},{"className":417},[],[419],{"type":29,"value":420},"a5f6e49",{"type":29,"value":132},{"type":24,"tag":51,"props":423,"children":424},{},[425,427,438],{"type":29,"value":426},"Fix animation snapping in seconds mode (",{"type":24,"tag":66,"props":428,"children":431},{"href":429,"rel":430},"https://github.com/Redot-Engine/redot-engine/commit/178a126b928a1563b2fd730cbe951fc4d98cf45a",[70],[432],{"type":24,"tag":57,"props":433,"children":435},{"className":434},[],[436],{"type":29,"value":437},"178a126",{"type":29,"value":132},{"type":24,"tag":51,"props":440,"children":441},{},[442,444,455],{"type":29,"value":443},"Avoid Windows child processes inheriting all file handles (",{"type":24,"tag":66,"props":445,"children":448},{"href":446,"rel":447},"https://github.com/Redot-Engine/redot-engine/commit/ce608dcbf7a8e49a9f6b7f1c6d6d3be9f587275a",[70],[449],{"type":24,"tag":57,"props":450,"children":452},{"className":451},[],[453],{"type":29,"value":454},"ce608dc",{"type":29,"value":132},{"type":24,"tag":40,"props":457,"children":459},{"id":458},"bug-fixes",[460],{"type":29,"value":461},"Bug Fixes",{"type":24,"tag":47,"props":463,"children":464},{},[465,485,503,523,549],{"type":24,"tag":51,"props":466,"children":467},{},[468,470,477,478],{"type":29,"value":469},"Rebrand Godette to Redot-chan by ",{"type":24,"tag":66,"props":471,"children":474},{"href":472,"rel":473},"https://github.com/trashguy",[70],[475],{"type":29,"value":476},"@trashguy",{"type":29,"value":75},{"type":24,"tag":66,"props":479,"children":482},{"href":480,"rel":481},"https://github.com/Redot-Engine/redot-engine/pull/858",[70],[483],{"type":29,"value":484},"#858",{"type":24,"tag":51,"props":486,"children":487},{},[488,490,495,496],{"type":29,"value":489},"Fix android logger Godot references to Redot by ",{"type":24,"tag":66,"props":491,"children":493},{"href":68,"rel":492},[70],[494],{"type":29,"value":73},{"type":29,"value":75},{"type":24,"tag":66,"props":497,"children":500},{"href":498,"rel":499},"https://github.com/Redot-Engine/redot-engine/pull/860",[70],[501],{"type":29,"value":502},"#860",{"type":24,"tag":51,"props":504,"children":505},{},[506,508,515,516],{"type":29,"value":507},"Rebrand godette into redot-chan on platformer 2 comment for consistency by ",{"type":24,"tag":66,"props":509,"children":512},{"href":510,"rel":511},"https://github.com/LegendaryGuard",[70],[513],{"type":29,"value":514},"@LegendaryGuard",{"type":29,"value":75},{"type":24,"tag":66,"props":517,"children":520},{"href":518,"rel":519},"https://github.com/Redot-Engine/redot-engine/pull/862",[70],[521],{"type":29,"value":522},"#862",{"type":24,"tag":51,"props":524,"children":525},{},[526,528,534,536,541,542],{"type":29,"value":527},"Correct ",{"type":24,"tag":57,"props":529,"children":531},{"className":530},[],[532],{"type":29,"value":533},"Node._unhandled_picking_input",{"type":29,"value":535}," to refer to InputEvent by ",{"type":24,"tag":66,"props":537,"children":539},{"href":68,"rel":538},[70],[540],{"type":29,"value":73},{"type":29,"value":75},{"type":24,"tag":66,"props":543,"children":546},{"href":544,"rel":545},"https://github.com/Redot-Engine/redot-engine/pull/865",[70],[547],{"type":29,"value":548},"#865",{"type":24,"tag":51,"props":550,"children":551},{},[552,554,559,560],{"type":29,"value":553},"Fix 32-bit Windows build by ",{"type":24,"tag":66,"props":555,"children":557},{"href":68,"rel":556},[70],[558],{"type":29,"value":73},{"type":29,"value":75},{"type":24,"tag":66,"props":561,"children":564},{"href":562,"rel":563},"https://github.com/Redot-Engine/redot-engine/pull/868",[70],[565],{"type":29,"value":566},"#868",{"type":24,"tag":40,"props":568,"children":570},{"id":569},"github-release",[571],{"type":29,"value":572},"Github Release",{"type":24,"tag":25,"props":574,"children":575},{},[576,578,584],{"type":29,"value":577},"For more details, you can check the full release on GitHub: ",{"type":24,"tag":66,"props":579,"children":582},{"href":580,"rel":581},"https://github.com/Redot-Engine/redot-engine/releases/tag/redot-4.3-rc.4",[70],[583],{"type":29,"value":36},{"type":29,"value":585},".",{"type":24,"tag":25,"props":587,"children":588},{},[589],{"type":29,"value":590},"We appreciate your feedback as we continue to improve Redot, and we look forward to your contributions!",{"title":7,"searchDepth":592,"depth":592,"links":593},2,[594,596,597],{"id":42,"depth":595,"text":45},3,{"id":458,"depth":595,"text":461},{"id":569,"depth":595,"text":572},"markdown","content:news:release-4-3-rc-4.md","content","news/release-4-3-rc-4.md","news/release-4-3-rc-4","md",1736433787918]