Banned Nodes

This document outlines the list of banned nodes used in Unity Visual Scripting within our project environment. These nodes are filtered to ensure safety, stability, and prevent misuse of potentially dangerous or editor-only functionalities.


🧾 Summary of Banned Categories

Category

Description

🔥 GameObject Methods

Dangerous methods likeFind,SendMessage, etc.

🛑 Editor-Only Members

Available only in Unity Editor; not available at runtime

💥 Unsafe or Problematic Methods

IncludesDestroyImmediate, etc.

🎮 Gamepad Audio APIs

Not supported outside of editor/gamepad modules

📸 Camera & Scene Control

Prevents tampering with main camera or scene objects

⏱ Time Manipulation

Avoids time scale changes and timing issues


🔒 Full List of Banned Nodes

1. GameObject Methods

These methods are blocked due to potential performance issues or misuse:

  • GameObject.Find

  • GameObject.FindWithTag

  • GameObject.FindGameObjectWithTag

  • GameObject.FindGameObjectsWithTag

  • GameObject.SendMessage

  • GameObject.SendMessageUpwards


2. UnityEngine.Object Methods

These global search and object manipulation methods are restricted:

  • UnityEngine.Object.FindObjectOfType

  • UnityEngine.Object.FindObjectsOfType

  • UnityEngine.Object.FindObjectsOfTypeIncludingAssets

  • UnityEngine.Object.FindObjectsOfTypeAll

  • UnityEngine.Object.FindSceneObjectsOfType

  • UnityEngine.Object.DontDestroyOnLoad

  • UnityEngine.Object.DestroyImmediate


3. Component Methods

Avoid dynamic message sending:

  • Component.SendMessage

  • Component.SendMessageUpwards


4. Editor-Only Members

These members exist only in Unity Editor and cause compile errors if used in runtime builds:

MeshRenderer

  • MeshRenderer.stitchLightmapSeams

  • MeshRenderer.receiveGI

  • MeshRenderer.scaleInLightmap

LightProbeGroup

  • LightProbeGroup.dering

  • LightProbeGroup.probePositions (read-only)

Light

  • Light.lightmapBakeType

  • Light.SetLightDirty

  • Light.shadowRadius

  • Light.areaSize

  • Light.shadowAngle

Texture / Texture2D

  • Texture.imageContentsHash

  • Texture2D.alphaIsTransparency

LightingSettings

A long list of advanced lighting settings related to lightmapping:

  • LightingSettings.filteringAtrousPositionSigmaIndirect

  • LightingSettings.filteringAtrousPositionSigmaDirect

  • ... (many others – mostly lightmapper-related properties)

MonoBehaviour

  • MonoBehaviour.runInEditMode


5. Audio (Editor Only)

Used for gamepad audio output, which is not supported in runtime:

  • AudioSource.PlayOnGamepad

  • AudioSource.GamepadSpeakerSupportsOutputType

  • AudioSource.gamepadSpeakerOutputType

  • AudioSource.SetGamepadSpeakerRestrictedAudio

  • AudioSource.SetGamepadSpeakerMixLevelDefault

  • AudioSource.DisableGamepadOutput


7. UI (Editor Only)

Related to UI rebuild events:

  • UnityEngine.UI.Graphic.OnRebuildRequested

  • UnityEngine.UI.Text.OnRebuildRequested


8. ParticleSystem (Editor Only)

Editor-specific particle system tools:

  • ParticleSystemRenderer.supportsMeshInstancing

  • ParticleSystemForceField.FindAll


9. Time Manipulation

To avoid unexpected behavior in gameplay:

  • Time.timeScale

  • Time.fixedDeltaTime

  • Time.maximumDeltaTime

  • Time.maximumParticleDeltaTime

  • Time.captureDeltaTime

  • Time.captureFramerate


10. Camera Access

Prevents interference with the main camera or scene management:

  • Camera.main

  • Camera.allCameras

  • Camera.current

  • Camera.scene


11. Graphics Settings

Advanced rendering features that should not be modified:

  • GraphicsSettings.videoShadersIncludeMode


🛑 Blocked Types

The following types are completely blocked from being used in Visual Scripting graphs:

  • Application – Contains dangerous methods like loading/unloading scenes.

  • Resources – Allows loading assets by string path, which is unsafe.

  • SceneManager – Loads or unloads scenes, which could break the flow.

  • Scene – Gets root game objects, which may expose critical objects.

  • VideoShadersIncludeMode

Last updated