# Killing Fever Online @Crystalwarrior's server overhaul is finally here! A long-teased prospect has been finished over the course of two weeks. "What is the purpose of this?" - Simple. Code bad, code rewritten, code now better. And now you have a treasure trove of amazing features with it as well thanks to better and cleaner code tremendously increasing the speed by which new features could've been introduced. ## Server Rewrite Changelog ***PLEASE NOTE*** as this was a massive two-week one-coder project there may be _new bugs_ even with _old functionality!_ If you discover an issue, please make an [issue report](https://github.com/Crystalwarrior/KFO-Server/issues) or in `#botchwatch` on the KFO discord. Let me go over everything this introduces **so far**... ### Casing Features Return - If you are familiar with Vanilla or Case Cafe, all of the Casing features have been properly transferred. - Each area can once again have /status, /doc, playercounts and etc. - Your area list will now properly display such information as CMs, number of players, status of the area, etc. - There is now an /afk system allowing you to inform others when you go afk. - Jukebox system allows the area to replace on-demand song playing with a "playlist" system. - CMs are now treated as per-area managers. - There is no longer a distinction behind "master" CMs - every CM is equal. - If this is abused in any way, swiftly contact the moderation team to help you resolve such a situation. - Testimony System is now implemented. Further explanation below. #### New Testimony System - You can now record casing testimonies for playback! - To initiate, someone must be a /cm of the area in a pos unlocking judge buttons (GMs count as CMs for all areas). - Someone must state the testimony title next. It *must* start with `--` and end with `--` e.g. `--This is my Testimony--` (it can be centered with `~~--Testimony--`) - Once the testimony title is posted, the Judge must press the **Witness Testimony** button, and the Testimony Recording will begin. Every message said after that point will be recorded as testimony. - Once the testimony is finished, someone has to say "end". As long as the message contains these three letters *only* (meaning punctuation marks and other fancy symbols are ignored), it will count as an ending to the testimony. You can say a simple `end` or go for a fancy `==>!!END!!<==` if you're feeling cheeky. - After that point, testimony is recorded and can be accessed with /testimony by anyone to see its contents. - The CM can replay the testimony title, alerting everyone the testimony has begun (and stopping testimony recording if there still was one), by using the **Cross-Examination** judge button. - Anyone (preferably the defense attorney) can use the `>` symbol to progress to next statement, `<` to progress to previous statement, and `>4` or `<4` to jump straight to statement 4. - Witnesses can *add* a new statement after the last accessed one using `++Message`, or `**message` to *amend* (replace) it. - The CM of the area can also use these commands: - testimony \[idx] -- Display the currently recorded testimony (indexes will be visible). Optionally, index can be passed to move to that statement. Can be used by anyone. - testimony_clear -- Clear the current testimony. - testimony_remove \<idx\> -- Remove the statement at index. - testimony_amend \<idx> \<msg> -- Edit the spoken message of the statement at index. - tl;dr shits wack, there's no hardcoded pos restrictions so you don't have to use it for just casing either. Go wild! ### Killing Fever Online features - /help has been greatly overhauled - it is now a categorized list of all available on-server commands. /help will ALWAYS be the most up-to-date command information. Standalone command documentation pending. - Hub system, area links have been greatly overhauled according to [this brainstorm](https://github.com/Crystalwarrior/KFO-Server/issues/1). While the linked issue is a more technical post, hub system summary will come next. #### Whispering - You can now whisper using /w \<msg> or /w \<id(s)> \<msg> in the in-character chat. id is character ID obtainable from /getarea. If no ID is provided, you will whisper to everyone on the same position as you. #### Listen to Position - You can listen to your current position with /listen_pos. - Any messages outside of that position will be transferred to your OOC. - To undo, /unlisten_pos. #### Specator System - You no longer need to use the "Spectator" character. All you have to do is press the "Spectator" button at the bottom of the character list. - It no longer disappears, either, and you can speak in OOC when you're a spectator. You can switch back and forth with no trouble anymore. I made AO2's shit work. - /switch -1 and /switch Spectator both work as well. #### Hiding in Evidence - Yes, you heard me right. You can now ***hide in evidence***. - As a player, you use /hide \<name> or /hide \<idx> where id is the evidence index. - As a CM, you need to make sure: - Your area's /evidence_mod is HiddenCM - That piece of evidence \<can_hide=1> - As a CM you can also set it up so: - Hiding in evidence reveals hidden pathways: - /onelink 4 (create one-way link to area 4) - /link evidence 0 (link evidence at index 0) - Now when you /hide in that evidence as a player, you'll see the path! #### Hub System - /doc is back to being per-area. Use /info to define hub-specific information. - CMs are no longer the top dog - The Elder Game Masters have finally arrived to assert their dominance. /gm to become a GM of the hub, /ungm to stop being a GM. - gm \<id> -- Grant that person GM status - ungm \<id> -- Remove GM status from that person - There is no longer a distinction behind "master" GMs - every GM is equal. - If this is abused in any way, swiftly contact the moderation team to help you resolve such a situation. - Hubs can now selectively enable/disable the ARUP (ARea UPdate) system. This refers to the extra information such as CMs, Playercounts, etc. - hub_arup_enable - hub_arup_disable - You can also decide if you want area playercounts to be visible or not. - hub_hide_clients - hub_unhide_clients - /help hubs for more info #### Move Delay system - The Move Delay System is a combined length total for how many seconds the player will be penalized before they will be able to move again. - player_move_delay \<id> \[delay] -- Set the player's move delay to a value in seconds. - area_move_delay \[delay] -- Set the area's move delay to a value in seconds. - hub_move_delay \[delay] -- Set the hub's move delay to a value in seconds. Can be negative. - Can be negative. Delay must be from -1800 to 1800 in seconds or empty to check. #### Area Link System - Area links are no longer 'dumb' numbers - they are full-fledged ***pathways***. - What this means is area links now carry extra information, such as: - locked -- whether or not this link is locked. - hidden -- whether or not this link is hidden from area list and /area_links. - target_pos -- what position you will end up in when going through this link. - can_peek -- whether or not you can peek through this link. - evidence -- attached evidence from which this link can be seen when hidden in. Yes, you can hide inside evidence. - Associated commands and more can be seen with /help area_access #### Area Functionality - ***ALL*** area preferences are now consolidated into a single /area_pref command! /help area_pref for more info on usage. - In tl;dr, you can change every true/false toggle on the area using that nifty command and dictate exactly how you want it to work as a CM. - Some preferences can only be modified by a GM, such as 'can_cm' - if you can /cm this area. #### Music and Ambience - *claps hands* music lists can now be changed on a per-client basis. That means you can change your own music list with /musiclist command. - You can display available music lists with /musiclists. - CMs can change area's music list with /area_musiclist. - GMs can change hub's music list with /hub_musiclist. - CMs can allow if players can use music from their own music lists using 'music_override' preference. - Otherwise, server+hub+area music lists will be used. - Area can replace the hub's music list using replace_music pref. - Areas can now be configured to auto-play last song every time a user enters the area using the music_autoplay preference. - Areas can block DJing using can_dj preference. - You can enable/disable jukebox functionality using jukebox preference. - You can play a random song using /random_music. /help random_music for more info #### Keys and Character Data - You can define keys per-character. The key system uses commands such as keys_set, keys_add, keys_remove and keys. - Use /keys to check your own keys. - /help characters for more info. - Move delay will also be saved to the character data. - Use /save_character_data \<path> to save that data to storage/character_data/ on-server and /load_character_data \<path> to load it. #### Broadcasting - You can now /a \<msg> or /a \<id(s)> as a CM or GM. id is area ID obtainable from /area. The msg will be transmitted over targeted areas, or all owned areas. - For old functionality, the /broadcast_ic command has been renamed to /broadcast \<id(s)>. Clear with /clear_broadcast. - Your IC messages, Music and Judge Buttons will be broadcasted to owned areas. - /a will take priority over the /broadcast function however. - /help hubs for more info. #### Renamed commands - /poslock is now /pos_lock - /savehub is now /save_hub - /loadhub is now /load_hub - /key_set etc. are now /keys_set - /cleanup is now /clear_hub - There may be more I missed. If a command the way you spell it doesn't work, use /help.