MCPcopy Index your code
hub / github.com/EndurnyrProject/lifthrasir

github.com/EndurnyrProject/lifthrasir @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
3,315 symbols 7,425 edges 398 files 539 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Discord Link

Lifthrasir

A modern, cross-platform Ragnarok Online client implementation built with Rust and Bevy.

Overview

I always wanted to build this stuff, and since i wanted to learn Rust, why not? Will this ever be fully playable? Probably not, maybe, who knows?

Project Architecture

The architecture is fairly simple, everything is build following the Entity Component System (ECS) paradigm using Bevy as the game engine. The UI is built natively with Bevy.

Prerequisites

  • Rust (latest stable)
  • Ragnarok Online GRF Files - You must provide your own legitimate GRF data files

Required GRF Files

This client requires Ragnarok Online data files, which are proprietary to Gravity Co., Ltd. and are NOT included in this repository.

Getting Started

1. Clone the Repository

git clone git@github.com:EndurnyrProject/lifthrasir.git
cd lifthrasir

2. Install Dependencies

cargo build

3. Add Your GRF Files

Place your Ragnarok Online GRF files in the assets/ directory as described above.

4. Generate Derived Assets

cargo run -p ro-to-lifthrasir-cli -- convert

5. Run

cargo run -p lifthrasir

Building for Distribution

cargo build --release

Server

For now, its working only with Aesir

Contributing

Contributions are welcome! Please ensure: 1. Code follows Rust idioms and formatting (cargo fmt) 2. All tests pass (cargo test) 3. Clippy produces no warnings (cargo clippy) 4. Commits follow conventional commit format

Thank you

I shamelessly took a lot of code and ideas from these amazing projects:

Legal Notice

This project is not affiliated with, endorsed by, or connected to Gravity Co., Ltd. or any official Ragnarok Online server. Users must provide their own legitimate game data files and comply with all applicable terms of service. Gravity pls don't strike me :(

Extension points exported contracts — how you extend this code

FactorMaterial (Interface)
A material animated by a single 0..1 `factor` supplied by a `FactorRamp`. [3 implementers]
game-engine/src/presentation/rendering/effects/impact.rs
GrfReadable (Interface)
(no doc) [2 implementers]
ro-to-lifthrasir-cli/src/grf_vfs.rs
AssetSource (Interface)
(no doc) [3 implementers]
game-engine/src/infrastructure/assets/sources/mod.rs
EntityTargeted (Interface)
Marker trait for events that are entity-targeted. Implement this trait for events that should use the `EntityEvent` pat
game-engine/src/core/observers.rs
ActionLayout (Interface)
(no doc) [2 implementers]
game-engine/src/domain/entities/sprite_rendering/layout/trait_def.rs
AuthenticationService (Interface)
(no doc)
game-engine/src/domain/authentication/services.rs

Core symbols most depended-on inside this repo

insert
called by 290
game-engine/src/infrastructure/storage/file_cache.rs
iter
called by 193
game-engine/src/domain/assets/catalog.rs
get
called by 167
game-engine/src/domain/hotbar/model.rs
update
called by 159
game-engine/src/domain/effects/components.rs
push
called by 156
game-engine/src/domain/entities/movement/snapshot.rs
len
called by 104
game-engine/src/domain/assets/catalog.rs
read
called by 101
game-engine/src/infrastructure/assets/hierarchical_reader.rs
label
called by 98
lifthrasir-ui/src/theme/mod.rs

Shape

Function 1,946
Class 770
Method 479
Enum 114
Interface 6

Languages

Rust100%

Modules by API surface

net-aesir/src/proto/aesir.net.rs111 symbols
lifthrasir-ui/src/widgets/settings_window.rs111 symbols
lifthrasir-ui/src/widgets/skill_window.rs98 symbols
game-engine/src/domain/settings/resources.rs73 symbols
lifthrasir-ui/src/widgets/hotbar.rs62 symbols
lifthrasir-ui/src/widgets/inventory_window.rs55 symbols
lifthrasir-ui/src/widgets/status_window.rs51 symbols
lifthrasir-ui/src/screens/character_select.rs42 symbols
net-contract/src/events/zone.rs41 symbols
lifthrasir-ui/src/screens/character_create.rs35 symbols
game-engine/src/domain/effects/systems.rs31 symbols
game-engine/src/domain/assets/patterns.rs31 symbols

For agents

$ claude mcp add lifthrasir \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact