tModLoader Official tModLoader Help Thread

Hi! I really wanted to play some modded terraria so I was really excited that steam got tModloader easy to download as DLC but problem is I cant download any mod via Mod Browser, I can play predownloaded mods but there are some tiny mods that seem to be exclusive to Browser.

Im playing on linux via steam natively (no proton)
When I click download mod the bar appears but goes away after a second or two.

Also when 1.4 rolls will it still be possible to use older version till mods update?
you can try updating mono: sudo apt install mono-complete
 
I was able to make my tmodloader work and i also downloaded a few mods. But for some reason when im making a world with thorium mod enabled, it crashes. And when i initialize calamity mod, it also crashes. Maybe it was because of my 2gb ram, is there any good mod you can recommend that doesnt take much memory
 
・GOG user
・decided to poke at mod stuff
・got the latest TML, placed it as directed by the guide on github
・try to start it, tells me my EXE is modded and it needs the normal one
・except I've never done anything to my exe
・think maybe it's being finicky because my lazy arse was still on 1.4.0.1 or something (even tho tml uses 1.3.5.3), go and update (1.4.0.5 offline installer, because I am a grumpy dinosaur that refuses to into GOGgalaxy just as I refuse to into steam)
・even delete the existing exe beforehand, just in case it's some kind of built up weirdness from updates over the years (I've had some other stuff do that kind of weirdness. spaghetti code is quite a thing.)
・TML still tells me that the newly generated executable is modded
・tml log file does not contain any enlightening info, just the same "omg it must be modded!" fatal error from the dialog box as soon as it did it's gog/manual install check
・look in github issue tracker, supposedly the issue of not being able to get 1.3.5.3 via gog anymore was addressed somewhere around 14 hours ago via hashes for the newest version(s) of terraria, issue is closed, implying this shouldn't even be happening
so uh. what do.
 
・GOG user
・decided to poke at mod stuff
・got the latest TML, placed it as directed by the guide on github
・try to start it, tells me my EXE is modded and it needs the normal one
・except I've never done anything to my exe
・think maybe it's being finicky because my lazy arse was still on 1.4.0.1 or something (even tho tml uses 1.3.5.3), go and update (1.4.0.5 offline installer, because I am a grumpy dinosaur that refuses to into GOGgalaxy just as I refuse to into steam)
・even delete the existing exe beforehand, just in case it's some kind of built up weirdness from updates over the years (I've had some other stuff do that kind of weirdness. spaghetti code is quite a thing.)
・TML still tells me that the newly generated executable is modded
・tml log file does not contain any enlightening info, just the same "omg it must be modded!" fatal error from the dialog box as soon as it did it's gog/manual install check
・look in github issue tracker, supposedly the issue of not being able to get 1.3.5.3 via gog anymore was addressed somewhere around 14 hours ago via hashes for the newest version(s) of terraria, issue is closed, implying this shouldn't even be happening
so uh. what do.
In the next TML update the hashes will be updated to 1.4.0.5
If you want to continue playing you should stick with 1.4.0.4 for the current release
 
I was able to make my tmodloader work and i also downloaded a few mods. But for some reason when im making a world with thorium mod enabled, it crashes. And when i initialize calamity mod, it also crashes. Maybe it was because of my 2gb ram, is there any good mod you can recommend that doesnt take much memory
There are a few like the enigma mod.
Also that is weird because I have terraria overhaul, thorium and calamity, spirit mod, slimes stuff, fargos souls, boss cursor, convenient dryad trades and it rarely crashes.
Also terraria overhaul is great to
 
There are a few like the enigma mod.
Also that is weird because I have terraria overhaul, thorium and calamity, spirit mod, slimes stuff, fargos souls, boss cursor, convenient dryad trades and it rarely crashes.
Also terraria overhaul is great to
And I have a laptop
 
Is it just me, or is this post a little outdated? Now TMod is a separate game on Steam and you can copy over your worlds and characters from vanilla, and progress in one doesn't change vanilla, right?
 
