Skip to content

Instantly share code, notes, and snippets.

@FroggerHH
Created December 4, 2025 18:26
Show Gist options
  • Select an option

  • Save FroggerHH/7063a564c636e1505afb7cdb2cc9787e to your computer and use it in GitHub Desktop.

Select an option

Save FroggerHH/7063a564c636e1505afb7cdb2cc9787e to your computer and use it in GitHub Desktop.
Find Valheim shaders references
using System.Text;
using HarmonyLib;
using UnityEngine;
[HarmonyPatch, HarmonyWrapSafe]
file static class FindShaderReferences
{
private const string TARGET_SHADER_NAME = "Standard";
[HarmonyPrefix]
[HarmonyPatch(typeof(Player), nameof(Player.Start), [])]
private static void LogShadersRefs()
{
if(!ZNetScene.instance) return;
foreach (var meshRenderer in ZNetScene.instance.m_prefabs.SelectMany(x => x.GetComponentsInChildren<MeshRenderer>()).Where(x=>x))
foreach (var material in meshRenderer.sharedMaterials.Where(x=>x))
{
if(material.shader?.name != TARGET_SHADER_NAME) continue;
var referencePath = new StringBuilder();
var parent = meshRenderer.transform.parent;
while (parent)
{
referencePath.Insert(0, $"{parent.name} -> ");
parent = parent.transform.parent;
}
referencePath.Append($"{meshRenderer.name}");
Debug.Log($"Found {TARGET_SHADER_NAME} shader in {referencePath}");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment