Skip to content

Releases: Chalwk77/HALO-SCRIPT-PROJECTS

Mapcycle Manager - v1.0.4

12 Oct 03:39
Compare
Choose a tag to compare

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:

  1. Disable SAPP's built-in map cycle feature for this script to function correctly.
  2. 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

14 Jul 23:07
Compare
Choose a tag to compare

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.

  • /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.

  • /ip_admin_add 1 -l 6
    -...

Read more

Truce

17 Jun 22:08
Compare
Choose a tag to compare

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

18 Jun 20:03
Compare
Choose a tag to compare

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)

16 Jun 09:18
Compare
Choose a tag to compare

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

27 Aug 04:53
Compare
Choose a tag to compare

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...
Read more

Pre Game

18 Aug 00:27
Compare
Choose a tag to compare

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

07 Mar 22:58
Compare
Choose a tag to compare

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

25 Mar 20:35
6a02257
Compare
Choose a tag to compare
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:

  1. The server is restarted
  2. Your IP address changes
  3. 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:

  1. 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.
  2. 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.
  3. 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) ...
Read more

Halo Multi-Server (for PC & CE)

25 Mar 00:03
Compare
Choose a tag to compare

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.