Is it just me, or is this post a little outdated? Now TMod is a separate game on Steam and you can copy over your worlds and characters from vanilla, and progress in one doesn't change vanilla, right?
tModLoader is still a mod loader for Terraria and doesn't itself add content. Steam simply allows you to install mods separately from your vanilla installation. It's no different than the old tactic of making a backup of the Vanilla exe.
 
Does anyone know how to code in a plant like the Deathweed, I’m new to modding and thought it would be easy but I can’t find any tutorials. I was planning to make a plant that is like Deathweed but for crimson. If anyone knows how I would really appreciate it. Also I need to know how to stop the Deathweed from spawning in the crimson.
 
Does anyone know how to code in a plant like the Deathweed, I’m new to modding and thought it would be easy but I can’t find any tutorials. I was planning to make a plant that is like Deathweed but for crimson. If anyone knows how I would really appreciate it. Also I need to know how to stop the Deathweed from spawning in the crimson.

The "Exampleherb" and Exampleherbseeds" in the examplemod gives you some of the basic info on how to create plants.

What exactly are you trying to do. Making a plant is not hard, but what do you want to do with that plant? Are you planning on just making it an ingredient for something else or do you want the plant itself do something special?
 
The "Exampleherb" and Exampleherbseeds" in the examplemod gives you some of the basic info on how to create plants.

What exactly are you trying to do. Making a plant is not hard, but what do you want to do with that plant? Are you planning on just making it an ingredient for something else or do you want the plant itself do something special?
My goal is to make the crimson have it’s own special version of Deathweed, The example mod code is going to be very helpful (Thanks for the advice btw), but now I just need to figure out how to make the Deathweed stop spawning in the Crimson, I also will make the Crimson Deathweed(GoreBlossom) be able to craft the same potions as the Deathweed.
 
Last edited:
I am trying to make a boss mob and I put in this code but he keeps on spawning doing his second phase. Can someone please tell me what I did wrong?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Terraria.ID;
using Terraria;
using Terraria.ModLoader;

namespace Venture.NPCs
{
public class NightVoid : ModNPC
{
public override void SetStaticDefaults() {
DisplayName.SetDefault("Night Void");

}

public override void SetDefaults() {
npc.width = 30;
npc.height = 40;
npc.damage = 50;
npc.defense = 50;
npc.lifeMax = 1000;
npc.aiStyle = -1;
npc.boss = true;

}

public override void AI()
{
npc.TargetClosest(true);
npc.ai[2] += 1;
if (npc.ai[2] <= 1200); //First Phase-----------------------------------------------------------------
{
Vector2 targetPosition = Main.player[npc.target].position; // get a local copy of the targeted player's position
if (targetPosition.X < npc.position.X && npc.velocity.X > -8) // if the target is to my left AND I'm not at max "left" velocity
{
npc.velocity.X -= 0.22f; // accelerate to the left
npc.spriteDirection = -1; // turns sprite left
}

if (targetPosition.X > npc.position.X && npc.velocity.X < 8) // if the target is to my right AND I'm not at max "right" velocity
{
npc.velocity.X += 0.22f; // accelerate to the right
npc.spriteDirection = 1; // turns sprite right
}

if (targetPosition.Y < npc.position.Y + 300 && npc.velocity.Y > -4) // if the target is higher than "300 below my height"AND I'm not at max "up" velocity
{
npc.velocity.Y -= 0.7f; // accelerate up
}

if (targetPosition.Y > npc.position.Y + 300 && npc.velocity.Y < 4) // if the target is lower than "300 below my height" AND I'm not at max "down" velocity
{
npc.velocity.Y += 0.7f; // accelerate down
}

npc.ai[0]++; //or "npc.ai[0] += 1;", works the same way
if (npc.ai[0] >= 50)
{
float Speed = 20f;
Vector2 vector8 = new Vector2(npc.position.X + (npc.width / 2), npc.position.Y + (npc.height / 2));
int damage = 30;
int type = mod.ProjectileType("VoidBall");
//Main.PlaySound(2, (int) npc.position.X, (int) npc.position.Y, 17);
float rotation = (float) Math.Atan2(vector8.Y-(Main.player[npc.target].position.Y+(Main.player[npc.target].height * 0.5f)), vector8.X-(Main.player[npc.target].position.X+(Main.player[npc.target].width * 0.5f)));
int num54 = Projectile.NewProjectile(vector8.X, vector8.Y,(float)((Math.Cos(rotation) * Speed)*-1),(float)((Math.Sin(rotation) * Speed)*-1), type, damage, 0f, 0);
npc.ai[0] = 0;
}
}
if (npc.ai[2] > 1200 && npc.ai[2] <= 2400); // Second Phase-------------------------------------------------------
{
npc.ai[0]++; //or "npc.ai[0] += 1;", works the same way
if (npc.ai[0] >= 5)
{
float Speed = 60f;
Vector2 vector8 = new Vector2(npc.position.X + (npc.width / 2), npc.position.Y + (npc.height / 2));
int damage = 30;
int type = mod.ProjectileType("VoidBall");
//Main.PlaySound(2, (int) npc.position.X, (int) npc.position.Y, 17);
float rotation = (float) Math.Atan2(vector8.Y-(Main.player[npc.target].position.Y+(Main.player[npc.target].height * 0.5f)), vector8.X-(Main.player[npc.target].position.X+(Main.player[npc.target].width * 0.5f)));
int num54 = Projectile.NewProjectile(vector8.X, vector8.Y,(float)((Math.Cos(rotation) * Speed)*-1),(float)((Math.Sin(rotation) * Speed)*-1), type, damage, 0f, 0);
npc.ai[0] = 0;
}
}
if (npc.ai[2] > 2400);
{
npc.ai[2] = 0;
}
}
}
}
 
