Modding:Adding Code to the Player

From Caves of Qud Wiki
Revision as of 23:35, 24 July 2020 by Egocarib (talk | contribs) (Clarify when this can be used.)
Jump to navigation Jump to search
This page is about modding. See the modding overview for an abstract on modding.
This page is about modding. See the modding overview for an abstract on modding.
This article presupposes some knowledge of C# scripting.

You can use the [PlayerMutator] attribute and IPlayerMutator interface to modify the player object before the game begins, immediately after the player GameObject is first created.

This method works only when the player starts a New Game. If a player loads your mod on an existing save, [PlayerMutator] code is never called.

This structure allows you to run custom code on the player object. For example, you might add custom parts to the player from your mod, which is otherwise very difficult to do.

Any class tagged with the PlayerMutator attribute is instantiated after the player object is created and assigned, and the mutate method is called with the player as the parameter. For example:

  using XRL; // to abbreviate XRL.PlayerMutator and XRL.IPlayerMutator
  using XRL.World; // to abbreviate XRL.World.GameObject
  
  [PlayerMutator]
  public class MyPlayerMutator : IPlayerMutator
  {
      public void mutate(GameObject player)
      {
          // modify the player object before the game starts
      }
  }