Skip to content
This repository was archived by the owner on Jul 5, 2025. It is now read-only.

Commit 379b87a

Browse files
Merge pull request #49 from jonathan-robertson/a21
Support A21
2 parents f9d72d8 + e905f10 commit 379b87a

26 files changed

Lines changed: 107 additions & 57 deletions

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.0] - 2023-06-25
9+
10+
- add electricTier2 trader stage requirement
11+
- add journal entry on login
12+
- add key bindings to instructions
13+
- add recipe unlock to electronics magazine
14+
- clarify/correct note about removing this mod
15+
- clean large rotation values
16+
- limit jump height to 1 block when on panel
17+
- no longer stop jumping; needed for onGround check
18+
- update console command for a21
19+
- update panel height to 3 blocks for jump room
20+
- update to a21 modinfo file format
21+
- update to a21 references
22+
- update to reference onGround vs bJumping (retired)
23+
824
## [1.1.4] - 2023-05-13
925

1026
- add dll version log message on awake

Config/Localization.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Key,File,Type,english
22
quantumElevatorBlockSecure,blocks,Block,"Secure Quantum Elevator"
3-
quantumElevatorBlockSecureDesc,blocks,Block,"Place one quantum elevator pad above or below another at any distance. So long as they are properly aligned, [ff8000]standing on[-] one and [ff8000]jumping[-]/[ff8000]crouching[-] will allow you to travel to the other.\n\nPress & hold [action:local:Activate][action:permanent:Activate] to unlock it or set a combination, but [ff8000]this panel cannot be picked up after being placed[-].\n\nIf you don't need the extra security and prefer a more portable alternative, craft a Portable Quantum Elevator."
3+
quantumElevatorBlockSecureDesc,blocks,Block,"Place one quantum elevator pad above or below another at any distance. So long as they are properly aligned, [ff8000]standing on[-] one and pressing [ff8000]Jump[-] [[007fff][action:local:Jump][-]]/[ff8000]Crouch[-] [[007fff][action:local:Crouch][-]] will allow you to travel to the other.\n\nPress & hold [action:local:Activate][action:permanent:Activate] to unlock it or set a combination, but [ff8000]this panel cannot be picked up after being placed[-].\n\nIf you don't need the extra security and prefer a more portable alternative, craft a Portable Quantum Elevator."
44

55
quantumElevatorBlockPortable,blocks,Block,"Portable Quantum Elevator"
6-
quantumElevatorBlockPortableDesc,blocks,Block,"Place one quantum elevator pad above or below another at any distance. So long as they are properly aligned, [ff8000]standing on[-] one and [ff8000]jumping[-]/[ff8000]crouching[-] will allow you to travel to the other.\n\nThis panel can be picked up, [ff8000]but it cannot be locked[-] and is not recommended for securing a base.\n\nIf you need the extra security and don't mind it permanently being bolted into place, craft a Secure Quantum Elevator."
6+
quantumElevatorBlockPortableDesc,blocks,Block,"Place one quantum elevator pad above or below another at any distance. So long as they are properly aligned, [ff8000]standing on[-] one and pressing [ff8000]Jump[-] [[007fff][action:local:Jump][-]]/[ff8000]Crouch[-] [[007fff][action:local:Crouch][-]] will allow you to travel to the other.\n\nThis panel can be picked up, [ff8000]but it cannot be locked[-] and is not recommended for securing a base.\n\nIf you need the extra security and don't mind it permanently being bolted into place, craft a Secure Quantum Elevator."
77

88
quantumElevatorTip00_title,Journal Tip,,"Quantum Elevator panels [ff8000][MOD]"
99
quantumElevatorTip00,Journal Tip,,"These vertical warp panels enable you to take full advantage of your land claim by allowing instant travel to any floor of your base - no matter how high in the sky or how deep in the ground you like to build.\n\nIf you place one of these panels [ff8000]above or below another at any distance[-], you can instantly travel between them by pressing the [ff8000]Jump[-] or [ff8000]Crouch[-] key to travel to the next panel in that direction!\n\nThere are two types of these panels available: Portable and Secure - you'll want to become familiar with each of them since they're best used in different situations (see additional journal entries).\n\nYou can [ff8000]craft either panel at the workbench[-] when you have the necessary items, or simply [ff8000]purchase them from any trader[-] with cold, hard cash."
@@ -17,3 +17,5 @@ notifyQuantumElevatorLockedWithPasswordTooltip,buffs,Buff,"This Quantum Elevator
1717

