VRChat Marker Pro
VRCMarker Pro
Customizable Drawing Prefab for VRChat Worlds
🔗 Try it in VRChat
✨ Features
- Adjustable Colors, Width, Smoothing
- Rounded line renderer for PC & Quest
- Late join sync
- Eraser/Undo
- Line Subvidision (PC Only)
- Gradients
- Write on surface
- Desktop Hotkeys
- Json export
📝 Setup
- Download and import the Unity package. The imported assets end up in the Packages folder (Not assets)
- Import TMP essentials if you havent already (Open Menu Item
Window > TextMeshPro > Import TMP Essential Resources) - Drag & Drop the marker prefab into your scene and adjust settings
Drawing On Surfaces
- Set
Collision Layerson the marker to a new special layer - Create a GameObject with a primitive collider (Sphere, Box, Capsule or Convex Mesh Collider) set to that layer and enable
Is Trigger - When a Marker enters a collider, it sets it as a target and draws at the closest point on its surface
- Once the Marker moves outside the range, it continues drawing normally
- Refer to the included example scene for additional information
🛠️ Changelog
[4.0.1] - 2026-1-11
- Improved collision detection and setup
- Fixed null exceptions when markers game objects are disabled by default
- Added width to exported json
[4.0.0] - 2025-12-25
- Complete rewrite
- In-game customization
- More desktop hotkeys
- Removed vertex count limits and overwriting
- Colored tooltips with more information
- The geometry subdivision shader is now 3 times faster
- Improved anti-aliasing
- Writing on screen now works with any FoV setting
- Reduced vram usage, the position texture is now dynamically resized like a list instead of a fixed constant size
- Reduced mesh memory by using 16bit indices and multiple submeshes instead of one 32bit submesh for the line renderer
- Holding erase now shows duration progress
- Added distance culling
- Fog can now affect the line renderer
- Late join sync is now on by default
- Export drawings in json
Techical Details
This prefab doesn't use the unity line renderer component. It is a custom line renderer built with Udon and Shaders. This allows for more flexibility so things like dynamic subdivision and per segment erasing is possible. The eraser can erase any point and intersection tests are done on the GPU. All of the data is stored in a texture, once it is erased it leaves empty unused space. A defragmentation pass is also implemented in order to compact the texture. Remote smoothing is entierly shader based, using precalculated timestamps when line segments should appear.
Json Format
-
versionVersion number -
createdAtISO 8601 in UTC -
boundsMin,boundsMaxAxis-aligned bounding box -
widthLine renderer width -
colorTypeColor (0) or Gradient (1) -
colorVector3 color value -
gradientVector4 array with XYZ for color and W for gradient time -
positionsVector3 array bytes encoded as Base64 string, line breaks marked with (0,0,0)
Example
{
"version": "4.0.0",
"createdAt": "2025-12-25T14:42:54.5482376Z",
"boundsMin": [2.560598,0.6142347,5.235921],
"boundsMax": [2.764225,0.8806038,5.483546],
"colorType": 0,
"color": [1,1,1],
"positions": "AAAAAAAAAAAAAAAAuFAqQKfVRz/XJaxAP1kqQNoMRT+VI6xA4W4qQJt3Pj+tL6xATX8qQNO/OT9LQ6xANX8qQCSHOT/oOaxAhG8qQH0SPT8eA6xAzWMqQH0gPz8lxKtAdWMqQMniPT+ikatAJmgqQAmAOz9zcKtA+G0qQEgNOT90WqtA1G8qQO5GOD+xU6tAAAAAAAAAAAAAAAAASlMqQHhwPj+r5apAtVUqQNFlPT+f26pAWloqQCmyOz9/06pAeV4qQD87Oj/1zapAnmEqQM0LOT8wx6pA8WUqQHGHNz8jwqpA5WcqQBfYNj/ev6pAAAAAAAAAAAAAAAAAPEcqQPjmQj99/KpA"
}
Contact
Terms of use
Personal
Under the Personal License, you are permitted to:
- Create modifications of the asset.
- Upload the asset and its modifications to both personal public and private worlds.
However, the following actions are prohibited:
- Reselling the asset on its own.
- Including the asset in any world package for sale or distribution.
Commercial
Under the Commercial License, you are permitted to:
- Include the asset in world packages for sale, provided that the total price of the world package is higher than the original price of the asset.
- Upload the asset to other users' accounts.
The following restrictions apply:
- Redistribution of the asset by itself, either in its original form or as a modification, is strictly prohibited.
- Any asset sold or transferred under this license retains the same rights and restrictions as a personal license for the recipient.
The package contents for both licences is identical.