Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
9e7df68
start on modifiable armor: equipment foundry.
screret Dec 29, 2024
e854536
clean up unnecessary uses of `ItemStack#getDamageValue`
screret Dec 29, 2024
64056a5
start on armor modifier
screret Dec 29, 2024
874dcab
make step height modification work for all living entities
screret Dec 30, 2024
85fa04c
forgot to commit
screret Dec 30, 2024
7340140
fix slot textures
screret Dec 30, 2024
d310f3e
Merge branch 'refs/heads/1.20.1' into sc/modular-armor
Ghostipedia Apr 8, 2025
e6458f8
The Game Runs Again!
Ghostipedia Apr 8, 2025
97afb14
Spotless
Ghostipedia Apr 11, 2025
bedc969
Merge remote-tracking branch 'origin/1.20.1' into sc/modular-armor
TarLaboratories Sep 24, 2025
d28be35
made game launch yay :)
TarLaboratories Sep 24, 2025
b5107af
added ability to retrieve modifier items
TarLaboratories Sep 24, 2025
af97ae1
slot-related fixes
TarLaboratories Sep 24, 2025
6234b21
block non-removable armor modifiers
TarLaboratories Sep 25, 2025
468089f
allow all motor tiers in as a modifier
TarLaboratories Sep 27, 2025
e99b0c2
damage block modifier
TarLaboratories Sep 27, 2025
f3d3ce1
fix
TarLaboratories Sep 27, 2025
ae4ec25
attack speed modifier
TarLaboratories Sep 27, 2025
fba0d91
attack damage modifier
TarLaboratories Sep 27, 2025
72e4e36
battery modifier
TarLaboratories Sep 27, 2025
273743b
tooltips and a ton of fixes for attribute duplication
TarLaboratories Sep 28, 2025
df0cb9f
reach modifier
TarLaboratories Sep 28, 2025
781d748
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Sep 28, 2025
4668ee2
jetpack modifier
TarLaboratories Sep 28, 2025
63c5669
oops matching ids
TarLaboratories Sep 29, 2025
95d8349
some more modifiers
TarLaboratories Sep 29, 2025
d5d9b9d
step height and swim speed
TarLaboratories Sep 29, 2025
cb4bdc3
idk maybe this fixed that
TarLaboratories Sep 30, 2025
44ce028
made the recipe work
TarLaboratories Sep 30, 2025
0a69740
disallow having the same modifier twice on an armor piece
TarLaboratories Sep 30, 2025
3201cb0
max modifier tier
TarLaboratories Sep 30, 2025
fce6f3d
created ItemModule class (currently unused)
TarLaboratories Oct 1, 2025
59a5371
added ModifiableArmorItem (not fully functional yet)
TarLaboratories Oct 1, 2025
494650d
made ItemModule work (not used yet though)
TarLaboratories Oct 1, 2025
0ab3841
all modules rewritten using the new class, not enabled yet
TarLaboratories Oct 1, 2025
87b9c89
migrate all modifiers to ItemModules
TarLaboratories Oct 1, 2025
277138b
fix tiers being offset by 1 and check max tier when inserting
TarLaboratories Oct 1, 2025
1245e46
get actual lowest tier
TarLaboratories Oct 1, 2025
43498a1
battery modifier
TarLaboratories Oct 2, 2025
0b9bf7a
night vision module
TarLaboratories Oct 2, 2025
6360583
jump boost module
TarLaboratories Oct 2, 2025
f8250a6
tooltips
TarLaboratories Oct 3, 2025
45b0b54
smol fix
TarLaboratories Oct 3, 2025
2a25c2c
ppe module
TarLaboratories Oct 3, 2025
90ddeb8
sensor module
TarLaboratories Oct 3, 2025
19c5377
API to enable/disable modules (GUI coming soon™)
TarLaboratories Oct 3, 2025
49e4a6d
sensor charger linking (WIP)
TarLaboratories Oct 3, 2025
6423111
wireless charger module
TarLaboratories Oct 3, 2025
4de31bf
remove the remains of the ArmorModifier, make modules not change slots
TarLaboratories Oct 3, 2025
c72537f
oops forgot some stuff
TarLaboratories Oct 3, 2025
e0ff141
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Oct 3, 2025
bccbcfb
smol fix
TarLaboratories Oct 3, 2025
ea06f24
jetpack modules
TarLaboratories Oct 5, 2025
a936db9
creative flight module
TarLaboratories Oct 5, 2025
62c0d6a
allow modules to render HUD
TarLaboratories Oct 5, 2025
355c60c
slots
TarLaboratories Oct 5, 2025
73f2eb0
smol fix
TarLaboratories Oct 6, 2025
851eed5
a ton of fixes, added tier-colored module slot border
TarLaboratories Oct 7, 2025
499a039
add interface for any item to implement
TarLaboratories Oct 7, 2025
ca8d962
remove MODIFIABLE_EQUIPMENT tag
TarLaboratories Oct 7, 2025
53b2e7e
yay it's a capability now
TarLaboratories Oct 8, 2025
ad3faa5
fix battery module (and allow modules to attach capabilities)
TarLaboratories Oct 8, 2025
65c4e49
fix wireless charger
TarLaboratories Oct 8, 2025
2f01816
rename GTArmorModifiers to GTItemModules
TarLaboratories Oct 8, 2025
887bf4c
creative flight module tooltip
TarLaboratories Oct 8, 2025
b8051b6
make charge module transfer rate depend on its tier
TarLaboratories Oct 10, 2025
d9495ef
battery module HUD
TarLaboratories Oct 10, 2025
bc9b2e2
automatic module insertion/removal
TarLaboratories Oct 10, 2025
06c943a
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Oct 10, 2025
a3e589d
yay jetpacks finally work (also added fluid storage module for liquid…
TarLaboratories Oct 11, 2025
a401071
wrong battery translation key
TarLaboratories Oct 11, 2025
0ced81e
allow modules to do custom onUse things
TarLaboratories Oct 11, 2025
99cd5a8
better tooltips
TarLaboratories Oct 11, 2025
e492861
allow empty slots to be not last
TarLaboratories Oct 11, 2025
5fcefa9
fix being able to insert same modules of different tiers
TarLaboratories Oct 11, 2025
2303596
emi compat
TarLaboratories Oct 11, 2025
aeeb6a6
small recipe ui adjustments
TarLaboratories Oct 11, 2025
6566b77
remove duplicate sensor module info for each tier
TarLaboratories Oct 11, 2025
bdb2ada
re-enable text shadow because white text on white background
TarLaboratories Oct 11, 2025
a00ca34
small increase to sneak speed boost
TarLaboratories Oct 12, 2025
e2c9e29
shortened repeating module info to only the actually useful info (stats)
TarLaboratories Oct 12, 2025
f27eb37
category name translation
TarLaboratories Oct 12, 2025
ff08a4d
labels
TarLaboratories Oct 12, 2025
310b741
datagen
TarLaboratories Oct 12, 2025
31b072c
adjusted a bit of ui
TarLaboratories Oct 12, 2025
8ca4dd0
allow module info to be displayed in 2 columns side by side
TarLaboratories Oct 13, 2025
9a00c1c
trying to fit all tier info into a single EMI page
TarLaboratories Oct 14, 2025
8dc868b
changed gui to only show values for 1 tier at a time, also now uses l…
TarLaboratories Oct 14, 2025
691361f
i hope the button works now
TarLaboratories Oct 15, 2025
b71bd90
why button no work
TarLaboratories Oct 15, 2025
1b88c01
button works now
TarLaboratories Oct 15, 2025
b7150ef
recipe gui now cycles between possible inputs
TarLaboratories Oct 15, 2025
a0d3f22
added handling for when a tier of a module exists but no item of such…
TarLaboratories Oct 15, 2025
22208da
fix block reach not recognizing tiers
TarLaboratories Oct 15, 2025
96b3de6
removed short versions of module info text
TarLaboratories Oct 15, 2025
09641f6
limit tiers if no items exist for that tier
TarLaboratories Oct 15, 2025
54a7d47
corrected recipe inputs
TarLaboratories Oct 15, 2025
bee4b87
oops
TarLaboratories Oct 15, 2025
204594c
equipment foundry recipe
TarLaboratories Oct 16, 2025
7591541
config GUI (doesn't work yet)
TarLaboratories Oct 28, 2025
e7b0d4e
remove registerGlobalListener from init
TarLaboratories Oct 28, 2025
532f6cf
spotless
TarLaboratories Oct 28, 2025
a16c81f
yay smth works! (GUI incomplete)
TarLaboratories Oct 28, 2025
2b2c492
ui adjustments
TarLaboratories Oct 29, 2025
949d3ff
rename some things
TarLaboratories Oct 29, 2025
e6d0217
ummm it works but it doesnt
TarLaboratories Oct 29, 2025
3975b4e
change getDisplayName to getHoverName
TarLaboratories Oct 29, 2025
978bbf1
Merge branch '1.20.1-v8.0.0' into sc/modular-armor
TarLaboratories Dec 13, 2025
e6939d3
fix
TarLaboratories Dec 13, 2025
285d755
spotless
TarLaboratories Dec 13, 2025
b4a1960
Merge remote-tracking branch 'origin/1.20.1-v8.0.0' into sc/modular-a…
TarLaboratories Jan 8, 2026
f62e106
remove remains of old module ui
TarLaboratories Jan 8, 2026
a01eafc
docs
TarLaboratories Jan 8, 2026
ed2609c
Merge branch '1.20.1-v8.0.0' into sc/modular-armor
TarLaboratories Jan 8, 2026
95560a6
spotless
TarLaboratories Jan 8, 2026
b28401b
fixes
TarLaboratories Jan 8, 2026
867a4cc
Merge remote-tracking branch 'origin/1.20.1-v8.0.0' into sc/modular-a…
TarLaboratories Jan 9, 2026
29fbc07
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Apr 26, 2026
fe05e40
fixes after merge
TarLaboratories Apr 26, 2026
9596978
spotless
TarLaboratories Apr 26, 2026
6ae365a
Merge branch 'mui2-refactor' into sc/modular-armor
TarLaboratories Apr 28, 2026
64e53f8
start of UI
TarLaboratories Apr 30, 2026
23d4acb
it kinda works i think (not finished yet)
TarLaboratories Apr 30, 2026
9f621cc
progress probably
TarLaboratories May 3, 2026
ef7c255
equipment foundry
TarLaboratories May 3, 2026
7129199
ability to add settings
TarLaboratories May 3, 2026
946999d
add armor slots to ui
TarLaboratories May 3, 2026
fe2c1b6
rename modifier uuid key
TarLaboratories May 4, 2026
03171b5
module settings
TarLaboratories May 4, 2026
2f7c6b4
uhhh i forgor already
TarLaboratories May 4, 2026
fd3eaab
fix battery module charge display
TarLaboratories May 5, 2026
1fdd6ef
Merge branch 'mui2-refactor' into sc/modular-armor
TarLaboratories May 16, 2026
2249ddc
Merge branch 'mui2-refactor' into sc/modular-armor
TarLaboratories May 22, 2026
d2aab98
fixes after merge, allowC2S, etc
TarLaboratories May 25, 2026
d56d884
Merge branch 'mui2-refactor' into sc/modular-armor
TarLaboratories Jun 21, 2026
74a7897
make equipment foundry extend ManagedSyncBlockEntity
TarLaboratories Jun 21, 2026
22e95ac
move selectable slot to a separate class
TarLaboratories Jun 21, 2026
69f342f
Merge branch 'mui2-refactor' into sc/modular-armor
TarLaboratories Jun 21, 2026
697a3c6
random fixes
TarLaboratories Jun 21, 2026
821ca40
center title bar text
TarLaboratories Jun 21, 2026
839b283
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Jun 22, 2026
d7061e1
well at least it launches
TarLaboratories Jun 26, 2026
3c4dd84
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Jul 1, 2026
d63c540
spotless
TarLaboratories Jul 3, 2026
c264ed0
fix da slots
TarLaboratories Jul 6, 2026
4e968b5
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Jul 9, 2026
28760f7
fix
TarLaboratories Jul 9, 2026
243965a
spotless
TarLaboratories Jul 9, 2026
ef7cf62
extract module recipe to separate widget
TarLaboratories Jul 10, 2026
9240e4f
i forgor spotless again
TarLaboratories Jul 10, 2026
14590ce
fix server
TarLaboratories Jul 10, 2026
63e029f
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Jul 11, 2026
b590e2b
idk
TarLaboratories Jul 12, 2026
63e04c3
fix modular armor ui
TarLaboratories Jul 13, 2026
6dca93e
Merge branch '1.20.1' into sc/modular-armor
TarLaboratories Jul 19, 2026
8d6182e
finally fix recipe ui (and spotless)
TarLaboratories Jul 19, 2026
8137d9b
add hover toggle to jetpack module ui
TarLaboratories Jul 19, 2026
3308c54
fix wireless charging and add settings to shield
TarLaboratories Jul 19, 2026
eaba01c
fix shield module hp display
TarLaboratories Jul 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 154 additions & 0 deletions docs/content/Modpacks/Other-Topics/Modular-Items.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
---
title: Modular Items
---

# Modular Items

### IModularItem

`IModularItem` is a capability that can be attached to item stacks.
Its recommended implementation is `ModularItemStack`, which can be attached to a stack
in an `AttachCapabilitiesEvent<ItemStack>` listener, or attached as an item component
to a `ComponentItem` using `ModularItemComponent`. Note that if it is attached not as
a component, module-related tooltips won't be displayed, and `onUse` and related methods won't work.

!!! example "Attaching a `ModularItemStack` using an event"
```java
@Mod.EventBusSubscriber(modid = "your_mod_id", bus = Mod.EventBusSubscriber.Bus.FORGE)
public static class ExampleEventListener {
@SubscribeEvent
public static void onAttachCapabilities(AttachCapabilitiesEvent<ItemStack> event) {
ItemStack stack = event.getObject();
if (stack.is(Items.DIAMOND_CHESTPLATE)) {
int slots = 5, maxTier = GTValues.HV;
List<ItemModuleSlot> defaultSlots = new ArrayList<>();
for (int i = 0; i < slots; i++) defaultSlots.add(GTItemModules.TIERED_SLOTS[maxTier]);
// ModularItemStack accepts a Function<ItemStack, List<ItemModuleSlot>> in the constructor
// The stack provided to that function is the same stack as here, so we can ignore it
event.addCapability(GTCEu.id("modular"), new ModularItemStack(stack, ignored -> defaultSlots));
}
}
}
```

!!! example "Attaching a `ModularItemComponent` to a `ComponentItem`"
```java
public void attachModularComponent() {
// fertilizer will now have 3 MV module slots
GTItems.FERTILIZER.get().attachComponents(new ModularItemComponent(3, GTValues.MV));
}
```

### ItemModuleSlot

An `ItemModuleSlot` is basically a `Predicate<ItemModule>` (a function that accepts an `ItemModule` and returns a `boolean`) with some other methods.
It has 2 abstract methods for your subclasses to implement:

- `acceptsModule(ItemModule)` -> `boolean`
returns whether the provided module can be put into this slot
- `getDisplayName()` -> `Component`
returns the text to be displayed as part of the tooltip
- `getSlotTexture()` -> `IDrawable` (returns `null` by default)
returns the texture to use for this slot in the equipment foundry UI, `null` means to use the default

!!! example "Tiered slot implementation"
```java
public class TieredItemModuleSlot extends ItemModuleSlot {

@Getter
private final int tier;

public TieredItemModuleSlot(ResourceLocation id, int tier) {
super(id);
this.tier = tier;
}

@Override
public boolean acceptsModule(ItemModule module) {
return !(module instanceof ITieredItemModule tieredModule) || tieredModule.getTier() <= getTier();
}

@Override
public Component getDisplayName() {
return Component.translatable("metaarmor.tooltip.modifier_slot.tiered", GTValues.VNF[getTier()]);
}
}
```

### ItemModule

`ItemModule` is an NBT-serializable object that can be attached to modular items.<br>
`AppliedItemModule` is an object that contains info about the module itself, the item
it is applied to, and the module's NBT.

??? info "List of all overridable methods in `ItemModule`"
- `getInfo()` -> `Component` (override required)<br>
returns the info about this module to display in XEI
- `onAttach(AppliedItemModule)` -> `void`<br>
called when this module is attached to a modular item
- `onRemove(AppliedItemModule)` -> `void`<br>
called when this module is removed from a modular item
- `onEquip(LivingEntity, AppliedItemModule)` -> `void`<br>
called when the armor piece this module is attached to is equipped
- `onUnequip(LivingEntity, AppliedItemModule)` -> `void`<br>
called when the armor piece this module is attached to is unequipped
- `onArmorTick(LivingEntity, AppliedItemModule)` -> `void`<br>
called each tick while the armor piece this module is attached to is equipped
- `onInventoryTick(Player, AppliedItemModule)` -> `void`<br>
called each tick while the item this module is attached to is in a player's inventory
- `appendHoverText(Level, TooltipFlag, List<Component>, AppliedItemModule)` -> `void`<br>
called to insert lines into the modular item's tooltip
- `useEnergyInInventory(LivingEntity, AppliedItemModule)` -> `boolean` (default `true`)<br>
returns whether to consume energy while the item is in a player's inventory, if `false`, the item
consumes energy only in armor slots
- `energyUsagePerTick(LivingEntity, AppliedItemModule)` -> `long` (default `0`)<br>
returns the amount of energy to consume this tick (called every tick)
- `changeDamage(LivingEntity, AppliedItemModule, float damage, DamageSource)`-> `float` (returns `damage` by default)<br>
returns the amount of damage to actually inflict, called each time the entity wearing the armor piece is damaged
- `canRemove(AppliedItemModule)` -> `boolean` (default `true`)<br>
returns whether this module can be removed from the item in an equipment foundry
- `isPPE(AppliedItemModule)` -> `boolean` (default `false`)<br>
returns whether armor pieces with this module should be considered personal protection equipment (hazmat)
- `canApplyTo(ItemStack)` -> `boolean`<br>
returns whether this module can be attached to the provided stack, by default returns whether a module of this type
is already attached to the stack (blocking more than one module of the same type)
- `isEnabled(AppliedItemModule)` -> `boolean` (default `true`)<br>
returns whether this module is enabled (all other methods, such as `onInventoryTick` won't be calld if it's disabled)
- `setEnabled(AppliedItemModule, boolean)` -> `void`<br>
by default, sets the return value of `isEnabled` by modifying this module's NBT; this method is not required to actually enable/disable this module
- `use(AppliedItemModule, Level, Player, InteractionHand)` -> `InteractionResultHolder<ItemStack>`<br>
called when the item this module is attached to is used
- `useOn(AppliedItemModule, UseOnContext)` -> `InteractionResult`<br>
called when the item this module is attached to is used on a block

!!! example "Example of an energy shield module"
```java
public class EnergyShieldItemModule extends TieredItemModule {

public EnergyShieldItemModule(ResourceLocation id, int tier) {
super(id, tier);
}

@Override
public Component getInfo() {
return Component.literal("Makes you invulnerable and consumes 1A " + GTValues.VNF[getTier()]);
}

@Override
public long energyUsagePerTick(LivingEntity entity, AppliedItemModule module) {
return GTValues.V[getTier()];
}

@Override
public float changeDamage(LivingEntity entity, AppliedItemModule module, float amount, DamageSource source) {
return 0;
}

@Override
public void appendHoverText(Level level, TooltipFlag isAdvanced, List<Component> tooltips,
AppliedItemModule module) {
super.appendHoverText(level, isAdvanced, tooltips, module);
tooltips.add(Component.literal("Energy shield (" + GTValues.VNF[getTier()] + ")"));
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "gtceu:block/equipment_foundry"
}
}
}
72 changes: 72 additions & 0 deletions src/generated/resources/assets/gtceu/lang/en_ud.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"behavior.prospector.tooltip.radius": "snıpɐᴚ ʞunɥƆ %s ɐ uı sǝɔɹnosǝɹ suɐɔS",
"behavior.toggle_energy_consumer.tooltip": "ǝpoɯ ǝןbboʇ oʇ ǝs∩",
"behaviour.boor.by": "%s ʎq",
"behaviour.charger_linked": "ɹǝbɹɐɥɔ pǝʞuıꞀ",
"behaviour.hammer": ")ɯǝɥʇ buıʇʇıɥ ʎq( sǝuıɥɔɐW ɹoɟ buıןɟɟnW ɟɟo puɐ uo suɹn⟘",
"behaviour.hoe": "ʇɹıp ןןıʇ uɐƆ",
"behaviour.lighter.fluid.tooltip": "ǝuɐdoɹԀ ɹo ǝuɐʇnᗺ ɥʇıʍ ǝɹıɟ uo sbuıɥʇ ʇɥbıן uɐƆ",
Expand Down Expand Up @@ -219,6 +220,7 @@
"block.gtceu.empty_tier_ii_battery": "ɹoʇıɔɐdɐƆ II ɹǝı⟘ ʎʇdɯƎ",
"block.gtceu.empty_tier_iii_battery": "ɹoʇıɔɐdɐƆ III ɹǝı⟘ ʎʇdɯƎ",
"block.gtceu.engine_intake_casing": "buısɐƆ ǝʞɐʇuI ǝuıbuƎ",
"block.gtceu.equipment_foundry": "ʎɹpunoℲ ʇuǝɯdınbƎ",
"block.gtceu.ev_16a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§9Ɩ ɹ§ΛƎϛ§",
"block.gtceu.ev_1a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§Ɩ ɹ§ΛƎϛ§",
"block.gtceu.ev_4a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ ɹ§ΛƎϛ§",
Expand Down Expand Up @@ -2230,6 +2232,7 @@
"death.attack.gtceu.wrench_iv": "%s ʎq suɐןd ɹıǝɥʇ oʇuı uʍoɹɥʇ ɥɔuǝɹʍ ɐ pɐɥ %s",
"death.attack.gtceu.wrench_lv": "%s ʎq pǝuǝsooן ǝɹǝʍ sǝdıd s,%s",
"effect.gtceu.weak_poison": "uosıoԀ ʞɐǝM",
"emi.category.gtceu.equipment_foundry": "ʎɹpunoℲ ʇuǝɯdınbƎ",
"enchantment.damage.disjunction": "uoıʇɔunظsıᗡ",
"enchantment.disjunction": "uoıʇɔunظsıᗡ",
"enchantment.gtceu.disjunction.description": "˙sqoɯ pǝʇɐןǝɹ-ɹǝpuƎ oʇ ssǝuʍoןS puɐ ssǝuʞɐǝM sǝıןddⱯ",
Expand Down Expand Up @@ -2370,6 +2373,12 @@
"gtceu.ender_redstone_link_cover.label": "%d :ɹǝʍod ǝuoʇspǝᴚ",
"gtceu.ender_redstone_link_cover.title": "ʞuıꞀ ǝuoʇspǝᴚ ɹǝpuƎ",
"gtceu.ender_redstone_link_cover.tooltip": "˙ㄥ§ɹǝʌoƆɟ§ sɐ ㄥ§uoıʇɔǝuuoƆ ɟ§ɹǝpuƎp§ ssǝןǝɹıMɟ§ ɐ ɥʇıʍ ㄥ§sןɐubıs ǝuoʇspǝᴚɟ§ sʇıɯsuɐɹ⟘ㄥ§",
"gtceu.equipment_foundry.gui.applied_to": ":oʇ pǝıןddⱯ",
"gtceu.equipment_foundry.gui.module_item": ":ɯǝʇı ǝןnpoW",
"gtceu.equipment_foundry.gui.supports_tiers": "%s-%s :sɹǝıʇ ǝןnpoW",
"gtceu.equipment_foundry.gui.tier": "%s :ɹǝıʇ ɹoɟ sʇɐʇs buıʍǝıΛ",
"gtceu.equipment_foundry.gui.tier_too_high": "ɹǝıʇ sıɥʇ ɹoɟ sʇsıxǝ ɯǝʇı ǝןnpoɯ oN",
"gtceu.equipment_foundry.gui.tooltip.tier_switch": "Ɩ ʎq ɹǝıʇ ǝsɐǝɹɔǝp oʇ ʞɔıןɔ-ʇɥbıᴚ\nƖ ʎq ɹǝıʇ ǝsɐǝɹɔuı oʇ ʞɔıןɔ-ʇɟǝꞀ",
"gtceu.extractor": "ɹoʇɔɐɹʇxƎ",
"gtceu.extruder": "ɹǝpnɹʇxƎ",
"gtceu.fermenter": "ɹǝʇuǝɯɹǝℲ",
Expand Down Expand Up @@ -2823,6 +2832,7 @@
"gtceu.machine.ev_sifter.tooltip": "buıʇɟıs dǝǝʞ puɐ ɯןɐɔ ʎɐʇSㄥ§",
"gtceu.machine.ev_thermal_centrifuge.tooltip": "ʎןǝsıɔǝɹd ǝɹoɯ sǝɹO buıʇɐɹɐdǝSㄥ§",
"gtceu.machine.ev_wiremill.tooltip": "ʎןʇuǝıɔıɟɟǝ ǝɹoɯ sǝɹıM sǝɔnpoɹԀㄥ§",
"gtceu.machine.exploded": ")%d '%d '%d( ʇɐ pǝpoןdxǝ %s",
"gtceu.machine.extreme_combustion_engine.tooltip": "ɹǝsɐǝןǝᴚ ʎbɹǝuƎ ןɐɔıɯǝɥƆ ǝɯǝɹʇxƎ",
"gtceu.machine.fisher.requirement": "˙ʍoןǝq ʎןʇɔǝɹıp ɹǝʇɐʍ ɟo ǝɹɐnbs pǝɹǝʇuǝɔ %dx%d ɐ sǝɹınbǝᴚ",
"gtceu.machine.fisher.speed": "sʞɔıʇ %d ʎɹǝʌǝ buıɥʇǝɯos sǝɥɔʇɐƆ",
Expand Down Expand Up @@ -3327,6 +3337,40 @@
"gtceu.mode.both": "ɹ§)ɯǝʇI puⱯ pınןℲ( ɥʇoᗺp§",
"gtceu.mode.fluid": "ɹ§pınןℲ6§",
"gtceu.mode.item": "ɹ§ɯǝʇI9§",
"gtceu.module.advanced_jetpack": ")ǝןnpoɯ ʎɹǝʇʇɐq ʎuɐ sǝɹınbǝɹ( ʞɔɐdʇǝظ pǝɔuɐʌpɐ uɐ ǝʞıן ʞɹoʍ ǝʇɐןdʇsǝɥɔ ǝɥʇ sǝʞɐW",
"gtceu.module.attack_damage": "%s%% ʎq ǝbɐɯɐp ʞɔɐʇʇɐ sǝsɐǝɹɔuI",
"gtceu.module.attack_speed": "%s%% ʎq pǝǝds ʞɔɐʇʇɐ sǝsɐǝɹɔuI",
"gtceu.module.battery": ")s,ʎɹǝʇʇɐq ǝɥʇ oʇ ןɐnbǝ sı ʎʇıɔɐdɐɔ( ʎʇıɔɐdɐɔ sʇı sǝsɐǝɹɔuı ɹo ʎbɹǝuǝ ǝɹoʇs oʇ ɯǝʇı ǝɥʇ sʍoןןⱯ",
"gtceu.module.block_reach": "sʞɔoןq %s ʎq ɥɔɐǝɹ ʞɔoןq sǝsɐǝɹɔuI",
"gtceu.module.block_reach.short": "sʞɔoןq %s ʎq ˙˙˙",
"gtceu.module.creative_flight": ")buıʎןɟ ǝןıɥʍ ʇ/∩Ǝ %s sǝɯnsuoɔ( ʇɥbıןɟ ǝʌıʇɐǝɹɔ sʍoןןⱯ",
"gtceu.module.damage_block": ")ǝןnpoɯ ʎɹǝʇʇɐq ʎuɐ sǝɹınbǝɹ 'ԀH ɹǝd ∩Ǝ %s( ∩Ǝ ɥʇıʍ ǝbɐɯɐp ɟo ʇunoɯɐ ʎuɐ sʞɔoןᗺ",
"gtceu.module.damage_block.short": "ԀH ɹǝd ∩Ǝ %s",
"gtceu.module.fluid_storage": ")s,ʞuɐʇ ǝɥʇ oʇ ןɐnbǝ sı ʎʇıɔɐdɐɔ( ʎʇıɔɐdɐɔ sʇı sǝsɐǝɹɔuı ɹo spınbıן ǝɹoʇs oʇ ɯǝʇı ǝɥʇ sʍoןןⱯ",
"gtceu.module.gui.charge": ":ǝbɹɐɥƆ",
"gtceu.module.gui.enabled": ":pǝןqɐuƎ",
"gtceu.module.gui.energy_limit": ":ʇıɯıן ʎbɹǝuƎ",
"gtceu.module.gui.hp": ":ԀH",
"gtceu.module.gui.invalid_item": "sǝןnpoɯ ʇdǝɔɔɐ ʇou sǝop ɯǝʇı sıɥ⟘",
"gtceu.module.gui.jump_boost": ":ʇsooᗺ",
"gtceu.module.gui.power": ":ɹǝʍoԀ",
"gtceu.module.gui.select_an_item": "ɯǝʇı uɐ ʇɔǝןǝS",
"gtceu.module.jetpack": ")ǝןnpoɯ ʎɹǝʇʇɐq ʎuɐ sǝɹınbǝɹ( ʞɔɐdʇǝظ ɐ ǝʞıן ʞɹoʍ ǝʇɐןdʇsǝɥɔ ǝɥʇ sǝʞɐW",
"gtceu.module.jump": "sʞɔoןq %s ʎq ʇɥbıǝɥ dɯnظ sǝsɐǝɹɔuI",
"gtceu.module.liquid_fuel_jetpack": ")ǝןnpoɯ ǝbɐɹoʇs pınןɟ ʎuɐ sǝɹınbǝɹ( ʞɔɐdʇǝظ pǝןǝnɟ pınbıן ɐ ǝʞıן ʞɹoʍ ǝʇɐןdʇsǝɥɔ ǝɥʇ sǝʞɐW",
"gtceu.module.movement_speed": "%s%% ʎq pǝǝds ʇuǝɯǝʌoɯ ןןɐ sǝsɐǝɹɔuI",
"gtceu.module.nightvision": ")ǝʌıʇɔɐ ǝןıɥʍ ʇ/∩Ǝ %s sǝɯnsuoɔ( uoısıʌ ʇɥbıu sǝpıʌoɹԀ",
"gtceu.module.ppe": "sǝɔǝıd ɹoɯɹɐ ןןɐ oʇ pǝıןddɐ ɟı spɹɐzɐɥ ןɐʇuǝɯuoɹıʌuǝ ɯoɹɟ uoıʇɔǝʇoɹd sǝpıʌoɹԀ",
"gtceu.module.sensor": ")ɹǝʎɐןd ǝɥʇ ʎq pǝɔɐןd sǝuıɥɔɐɯ ɹoɟ( suoısoןdxǝ ǝuıɥɔɐɯ sʇɹodǝᴚ",
"gtceu.module.short_percentage": "%s%% ʎq ˙˙˙",
"gtceu.module.sneak_speed": "%s%% ʎq pǝǝds buıʞɐǝus sǝsɐǝɹɔuI",
"gtceu.module.speed": "%s%% ʎq pǝǝds ʇuıɹds sǝsɐǝɹɔuI",
"gtceu.module.step_height": "sʞɔoןq %s ʎq ʇɥbıǝɥ dǝʇs sǝsɐǝɹɔuI",
"gtceu.module.swim_speed": "%s%% ʎq pǝǝds ɯıʍs sǝsɐǝɹɔuI",
"gtceu.module.wireless_charging": "ʇı uo buıʞɔıןɔ-ʇɥbıɹ ʎq ɹǝbɹɐɥɔ ɐ oʇ puıq ')xɐɯ %s ⱯƖ( sʞɔoןq %s ɟo ǝbuɐɹ ǝɥʇ uı buıbɹɐɥɔ ssǝןǝɹıʍ sʍoןןⱯ",
"gtceu.module.wireless_charging.interdimensional": "ʇuǝsǝɹd sı ɹoʇɐɹǝuǝb pןǝıɟ %s ʇsɐǝן ʇɐ uɐ ɟı ןɐuoısuǝɯıpɹǝʇuı 'xɐɯ %s ⱯƖ 'sʞɔoןq %s",
"gtceu.module.wireless_charging.short": "xɐɯ %s ⱯƖ 'sʞɔoןq %s",
"gtceu.modules": ":sǝןnpoW",
"gtceu.muffler.recovery_tooltip": "%d%%ɟ§ :ǝɔuɐɥƆ ʎɹǝʌoɔǝᴚq§",
"gtceu.multiblock.active_transformer.average_in": "ʇ/∩Ǝ %sɟ§ :ʇnduI ˙bʌⱯq§",
"gtceu.multiblock.active_transformer.average_out": "ʇ/∩Ǝ %sɟ§ :ʇndʇnO ˙bʌⱯq§",
Expand Down Expand Up @@ -4214,6 +4258,7 @@
"item.gtceu.cpu_chip.tooltip": "ʇıu∩ buıssǝɔoɹԀ ןɐɹʇuǝƆㄥ§",
"item.gtceu.cpu_wafer": "ɹǝɟɐM ∩ԀƆ",
"item.gtceu.cpu_wafer.tooltip": "ʇıu∩ buıssǝɔoɹԀ ʍɐᴚㄥ§",
"item.gtceu.creative_flight_module": "ǝןnpoW uoıʇɐʇıʌɐɹ⅁",
"item.gtceu.crushed_bentonite_ore": "ǝʇıuoʇuǝᗺ punoɹ⅁",
"item.gtceu.crushed_cassiterite_sand_ore": "puɐS ǝʇıɹǝʇıssɐƆ punoɹ⅁",
"item.gtceu.crushed_pitchblende_ore": "ǝpuǝןqɥɔʇıԀ punoɹ⅁",
Expand Down Expand Up @@ -5854,6 +5899,33 @@
"metaarmor.tooltip.falldamage": "ǝbɐɯɐᗡ ןןɐℲ sǝıɟıןןnN",
"metaarmor.tooltip.freezing": "buızǝǝɹℲ sʇuǝʌǝɹԀ",
"metaarmor.tooltip.jump": "ǝɔuɐʇsıᗡ puɐ ʇɥbıǝH dɯnſ sǝsɐǝɹɔuI",
"metaarmor.tooltip.modifier": "%s :%s - ",
"metaarmor.tooltip.modifier.attack_damage": ")%s( ǝןnpoW ǝbɐɯɐᗡ ʞɔɐʇʇⱯ",
"metaarmor.tooltip.modifier.attack_speed": ")%s( ǝןnpoW pǝǝdS ʞɔɐʇʇⱯ",
"metaarmor.tooltip.modifier.battery": ")%s( ǝןnpoW ʎɹǝʇʇɐᗺ",
"metaarmor.tooltip.modifier.battery.hud.boots": "%s :ʎɹǝʇʇɐq sʇooᗺ",
"metaarmor.tooltip.modifier.battery.hud.chestplate": "%s :ʎɹǝʇʇɐq ǝʇɐןdʇsǝɥƆ",
"metaarmor.tooltip.modifier.battery.hud.helmet": "%s :ʎɹǝʇʇɐq ʇǝɯןǝH",
"metaarmor.tooltip.modifier.battery.hud.info": "∩Ǝ %s/%s buıɹoʇS",
"metaarmor.tooltip.modifier.battery.hud.leggings": "%s :ʎɹǝʇʇɐq sbuıbbǝꞀ",
"metaarmor.tooltip.modifier.block_reach": ")%s( ǝןnpoW ɥɔɐǝᴚ",
"metaarmor.tooltip.modifier.creative_flight": "ǝןnpoW ʇɥbıןℲ ǝʌıʇɐǝɹƆ",
"metaarmor.tooltip.modifier.damage_block": ")%s( ǝןnpoW pןǝıɥS ʎbɹǝuƎ",
"metaarmor.tooltip.modifier.empty": "ʎʇdɯƎ",
"metaarmor.tooltip.modifier.fluid_storage": ")%s( ǝbɐɹoʇs pınןɟ ןɐuoıʇıppⱯ",
"metaarmor.tooltip.modifier.fluid_storage.tooltip": "%s ɟo ᗺɯ %s/%s buıɹoʇS",
"metaarmor.tooltip.modifier.jetpack": ")%s( ǝןnpoW ʞɔɐdʇǝſ",
"metaarmor.tooltip.modifier.jump": ")%s( ǝןnpoW dɯnſ",
"metaarmor.tooltip.modifier.movement_speed": ")%s( ǝןnpoW pǝǝdS ʇuǝɯǝʌoW",
"metaarmor.tooltip.modifier.sensor": ")%s( ǝןnpoW buıʇɹodǝᴚ uoısoןdxƎ",
"metaarmor.tooltip.modifier.sneak_speed": ")%s( ǝןnpoW pǝǝdS ʞɐǝuS",
"metaarmor.tooltip.modifier.speed": ")%s( ǝןnpoW pǝǝdS buıuunᴚ",
"metaarmor.tooltip.modifier.step_height": ")%s( ǝןnpoW ʇɥbıǝH dǝʇS",
"metaarmor.tooltip.modifier.swim_speed": ")%s( ǝןnpoW pǝǝdS ɯıʍS",
"metaarmor.tooltip.modifier.wireless_charging": ")%s( ǝןnpoW buıbɹɐɥƆ ssǝןǝɹıM",
"metaarmor.tooltip.modifier_slot.tiered": ")%s( pǝɹǝı⟘",
"metaarmor.tooltip.modifier_slot.universal": "ןɐsɹǝʌıu∩",
"metaarmor.tooltip.modifiers": ":sʇoןs ǝןnpoW",
"metaarmor.tooltip.potions": "sʇɔǝɟɟƎ ןnɟɯɹɐH sǝıɟıןןnN",
"metaarmor.tooltip.speed": "pǝǝdS buıuunᴚ sǝsɐǝɹɔuI",
"metaarmor.tooltip.stepassist": "ʇsıssⱯ-dǝʇS sǝpıʌoɹԀ",
Expand Down
Loading
Loading