{"id":13485503,"url":"https://github.com/getnamo/UDP-Unreal","last_synced_at":"2025-03-27T19:31:16.985Z","repository":{"id":31736434,"uuid":"128734197","full_name":"getnamo/UDP-Unreal","owner":"getnamo","description":"Convenience UDP wrapper for the Unreal Engine.","archived":false,"fork":false,"pushed_at":"2024-06-04T04:05:46.000Z","size":90,"stargazers_count":329,"open_issues_count":8,"forks_count":80,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-10-14T22:02:34.893Z","etag":null,"topics":["networking","real-time","udp","ue4","ue5","unreal"],"latest_commit_sha":null,"homepage":"","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/getnamo.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":"2018-04-09T07:46:44.000Z","updated_at":"2024-10-11T17:29:10.000Z","dependencies_parsed_at":"2023-01-14T19:40:09.993Z","dependency_job_id":"1ef615e8-a664-470e-8961-a0e39e3c5b10","html_url":"https://github.com/getnamo/UDP-Unreal","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnamo%2FUDP-Unreal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnamo%2FUDP-Unreal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnamo%2FUDP-Unreal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnamo%2FUDP-Unreal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getnamo","download_url":"https://codeload.github.com/getnamo/UDP-Unreal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245910774,"owners_count":20692498,"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":["networking","real-time","udp","ue4","ue5","unreal"],"created_at":"2024-07-31T18:00:24.572Z","updated_at":"2025-03-27T19:31:16.666Z","avatar_url":"https://github.com/getnamo.png","language":"C++","funding_links":[],"categories":["Game Development","Awesome Unreal Repositories"],"sub_categories":["Unreal Engine: Resources","Networking"],"readme":"# UDP-Unreal\nConvenience ActorComponent UDP wrapper for the Unreal Engine.\n\n[![GitHub release](https://img.shields.io/github/release/getnamo/UDP-Unreal.svg)](https://github.com/getnamo/UDP-Unreal/releases)\n[![Github All Releases](https://img.shields.io/github/downloads/getnamo/UDP-Unreal/total.svg)](https://github.com/getnamo/UDP-Unreal/releases)\n\nThis may not be the most sensible wrapper for your use case, but is meant to co-exist with https://github.com/getnamo/SocketIOClient-Unreal with similar workflow. \n\nWraps built-in Unreal udp functionality as an actor component (_UDPComponent_) with both sending and receiving capabilities. Works through the c++ _FUDPNative_ wrapper which can be included and re-linked in a custom non actor component class if desired. \n\nConfirmed working with node.js [dgram](https://nodejs.org/api/dgram.html) (see [example echo server gist](https://gist.github.com/getnamo/8117fdc64209af086ce0337310c52a51) for testing).\n\n[Discord Server](https://discord.gg/qfJUyxaW4s)\n\n## Quick Install \u0026 Setup\n\n 1. [Download Latest Release](https://github.com/getnamo/UDP-Unreal/releases)\n 2. Create new or choose project.\n 3. Browse to your project folder (typically found at Documents/Unreal Project/{Your Project Root})\n 4. Copy *Plugins* folder into your Project root.\n 5. Plugin should be now ready to use.\n \n## How to use - Basics\n \nSelect an actor of choice. Add UDP component to that actor.\n \n![add component](https://i.imgur.com/EnCiU4K.png)\n \nSelect the newly created component and modify any default settings\n\n![defaults](https://user-images.githubusercontent.com/542365/112784196-dc49ea80-9005-11eb-9d2c-a53384168be1.png)\n\nBy default the udp actor component will auto open both send and receive sockets on begin play. If you're only interested in sending, untick should auto open receive; conversely untick auto open send if you're not interested in sending.\n \nAlso if you want to connect/listen on your own time, untick either and connect manually via e.g. key event\n \n![manual open receive](https://i.imgur.com/HkSvGCb.png)\n \nReceive Ip of 0.0.0.0 will listen to all connections on specified port.\n \n### Sending\n \nOnce your sending socket is opened (more accurately prepared socket for sending, since you don't get a callback in UDP like in TCP), use emit to send some data, utf8 conversion provided by socket.io plugin. NB: if you forget to open your socket, emit will auto-open on default settings and emit.\n \n![emit](https://i.imgur.com/OzG0caw.png)\n \nreturns true if the emit processed. NB: udp is unreliable so this is not a return that the data was received on the other end, for a reliable connection consider TCP.\n \n### Receiving\n \n![events](https://i.imgur.com/1mdlQdI.png)\n \nOnce you've opened your receive socket you'll receive data on the ```OnReceivedBytes``` event\n \n![receive bytes](https://i.imgur.com/1Lq0mDg.png)\n \nwhich you can convert to convenient strings or structures via socket.io (optional and requires your server sends data as JSON strings).\n\n#### Receiving on Bound Send port\n\nSince v0.9.5 when you open a send socket it will generate a bound send port which you can use to listen for udp events on the receiving side. This should help NAT piercing due to expected behavior.\n\nTo use this feature can use _Should Open Receive To Bound Send Port_ which will cause any receive open to automatically bind to your send ip and send bound port.\n\n![auto open bound send port](https://user-images.githubusercontent.com/542365/112778515-9129da80-8ff9-11eb-93a3-129c00a8da47.png)\n\nOr if you want to manually do this you can untick _Should Auto Open Receive_ and then open with own settings on e.g. send socket open event with the bound port.\n\n![open bound send port](https://user-images.githubusercontent.com/542365/112771022-7c8c1900-8fde-11eb-971e-e81c3d4e55cd.png)\n \n### Reliable Stream\n \nEach release includes the socket.io client plugin, that plugin is intended to be used for reliable control and then real-time/freshest data component of your network can be piped using this udp plugin. Consider timestamping your data so you can know which packets to drop/ignore.\n\n## Packaging\n\n### C++\nWorks out of the box.\n\n### Blueprint\nIf you're using this as a project plugin you will need to convert your blueprint only project to mixed (bp and C++). Follow these instructions to do that: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/\n\n![Converting project to C++](https://i.imgur.com/Urwx2TF.png)\n\ne.g. Using the File menu option to convert your project to mixed by adding a C++ file.\n\n## Notes\nMIT licensed.\n\nLargely inspired from https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetnamo%2FUDP-Unreal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetnamo%2FUDP-Unreal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetnamo%2FUDP-Unreal/lists"}