From c2a420e675a3839d453ad373cdb5cdcdb20aefcb Mon Sep 17 00:00:00 2001 From: Zeke Zhang Date: Mon, 16 Sep 2024 07:39:03 +1000 Subject: [PATCH] update readme.md --- doc/images/portal-server-panel.png | Bin 20437 -> 19412 bytes readme.md | 7 +++++++ 2 files changed, 7 insertions(+) diff --git a/doc/images/portal-server-panel.png b/doc/images/portal-server-panel.png index 1ccfabe03b9a28fb234ecb534296efb088f4e43e..24f364e78f9527a190aff7b0bfb39f7f64a9769e 100644 GIT binary patch literal 19412 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 diff --git a/readme.md b/readme.md index 206d8ee..d560b67 100644 --- a/readme.md +++ b/readme.md @@ -35,6 +35,13 @@ If this is your first time installing the Portal add-on, you will need to instal - Select `Connection Type` from the dropdown menu. - Click `Start Server` to start the server. +### Custom Handlers +You can create custom handlers to manipulate the data that is received. To do this, follow these steps: +1. Copy and paste the [template code](/templates/custom_data_handler.py) into blender's text editor. +2. Modify the `custom_data_handler` function with your custom logic. +3. Run the script to register the custom handler. +4. Locate the `Portal.custom` panel in the `3D View` sidebar. + ## Documentation For more information, visit the [Portal](https://github.com/sean1832/portal).