A fully-featured Minecraft server startup script

Overview

Hajime

Hajime logo

A fully-featured Minecraft server startup script suite that offers a friendly user interface, blazing fast speeds, and wide compatibility.

Discord

For discussion and development updates about Hajime, join our Discord at https://discord.gg/J6asnc3pEG!

Quick Installation

Use this command to install Hajime in one step. It will download and automagically compile the latest version available on GitHub.

curl https://raw.githubusercontent.com/Slackadays/Hajime/master/install.sh | sh

Like with all shell scripts, check the install.sh file first for any potentially malicious commands.

Why?

The Big Problem

Most other startup scripts are either bare-bones shell scripts or systemd services. Some utilities let you create a custom shell script for your server, but then you have to go a website and enter your server's information, copy that script, download it to the server, and more. Yuck! This "script" is a little different because it provides way more features and is always blazing fast thanks to being compiled C++.

Features

  • 100% FLOSS with the LGPL license!
  • Easy installation (full installation wizard coming soon).
  • Multiple server support through multithreading.
  • Compiles and works on most Linux, Windows, FreeBSD, and OpenBSD (and soon Mac) systems. Hajime currently does not compile on NetBSD, but binaries may run.
  • Configure every setting exactly how you want it.
  • Many customizable log messages to see what exactly happened.
  • Help and support available in our Discord server.
  • Can be compiled for every installation to suit every server's capabilities.
  • Uses memory-safe modern C++ features and true cross-platform compatibility.

Requirements

There are currently a couple prerequisites. You'll need a POSIX-compliant system, so this means Linux or FreeBSD or MacOS. Also, to use the one-step installation option and its compilation path, your platform will need to support the git and g++ packages.

Why C++?

I decided to make this script in C++ to help me learn it as well as get acceptable performance no matter how many features I add. There's also a lot of standard libraries available for C++ and that might be an advantage over something like shell script. Plus, "Modern C++" features are great for memory safety and beautifying code.

What's up With That Name?

"Hajime" is simply "begin" in Japanese. I know this because I hear it every time I train with my judo instructor.

Instructions (WIP)

Pre-compiled binaries (from the Releases page)

If you are using a precompiled binary, stay in this section. If you are compiling, skip this section. Download the latest version for your platform. Next, place it in a simple, memorable location. In my own server, I use ./media. Now, run sudo ./hajime -I to install the initial configuration file.

Using systemd to make Hajime a service

If you would like to make a systemd service, now run sudo ./hajime -S to make a systemd service file. By default, the file created is called hajime.service. If you would like a different name (for example, if you are running multiple servers) change the setting in the file hajime.conf. Now enable it using sudo systemctl enable hajimeto run Hajime on startup. Before rebooting, you must change the settings in the server.conf and hajime.conf files. Make server.conf by running sudo ./hajime -I again. server.conf is the settings file for an individual server object. This is done for future-proofing for future versions that may implement multithreading. hajime.conf is the settings file for the main program.

Compiling Your Own

It's easy to compile Hajime. First, download the files in the [source]./source/) section. Then, run this command:

g++ -std=c++20 -Ofast -o hajime hajime.cpp

Hajime requires at least C++17 to work and C++20 for future compatibility.

Using Hajime

Enable the systemd Service

This script is a cinch to actually use. To check its status, run sudo systemctl status hajime (or substitute "hajime" if you have renamed the systemd service file). This will display the messages sent by Hajime. For debugging, you may also run it manually.

Configure the Server

Once you run Hajime for the first time, create a "servers file" AND a "server file." Then, open server0.conf in a text editor and apply the needed settings.

Important Note

You must use the command "screen" in the server execution command for Hajime to work. This limitation will be removed in a future update.

Troubleshooting

If Hajime seems to not work after it's been running for a while, just restart it. This solves 99% of problems! You may also open an issue in the repository if you find functionality you don't believe is intentional

Issues
  • Add Hilltty's Flags implementation.

    Add Hilltty's Flags implementation.

    it doesnt build for macos on my actions for some reason i think theyre bork, should be fine i didnt test, should i?

    yo im back i tested it worked cool yea 👍🏿

    opened by derspyy 1
  • Windows stuff + formatting cleanup

    Windows stuff + formatting cleanup

    I did some normalization to the formatting (it is now all tabs and crlf)
    Also did some windows stuff, including the thing that detects if the program is still running

    Please don't mess up the formatting thanks

    opened by supsm 0
  • Arrow Up/Down Command History Works but is incorrectly displayed

    Arrow Up/Down Command History Works but is incorrectly displayed

    Describe the bug When using arrow keys to find a previously typed command, the text is displayed as ^[OA but the command works if you send it. You just can't see what you pulled from the history.

    Reproduction Bug can be reproduced on latest release of hajime, as well as latest build compiled from source.

    Expected behavior Show the command history normally.

    Other info Using latest build of Purpur, as well as Hajime.

    opened by bluestormhunter 1
  • Tab-Complete in Console works but is not displayed

    Tab-Complete in Console works but is not displayed

    Describe the bug Tab-Completing inside console works, but the completed Text is invisible. You can't see whether the correct subcommand has been completed.

    Reproduction Can be reproduced on latest hajime build (compiled from source). As well as previous Builds.

    Expected behavior See the full text of the tab-completed command.

    Other info Using latest Build of Purpur

    opened by bluestormhunter 0
Releases(0.1.11)
A fully-featured Falling-Sand game in the browser - Powered by WebAssembly

PLOP A fully-featured Falling-Sand game powered by WebAssembly! Try it out here Building Required Dev-Dependencies: clang uglifyjs $ git clone https:/

Caltrop 44 Jun 27, 2022
A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)

PolyMC is a custom launcher for Minecraft that focuses on predictability, long term stability and simplicity. This is a fork of the MultiMC Launcher a

null 1.4k Jun 22, 2022
MotorMC is a blazing fast, multi threaded, asynchronous Minecraft server software

MotorMC is a blazing fast, multi threaded, asynchronous Minecraft server software that aims to handle many players (1000+) on a single world while still providing an experience as close to vanilla Minecraft as possible.

Garet Halliday 59 Jun 6, 2022
Minecraft Classic 0.0.30a reimplemented in C.

MinecraftC - A 0.0.30a implementation in C Features True to the original version Implemented fully in C using SDL2 and OpenGL 1.1 Two different binari

John Payne 174 Jun 19, 2022
Replace Minecraft entity with MMD model.

KAIMyEntity Replace Minecraft entity with MMD model. KAIMyEntitySaba 将Github项目 benikabocha/saba (https://github.com/benikabocha/saba) 魔改成一个以JNI形式Expor

null 25 Jun 15, 2022
Minecraft 4k: decompiled, translated to C using SDL for graphics and input, and improved upon

M4KC Minecraft 4K - C Rewrite For those who don't know, Minecraft 4K was a stripped down version of Minecraft submitted by Notch to the Java 4K Game P

Sasha Koshka 30 Jun 15, 2022
A simplified version of the famous game Minecraft.

This program uses the concept of the famous game Minecraft but with better graphics. It procedurally generates an infinite world, the player has an animated character and can break blocks, there are also different biomes and mobs.

Angel Uriot 52 Jun 14, 2022
A voxel game/Minecraft clone for the iCE40 UP5K FPGA

FPGA craft A voxel game/Minecraft clone for the iCE40 UP5K FPGA (for the iCEBreaker board). Disclaimer Use this project at your own risk. This project

null 152 Jun 19, 2022
A Minecraft-clone written in C++/Vulkan

Minecraft A Minecraft-clone written in C++/Vulkan Current state It is currently very bare-bones. Planned features Textures Procedural generation Colli

null 4 Feb 27, 2022
Randomizes Minecraft's loot tables.

Minecraft Loot Randomizer Randomizes Minecraft's loot tables. Use Instructions To use this program, which you can either do via the provided exe file

bryceio 1 Oct 20, 2021
A Minecraft like game with basic rendering, movement, block placement.. All made from scratch

Voxel-Game-Demo A Minecraft like game with basic rendering, movement, block placement.. All made from scratch Downlod Pre-compiled binaries (executabl

null 1 Dec 30, 2021
📦 A familiar Minecraft Launcher with native support for macOS arm64 (M1)

ManyMC A familiar Minecraft Launcher with native support for macOS arm64 (M1) ⚠️ This is an UNOFFICIAL project. DO NOT report any issues to the MultiM

Minecraft Machina 425 Jun 26, 2022
A minecraft clone built in c++ opengl for the purpose of prefecting graphics programming skills.

LearnOpenGL - CLion This is a project template for OpenGL development with JetBrains CLion IDE. It was created mainly for LearnOpenGL tutorials. Inclu

Jeremy Dellock 1 Dec 28, 2021
StreamMinecraftClone - A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Minecraft Clone This is a Minecraft clone that will be used for an education YouTube series. I will link the YouTube series here once I begin creating

null 86 Jun 22, 2022
A third party program to change Minecraft RTX's settings externally, directly in-memory.

RenderBender A third party program to change Minecraft RTX's settings externally, directly in-memory. Get the latest release here. About RenderBender

Jesse Daems 9 May 14, 2022
Minecraft Classic Clone in C

Minecraft Classic Clone in C This was my first large-scale OpenGL project. I've personally never used OpenGL, and so I apologize for any bizzare/slopp

null 2 Jan 25, 2022
In this repository you'll find the fully reversed source code for GTA III (master branch) and GTA VC (miami branch).

Intro In this repository you'll find the fully reversed source code for GTA III (master branch) and GTA VC (miami branch). It has been tested and work

Zero 1 Nov 11, 2021
An open source implementation of the dark souls 3 game server.

What is this project? An open source implementation of the dark souls 3 game server. Idealistically made for the purpose of allow better alternatives

Tim Leonard 426 Jun 28, 2022
A repo of game server configuration files used by LinuxGSM

Game Server Config Files Note: This repo is very new and currently missing most config files. More will be added over time. This is a repo of config f

Game Server Managers 218 Jun 15, 2022