{"id":14960911,"url":"https://github.com/reava/uwutils","last_synced_at":"2026-03-05T21:20:27.143Z","repository":{"id":39578652,"uuid":"429698834","full_name":"Reava/UwUtils","owner":"Reava","description":"A collection of -almost- niche UdonSharp scripts as an (almost) all in one Toolkit for World Creators with more than 30 scripts, supports persistence and more.","archived":false,"fork":false,"pushed_at":"2025-09-07T10:57:44.000Z","size":7706,"stargazers_count":60,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-07T12:24:41.068Z","etag":null,"topics":["toolkit","udon-behaviours","udonsharp","vrchat-udon","vrchat-worlds"],"latest_commit_sha":null,"homepage":"https://reava.github.io/VPM-Listings/","language":"C#","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/Reava.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"patreon":"Reava","custom":["https://paypal.me/reavaa","https://discord.gg/TxYwUFKbUS"]}},"created_at":"2021-11-19T06:56:00.000Z","updated_at":"2025-09-07T10:57:47.000Z","dependencies_parsed_at":"2024-02-13T18:01:22.684Z","dependency_job_id":"f58fb852-652b-4403-b6b4-6dced4c5b663","html_url":"https://github.com/Reava/UwUtils","commit_stats":{"total_commits":263,"total_committers":3,"mean_commits":87.66666666666667,"dds":0.3992395437262357,"last_synced_commit":"3fc7af0c79840e85fd05f0850c4b4f4d7c7bad80"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/Reava/UwUtils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reava%2FUwUtils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reava%2FUwUtils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reava%2FUwUtils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reava%2FUwUtils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Reava","download_url":"https://codeload.github.com/Reava/UwUtils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reava%2FUwUtils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275988740,"owners_count":25565641,"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","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["toolkit","udon-behaviours","udonsharp","vrchat-udon","vrchat-worlds"],"created_at":"2024-09-24T13:23:25.116Z","updated_at":"2025-09-19T18:58:51.490Z","avatar_url":"https://github.com/Reava.png","language":"C#","funding_links":["https://patreon.com/Reava","https://paypal.me/reavaa","https://discord.gg/TxYwUFKbUS"],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=left\u003e\n  \u003ca href=\"https://reava.github.io/UwUtils/\"\u003e\u003cimg alt=\"Add to VCC\" src=\"https://github.com/user-attachments/assets/33d583a7-4f7f-426a-901a-1581bd98001e\"\u003e\u003c/a\u003e\n  \u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/reava/UwUtils/release.yml?style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/Reava/UwUtils?color=blue\u0026style=for-the-badge\"\u003e\n  \u003ca href=\"https://github.com/Reava/UwUtils/releases/latest/\"\u003e\u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/reava/UwUtils?logo=unity\u0026style=for-the-badge\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Reava/UwUtils/releases/latest/\"\u003e\u003cimg alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/reava/UwUtils/total?color=blue\u0026style=for-the-badge\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n# 🧰 Reava_'s Udon UwUtils Toolkit\n\n* You'll find all sorts of niche scripts made in U# by myself for different projects, revisited \u0026 cleaned for everyone's use.\n* This Toolkit is made to use simple scripts in unison to create more in specific behaviors rather than highly specific or overengineered scripts!\n* By all means you are very welcome to pick and choose parts of my code to make your own scripts! These serve as a handy toolbox for everyone either for using directly in projects or to grow into new scripts of their own.\n\n**Info**: There are currently 33 Udon Scripts in UwUtils! This will continue to expand as I find more ideas.\n\n## ℹ️ **Tips**: \n- You can easily add any of my scripts by simply typing it in the component window instead of adding a Udon behaviour first!\n- A lot of my scripts work best when used with other UwUtils scripts, you can do a LOT by combining their efforts!\n- A lot of variables have tooltips you can hover over to get more insight\n- My scripts output proper errors and logs, you can search for \"*Reava_/UwUtils/*\" in your logs/console to see any issues or find more insight about their behaviour.\n\nIf you find any issues, need support or think of a script you'd like to see, you can join my **[Discord](https://discord.gg/TxYwUFKbUS)** or open an issue on Github!\n\n## 📥 \u003ca href=\"https://reava.github.io/UwUtils/\"\u003eAdd it to VCC as a package !\u003c/a\u003e\n\n## 📋 **Script list \u0026 Descriptions**\n\u003cdetails\u003e\n\u003cSummary\u003eExpand me!\u003c/summary\u003e\n\n- **[Player Teleporter](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/PlayerTeleporter.cs)**:\nLiterally just TPs you on interact, that's it.\n- **[Objects Toggle](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/ObjectsToggle.cs)**:\nToggles the state of an array of GameObjects \u0026 is persistence ready!\n- **[Object State Setter](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/ObjectStateSetter.cs)**:\nOn interact, sets the state of an array of gameObjects. Does NOT revert once triggered again, it SETS the state and is NOT synced. (Events: \\_Invert to do the opposite, \\_Switch to swap all states)\n- **[Tag Assigner](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/TagAssigner.cs)**:\nFunctions as a whitelist with functions, assigns a Tag to anyone who matches their username to the user Array of the behavior on world join. Local, allows toggling specific objects if user matches. Has a toggle to empower the user if they just created the instance regardless of whitelist matching. Supports adding users on the go and loading a remote string for updating the whitelist without updating the world!\n- **[Tag TP](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/TagTP.cs)**:\nIf you got the correct Tag to your name on interact with the behavior, teleports you to the target, if not, teleports you to the second target (or doesn't if empty / disabled)\n- **[ReflectionProbeController](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/ReflectionProbeController.cs)**:\nRelfectionProbes are cool! make them real time, scripted and add this script to change the frequency they refresh at ! Use ToggleLoop() to toggle if it refreshes in a loop or stops until enabled again\n- **[Spinny](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/Spinny.cs)**:\nA script to rotate things on any axis, at any speed, and even at weird update speeds (like 30 degrees but only once a second). You should do that with animators, but this might be useful idk.\n- **[Unity Fog Toggle](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/UnityFogToggle.cs)**:\nJust an interact toggle that toggles ON/OFF Unity's fog... that's it. Call it with a trigger or a UI button, it'll work.\n- **[Scene Initializer](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/SceneInitializer.cs)**:\nWant to have things enabled for the first few seconds an user enters your world then disable ? the opposite ? both ? Just use that, ezpz\n- **[tag Setter](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/tagSetter.cs)**:\nSet a pre determined tag to the local user on interact. that's it.\n- **[Tag Debugger](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/TagDebugger.cs)**:\nHandy tool to display the local user's tag and output it to the debugLogs or text (Compatible with UnityUI, TMP \u0026 TMP GUI), updates on Interact \u0026 on Start.\n- **[Tag Array TP](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/TagArrayTP.cs)**:\nHave a lot of tags \u0026 want each one to TP the user to a different spot ? Well... this does it all for ya! Even has a fallback target when the user doesn't have a tag (can be disabled to disallow TPing when no matching ranks are found)\n- **[Event Relay](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/EventRelay.cs)**:\nWanna use a button to push another button ? Do the same as UI can do ? Yup, just type the event name (like \"\\_interact\"), if you want a delay or not \u0026 for how many seconds.... and you're good to go! You can also check the state of another object to ignore the delay if that object is on / off. Will support UdonBehavior Arrays on for the UdonSharp1.0 update soon\n- **[Udon Keybinds](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/UdonKeybinds.cs)**:\nSend an event call to 6 different udon behaviors based on keybinds, serves either for RollTheRed's Camera System or as a code template. Press CTRL + 1 to 6 to trigger changes. CTRL + 0 to toggle keybinds ON/OFF, defaults to ON unless changed. Will support UdonBehavior Arrays on for the UdonSharp1.0 update soon\n- **[Animator Driver](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/AnimatorDriver.cs)**:\nInverts a boolean on an animator on interact... and that's it (Persistence ready!)\n- **[Trigger Zone Relay](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/TriggerZoneRelay.cs)**:\nAssign trigger colliders, and assign an Udon Behavior to send an event to either on Enter or Exit, super simple stuff! Supports UdonBehaviorArrays for U# 1.x version of the scripts.\n- **[Playercount To Animator](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/PlayercountToAnimator.cs)**:\nEnables driving an Animator's parameter (one parameter per Behavior, multiple Animators at once supported) between two values (Min/Max) depending on the player count in the instance. Can set the player count cap to reach max value.\n- **[Join Bell](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/JoinBell.cs)**:\nPretty straightforward, just tap in an AudioSource \u0026 a clip for Join/Leave and enjoy (bell sound can be toggled by UI or eventRelay using \"\\_JoinToggle\" event)\n- **[Toggle Canvas](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/ToggleCanvas.cs)**:\nSame as iState, but for Canvas components\n- **[MeshRenderer Swapper](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/MeshRendererSwapper.cs)**:\nEnables swapping between two Groups of Mesh Renderers at runtime, setting between 1 \u0026 2 as default, and which group by default on Quest. practical for optimization toggles. Supports events (\\_switchGroup, \\_enableOne, \\_enableTwo)\n- **[Instance Creator Relay](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/InstanceCreatorRelay.cs)**:\nSends a custom event of your choice to Udon Behaviors if the local user just created the instance\n- **[Fading TP](https://github.com/Reava/Reava/UwUtils/tree/main/FadingTP)**:\nA small prefab that allows you to setup an infinite amount of teleports with Fade In/Out blackout effects! (Can change the fade speed per door, super lightweight)\n- **[Spawn Fade](https://github.com/Reava/Reava/UwUtils/tree/main/SpawnFade)**:\nA small prefab for fading into a world when you join, can toggle to also fade in when respawning! (Toggleable on runtime, can change the fade speed)\n- **[Remote String To Text](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/RemoteStringToText.cs)**:\nAllows loading a remote string from a URL and output to an array, or any type of text field (feel free to use as a code base for your own use!)\n- **[Sequencial Toggle](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/.cs)**:\nToggles a set of objects in sequential order, can send a different event to toggle it completely and keep progress, interact to go through it.\n- **[Advanced UI Toggle](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/AdvancedUIToggle.cs)**:\nAll the things done around a toggle packed in a single behavior, can be used with a UI button, physical event button or actual UI button to change anything Ui related + sound feedback, all toggleable.\n- **[Collectible](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/Collectible.cs)**:\nWhen interacted with, can send a value to the [Collection System](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/CollectionSystem.cs) to add to the balance of it\n- **[Collection System](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/CollectionSystem.cs)**:\nThe brain that receives events from [Collectibles](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/Collectible.cs) and adds up all the values received, can output to mulitple text displays\n- **[Multi UI Toggle Manager](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/MultiUIToggleManager.cs)**:\nLinks any number of toggles together and allows any of them to control the rest of them, and update a script when a new value is received, allowing to control a single script with multiple toggles for example.\n- **[Multi UI Slider Manager](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/MultiUISliderManager.cs)**:\nLinks any number of sliders together and allows any of them to control the rest of them, and update a script when a new value is received, allowing to control a single thing with multiple sliders.\n- **[PostProcessing Controller](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/PostProcessingController.cs)**:\nControls the post processing weight based on a slider or [Slider Manager](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/MultiUISliderManager.cs) for multiple sliders controlling the same value.\n- **[Slider Saver](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/SliderSaver.cs)**\nSaves the slider and restores its last known value on rejoin with persistence. Supports function \"\\_resetValue\" to reset the slider value and save without wiping player data.\n- **[Audiolinked Animator](https://github.com/Reava/Reava/UwUtils/blob/main/Runtime/Scripts/AudiolinkedAnimator.cs)**\nAllows driving an animator float with an Audiolink band with history and poll rate. This requires readback to be enabled on Audiolink!\n- **[Instance Time Actions] \u003e NOT READY \u003c**\nEnables performing actions based on Instance Time (segmented), synced for late joiners.\n\n\u003c/details\u003e\n\n## ⚠️ **Requirements**\nCheck updates before reporting issues.\n\n- **[Unity](https://docs.vrchat.com/docs/current-unity-version)** (Tested: v2022.3.22f1)\n- **[VRChat Worlds SDK3](https://vrchat.com/home/download)** (Tested: v3.8.0)\n- **Text Mesh Pro** is used by some scripts and generally used widely, import it.\n\n## 🔗 **Links**\nGet support \u0026 support me here:\n- https://discord.gg/TxYwUFKbUS\n- https://patreon.com/Reava\n\nSome tutorials might be posted on my Youtube: https://www.youtube.com/channel/UCm3RYWUql-2yGt8K2u9eFEg/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freava%2Fuwutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freava%2Fuwutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freava%2Fuwutils/lists"}