1818
inQuantumElevatorName,buffs,Buff,"Quantum Elevator Controls"
1919
inQuantumElevatorDesc,buffs,Buff,"You are currently standing in a Quantum Elevator.\n\nCurrent Elevation: [007fff]{cvar(quantumElevatorTargetElevation:0)}[-]\n\nFrom a [ff8000]Standing[-] position:\n- Use [ff8000]Jump[-] to travel one floor up\n- Use [ff8000]Crouch[-] to travel one floor down"
20+
21+
electrician_quantumElevators,progression,Attribute,"Mod: Quantum Elevators"

Config/blocks.xml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
<block name="quantumElevatorBlockSecure">
44
<property name="Extends" value="securityGatePlate" />
55
<property name="DescriptionKey" value="quantumElevatorBlockSecureDesc" />
6-
<property name="MultiBlockDim" value="1,2,1" />
6+
<property name="MultiBlockDim" value="1,3,1" />
77
<property name="DisplayType" value="blockMulti" />
88

99
<property name="CustomIcon" value="securityGatePlate" />
1010
<property name="ItemTypeIcon" value="lock" />
1111
<property name="Map.Color" value="007fff" />
1212

1313
<property name="Model" value="security_gate_plate" />
14+
<property name="Texture" value="355,355,356,356,356,356" />
1415
<property name="ImposterExchange" value="imposterPlate" param1="144" />
1516
<property name="Group" value="Science" />
1617
<property name="SortOrder2" value="0050" />
@@ -21,14 +22,10 @@
2122
<!-- don't let vehicle damage this -->
2223
<property name="VehicleHitScale" value=".1" />
2324

24-
<!-- TODO: PickupJournalEntry -->
25-
2625
<!-- Sign -->
2726
<property name="Class" value="PlayerSign" />
2827
<property name="Place" value="TowardsPlacerInverted" />
2928

30-
<property name="Texture" value="355,355,356,356,356,356" />
31-
3229
<property class="RepairItems">
3330
<property name="resourceForgedSteel" value="8" />
3431
<property name="resourceScrapPolymers" value="15" />
@@ -44,21 +41,23 @@
4441

4542
<property name="Stacknumber" value="5" />
4643
<property name="EconomicValue" value="2100" />
44+
<property name="TraderStageTemplate" value="electricTier2" />
45+
<property name="UnlockedBy" value="craftingElectrician" />
4746

4847
<property name="BuffsWhenWalkedOn" value="triggerQuantumElevator" />
4948
</block>
5049
<block name="quantumElevatorBlockPortable">
5150
<property name="Extends" value="securityGatePlate" />
5251
<property name="DescriptionKey" value="quantumElevatorBlockPortableDesc" />
53-
<property name="MultiBlockDim" value="1,2,1" />
52+
<property name="MultiBlockDim" value="1,3,1" />
5453
<property name="DisplayType" value="blockMulti" />
5554

5655
<property name="CustomIcon" value="securityGatePlate" />
5756
<property name="ItemTypeIcon" value="hand" />
5857
<property name="Map.Color" value="007fff" />
5958

6059
<property name="Model" value="security_gate_plate" />
61-
60+
<property name="Texture" value="355,355,356,356,356,356" />
6261
<property name="ImposterExchange" value="imposterPlate" param1="144" />
6362
<property name="Group" value="Science" />
6463
<property name="SortOrder2" value="0050" />
@@ -69,14 +68,9 @@
6968
<!-- don't let vehicle damage this -->
7069
<property name="VehicleHitScale" value=".1" />
7170

