Skip to content

Integration & Compatibility

Lean's edited this page Jun 9, 2025 · 91 revisions

Introduction

In this section there will be explanations of the classes, events and examples available for you to integrate your mod with LevelUP

LevelUP works mostly on server side, and all events should be running on the EnumAppSide.Server, for security porpuses

Functions will generally have a reference number, so you can easily change and modify the numbers as you wish

LevelUP.Server.ExperienceEvents

  • OnExperienceIncrease
  • Player receive experience, amount is a reference you can modify it to increase or decrease the quantity received

  • OnExperienceSubIncrease
  • Player receive sub experience, amount is a reference you can modify it to increase or decrease the quantity received

  • OnExperienceReduced
  • Player losed experience, amount is a reference you can modify it to increase or decrease the quantity received

  • OnLevelUp
  • Player leveled up

LevelUP.Shared.OverwriteDamageInteractionEvents

  • OnPlayerMeleeDoDamageStart
  • Player do damage with meele weapon (before levelup calculations)

  • OnPlayerMeleeDoDamageFinish
  • Player do damage with meele weapon (after levelup calculations)

  • OnPlayerRangedDoDamageStart
  • Player do damage with ranged weapon (before levelup calculations)

  • OnPlayerRangedDoDamageFinish
  • Player do damage with ranged weapon (after levelup calculations)

  • OnPlayerReceiveDamageStart
  • Player receive damage (before levelup calculation, does not include equipped armors)

  • OnPlayerReceiveDamageFinish
  • Player receive damage (after levelup calculations, includes equipped armors, but can be null if the damage does not belong to a entity)

  • OnBowDropChanceRefresh
  • Player arrow drop chance refreshed

  • OnBowAimingRefresh
  • Player bow aiming refreshed

  • OnSpearAimingRefresh
  • Player spear aiming refreshed

  • OnPlayerShieldReceiveDamageStart
  • Player receive damage using shield (before levelup calculation)

  • OnPlayerShieldReceiveDamageFinish
  • Player receive damage using shield (after levelup calculation)

LevelUP.Shared.OverwriteBlockInteractionEvents

To do

LevelUP.Shared.OverwriteBlockBreakInteractionEvents

To do

LevelUP.Server.Experience

  • GetExperience
  • Returns the player experience from a level type

  • GetSubExperience
  • Returns the player sub experience from a level type and sub level type

  • IncreaseExperience
  • Increase a player experience from a level type and action or amount

  • IncreaseSubExperience
  • Increase a player experience from a level type, sub level type and amount

Level Calculations

You can access all levelup calculation by using the class LevelUP.Shared.Configuration

Examples

  • Force reduce all experience
public override void StartServerSide(ICoreServerAPI api)
{
    LevelUP.Server.ExperienceEvents.OnExperienceIncrease += LevelUPOnExperienceIncreased;
}

private void LevelUPOnExperienceIncreased(IPlayer player, string type, ref ulong amount)
{
    amount = (ulong)Math.Round(amount * 0.5);
}
  • Notification when player level up
public override void StartServerSide(ICoreServerAPI api)
{
    LevelUP.Server.ExperienceEvents.OnLevelUp += LevelUPOnLevelUp;
}

private void LevelUPOnLevelUp(IPlayer player, string type, ulong exp, int level)
{
    if (player is IServerPlayer serverPlayer)
    {
        serverPlayer.SendMessage(0, "Congratulations another levelup notification", EnumChatType.Notification);
    }
}

Clone this wiki locally