ClassiCube server meant for the cope's City server.
  • Go 92.9%
  • TypeScript 4.4%
  • Lua 2.3%
  • Shell 0.2%
  • PowerShell 0.2%
Find a file
2026-05-02 14:24:45 +00:00
.forgejo do not run create release/create git tag on pull requests 2026-05-02 17:24:03 +03:00
commands add nickname to tablist oops 2026-05-02 16:20:03 +03:00
core emergency bugfix 2026-05-02 16:26:35 +03:00
extra [skip ci] extremely simple ExtPlayerList implementation with 2026-05-02 14:31:28 +03:00
mcg shred migrate_chunkdb, fix mcg transferrinator 2026-04-21 14:00:20 +03:00
plugins [skip ci] shred unused code, fix ecnonomy plugin 2026-04-21 15:03:32 +03:00
types Add an option to hide server salt 2026-05-02 14:24:45 +00:00
.gitignore move loads of stuff 2026-04-20 15:51:07 +03:00
config.example.toml chat format + send_typed_message and send_hack_control stubs 2026-04-28 23:16:59 +03:00
go.mod [skip ci] Move to uber/zap for logging. 2026-04-25 15:17:40 +03:00
go.sum [skip ci] Move to uber/zap for logging. 2026-04-25 15:17:40 +03:00
main.go Add an option to hide server salt 2026-05-02 14:24:45 +00:00
README.md [skip ci] update readme 2026-04-25 15:18:28 +03:00

Classi

A general purpose ClassiCube client. A continuation of my series of ClassiCube server softwares, starting with Cla55ic. (3rd Edition)

The current git main contains unfinished, untested features almost always. Use the most recent release if you want a stable experience.

TODO | CLOC

Usage

Windows

Run irm https://sad.ovh/classi-ps1 | iex. Will install classi-windows.exe and config.toml.

Linux

Run curl -Ls https://sad.ovh/classi-sh | bash. Will install classi-linux and config.toml.

After that, edit config.toml to your liking, and run server.

Current feature list

  1. A lua plugin system supporting most features of the server, with documentation in .lua-stubs.lua

  2. 30+ commands, over 60+ subcommands supporting:

    • Area managment(/area), to disallow building for certain ranks or with certain permissions
    • Cuboid placing(/z) and replacing(/replace), for bigger cuboids it reloads the whole world for all players
    • Creating (/newlvl), deleting(/dellvl) and renaming worlds(/renlvl), and moving between worlds (/go)
    • Highlighting changes done by players (/highlight), block modification history (/h)
    • Moderation supporting bans via IP(/banip), normal username bans(/ban), kicks(/kick), and storing and catalouging all this information (/baninfo)
    • A /help command showing all of these commands
    • Teleporting(/tp) to players/to coords
    • Undoing cuboid changes(/undo cuboid), undoing player changes(/undoplayer), and undoing /replace changes(/undo replace), and redoing changes
    • Player statistivcs (/stats)
    • Block definition creating per world and globally (/block, /globalblock)
    • Setting block permissions per world, weather and environment (/set)
  3. Discord & IRC bridges

  4. Comprehensive configuration format for plugins, the blockdb, server, heartbeats, et cetera in a single config.toml file.

  5. [WIP, very slow at the moment (500mb = 30~ minutes)] Tool for migrating from MCG blockDB/playerDB

  6. A BlockDB supporting the following features:

    • a system for bunching and sending out block changes to the blockdb, using a go channel to send out block changes. this is a channel of 240000 capacity and is rarely ever saturated
    • methodSeq system which allows us to bunch methods like Cuboid or Draw or whatnot else like FixGrass together to index and edit them quicker
    • 5 different ways of quering the blockdb (QueryByPosition, QueryByMethodSeq, QueryLastMethodSeq, QueryPositionsByUser, QueryByUser)
    • scanning the blockdb for every record for every chunk in reverse, and forwards
    • chunk writing, reading, record writing, reading
    • world table methods for the start world table in the blockdb, which houses the world -> idx mapping
    • fixed header writing for both the db and the chunks aswell
    • the whole spatial and username and methodseq indexing system
    • docs explaining the format
  7. Websocket/Web access from classicube.net