Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Noctera

A technical case study of extending Canary to build a custom Tibia server, web account platform, and database-backed progression systems.

Project currently paused.

Live Demo

Noctera Pass progression

Noctera Pass progression interface.

What is Noctera?

Noctera was a personal custom Tibia server built on top of Canary, an existing C++-based game-server engine.

My work focused on extending the existing platform through:

  • Lua gameplay systems.
  • SQL/MySQL persistence.
  • Game Store and economy customizations.
  • Progression and reward systems.
  • Custom world content.
  • A Next.js account platform.
  • A seasonal Battle Pass called Noctera Pass.

The original development repositories remain private. This repository is a documentation-focused engineering case study and does not contain the complete original source code or Git history.

At a glance

Area Description
Project type Custom Tibia server and web account platform
Server foundation Canary
Main custom system Noctera Pass / seasonal Battle Pass
Server work Lua, SQL, Game Store, progression and custom content
Web work Account platform, administration and Battle Pass interface
Integration model Shared MySQL database
Current status Paused

Architecture

The main integration model used a shared MySQL database between the web platform and the game server.

flowchart LR
    WEB["Noctera Web<br/>Next.js + React + TypeScript"]
    ORM["Prisma"]
    DB[("Shared MySQL database")]
    SERVER["Canary server<br/>C++ foundation + Lua extensions"]
    PASS["Noctera Pass progression"]
    STORE["Game Store and economy"]

    WEB --> ORM
    ORM --> DB
    SERVER --> DB
    SERVER --> PASS
    PASS --> DB
    SERVER --> STORE
    STORE --> DB
Loading

The Battle Pass used database-backed state rather than a direct REST API between Canary and Next.js.

Web platform

The web application was built with:

  • Next.js.
  • React.
  • TypeScript.
  • Prisma.
  • MySQL.
  • NextAuth.
  • Tailwind CSS.

It included account and character management, Battle Pass presentation and administration, reward configuration, and store/order-related functionality.

Web account platform

Web account platform

Character overview

Character overview

Game-server customization

The server customization focused on extending Canary's existing Lua and data-driven systems.

The work included:

  • Gameplay event hooks for progression.
  • Custom player commands.
  • Game Store categories and products.
  • Noctera-specific items and services.
  • Integration with Canary's Store Inbox delivery.
  • Custom economy behavior.
  • Player KV persistence.
  • Map, item, NPC, monster, boss and quest customization.
  • Progression and reward features.

This represents gameplay and platform customization on top of Canary. It does not represent building the Canary C++ engine from scratch.

Noctera Pass

The Noctera Pass was the main cross-repository feature.

It included:

  • Seasons.
  • Tasks.
  • Gameplay-based progression.
  • Season EXP.
  • Player ranks.
  • Rewards.
  • Web claims.
  • In-game claims.
  • MySQL persistence.

Gameplay progression was connected to experience gain, monster kills and item or loot acquisition.

The web application managed seasons, tasks and rewards, while the game server processed gameplay progression and in-game reward claims through shared database state.

Battle Pass administration

Battle Pass administration

The Noctera Pass reached a functional prototype stage across both repositories. Gameplay progression and database-backed claims were implemented, while some reward handlers and paid-rank activation remained incomplete when development was paused.

Other custom systems

Magic Wall Skins

A custom cosmetic system with a skin catalog, player selection commands, KV persistence and integration with Magic Wall creation.

Custom Upgrades

A timed upgrade system using KV persistence, scheduled expiration and training integration. Some upgrade behavior remained incomplete.

Noctera Shop and economy

Custom Game Store categories, Noctera products, Store Inbox integration, coins, services, consumables and Battle Pass products.

What I built vs. what came from Canary

Area Canary provided Noctera work
Server engine Existing C++ runtime and core systems Extended behavior through Lua and configuration
Networking Existing client/server protocols Used existing interfaces and event hooks
Database foundation Accounts, players, coins, VIP and store tables Added and integrated Noctera-specific data models
Game Store Existing catalog and purchase pipeline Added Noctera categories, products and services
Gameplay Existing event and scripting framework Added custom progression, cosmetics and upgrades
World content Existing Canary content Added and adapted Noctera content and balance
Web platform Not provided by Canary Built the Noctera account and Battle Pass platform
Battle Pass Not provided as a complete Noctera feature Designed and implemented the server/web system

Tech Stack

Web

TypeScript · Next.js · React · Prisma · MySQL · NextAuth · Tailwind CSS

Game server

Canary · Lua · MySQL · SQL · XML · KV persistence

Foundation

C++-based Canary server

Development approach

Noctera predates my current AI-assisted development workflow and was built primarily through traditional programming, codebase exploration and standard autocomplete tooling.

Project status

  • Project currently paused.
  • The original web and game-server repositories remain private.
  • This repository is a public technical case study, not a source distribution.

About the source

The original web and game-server repositories are private because they contain original source code, operational configuration and project-specific details.

This repository documents the architecture, custom systems, technical decisions and development work behind Noctera without exposing:

  • Credentials or secrets.
  • Webhooks or private keys.
  • Internal infrastructure details.
  • Database dumps or player data.
  • Production logs.
  • Non-redistributable assets.
  • The complete original source code or Git history.

Any Canary or third-party material remains subject to its respective license.

Documentation

About

Engineering case study of a custom Tibia/Canary MMORPG platform with Next.js, Lua, MySQL, and database-backed progression systems.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors