promotional bannermobile promotional banner
premium banner
RAVN (Roleplaying Attributes, Values, and Nodes) is an RPG modding API for defining and exposing character identity and progression.

Description

RPG-Attributes-Values-and-Nodes

RAVN (Roleplaying Attributes, Values, and Nodes) is an RPG modding API designed to define, store, and expose character identity and progression values. RAVN models characters as a network of composable nodes representing attributes, skills, experience, levels, ancestry, class, and narrative identity such as name and background.

RAVN Core 0.1.1 – API & Data Specification

Public API Surface

RavnApi

package com.ravnquest.ravncore.api;

public interface RavnApi {
    Registries registries();
    RavnEvents events();
    ApiVersion version();
}

The API is obtained through the provider:

RavnApi api = RavnApiProvider.get();

Registries

package com.ravnquest.ravncore.api;

public interface Registries {
    Registry<Ancestry> ancestries();
    Registry<Background> backgrounds();
    Registry<RavnClass> classes();
    Registry<Skill> skills();
    Registry<Attribute> attributes();
    Registry<ProgressionPath> progressionPaths();
}

Each registry is read-only at runtime.


Registry<T>

public interface Registry<T> {
    T get(String id);
    Collection<T> all();
}

Progression API

package com.ravnquest.ravncore.api;

public interface ProgressionApi {
    ProgressionService service();
}

Accessed through:

ProgressionApi api = ProgressionApi.Holder.get();

Events

package com.ravnquest.ravncore.api.event;

public interface RavnEvents {
    Event<PlayerJoinEvent> playerJoin();
}

Events are subscription-based and server-authoritative.


Bundled JSON Data (Authoritative)

All shipped data lives inside the JAR under:

/defaults/

These files define the canonical schemas.

Included Files

File Purpose
ancestries.json Playable ancestries
ancestry_traits.json Trait definitions
attributes.json Core attributes
background.json Backgrounds
classes.json Classes
skills.json Skills
progression_paths.json Leveling paths

JSON Contract Rules

  • id fields are globally unique
  • Cross-references must resolve at load time

Extension Rules

You may not override defaults. You may add new entries using identical schemas.

Custom data must match the shipped structure exactly.