I have a problem with Jim's vanity set. It is not a joke, it only happens to me in Tmodloader, while in vanilla, everything is fine.
Capture 2020-06-14 22_35_16.png
Capture 2020-06-14 22_32_26.png

Normal game. Tmodloader
 
So, I want to make Background noises for the dungeon and cave in my mod. My only problem? How do I make it only occur in the cave and dungeon? Cuz' ModWorld Files don't have spawn info variables.
Code:
using NewJourney.Items;
using NewJourney.NPCs;
using NewJourney.Tiles;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System.Collections.Generic;
using System.IO;
using Terraria;
using Terraria.DataStructures;
using Terraria.GameContent.Generation;
using Terraria.ID;
using Terraria.Localization;
using Terraria.ModLoader;
using Terraria.ModLoader.IO;
using Terraria.World.Generation;
using static Terraria.ModLoader.ModContent;

namespace NewJourney
{
    public class Modworld : ModWorld
    {
        public override void PostUpdate()
        {
        if(Main.rand.NextBool(19683)) {
        if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise1"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise2"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise3"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise4"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise5"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise6"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise7"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise8"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise9"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise10"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise11"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise12"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise13"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise14"));
        }
        else if (Main.rand.NextBool(15)) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Ambience/CaveBGNoise15"));
        }
        if (Modworld.PermafrostBlock >= 50) {
            Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Music/Taiga"));
        }
        }
 
Idk where to put this i guess under here:
So, i've installed myself and a few friends a tModLoader Server, the problem is, i want the server to run when i'm not online.
The Server is a Linux VServer and to start the server with PuTTy, i'm using the normal startscript named "tModLoaderServer" but it when i close PuTTy the server just stops, anyone got a solution?
KICKSTART=./${BASENAME}.bin.${ext}

# copy the Terraria and rename the terraria kickstart
if [ ! -f ${KICKSTART} ]; then
kicks=( Terraria*.bin.${ext} ) # find a vanilla kickstart, either Terra$
cp "./${kicks[0]}" $KICKSTART
fi

export MONO_IOMAP=all
$KICKSTART $@
 
Back
Top Bottom