vocaloidvalue

v0.2.2·Updated 2026-06-24

I will be adding more Voclaoid valuables as I go. I got MIku, Rin, Len, Luka, Meiko, Kaito, Teto, and even Gumi. Made for my friends but can be for anyone.

About this mod Author’s original text

using System;

using System.Collections;

using System.Collections.Generic;

using Photon.Pun;

using UnityEngine;

using UnityEngine.AI;

public class ValuableObject: MonoBehaviour

{

[Serializable]

public class ExtractionPointTracking

{

public GameObject extractionPoint;

public int closestRingReached;

public float localPlayerHaulToExtraction;

public ExtractionPointTracking(GameObject _extractionPoint)

{

extractionPoint = _extractionPoint;

closestRingReached = -1;

localPlayerHaulToExtraction = 0f;

}

}

[Space(40f)]

[Header("Presets")]

public Durability durabilityPreset;

public Value valuePreset;

public PhysAttribute physAttributePreset;

public PhysAudio audioPreset;

[Range(0.5f, 3f)]

public float audioPresetPitch = 1f;

public Gradient particleColors;

[Space(70f)]

public ValuableVolume.Type volumeType;

public bool debugVolume = true;

private PhysGrabObjectImpactDetector impactDetector;

[Space(20f)]

internal float dollarValueOriginal = 100f;

internal float dollarValueCurrent = 100f;

internal bool dollarValueSet;

internal int dollarValueOverride;

private Rigidbody rb;

private PhotonView photonView;

private NavMeshObstacle navMeshObstacle;

private bool inStartRoom;

private float inStartRoomCheckTimer;

internal RoomVolumeCheck roomVolumeCheck;

internal PhysGrabObject physGrabObject;

internal bool discovered;

internal bool discoveredReminder;

private float discoveredReminderTimer;

private List extractionPointTrackings = new List();

private bool extractionTrackingInitialized;

private Vector3 lastExtractionTrackingPosition;

private Dictionary playerGrabbedTime = new Dictionary();

private Dictionary> cartSnapshots = new Dictionary>();

private float lastGrabbedTimeUpdate;

[SerializeField]

private DebugValuableMeshes debugValuableMeshes;

private void Awake()

{

photonView = GetComponent();

}

private void Start()

{

physGrabObject = GetComponent();

roomVolumeCheck = GetComponent();

impactDetector = GetComponent();

float num = Mathf.Max(base.transform.localScale.x, base.transform.localScale.y, base.transform.localScale.z);

if (num > 1f)

{

float t = Mathf.Clamp01((num - 1f) / 1f);

audioPresetPitch = Mathf.Lerp(audioPresetPitch, 0.65f, t);

}

navMeshObstacle = GetComponent();

if ((bool)navMeshObstacle)

{

Debug.LogError(base.gameObject.name + " has a NavMeshObstacle component. Please remove it.");

}

StartCoroutine(DollarValueSet());

rb = GetComponent();

if ((bool)physAttributePreset)

{

if ((bool)rb)

{

rb.mass = physAttributePreset.mass;

}

if ((bool)physGrabObject)

{

physGrabObject.massOriginal = physAttributePreset.mass;

}

}

else if ((bool)rb || (bool)physGrabObject || (bool)impactDetector)

{

Debug.LogError(base.gameObject.name + " is missing a PhysAttributePreset.", base.gameObject);

}

if (!LevelGenerator.Instance.Generated)

{

ValuableDirector.instance.valuableSpawnAmount++;

}

ValuableDirector.instance.valuableList.Add(this);

if (volumeType () &&!RoundDirector.instance.dollarHaulList.Contains(base.gameObject))

{

RoundDirector.instance.dollarHaulList.Add(base.gameObject);

}

}

[PunRPC]

public void AddToDollarHaulListRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))

{

if (SemiFunc.MasterOnlyRPC(_info) && (bool)GetComponent() &&!RoundDirector.instance.dollarHaulList.Contains(base.gameObject))

{

RoundDirector.instance.dollarHaulList.Add(base.gameObject);

}

}

private void RemoveFromDollarHaulList()

{

if (GameManager.instance.gameMode == 1)

{

photonView.RPC("RemoveFromDollarHaulListRPC", RpcTarget.All);

}

else if ((bool)GetComponent() && RoundDirector.instance.dollarHaulList.Contains(base.gameObject))

{

RoundDirector.instance.dollarHaulList.Remove(base.gameObject);

}

}

[PunRPC]

public void RemoveFromDollarHaulListRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))

{

if (SemiFunc.MasterOnlyRPC(_info) && (bool)GetComponent() && RoundDirector.instance.dollarHaulList.Contains(base.gameObjec

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

Zehs-REPOLib

File & checksum

Filename
vocaloidvalue-0.2.2.zip
File size
16.7 MiB