Moreno.Go-MorenoCore

command module
v0.0.0-...-c014c59 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2026 License: GPL-3.0 Imports: 2 Imported by: 0

README

A Go-based reimplementation of a 3.3.5a authentication and world server with configurable MySQL/MariaDB and SQLite storage, gameplay systems, scripting, and extraction tooling.

Status

This repository is being implemented against the MorenoCore4 reference at commit dcdbc0c5d88eb96f412f69c34bd5b9de2eed5df6. The product is known internally as MorenoCore. The parity manifest records translated, generated, and pending source areas. The project is not complete until every first-party server, script, and tool behavior has a verified Go implementation.

Run locally

From the repository root, go run . automatically uses bin/worldserver.conf when the ignored local package exists, otherwise it uses safe defaults in the current directory. From bin, launch MorenoCore.exe directly; --work is optional because the launcher resolves bin-relative databases, configs, data, and scripts from either location. It starts the authentication and world services together in the current console. Use go run . --auth or go run . --world to run only one service; these modes select authserver.conf and worldserver.conf respectively and none opens a separate console window. Add --debug to any of those three modes for basic listener, login, rejection, and session diagnostics. The launcher creates or migrates auth.db, characters.db, and world.db in the selected data directory when they are absent. Existing database files are opened after schema validation and migration; they are never reset automatically. An explicit --config always overrides automatic discovery.

The individual services are available with go run ./server/authserver and go run ./server/worldserver. Use --config, --backend, --data-dir, and --debug to select configuration, database backend, runtime data location, and terminal diagnostics. MySQL/MariaDB connection values are supplied through configuration or environment variables and are never embedded in the binaries.

Build and package layout

Use scripts/build.ps1 moreno for the combined executable, scripts/build.ps1 auth for AuthServer, scripts/build.ps1 world for the game/world server, or scripts/build.ps1 all for all three. Unix-like systems can use scripts/build.sh with the same target names. scripts/run.ps1 and scripts/run.sh run the combined service by default and accept auth or world for a single service.

The ignored bin/ directory is the local runtime package: place the three SQLite databases, custom authserver.conf and worldserver.conf, and lua_scripts/ there. The ignored data/ directory contains local maps, DBCs, VMAPs, and MMAPs. scripts/setup.ps1 or scripts/setup.sh accepts explicit SQL dump and WotLK data archive paths and never assumes a Desktop or deployment path.

Database input

The public SQL files contain schema only. Use go run ./tools/dbtool schema to derive public schema templates from explicit dump paths, go run ./tools/dbtool import-sql to convert local SQL dumps into SQLite files, go run ./tools/dbtool verify to check imported table and row totals, and go run ./tools/dbtool statement-audit --input-dir bin to prepare all 612 generated statements against the three local SQLite schemas. The statement audit is a schema/dialect gate; it does not replace fixture execution tests for parameters, results, transactions, or MySQL/MariaDB behavior. Local dumps and generated databases are ignored by Git.

Build and test

go test ./...
go test -race ./...
go vet ./...
go build ./...

Compatibility

The target is the wire, persistence, configuration, scripting, and runtime behavior of the checked-out reference. Compatibility work is tracked by subsystem and verified with differential fixtures rather than inferred from successful compilation alone.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
qtest command
engine
cli
world
Player::GetShieldBlockValue (Player.cpp:5426-5430) folds gear/enchant block value (state.Block, fed by HandleBaseModFlatValue(SHIELD_BLOCK_VALUE) for ITEM_MOD_BLOCK_VALUE, Player.cpp:7682-7683, proto->Block :7731, and enchantments :14217-14218) together with the 158 flat leg (AuraEffect::HandleShieldBlockValue, SpellAuraEffects.cpp:4212: plain HandleBaseModFlatValue add, player-only) and the strength term, then applies the 150 pct leg (AuraEffect::HandleShieldBlockValuePercent, SpellAuraEffects.cpp:4224: multiplicative ApplyBaseModPctValue on the base-pct mod, whose remove leg re-sets GetTotalAuraMultiplier over the remaining auras — identical to a live product fold).
Player::GetShieldBlockValue (Player.cpp:5426-5430) folds gear/enchant block value (state.Block, fed by HandleBaseModFlatValue(SHIELD_BLOCK_VALUE) for ITEM_MOD_BLOCK_VALUE, Player.cpp:7682-7683, proto->Block :7731, and enchantments :14217-14218) together with the 158 flat leg (AuraEffect::HandleShieldBlockValue, SpellAuraEffects.cpp:4212: plain HandleBaseModFlatValue add, player-only) and the strength term, then applies the 150 pct leg (AuraEffect::HandleShieldBlockValuePercent, SpellAuraEffects.cpp:4224: multiplicative ApplyBaseModPctValue on the base-pct mod, whose remove leg re-sets GetTotalAuraMultiplier over the remaining auras — identical to a live product fold).
pkg
server
authserver command
worldserver command
tools
dbtool command
generate command
logincheck command
luacheck command
mapextractor command
MorenoCore Map & DBC Extractor: extracts client database and map data from MPQs.
MorenoCore Map & DBC Extractor: extracts client database and map data from MPQs.
mmaps-generator command
MorenoCore MoveMap Generator: compiles navigation mesh tiles from map and vmap data.
MorenoCore MoveMap Generator: compiles navigation mesh tiles from map and vmap data.
mpq
Package huffman implements Blizzard's adaptive Huffman codec used by MPQ archives.
Package huffman implements Blizzard's adaptive Huffman codec used by MPQ archives.
packettrace command
parity command
scriptinventory command
terraincheck command
transportcheck command
vmap4assembler command
MorenoCore VMAP4 Tile Assembler: compiles building model geometry into runtime vmaps.
MorenoCore VMAP4 Tile Assembler: compiles building model geometry into runtime vmaps.
vmap4extractor command
MorenoCore VMAP4 Model Extractor: extracts raw WMO and M2 model geometry from MPQs.
MorenoCore VMAP4 Model Extractor: extracts raw WMO and M2 model geometry from MPQs.
worldstatecheck command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL