Giter Club home page Giter Club logo

cuwo's Introduction

cuwo Build Status Build status

cuwo is an open server implementation for Cube World, written in Python and C++. It currently has the best protocol coverage among all the server projects out there, and has features like

  • Cross-platform support (Linux, Windows, Mac OS X, FreeBSD, what have you)
  • NPCs and mobs, just as in the regular server
  • File/console logging
  • MOTD message
  • Scripting (see the minimal welcome.py example)
  • Advanced configuration
  • Ban system
  • Commands (/kick, /say, /whereis, /setclock, /kill, /stun. etc.)
  • Rights management (/login password)
  • IRC bot
  • PvP script
  • DDoS prevention
  • Lower CPU requirements than normal server
  • Optimizations in C++
  • Master server on http://cuwo.org
  • Support for 40+ players
  • ... and much more!

Note that cuwo only supports x86 and x86-64, so it will not work on ARM.

Running

Windows

See the quick-start guide for a quick way to get started.

Alternatively, you can also build from source.

Source

Make sure you have Python >= 3.6, native compilers, and the following dependencies installed:

  • cython
  • pyrr

If you want IRC bot support, you will also need the irc3 package.

These packages can be installed with pip install cython pyrr irc3

To build cuwo, run python setup.py build_ext --inplace.

To run the server, run python -m cuwo.server.

For more information, see this guide.

Status

In terms of the protocol and features, the following has been implemented:

  • Player join/leave
  • Player movement and animations
  • Magic/arrows/etc. relay
  • Player hits on entities/other players
  • Item pickup/drop
  • Time management
  • Terrain generator
  • Interactive objects (doors, beds)
  • Preliminary support for Mobs and NPCs

A lot is still to be implemented gameplay-wise. Most importantly, NPCs and mobs have only recently been implemented, so expect some issues related to these.

Other features include

  • MITM proxy (for reverse-engineering)
  • Cube World/Qubicle model converter (tools/convertqmo.py)
  • Map viewer (tools/mapviewer.py)

FAQ

  • Q. I get ImportError: No module named 'cuwo.entity' when running cuwo.

  • A. See the instructions for running/building cuwo.

  • Q. How do I pronounce 'cuwo'?

  • A. 'coo-woo' (no, not 'kew-woh')

  • Q. I am not a programmer, and I can't reverse-engineer anything. How do I help?

  • A. We need people who can create end-user documentation as well! Have a look around, and see if anything is missing on the wiki.

  • Q. What is a MITM proxy?

  • A. A MITM proxy sits between your client and server, and can manipulate and inject packets. It's not really useful to the normal user, so use the regular cuwo server instead.

Special thanks

9th - help with RE
Andoryuuta - native RE
BLACKROCK - for help on passive packet
ChrisMiuchiz - native patches and RE
ColdMeekly - help with AMD 64bit troubleshooting
cs475x - website design
DRayX - encrypt.py and protocol RE
Endimmion - for his generous Pledgie donation
Favorlock - scripting and commands
Kainzo - testing
Kyle - master server JS
Lord_Nightmare - terraingen help and support with x86
MAT4DOR - cub model details
MazeXD - master server JS and design
Perl - protocol RE
Sarcen - help with protocol variables, scripting, anticheat
SLoW - scripting
Somer - help with some protocol variables
uwee - protocol variables
Xaymar - RE and character details
ZeZeene - web interface for master server

cuwo's People

Contributors

matpow2 avatar sarcengm avatar codyphobe avatar thereverend403 avatar mazexd avatar tehninth avatar tnutz avatar mid-kid avatar kyso avatar favorlock avatar remos avatar zafai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.