> For the complete documentation index, see [llms.txt](https://pro-hytale-mods.gitbook.io/pro-hytale-mods-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pro-hytale-mods.gitbook.io/pro-hytale-mods-docs/server-administrators/mmoskilltree-integration.md).

# MMOSkillTree Integration

## MMOSkillTree x PartyPro Integration

PartyPro integrates with MMOSkillTree to display skill levels in the party HUD and enable skill-based XP sharing among party members.

### Features

#### Skill Level Display in HUD

When MMOSkillTree is installed, players can choose which skill level to display in the party HUD. Each player can select their preferred skill independently.

The format is configurable in `config.json`:

```json
{
  "mmoSkillTreeIntegration": true,
  "mmoSkillTreeFormat": "Lv.{level}"
}
```

Format examples:

* `"Lv.{level}"` → "Lv.42"
* `"[{level}]"` → "\[42]"
* `"Level {level}"` → "Level 42"

#### Available Skills

Players can choose from:

* **NONE** - Don't display any skill level
* **TOTAL** - Display the sum of all skill levels
* Individual skills (SWORDS, MINING, WOODCUTTING, BUILDING, etc.)

#### Skill-Based XP Sharing

Party members can share skill XP when they have the **same skill selected** in their HUD settings. This creates focused skill groups within parties.

**Key Feature:** XP is only shared between players who have selected the same skill. If Player A has "BUILDING" selected and Player B has "MINING" selected, they won't share XP with each other.

### Configuration

The integration uses a separate config file: `PartyPro/MMOSkillTree_x_PartyPro.json`

```json
{
  "enabled": true,
  "groupMultiplier": 1.0,
  "maxShareDistance": -1,
  "killerGetsFullXP": false,
  "defaultEnabledForNewParties": true,
  "requireSameSkill": true
}
```

#### Settings

| Setting                       | Type    | Default | Description                                            |
| ----------------------------- | ------- | ------- | ------------------------------------------------------ |
| `enabled`                     | boolean | true    | Global enable/disable for XP sharing                   |
| `groupMultiplier`             | double  | 1.0     | XP multiplier for party members (1.0 = 100%)           |
| `maxShareDistance`            | double  | -1      | Max distance in blocks for XP sharing (-1 = unlimited) |
| `killerGetsFullXP`            | boolean | false   | If true, earner gets 100% XP + others get multiplier%  |
| `defaultEnabledForNewParties` | boolean | true    | Default XP sharing state for new parties               |
| `requireSameSkill`            | boolean | true    | Only share XP if both players have same skill selected |

#### XP Distribution Modes

**Mode 1: Split XP** (`killerGetsFullXP: false`)

* Total XP is split evenly among all eligible party members
* Each member gets: `(baseXP × groupMultiplier) / memberCount`

**Mode 2: Bonus XP** (`killerGetsFullXP: true`)

* XP earner gets full XP (100%)
* Other party members get: `(baseXP × groupMultiplier) / memberCount`

#### Same Skill Requirement

When `requireSameSkill` is `true` (default):

* Only players with the **same skill selected** receive shared XP
* Example: If you're training BUILDING, only party members who also have BUILDING selected will receive XP
* Players with NONE or TOTAL selected don't participate in XP sharing

When `requireSameSkill` is `false`:

* All online party members receive shared XP regardless of selected skill

#### Distance Restriction

Set `maxShareDistance` to limit XP sharing range:

* `-1` = No distance limit (default)
* `50` = Only members within 50 blocks receive XP
* `100` = Only members within 100 blocks receive XP

Members in different worlds never receive shared XP.

### In-Game Usage

#### Selecting a Skill to Display

1. Open the party menu (`/p`)
2. Go to the "Skills" tab (only visible when MMOSkillTree is installed)
3. Click on a skill to select it
4. Your selected skill level will appear in the party HUD

#### Enabling XP Sharing

1. Open the party menu (`/p`)
2. Go to the "Skills" tab
3. Toggle "Share Skill XP with Party"

**Note:** Only the party leader can enable/disable XP sharing.

#### Notifications

When XP is shared, party members receive a notification showing how much skill XP they received.

### Technical Details

#### Soft Dependency

PartyPro uses reflection to integrate with MMOSkillTree. If MMOSkillTree is not installed, the integration features are simply disabled - no errors or crashes.

#### Level Caching

Skill levels are cached and refreshed every 2 seconds to avoid performance issues. This means level-ups may take up to 2 seconds to appear in the HUD.

#### XP Detection

Since MMOSkillTree doesn't have an XP event system, PartyPro uses polling to detect XP changes. XP values are checked every 2 seconds (during the level refresh cycle) and distributed when gains are detected.

#### Thread Safety

All skill data is read from the EntityStore on the WorldThread to ensure thread safety. The cached values are used for HUD display and XP tracking.

### Troubleshooting

#### Skill levels not showing

1. Check that `mmoSkillTreeIntegration` is `true` in config.json
2. Verify MMOSkillTree is installed and working
3. Make sure you've selected a skill in the Skills tab (not NONE)
4. Restart the server after installing both mods

#### XP not being shared

1. Ensure XP sharing is enabled in the party menu (leader must enable it)
2. **Check that both players have the same skill selected** (most common issue!)
3. Make sure the selected skill is not NONE or TOTAL
4. Check that party members are online
5. If using distance restriction, verify members are within range
6. Check server logs for any error messages

#### Wrong total level displayed

Make sure you're using PartyPro 0.8.8+ which uses `getSummedTotalLevel()` for accurate total level calculation.

### Version Compatibility

| PartyPro | MMOSkillTree | Status      |
| -------- | ------------ | ----------- |
| 0.8.8+   | 0.8.0+       | ✅ Supported |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://pro-hytale-mods.gitbook.io/pro-hytale-mods-docs/server-administrators/mmoskilltree-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