72-
73-
<!-- TODO: PickupJournalEntry -->
7471
<property name="Place" value="TowardsPlacerInverted" />
75-
7672
<property name="CanPickup" value="true" />
7773

78-
<property name="Texture" value="355,355,356,356,356,356" />
79-
8074
<property class="RepairItems">
8175
<property name="resourceForgedSteel" value="8" />
8276
<property name="resourceScrapPolymers" value="10" />
@@ -91,6 +85,8 @@
9185

9286
<property name="Stacknumber" value="5" />
9387
<property name="EconomicValue" value="1700" />
88+
<property name="TraderStageTemplate" value="electricTier2" />
89+
<property name="UnlockedBy" value="craftingElectrician" />
9490

9591
<property name="BuffsWhenWalkedOn" value="triggerQuantumElevator" />
9692
</block>

Config/buffs.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
<triggered_effect trigger="onSelfLeaveGame" action="StopSound" sound="solarpanel_idle" play_in_head="true" />
2929
</effect_group>
3030

31-
<effect_group name="repurpose_jumping">
31+
<effect_group name="reduce jump strength">
3232
<requirements>
3333
<requirement name="EntityTagCompare" tags="player" />
3434
</requirements>
35-
<passive_effect name="JumpStrength" operation="perc_subtract" value="0.99" />
36-
<passive_effect name="StaminaLoss" operation="perc_add" value="-1.00" tags="jumping" />
35+
<passive_effect name="JumpStrength" operation="base_set" value="0.125" />
36+
<passive_effect name="PerkLevel" operation="base_set" value="0" tags="perkParkour" />
3737
</effect_group>
3838

3939
<effect_group name="timer">

Config/gameevents.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<config>
2+
<append xpath="/gameevents/action_sequence[@name='game_first_spawn']">
3+
<action class="AddJournalTip">
4+
<property name="tip_name" value="quantumElevatorTip00" />
5+
<property name="show_window" value="false" />
6+
<property name="phase" value="4" />
7+
</action>
8+
<action class="AddJournalTip">
9+
<property name="tip_name" value="quantumElevatorTip01" />
10+
<property name="show_window" value="false" />
11+
<property name="phase" value="4" />
12+
</action>
13+
<action class="AddJournalTip">
14+
<property name="tip_name" value="quantumElevatorTip02" />
15+
<property name="show_window" value="false" />
16+
<property name="phase" value="4" />
17+
</action>
18+
</append>
19+
</config>

Config/progression.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<config>
2+
<insertAfter xpath="/progression/crafting_skills/crafting_skill[@name='craftingElectrician']/display_entry[@name_key='electricianT2']">
3+
<display_entry icon="securityGatePlate" name_key="electrician_quantumElevators" has_quality="false" unlock_level="60">
4+
<unlock_entry item="quantumElevatorBlockSecure,quantumElevatorBlockPortable" unlock_tier="1" />
5+
</display_entry>
6+
</insertAfter>
7+
<append xpath="/progression/crafting_skills/crafting_skill[@name='craftingElectrician']/effect_group">
8+
<passive_effect name="RecipeTagUnlocked" operation="base_set" level="60,100" value="1" tags="quantumElevatorBlockSecure,quantumElevatorBlockPortable" />
9+
</append>
10+
</config>

Config/recipes.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<config>
22
<append xpath="/recipes">
3-
<recipe name="quantumElevatorBlockSecure" count="1" craft_area="workbench" tags="workbenchCrafting">
3+
<recipe name="quantumElevatorBlockSecure" count="1" craft_area="workbench" tags="learnable,workbenchCrafting">
44
<ingredient name="resourceForgedSteel" count="8" />
55
<ingredient name="resourceScrapPolymers" count="15" />
66
<ingredient name="resourceElectricParts" count="30" />
77
<ingredient name="carBattery" count="1" />
88
</recipe>
9-
<recipe name="quantumElevatorBlockPortable" count="1" craft_area="workbench" tags="workbenchCrafting">
9+
<recipe name="quantumElevatorBlockPortable" count="1" craft_area="workbench" tags="learnable,workbenchCrafting">
1010
<ingredient name="resourceForgedSteel" count="8" />
1111
<ingredient name="resourceScrapPolymers" count="10" />
1212
<ingredient name="resourceElectricParts" count="20" />

ModInfo.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
12
<xml>
2-
<ModInfo>
3-
<Name value="Quantum Elevators" />
4-
<Description value="Add infinite distance, vertical-warp elevator panels." />
5-
<Author value="Jonathan Robertson (Kanaverum)" />
6-
<!-- REMINDER: this mod's DLL version will be logged on GameAwake and should reflect the same version listed here! -->
7-
<!-- If troubleshooting an issue, search "Quantum Elevators DLL" in logs to confirm these two values match. -->
8-
<Version value="1.1.4" />
9-
<Website value="https://github.com/jonathan-robertson/quantum-elevators" />
10-
</ModInfo>
3+
<Name value="kanaverum-quantum-elevators" />
4+
<DisplayName value="Quantum Elevators" />
5+
<!-- REMINDER: this mod's DLL version will be logged on GameAwake and should reflect the same version listed here! -->
6+
<!-- If troubleshooting an issue, search "Quantum Elevators DLL" in logs to confirm these two values match. -->
7+
<Version value="2.0.0" />
8+
<Description value="Add infinite distance, vertical-warp elevator panels." />
9+
<Author value="Jonathan Robertson (Kanaverum)" />
10+
<Website value="https://github.com/jonathan-robertson/quantum-elevators" />
1111
</xml>

QuantumElevators.dll

512 Bytes
Binary file not shown.

README.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Quantum Elevators
22

