ArBajt, MCrow
Share

Unturned ResourceManager Events

List of events that be used in Rocket plugins from ResourceManager class.

Important Notes

  • Always subscribe to events in Load() method
  • Always unsubscribe in Unload() to prevent memory leaks
  • Event handlers must match the exact signature of the event
  • Use ref parameters when required by the event signature

Quick Example

public class ExamplePlugin : RocketPlugin<ExampleConfiguration>
{
    protected override void Load()
    {
        ResourceManager.onDamageResourceRequested += HandlePlayerOnDamageResourceRequested;
    }

    protected override void Unload()
    {
        ResourceManager.onDamageResourceRequested -= HandlePlayerOnDamageResourceRequested;
    }

    private void HandlePlayerOnDamageResourceRequested(CSteamID instigatorSteamID, Transform objectTransform, ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin)
    {
        // Convert the CSteamID to an UnturnedPlayer class variable
        UnturnedPlayer unturnedPlayer = UnturnedPlayer.FromCSteamID(instigatorSteamID);

        // Set the amount of damage that will be dealt to the resource
        pendingTotalDamage = 25;

        // Send a message to the player showing how much damage was dealt and the name of the resource object
        UnturnedChat.Say(unturnedPlayer, $"You dealt {pendingTotalDamage} damage to a resource with name: '{objectTransform.name}'", Color.green);
    }
}

onDamageResourceRequested

This event is called when player is trying to repair a barricade.

private void HandlePlayerOnDamageResourceRequested2(CSteamID instigatorSteamID, Transform objectTransform, ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin)
{
    // Convert the CSteamID to an UnturnedPlayer class variable
    UnturnedPlayer unturnedPlayer = UnturnedPlayer.FromCSteamID(instigatorSteamID);

    // If the damage origin is charge, block the damage and notify the player
    if (damageOrigin == EDamageOrigin.Charge_Explosion)
    {
        shouldAllow = false; // block damage from Charge
        UnturnedChat.Say(unturnedPlayer, "You cannot damage resources with demolition charges!", Color.red);
    }
    else
    {
        shouldAllow = true; // Allow damage
        UnturnedChat.Say(unturnedPlayer, $"You dealt damage to a resource named '{objectTransform.name}'.", Color.green);
    }
}
Need help?

If you need assistance with the documentation or have any questions, our community is here to help you: