Releases: Chalwk77/HALO-SCRIPT-PROJECTS
Mapcycle Manager - v1.0.4
The Mapcycle Manager script enables server administrators to manage map rotations efficiently and facilitates seamless switching between classic and custom map rotations using simple commands.
Upon loading, the script initializes with a predefined set of classic maps and their corresponding
game types and placeholders for custom maps. Administrators can easily switch between five modes:
- Classic Mode: Loads a predefined rotation of classic Halo maps.
- Custom Mode: Loads a rotation of user-defined custom maps.
- Small Mode: Loads a rotation of small maps.
- Medium Mode: Loads a rotation of medium maps.
- Large Mode: Loads a rotation of large maps.
Map cycle randomization:
The shuffling feature is applied to map cycles marked as shufflable, randomizing their order each time the script is loaded. This ensures a fresh experience for players every time a shuffled cycle is used. If the current cycle is not shuffled, the index is set using the predefined order. Otherwise, the cycle starts on the first map.
Automatic Map Cycle Adjustments:
The script includes an optional feature that allows for automatic adjustments of the map cycle based on the current player count. When enabled, the script will dynamically change the map cycle to small, medium, or large maps based on the number of players in the game. This feature can be toggled on or off by the server administrator.
The commands for toggling the map cycles are simple and can be issued by admins:
COMMAND | DESCRIPTION |
---|---|
/custom | Set the map cycle to all custom maps. |
/classic | Set the map cycle to all classic maps. |
/small | Set the map cycle to small maps only. |
/medium | Set the map cycle to medium maps only. |
/large | Set the map cycle to large maps only. |
/nextmap | Load the next map in the current cycle. |
/prev | Load the previous map in the current cycle. |
/whatis | Provide information about the next map in the current cycle. |
/loadmap <map_name> <gametype_name> <mapcycle_type> |
Load a specific map and gametype from defined cycle. |
Prerequisites:
- Disable SAPP's built-in map cycle feature for this script to function correctly.
- Remove any commands that load maps from SAPP to avoid conflicts; this script is a drop-in replacement
for SAPP's built-in map cycle feature.
Copyright (c) 2024, Jericho Crosby jericho.crosby227@gmail.com
Admin Manager
Last Updated: 05/09/23 @ 09:24 (NZST)
This plugin is a drop-in replacement for SAPP's built-in admin system and adds new features:
Custom admins levels:
- You can add as many admin levels as you want (currently configured with 6).
- Configure each level to have access to any command you want.
- Admin levels follow a hierarchy system. If you add an admin by IP and Hash, the admin level will be the highest of the
two. - Players will inherit commands from the admin levels below their own.
Authentication:
- Add admins by IP, Hash or Username & Password.
- Passwords and usernames are case-sensitive but may contain spaces.
- Passwords are hashed with SHA-256.
Custom Ban Commands:
- IP-ban, hash-ban, text-ban and name-ban.
- You can text-ban by IP or Hash.
- You can name-ban by ID or name.
Command Spy:
- Those with permission will see commands executed by other players.
- You can only see commands executed by players with a lower or equal admin level than your own.
VIP messages:
- Customizable join messages for each admin level.
Admin Chat:
- Chat with other admins in a private text channel.
- You can only see messages from admins with a lower or equal admin level than your own.
Alias System:
- Lookup aliases by IP or Hash.
Admin Manager Commands:
Command | Description | Permission Level |
---|---|---|
login <password> |
Login with a password (username is your IGN) | 1 |
logout | Logout of the server | 1 |
admin_chat <1/0 (on/off)> |
Toggle admin chat on or off for yourself | 2 |
change_password <old password> <"new password"> |
Change your own password | 2 |
ip_mute <player id> <flag (-y -mo -d -h -m -s -r "example reason")> |
Mute a player by IP | 3 |
ip_unmute <ban id> |
Unmute a player's IP | 3 |
ip_mutes <page> |
List all muted players by IP | 3 |
hash_mute <player id> <flag (-y -mo -d -h -m -s -r "example reason")> |
Mute a player by hash | 3 |
hash_unmute <ban id> |
Unmute a player's hash | 3 |
hash_mutes <page> |
List all muted players by hash | 3 |
spy <1/0 (on/off)> |
Toggle command spy on or off for yourself | 3 |
ip_alias <player/ip> <page> |
Lookup aliases by player id or ip | 4 |
hash_alias <player/hash> <page> |
Lookup aliases by player id or hash | 4 |
ip_ban <player id> <flag (-y -mo -d -h -m -s -r "example reason")> |
Ban a player by IP | 4 |
ip_unban <ban id> |
Unban a player's IP | 4 |
ip_bans <page> |
List all IP-bans | 4 |
hash_admin_add <player id / -u "name"> <-l level> <-h hash> |
Add player as a hash-admin | 5 |
hash_admin_delete <admin id> |
Remove player as a hash-admin | 5 |
hash_admins <page> |
List all hash-admins | 5 |
ip_admin_add <player id / -u "name"> <-l level> <-ip IP> |
Add player as an ip-admin | 5 |
ip_admin_delete <admin id> |
Remove player as an ip-admin | 5 |
ip_admins <page> |
List all ip-admins | 5 |
hash_ban <player id> <flag (-y -mo -d -h -m -s -r "example reason")> |
Ban a player by hash (requires confirmation if the hash is pirated) | 5 |
hash_unban <ban id> |
Unban a player's hash | 5 |
hash_bans <page> |
List all hash-bans | 5 |
name_ban <player id or name> |
Ban a players name by ID or name | 5 |
name_unban <ban id> |
Unban a name | 5 |
name_bans <page> |
List all name bans | 5 |
pw_admin_add <player id / -u "name"> <-l level> <-p "password"> |
Add player as a password-admin | 5 |
pw_admin_delete <admin id> |
Remove player as a password-admin | 5 |
pw_admins <page> |
List all password-admins | 5 |
confirm | Confirm level delete | 5 |
change_level <player id> <type (hash/ip/password)> |
Change player admin level | 6 |
change_admin_password <player id> <"new password"> |
Change another player's password | 6 |
level_add <level> |
Add an admin level | 6 |
level_delete <level> |
Delete an admin level (requires confirmation) | 6 |
disable_command <command> |
Disables a command | 6 |
enable_command <command> |
Enables a command | 6 |
set_command <command> <level> (opt 3rd arg: "true" to enable, "false" to disable) |
Add or set a new/existing command to a new level | 6 |
Getting started:
Before you can add members of your clan/community as admins, you must first add yourself as an admin.
Access to the server terminal is required to do this (one-time only).
This can be done by following this procedure:
- Join the server.
- Execute one of the admin-add commands (hash_admin_add, ip_admin_add, pw_admin_add) from the server console.
Examples:
-
/hash_admin_add
1
-l 6
- This will add player 1 as a hash-admin with admin level 6.
- This will add player 1 as a hash-admin with admin level 6.
-
/hash_admin_add
-u "the Juan"
-l 5
-h 073949b8eb4c822cc71dbd3965009a2d
- This will add an offline player by the name
the Juan
as a hash-admin with admin level 5.
Technical notes:
The username must be encapsulated in quotes.
Do not encapsulate the hash.
- This will add an offline player by the name
-
/ip_admin_add
1
-l 6
-...
Truce
Truce with another player.
While in a truce, you cannot inflict damage on the other player.
COMMANDS
Command | Description | Permission Level |
---|---|---|
/request [player id] |
Send a truce request to a player. | 4 |
/accept [inbound request id] |
Accept a truce request Use /inbound to view your inbound request ids. |
4 |
/decline [inbound request id] |
Decline a truce request. Use /inbound to view your inbound request ids. |
4 |
/cancel [outbound request id] |
Cancel a truce request before it gets accepted Use /outbound to view your outbound request ids. |
4 |
/trucelist | Get a list of players that you are in a truce with. | 4 |
/inbound | Get a list of inbound requests. | 4 |
/outbound | Get a list of outbound requests. | 4 |
/untruce [truce id] |
Untruce a player. Use /trucelist to get the truce id |
4 |
INSTALLATION:
The release zip contains:
- Truce.lua (sapp script)
- Truce (folder)
Note: You will need a file decompression tool like WinRAR or 7-zip to extract the Truce.zip file (download at bottom of page).
Place the Truce.lua script in the servers Lua folder.
The Truce folder MUST go in the server's root directory (the same location as sapp.dll & strings.dll).
CONFIGURATION:
All configuration is done from within a file called settings.lua, located in the Truce folder.
Proximity Mines
Place super-explosive mines (disguised as health packs).
- To place a mine, press your flashlight key.
- When an enemy walks over them they explode.
- You cannot die by your own mines.
- Mines despawn after 60 seconds (by default).
- Players spawn with 20 mines per life.
- Compatible with all game modes.
[!] NOTE [!]:
This script is designed to work on maps with stock tags.
INSTALLATION:
The release zip contains:
- Proximity Mines.lua (sapp script)
- Proximity Mines (folder)
Note: You will need a file decompression tool like WinRAR or 7-zip to extract the Proximity Mines.zip file (download at bottom of page).
Place the Proximity Mines.lua script in the servers Lua folder.
The Proximity Mines folder MUST go in the server's root directory (the same location as sapp.dll & strings.dll).
CONFIGURATION:
All configuration is done from within a file called settings.lua, located in the Proximity Mines folder.
Troll (formally server fun plus)
Troll
Troll your players with a unique set of commands.
COMMANDS (note: some of these commands may not work on custom maps)
Command | Description | Permission Level |
---|---|---|
/enable (command) |
Enables a command | 1 |
/disable (command) |
Disables a command | 1 |
/crash (player) |
Crashes a player's game client | 1 |
/downunder (player) |
Make a player fall through the map | 1 |
/fdeath (victim) (killer) |
Broadcast fake death message | 1 |
/fjoin (player) |
Broadcast fake join message | 1 |
/fquit (player) |
Broadcast fake quit message | 1 |
/fchat (player) (message) |
Broadcast fake chat message | 1 |
/bgod (player) |
Broadcast message as "god" | 1 |
/invert (player) |
Invert player's controls (forward, backward, left, right) | 1 |
/nodamage (player) |
Prevent player from dealing damage | 1 |
/nuke (player) |
Kill player with a huge explosion (nuke) | 1 |
/randomkill (player) |
Kill random player | 1 |
/randomtp (player) |
Teleport player to a random location | 1 |
/roast (player) |
Set a player on fire | 1 |
/rocket (player) |
Launch a player high into the air | 1 |
/spam (player) |
Send a spam message to a player | 1 |
/scramble (player) |
Scramble a players chat messages | 1 |
INSTALLATION:
The release zip contains:
- Troll.lua (sapp script)
- Troll (folder)
Note: You will need a file decompression tool like WinRAR or 7-zip to extract the Troll.zip file (download at bottom of page).
Place the Troll.lua script in the servers Lua folder.
The Troll folder MUST go in the server's root directory (the same location as sapp.dll & strings.dll).
CONFIGURATION:
All configuration is done from within a file called settings.lua, located in the Troll folder.
Item Spawner 2022
An advanced item spawner mod.
Give yourself (or others) weapons, vehicles and equipment.
COMMANDS:
Command | Description | Permission Level |
---|---|---|
/clean (nil/id/me/*/all) (type [1: vehi, 2: weap, 3: eqip, 4: bipd, 5: proj, 6: everything]) |
Destroys cached objects | 4 |
/disable (command) |
Disable a command | 4 |
/enable (command) |
Enable a command | 4 |
/enter (object) (nil/id/me/*/all) (opt -amount [amount]) (opt -seat [seat #]) |
Enter a vehicle by id (or the one you're looking at) | 4 |
/give (object) (nil/id/me/*/all) (opt -amount [amount]) |
Give a weapon to yourself (or others) | 4 |
/itemlist (type [1: vehi, 2: weap, 3: eqip, 4: bipd, 5: proj, 6: everything]) |
List object catalog | 4 |
/spawn (object) (nil/id/me/*/all) (opt -amount [amount]) |
Spawn an object (vehi, weap, eqip, bipd, proj) | 4 |
/command_list | List all commands | 4 |
Command Examples:
COMMAND | DESCRIPTION |
---|---|
/give sniper | Give sniper to yourself |
/give sniper 1 | Give sniper to player 1 |
/give sniper 1 -amount 5 | Give 5 sniper rifles to player 1 |
/enter hog | Enter warthog at your current location |
/enter hog 1 | Enter player 1 into a warthog at their current position |
/enter hog 1 -amount 5 | Enter player 1 into 5 warthogs at their current position |
/enter hog 1 -seat 3 | Enter player 1 into the passenger's seat of warthog at their current position |
/enter hog 1 -seat 3 -amount 10 | Enter player 1 into the passenger's seat of 10 warthogs at their current position |
/enter hog 1 -seat * | Enter hog as gunner & driver |
/enter hog 1 -seat ^ | Enter hog as passenger & driver |
/enter - | Enter the driver seat of the vehicle you're looking at (so long as driver seat isn't occupied. If it is, it must belong to your team). |
/spawn hog | Spawn warthog at your current location |
/spawn hog 1 | Spawn warthog at player 1's position |
/spawn hog 1 -amount 5 | Spawn 5 warthogs at player 1's position |
/clean 1 1 | Destroy vehi objects for player 1 |
/clean 1 2 | Destroy weap objects for player 1 |
/clean 1 3 | Destroy eqip objects for player 1 |
/clean 1 4 | Destroy bipd objects for player 1 |
/clean 1 5 | Destroy proj objects for player 1 |
/clean 1 6 | Destroy all cached objects for player 1 |
PLAYER ID DEFINITIONS:
TYPE | RESULT |
---|---|
nil | Not specifying a player id will run the command for the executor |
number (1-16) | Execute command on specific player |
me | Defaults to command executor (same as nil) |
* | Executes command for all players |
all | Executes command for all players |
Settings:
-- Commands can be individually enabled or disabled:
--
commands = {
['clean'] = true,
['disable'] = true,
['enable'] = true,
['enter'] = true,
['give'] = true,
['item_list'] = true,
['spawn'] = true,
},
-- When true, a player's cached objects will be destroyed:
-- Default: false
--
destroy_objects_on_quit = true,
-- A message relay function temporarily disables the msg_prefix,
-- and will restore it to this when it's finished:
-- Default: **SAPP**
--
prefix = "**SAPP**",
-- Quantity of objects spawned unless specified:
-- Also applies to the enter-vehicle feature (for multi-vehicle control).
-- Default: 1
--
default_quantity = 1,
-- Max game objects that can be created:
-- Default: 200
--
max_game_objects = 200,
-- Objects will spawn this many world units in front of the player:
-- Default: 2.5
--
distance_from_player = 2.5,
-- List of available objects to /spawn, /give or /enter:
-- [!] FOR ADVANCED USERS ONLY!
--
game_objects = {
-- {tag class, tag name, item label, {list of commands to trigger}, number of seats}
--
{ "bipd", "characters\\cyborg_mp\\cyborg_mp", "Cyborg", { "cyborg" } },
-- Equipment: (give/spawn)
{ "eqip", "powerups\\full-spectrum vision", "Vision Spectrum Cube", { "vscube" } },
{ "eqip", "powerups\\health pack", "Health Pack", { "health", "hp" } },
{ "eqip", "powerups\\active camouflage", "Camouflage", { "camo", "camouflage" } },
{ "eqip", "powerups\\over shield", "Over Shield", { "overshield", "os", "sh" } },
{ "eqip", "weapons\\frag grenade\\frag grenade", "Frag Grenade", { "frag", "grenade", "fraggrenade" } },
{ "eqip", "weapons\\plasma grenade\\plasma grenade", "Plasma Grenade", { "plasma", "plasmagrenade" } },
-- Vehicles: (enter/spawn)
{ "vehi", "vehicles\\ghost\\ghost_mp", "Ghost", { "ghost" }, 1 },
{ "vehi", "vehicles\\rwarthog\\rwarthog", "R-Hog", { "rhog" }, 3 },
{ "vehi", "vehicles\\banshee\\banshee_mp", "Banshee", { "banshee", "banshee_mp" }, 1 },
{ "vehi", "vehicles\\c gun turret\\c gun turret_mp", "Turret", { "turret" }, 1 },
{ "vehi", "vehicles\\warthog\\mp_warthog", "Warthog", { "hog", "warthog" }, 3 },
{ "vehi", "vehicles\\scorpion\\scorpion_mp", "Tank", { "tank", "scorpion" }, 5 },
-- Weapons: (give/spawn)
{ "weap", "weapons\\gravity rifle\\gravity rifle", "Gravity Gun", { "gravitygun" } },
{ "weap", "weapons\\flag\\flag", "Flag", { "flag" } },
{ "weap", "weapons\\ball\\ball", "Skull", { "skull" } },
{ "weap", "weapons\\pistol\\pistol", "Pistol", { "pistol" } },
{ "weap", "weapons\\shotgun\\shotgun", "Shotgun", { "shotgun" } },
{ "weap", "weapons\\needler\\mp_needler", "Needler", { "needler" } },
{ "weap", "weapons\\plasma rifle\\plasma rifle", "Plasma Rifle", { "prifle", "plasmarifle" } },
{ "weap", "weapons\\flamethrower\\flamethrower", "Flamethrower", { "flame", "flamethrower" } },
{ "weap", "weapons\\plasma_cannon\\plasma_cannon", "Plasma Cannon", { "pcannon", "plasmacannon" } },
{ "weap", "weapons\\plasma pistol\\plasma pistol", "Plasma Pistol", { "ppistol", "plasmapistol" } },
{ "weap", "weapons\\assault rifle\\assault rifle", "Assault Rifle", { "arifle", "assaultrifle" } },
{ "weap", "weapons\\sniper rifle\\sniper rifle", "Sniper Ri...
Pre Game
Last Update: 13:22 - 24-08-22
Minor changes
A simple mini-game that runs before the main match.
Settings:
- Weapon: Assault Rifle
- Grenades: 2 Frags (no plasmas)
- Time Limit: Infinite
- Score Limit: No Limit
Pre-game runs until 3 or more players have joined, then LO3 (Live on Three) is executed and the map is reset.
After the map resets, the standard game-type settings (that you created) will kick in.
Works on all game modes (Slayer, CTF, Race, King, Oddball).
The time/score limits are infinite while the pre-game is running.
When the main match begins, these limits will be reset to whatever you have set for the main game type.
INSTALLATION:
- Extract Pre.Game.zip
- Put the PreGame folder in your server's root directory.
- Put Pre Game.lua in the Lua folder.
Ready to go Halo PC/CE Server templates
Halo Server Template Project
Last Update: 15 October 2024
This project provides two semi-ready Halo server templates: one for Halo: PC (Retail) and one for Halo: CE (Custom Edition). Both templates are compatible with Windows and Linux.
Default Settings:
- Map Vote: Enabled (all maps, Classic CTF)
- Startup commands: Editable in /cg/init.txt
- SAPP commands: Editable in /cg/sapp/init.txt
Note: No Lua scripts are pre-configured. You'll need to add these manually.
Running the Server
On Windows:
- Execute the
_run.bat_
file (located in the root folder).
On Linux (using Wine):
- Navigate to ./Wine Launch Files/ and execute the run.desktop file.
Rank System
Last Update: 23 April 2022 @ 11:28 AM NZST
- Bug fix for Rank Help.lua
Description
A fully integrated Halo 3 style ranking system for SAPP servers.
Players earn credits for killing, scoring and achievements, such as sprees, kill-combos and more!
Stats are permanently saved to a local database called ranks.json.
Players are required to create a ranked service record (account) in-game to use this mod.
See the command syntax section below to learn how.
If you have an existing account, your credits will be restored when you log into it.
Client login sessions are temporarily cached.
You will not have to log into your account when you quit and rejoin unless:
- The server is restarted
- Your IP address changes
- Your client port changes (depending on config, see more on that below)
In ./settings.lua, there is an option to cache sessions by IP only, or IP:PORT.
The default setting is IP:PORT.
This setting is recommended, otherwise, all players on that IP will share the same account.
This does, however, require that players always have the same port, otherwise, they will have to log into their account every time they join.
Technical Notes:
- Services records are not obfuscated. They are written in plain text, using the JSON file format.
However, in a future update, I plan on hashing account passwords. - The database cannot be edited in real-time.
If you make changes to it, you will have to restart the server for them to take effect. - A copy of the database is stored in a table and is manipulated throughout the game.
The database is updated with the contents of the table at the end of every game (and optionally during other events, as per the config).
COMMANDS:
Command | Description | Permission Level |
---|---|---|
/c (user) (password) |
Create new ranked account | -1 |
/l (user) (password) |
Log into ranked account | -1 |
/lo | Log out of your ranked account | -1 |
/cpu (current/new username) (current/new password) |
Change username & password You need to be logged in to change the username/password. |
-1 |
/ranks | See a list of available ranks | -1 |
/toplist | View list of top 10 players | -1 |
/prestige | Prestige and reset your stats | -1 |
/rank (player id [number]) |
View yours (or someone else's rank) | -1 |
/setrank (player [number]) (rank [number]) (grade [number]) |
Rank a player up or down | 4 |
SCORING:
Type | Credits |
---|---|
close call | (+2 cR) |
reload this | (+1 cR) |
headshot | (+1 cR) |
avenge | (+1 cR) |
revenge | (+1 cR) |
first blood | (+30 cR) |
winning a game of FFA | (+30cR) |
team win | (+30cR) |
team lose | (-5cR) |
scoring | (+5cR flag cap) (+5cR lap completed) |
killed by server | (-0cR) |
killed by guardians | (-5cR) |
suicide | (-10cR) |
betrayal (team games only) | (-15cR) |
spree | (+5cR every 5 consecutive kills). Script will award +50cR every 5 kills at or above 50. |
kill-combo | (+8cR for the first two kills.) Points increase by 2 for every kill after the fact: +10, +12, +14. Script will award 25 cR every 2 kills at or above a combo of 10. |
fall-damage | (-3cR) |
distance-damage | (-4cR) |
vehicle-squash ghost | (+5cR) |
vehicle-squash rocket-hog | (+6cR) |
vehicle-squash chaingun-hog | (+7cR) |
vehicle-squash banshee | (+8cR) |
vehicle-squash scorpion | (+10cR) |
vehicle-squash gun turret | (+1000cR) If you can manage this, you deserve +1000cR! |
ghost bolt | (+7cR) |
scorpion bullet | (+6cR) |
warthog bullet | (+6cR) |
gun turret bolt | (+7cR) ... |
Halo Multi-Server (for PC & CE)
Halo Server Project Release Notes
Last Update: 15 October 2024
This project contains 6 pre-configured Halo servers: three for PC (retail version) and three for CE (Custom Edition).
Update Log
- 15 October 2024: Revised all files and structure for improved organization and performance.
SERVER NAME | SERVER ID | SCRIPTS | SETTINGS |
---|---|---|---|
Badass #1 One In The Chamber | SV1 | - Notify Me - Server Logger - One In the Chamber |
No Lead: ON Map Vote: YES Maps: All stock maps Description: Each player is given a pistol—with only one bullet. Use it wisely; every shot counts. |
Badass #2 Gun Game | SV2 | - Notify Me - Server Logger - Gun Game |
No Lead: ON Map Vote: YES Maps: All stock maps Description: A simple progression-based game inspired by Call of Duty's Gun Game mode. Every kill rewards the player with a new weapon. The first player to reach the last weapon with 10 kills wins. |
Badass #3 Kill Confirmed | SV3 | - Notify Me - Server Logger - Kill Confirmed |
No Lead: ON Map Vote: YES Maps: All stock maps Description: Teams score by collecting dog tags (skulls) dropped by enemies upon death. The first team to reach 65 points wins. Dog tags will despawn after 30 seconds. Players will not be penalized points for suicide. |
Running the Servers
On Linux:
Navigate to ./Wine Launch Files/
and execute the desired SV#.desktop
file.
On Windows:
Execute the desired SV#.bat
file located in the root folder.
These servers do not require configuration (except for port forwarding) and are designed to run "out of the box." The port for each server can be edited in the relevant SV#.bat
or SV#.desktop
file.
Feel free to modify any settings to suit your needs. This project aims to help you get up and running quickly without excessive setup.