| title | Adapt — Complete CSS Page Example |
|---|---|
| description | A responsive Wiki.js landing page built from verified Adapt documentation and source |
| published | true |
| date | 2026-08-27 00:00:00 UTC |
| tags | meta, wikijs, css, layouts, adapt, examples |
| editor | markdown |
| dateCreated | 2026-08-27 00:00:00 UTC |
This page demonstrates a complete plugin landing page rather than an isolated component. It uses Adapt's real content model, current requirements, routes, and visual identity. The layout stays useful as ordinary documentation: navigation cards have real destinations, claims are verifiable, and important setup information is visible without reading the whole page.
Progression Play styles TragOul tree Start here Operators CSS notesThe rendered sections use raw HTML with inline CSS so the example remains self-contained in Git. Wiki.js must allow HTML and retain inline
styleattributes. The final section includes optional scoped CSS for interactive states that inline styles cannot express. {.is-info}
Skills that grow with the way you play. Earn knowledge through normal Minecraft activity, then shape a loadout of abilities that feels like yours.
Adapt does not ask players to choose a class before they understand the server. The things they already do reveal the skill lines that fit them.
Mine, sprint, build, fight, brew, explore, tame, or work underwater.
2Matching activity awards XP to its own line and raises that skill's level.
3Skill levels pay knowledge that can be spent inside that same skill line.
4Spend knowledge and shared ability power on the adaptations you want to carry.
Knowledge belongs to one skill. Pickaxes knowledge buys Pickaxes adaptations; it cannot be moved to Ranged or Agility.
Power is shared across the account. Every learned adaptation level uses one point, so a build always involves choices.
Understand skills, knowledge, and power →
The complete catalog contains twenty-three lines. These groups are starting points, not classes; a player can progress in any combination.
Build momentum on land, in the air, and underwater.
Agility · Kinetics · Seaborne ⚔Specialize in weapon rhythm, defense, range, or bare hands.
Swords · Ranged · Blocking · Unarmed ◆Turn mining, chopping, and excavation into specialized toolkits.
Pickaxes · Axes · Excavation ✦Build, craft, brew, and enchant with deeper utility.
Architect · Crafting · Brewing · Enchanting ⌖Reward discovery, dimensional travel, and mastery of time.
Discovery · Rift · Nether · Chronos ♧Grow through farming, companions, hunting, stealth, and adversity.
Herbalism · Taming · Hunter · Stealth · TragOulBrowse all 23 skills and 312 adaptations →
New players see the skills they have actually touched. The menu grows with their play instead of presenting a wall of unfamiliar choices.
Right-click the side of the configured activator block—a bookshelf by default—to inspect skills, spend knowledge, and manage adaptation levels.
Many adaptations work immediately. Active abilities use gestures that fit the action: sprint, jump, sneak, block, draw, break, or interact.
Open the menu, understand the two budgets, then find the exact trigger for an adaptation.
SERVER OPERATORSInstall the jar, decide the permission model, tune progression, then verify protection behavior.
PLUGIN DEVELOPERSQuery skills, deny or price ability use, register protectors, and listen for activation outcomes.
Place the shaded jar in plugins/ on each Paper, Purpur, or Folia backend. Adapt does not go on the proxy.
Adapt watches its root, skill, adaptation, and mutation TOML. Invalid edits are rejected while the active configuration keeps running.
Restart for: SQL, Redis, metrics, update checks, and integration discovery.
AUTHORIZEadapt.main gates the entire command tree. Gameplay use nodes default to true, while administrative command nodes default to operators.
Normal player progression does not require commands.
EXPANDThe late-game Mutation system starts disabled. It has two slots, domain requirements, switch cooldowns, and combat locking.
Read the integration behavior and failure modes →
Start with installation, browse every skill, or join the Volmit community for support.
TragOul is Adapt's blood skill. Taking damage raises the line; surviving a hit at four hearts or less pays bonus XP. Its fourteen adaptations trade pain, bones, health, and risk for recovery, retaliation, curses, servants, and corpse effects.
Adaptations under a skill are independent purchases, not prerequisite branches. The four branches below organize the complete TragOul set by behavior; they do not add unlock order or requirements. {.is-info}
Earn XP by taking damage and surviving it. Low-health survival pays extra.
These combinations illustrate how the nodes can work together. They are not presets, and the number of levels a player can hold still depends on ability power, server configuration, permissions, and adaptation costs.
Will of Pain restores life when an attacker connects. Soul Siphon rewards your counterattack. Last Rites creates one final escape window.
Servants fight under your mark. Their kills can feed Corpse Explosion, while Bone Harvest turns the battlefield into collectible recovery and buffs.
Marrow Armor softens large blows, Thorns answers the attacker, Curse of Frailty weakens it, and Blood Pact can turn pain into momentum.
A clear example of Adapt's risk-and-reward design: the player gains a temporary fighting pack but commits resources and maximum health while it remains alive.
- Trigger
- Sneak and right-click while holding bones.
- Resource
- Consumes bones; the required amount falls with level.
- Capacity
- One living servant per learned level.
- Tradeoff
- Each living servant lowers maximum health to a configured floor.
- Inheritance
- Servant attacks can use applicable TragOul effects such as siphon, curses, and plague.
- Lifecycle
- Servants expire; summoning at the cap recycles the oldest by default.
TragOul listens for damage to the player. A valid hit records the incoming raw damage, then awards XP when the skill cooldown is ready.
| Situation | Calculation | Result |
|---|---|---|
| Valid hit for 2 raw damage | 2 × 4.8 |
9.6 XP |
| Valid hit for 6 raw damage | 6 × 4.8 |
28.8 XP |
| The same 6-damage hit leaves the player at four hearts | (6 × 4.8) + 28 |
56.8 XP |
| Another hit arrives before the 450 ms award cooldown expires | Stats still record the hit; no new award | 0 XP |
| The player blocks the hit with a shield | Rejected before stats and XP | 0 XP |
| {.dense} |
The base award uses raw event damage. The low-health check uses the health that would remain after final mitigated damage. This distinction matters when armor, Resistance, or another plugin changes the final hit.
Nine TragOul adaptations add their own event XP on top of the skill's damage-received path.
| Adaptation | Config key | Default award |
|---|---|---|
| Blood Pact | xpPerProc |
24 per proc |
| Bone Harvest | xpPerGlobeSpawned |
8 per globe spawned |
| Corpse Explosion | xpPerMobHit |
6 per mob damaged by the nova |
| Soul Siphon | xpPerHeal |
3 per siphon heal |
| Skeletal Servant | xpPerSummon |
30 per summon |
| Marrow Armor | xpPerAbsorb |
8 per absorbed hit |
| Curse of Frailty | xpPerCurse |
5 per curse applied |
| Plague Bearer | xpPerInfection |
6 per infected mob |
| Last Rites | xpPerSave |
120 per death defied |
| {.dense} |
Adapt writes this file on first load:
plugins/Adapt/skills/tragoul.toml
| Key | Default | Meaning |
|---|---|---|
enabled |
true |
Registers and runs the TragOul skill |
skillColor |
"&b" |
Legacy color used in menus and messages |
showParticles |
true |
Shows TragOul's skill-level damage and death effects |
cooldownDelay |
450 |
Milliseconds between damage-received XP awards |
damageReceivedXpMultiplier |
4.8 |
XP paid per point of raw incoming damage |
lowHealthSurvivalXP |
28 |
Bonus XP after surviving at four hearts or less |
challengeTragReward |
500 |
Base knowledge reward for TragOul skill milestones |
takeAwaySkillsOnDeath |
false |
When enabled, death removes XP and lowers every learned TragOul adaptation by one level |
deathXpLoss |
250 |
XP removed by that optional death penalty, never below zero |
| {.dense} |
Example with the code defaults:
enabled = true
skillColor = "&b"
showParticles = true
cooldownDelay = 450
damageReceivedXpMultiplier = 4.8
lowHealthSurvivalXP = 28
challengeTragReward = 500
takeAwaySkillsOnDeath = false
deathXpLoss = 250Valid skill and adaptation TOML edits hot-reload. A malformed edit is rejected and the last valid in-memory configuration keeps running. Back up customized files before using an administrative default/reset command.
| File | Setting | Effect |
|---|---|---|
plugins/Adapt/adapt.toml |
xpCurve |
Converts TragOul XP into skill level |
plugins/Adapt/adapt.toml |
experienceMaxLevel |
Caps the skill line; the default is 1000 |
plugins/Adapt/adapt.toml |
powerPerLevel |
Builds the shared ability-power budget; default 0.65 |
plugins/Adapt/adapt.toml |
blacklistedWorlds |
Suppresses skill XP and adaptation effects in listed worlds |
plugins/Adapt/adapt.toml |
allowAdaptationsInCreative |
Allows adaptation effects in Creative when enabled |
plugins/Adapt/adapt.toml |
adaptationUsageConflicts |
Prevents configured adaptation pairs from running together |
| {.dense} |
The default ADAPT_BALANCED XP curve reaches skill level L at
100 × L² + 1200 × L XP. See
Configuration Math before changing the curve
or multiplier: they compound.
takeAwaySkillsOnDeath = true removes up to deathXpLoss XP and lowers each learned TragOul adaptation one level.
Global hardcore reset
Adapt's global hardcore reset takes precedence and wipes the player's complete skill data instead.
TragOul tracks damage survived and the number of hits received. The
trag.hitsrecieved spelling is intentional and matches the stored stat key.
| Advancement | Stored stat | Threshold | Knowledge reward |
|---|---|---|---|
challenge_trag_1k |
trag.damage |
1,000 |
500 |
challenge_trag_10k |
trag.damage |
10,000 |
1,000 |
challenge_trag_100k |
trag.damage |
100,000 |
2,500 |
challenge_trag_hits_500 |
trag.hitsrecieved |
500 hits |
500 |
challenge_trag_hits_5k |
trag.hitsrecieved |
5,000 hits |
1,000 |
| {.dense} |
Each adaptation has its own file under
plugins/Adapt/adaptations/<id>.toml. Every TragOul adaptation has five
levels. At default settings, one learned level also consumes one point from the
player's shared ability-power budget.
| Adaptation | ID | Main trigger | Initial / base / factor |
|---|---|---|---|
| Thorns | tragoul-thorns |
The player is struck | 4 / 4 / 0.72 |
| Globe of Pain | tragoul-globe |
The player lands a melee hit near other mobs | 4 / 4 / 0.72 |
| Will of Pain | tragoul-healing |
A living attacker damages the player | 4 / 4 / 0.72 |
| Corpse Lances | tragoul-lance |
A credited kill starts a seeking chain | 4 / 4 / 0.72 |
| Blood Pact | tragoul-blood-pact |
A sufficiently large incoming hit rolls a proc | 4 / 4 / 0.62 |
| Bone Harvest | tragoul-bone-harvest |
A credited kill can spawn a collectible globe | 4 / 4 / 0.72 |
| Corpse Explosion | tragoul-corpse-explosion |
A credited kill starts a bounded nova | 4 / 4 / 0.72 |
| Soul Siphon | tragoul-soul-siphon |
Credited final damage heals the player | 4 / 4 / 0.72 |
| Skeletal Servant | tragoul-skeletal-servant |
Sneak-right-click with bones | 5 / 5 / 0.75 |
| Marrow Armor | tragoul-marrow-armor |
A large hit while carrying bones | 4 / 4 / 0.72 |
| Curse of Frailty | tragoul-curse-of-frailty |
An attacker damages the player | 4 / 4 / 0.72 |
| Death Sense | tragoul-death-sense |
Passive scan of wounded nearby entities | 3 / 3 / 0.60 |
| Plague Bearer | tragoul-plague-bearer |
A marked poisoned or withered mob dies | 4 / 4 / 0.72 |
| Last Rites | tragoul-last-rites |
An incoming hit would be lethal | 6 / 6 / 0.85 |
| {.dense} |
The final column shows initialCost / baseCost / costFactor. Knowledge cost
for level L is max(1, baseCost + baseCost × L × costFactor), with the
initial cost added when buying level 1. Buying several levels pays every step,
not only the target level.
Every tragoul-*.toml adaptation file also carries these common keys:
| Key | Purpose |
|---|---|
enabled |
Registers and allows this adaptation |
permanent |
Prevents normal unlearning when enabled |
showParticles |
Allows this adaptation's particle effects |
showSounds |
Allows this adaptation's sounds |
initialCost |
Extra knowledge charged for level 1 |
baseCost |
Starting value in the per-level knowledge formula |
costFactor |
Growth applied as levels rise |
maxLevel |
Highest purchasable level |
| {.dense} |
| Adaptation | Tracked achievement | Thresholds and rewards |
|---|---|---|
| Thorns | Damage reflected | 500 → 400, 5,000 → 1,500; one-off reflected kill |
| Globe of Pain | Mobs sharing damage | 1,000 → 400; one-off five-target share |
| Will of Pain | Health stolen | 500 → 400, 10,000 → 1,500 |
| Corpse Lances | Lances connected / lance kills | 200 → 400; 100 kills → 1,000 |
| Blood Pact | Health sacrificed / empowered kills | 200 → 400; 500 kills → 1,000; one-off all-in kill |
| Bone Harvest | Globes collected | 500 → 300, 5,000 → 1,000 |
| Corpse Explosion | Mobs detonated | 500 → 400, 5,000 → 1,500 |
| Soul Siphon | Health siphoned | 500 → 400, 10,000 → 1,500 |
| Skeletal Servant | Servants summoned | 50 → 400, 500 → 1,500 |
| Marrow Armor | Damage absorbed | 500 → 400, 5,000 → 1,500 |
| Curse of Frailty | Curses applied | 100 → 400, 1,000 → 1,500 |
| Death Sense | Wounded prey sensed | 1,000 → 600 |
| Plague Bearer | Mobs infected | 100 → 400, 1,000 → 1,500 |
| Last Rites | Deaths defied | 5 → 500, 50 → 2,000 |
| {.dense} |
Skeletal Servant shows the level of control available in a single adaptation file:
plugins/Adapt/adaptations/tragoul-skeletal-servant.toml
| Key | Default | Behavior |
|---|---|---|
boneCostBase |
8 |
Bones required at the start of the level scale |
boneCostReduction |
5 |
Reduction at full level percent; final cost never below 1 |
durationTicksBase |
400 |
Base servant lifetime |
durationTicksFactor |
800 |
Lifetime added at full level percent |
cooldownMillisBase |
10000 |
Base summon cooldown |
cooldownMillisFactor |
9000 |
Cooldown removed at full level percent; final cooldown never below 1000 ms |
servantCapPerLevel |
1.0 |
Living servants allowed per learned level, hard-capped at 16 |
replaceOldestAtCap |
true |
Recycles the oldest servant instead of rejecting a summon |
playerThreatWindowMillis |
5000 |
Time the last attacker or attacked target remains the pack's mark |
gearChancePerPiece |
0.55 |
Chance for each armor slot to receive gear |
enchantChanceBase |
0.0 |
Starting enchant chance |
enchantChanceFactor |
0.45 |
Enchant chance added at full level percent |
bowChance |
0.3 |
Chance to spawn with a bow instead of a sword |
healthBonusPerLevel |
3.0 |
Servant maximum-health points added per learned level |
attackBonusPerLevel |
1.0 |
Servant attack-damage points added per learned level |
retargetIntervalTicks |
20 |
Delay between retarget passes |
targetSearchRadius |
12 |
Hostile-mob search radius, capped at 24 |
xpPerSummon |
30 |
TragOul XP awarded per successful summon |
healthCostEnabled |
true |
Enables owner maximum-health upkeep |
healthCostPerMinion |
2.0 |
Owner maximum-health points removed per living servant |
minimumOwnerMaxHealth |
4.0 |
Lowest maximum health the upkeep may leave |
| {.dense} |
Servants do not burn in daylight, drop no loot, and expire. Their gear scales with level. They inherit applicable TragOul combat effects and route their kills through Corpse Explosion. Creative mode skips the bone cost.
| Gate | Default behavior |
|---|---|
| Skill permission | adapt.use.tragoul, default true |
| Adaptation permission | adapt.use.<id-without-hyphens>, such as adapt.use.tragoulthorns, default true |
| Unset use node | Treated as allowed; explicitly set a node to false to deny it |
| Operator/debug bypass | Operators and players in Adapt debug mode bypass use checks |
| World | No XP or effects in blacklistedWorlds |
| Game mode | Effects refuse Spectator and, by default, Creative |
| Protection | Every registered protector must allow the action and location |
| API policy | Another plugin may deny use through Adapt's ability-use policy or cancellable event |
| Conflicts | A learned adaptation named in adaptationUsageConflicts blocks the configured pair |
| Profile readiness | An unsafe, unloaded, or retired player profile keeps Adapt inactive for that session |
| {.dense} |
Players normally open the skill from the bookshelf activator. /adapt gui
opens the same interface but requires adapt.gui, which defaults to operators.
| Symptom | Check |
|---|---|
| Taking damage gives no TragOul XP | Confirm the skill is enabled, the world is not blacklisted, adapt.use.tragoul is not denied, the player is not invulnerable, and the hit was not blocked with a shield |
| Some hits count but do not pay XP | The 450 ms default award cooldown suppresses rapid payouts; damage and hit stats continue to accumulate |
| TragOul is absent from a new player's menu | With guiShowAllSkills = false, untouched skills stay hidden until the player earns XP, knowledge, or a level |
| An adaptation is learned but silent | Check both enable flags, the dynamic use node, game mode, world blacklist, protector result, configured conflicts, API policy, and profile readiness |
| Skeletal Servant will not summon | Sneak-right-click with bones, wait for cooldown, verify free capacity or replaceOldestAtCap, and confirm the player can pay the bone and health costs |
| A TOML edit appears ignored | Check the console for a rejected parse; Adapt keeps the previous valid snapshot when the new file is malformed |
| Integration-dependent behavior is missing | Restart after installing or enabling integrations; Adapt discovers optional plugins only while enabling |
| {.dense} |
Numeric defaults above describe the audited Adapt build. Server owners can change every listed TOML value, disable the skill or an adaptation, and alter the global XP and power curves. Diagnose the server's live files rather than assuming defaults. {.is-warning}
Open the complete per-adaptation mechanics and configuration →
| Token | Value | Use |
|---|---|---|
| Adapt red | #d82f35 |
Primary actions, active steps, important numbers |
| Bright red | #ef393e |
Decorative glow, borders, and large accents |
| Charcoal | #191719 |
Hero, operator cards, grounded contrast |
| Neutral surface | rgba(127,127,127,.055) |
Theme-tolerant cards |
| Neutral border | rgba(127,127,127,.25) |
Separation in light and dark themes |
| Large radius | 17px–26px |
Branded panels and hero |
| {.dense} |
The page uses the red and charcoal identity visible in Adapt's logo and store art. Red is reserved for hierarchy and action; most cards remain neutral so a long documentation page does not become visually exhausting.
Every major multi-column region uses the same intrinsic grid pattern:
display: grid;
grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
gap: 1rem;Cards create as many columns as fit and stack when their minimum width no
longer fits. clamp() scales hero spacing and typography without a breakpoint.
Action rows use flex-wrap, and code-like values live inside elements that can
wrap instead of forcing horizontal page overflow.
Inline styles cannot define :hover, :focus-visible, or reduced-motion
preferences. The following can be placed in the Wiki.js CSS Override when the
page wrapper uses class="adapt-showcase". The prefix keeps the rules from
changing unrelated documentation.
.adapt-showcase {
--adapt-red: #d82f35;
}
.adapt-showcase a {
text-underline-offset: 0.18em;
}
.adapt-showcase a:focus-visible {
outline: 3px solid #fff;
outline-offset: 3px;
box-shadow: 0 0 0 6px #72161a;
}
@media (prefers-reduced-motion: no-preference) {
.adapt-showcase .interactive-card {
transition:
transform 160ms ease,
border-color 160ms ease,
box-shadow 160ms ease;
}
.adapt-showcase .interactive-card:hover {
transform: translateY(-3px);
border-color: rgba(216, 47, 53, 0.55);
box-shadow: 0 12px 28px rgba(36, 12, 14, 0.14);
}
}Hover is decorative only. Links, headings, descriptions, and actions remain visible without it. The fixed dark panels declare their own text colors; all neutral panels inherit the active Wiki.js theme color.
For additional individual components and alternative page structures, see the Wiki.js CSS & Layout Gallery.