3-
[![🧪 Tested On](https://img.shields.io/badge/🧪%20Tested%20On-A20.6%20b9-blue.svg)](https://7daystodie.com/) [![📦 Automated Release](https://github.com/jonathan-robertson/quantum-elevators/actions/workflows/release.yml/badge.svg)](https://github.com/jonathan-robertson/quantum-elevators/actions/workflows/release.yml)
3+
[![🧪 Tested On](https://img.shields.io/badge/🧪%20Tested%20On-A21%20b317-blue.svg)](https://7daystodie.com/) [![📦 Automated Release](https://github.com/jonathan-robertson/quantum-elevators/actions/workflows/release.yml/badge.svg)](https://github.com/jonathan-robertson/quantum-elevators/actions/workflows/release.yml)
44

55
![quantum-elevators social image](https://raw.githubusercontent.com/jonathan-robertson/quantum-elevators/media/quantum-elevators-logo-social.jpg)
66

@@ -12,7 +12,8 @@
1212
- [Secure Quantum Elevator panels](#secure-quantum-elevator-panels)
1313
- [Admin Commands](#admin-commands)
1414
- [Setup](#setup)
15-
- [Compatibility Quick Reference](#compatibility-quick-reference)
15+
- [Environment / EAC / Hosting Requirements](#environment--eac--hosting-requirements)
16+
- [Map Considerations for Installation or UnInstallation](#map-considerations-for-installation-or-uninstallation)
1617
- [Windows PC (Single Player or Hosting P2P)](#windows-pc-single-player-or-hosting-p2p)
1718
- [Critical Reminders](#critical-reminders)
1819
- [Windows/Linux Installation (Server via FTP from Windows PC)](#windowslinux-installation-server-via-ftp-from-windows-pc)
@@ -78,11 +79,7 @@ Without proper installation, this mod will not work as expected. Using this guid
7879

7980
If you have trouble getting things working, you can reach out to me for support via [Support](#support).
8081

81-
### Compatibility Quick Reference
82-
83-
Does this mod require a fresh map?
84-
85-
> No, a fresh map is not necessary. You can add or remove the Quantum Elevators mod without having to start a new map.
82+
### Environment / EAC / Hosting Requirements
8683

8784
Environment | Compatible | Does EAC Need to be Disabled? | Who needs to install?
8885
--- | --- | --- | ---
@@ -92,6 +89,16 @@ Single Player Game | Yes | Yes | self (of course)
9289

9390
> 🤔 If you aren't sure what some of this means, details steps are provided below to walk you through the setup process.
9491
92+
### Map Considerations for Installation or UnInstallation
93+
94+
- Does **adding** this mod require a fresh map?
95+
- No! You can drop this mod into an ongoing map without any trouble.
96+
- Because Quantum Elevators will show up in every trader's inventory, you may want to interact with each trader after installing this mod (and restarting the server/game) and opt to reset each trader's inventory. You can request this with Debug Mode enabled (run admin command `dm`, then close the admin console and hit `Q`; this enables the admin trader option to force an early restock).
97+
- Does **removing** this mod require a fresh map?
98+
- Yes for the 2 key reasons:
99+
1. Some players will use elevators to travel into base locations that would otherwise be completely sealed off from the rest of the world. Suddenly removing/disabling the ability to do this would result in incredible frustration as some players would then need to break out of their bases and may not even have the tools necessary to do so. If this was the only reason for concern, removing Quantum Elevators mid-map would already be highly discouraged.
100+
2. Additionally, technical issues arise if players step on a panel's previous location after removing this mod (causing endless red errors in the client-side console, resulting in the player being locked in place). This is because Quantum Elevators uses the BuffWhenWalkedOn property in the 2 special blocks it adds, which is a common feature of many block-based 7 Days to Die mods. Removing any block of this type from the game after it has been placed will cause the same issue and
101+
95102
### Windows PC (Single Player or Hosting P2P)
96103

97104
> ℹ️ If you plan to host a multiplayer game, only the host PC will need to install this mod. Other players connecting to your session do not need to install anything for this mod to work 😉
@@ -108,7 +115,8 @@ Single Player Game | Yes | Yes | self (of course)
108115
- ⚠️ it is **NECESSARY** for the host to run with EAC disabled or the DLL file in this mod will not be able to run
109116
- 😉 other players **DO NOT** need to disable EAC in order to connect to your game session, so you don't need to walk them through these steps
110117
- 🔑 it is also **HIGHLY RECOMMENDED** to add a password to your game session
111-
- while disabling EAC is 100% necessary to run this mod properly, it also allows other players to run any mods they want on their end (which could be used to gain access to admin commands and/or grief you or your other players)
118+
- while disabling EAC is 100% necessary (for P2P or single player) to run this mod properly, it also allows other players to run any mods they want on their end (which could be used to gain access to admin commands and/or grief you or your other players)
119+
- please note that *dedicated servers* do not have this limitation and can have EAC fully enabled; we have setup guides for dedicated servers as well, listed in the next 2 sections: [Windows/Linux Installation (Server via FTP from Windows PC)](#windowslinux-installation-server-via-ftp-from-windows-pc) and [Linux Server Installation (Server via SSH)](#linux-server-installation-server-via-ssh)
112120

113121
### Windows/Linux Installation (Server via FTP from Windows PC)
114122

@@ -125,7 +133,7 @@ Single Player Game | Yes | Yes | self (of course)
125133

126134
1. 🔍 [SSH](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-to-connect-to-a-remote-server) into your server and navigate to the `Mods` folder on your server
127135
- if you installed 7 Days to Die with [LinuxGSM](https://linuxgsm.com/servers/sdtdserver/) (which I'd highly recommend), the default mods folder will be under `~/serverfiles/Mods` (which you may have to create)
128-
2. 📦 Download the latest `quantum-elevators.zip` release from [this link](https://github.com/jonathan-robertson/quantum-elevators/releases/latest/) in whatever method you prefer
136+
2. 📦 Download the latest `quantum-elevators.zip` release from [this link](https://github.com/jonathan-robertson/quantum-elevators/releases/latest/) with whatever tool you prefer
129137
- example: `wget https://github.com/jonathan-robertson/quantum-elevators/releases/latest/download/quantum-elevators.zip`
130138
3. 📂 Unzip this file to a folder by the same name: `unzip quantum-elevators.zip -d quantum-elevators`
131139
- you may need to install `unzip` if it isn't already installed: `sudo apt-get update && sudo apt-get install unzip`

0 commit comments

Comments
 (0)