Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
As far as I know, a lot of the things I listed, like skills, traits, and equipment, all hinge on the same thing: the Asset Pack. I've been trying to get it for years, but the links on the grimrock.net site don't work for me. I'll go over there and try to figure that out some day. Everything else here is mostly just design choices relating to this dungeon.
I'm not much of a programmer, but I've learned my way around a lot of the mechanical devices in this editor like Timers, Counters, Levers, and Connectors. There are a lot of little things in this editor that aren't explained, that you just have to figure out by messing around with it. You can also make some pretty cool gizmos with some simple parts if your clever. Hopefully I can share as much experience as I can.
Good luck with your dungeon. I thought I was late releasing mine late, but between Steam and Nexus, I probably have a good 100 players in my first month, which is better than I was expecting. So there's still an audience for this game.
http://grimrock.net/extras/asset_pack_v2.zip
Also, I use this reference guide all the time:
https://www.grimrock.net/modding/scripting-reference/
and sometimes also this:
https://github.com/JKos/log2doc/wiki/Components
Here is also a link to the discord server with modders willing to help:
https://discord.gg/hT3yBEsC
Now that you have the asset pack, I don´t want to spoil your joy of figuring things out but I also sent you a friend request if you want to discuss something directly :-)
I had someone else invite me to their Discord too, and I can not for the life of me get into my account or reset my password. I also don't even use Discord, and I have way too many accounts and conversations in way too many places as it is, so I'm trying to keep it cut down as much as I can.
I've got a reddit post (nothing happening over there though), this dungeon is on NexusMods and there's a couple people chatting over there, but most of the conversation about my dungeon seems to be happening here. Steam is my main base of operations for this dungeon and all my gaming stuff. Plus, the interface works pretty well here, and we've got a lot of options between Comments, Discussions, and even General LoGII Discussions outside the Workshop.
I honestly don't do much online chatting on forums and stuff. This is the most online presence I've had, so please bear with me as I'm still figuring this stuff out.
Of course, I would be the last one to push you to do anything. Also, I know from experience that getting a mod published means reacting to feedback, repairing the bugs and publishing new versions in all the places you upoaded it and that is a lot of work.
So I just want to say that if you want and once you have time to talk about something specific for improving your dungeon, you just got one more person to talk to ;-)
For "holding down floor plates in a specific shape", like "X marks the spot" in the original campaign, or any combination lock really, this can be done with a single Counter (along with the floor plates). First, create a Counter, then a "good" floor plate and a "bad" floor plate if you want false ones. Make two connectors from each to the Counter. For the "good" plates, make the connections "on activate decrement" and "on deactivate increment", and do the opposite for any of the "bad" plates. After this, copy your "good" plate to make whatever pattern you want. Making the connectors first and then copying should copy the connections, which makes this much quicker and easier. Once you've made your pattern, count the number of "good" plates, and set your counter to that number. You can make as many "bad" plates as you want without having to adjust this number.
This way, the only way to make the Counter reach 0 (activate) is to hold down all of the good plates (or levers, or whatever as long as it's "on/off" and not "activate only" like a Button), and none of the bad.
https://steamcommunity.com/workshop/filedetails/discussion/333265124/4086396624009181982/
Start with an invisible_platform, a timer, and a floor_trigger. You can use a magic_bridge for testing, but you'll want an invisible_platform for the final product. Make your landscape with a single space for the player to run across. A simple 1-space-wide trench will work for now. Place the invisible_platform in the space at the proper height, initial state Deactivate. Add your timer if you haven't already, connect it to the platform, On Activate Deactivate. On the timer, uncheck Timer (this checkbox makes the timer run once when the game loads), uncheck triggerOnStart and I guess currentLevelOnly, and check disableSelf.
This is where things get a little tricky, so pay attention to the details here. Make TWO connections from the floor_trigger to the timer AND the invisible_platform, four connections total. Set them to On Activate Deactivate and On Activate Stop, and On Deactivate Activate and On Deactivate Start. That's right. The floor_trigger turns everything off when the player steps on it, and turns everything on when the player steps off. This is a debug/failsafe. Now, place the floor_trigger in a straight line away from the invisible_platform, where you want the player to start their run from. Adjust the spacing and timing of the timer so the invisible_platform turns off right as the player gets across. Timers can be adjusted in 0.1 increments, and with precise timing, there can be a little drop just as the player gets across that makes for a cool effect. After this, you can simply copy and paste another floor_trigger on the other side if you want to make the gap two-way.
function countMonsters()
count = 0
for e in self.go.map:allEntities() do
if e.monster then
count = count + 1
end
end
end
function cMonsters1()
if count < 4 then
spawner_c_monster_1.spawner:activate()
spawner_c_monster_2.spawner:activate()
spawner_c_monster_3.spawner:activate()
spawner_c_monster_4.spawner:activate()
spawner_c_monster_5.spawner:activate()
spawner_c_monster_6.spawner:activate()
spawner_c_monster_7.spawner:activate()
end
end
Place floor_triggers wherever you want to activate the respawns (like at the exits of the level, they can even be in different levels), connect them to this script_entity and make it run both functions, in the above order (and the functions need to be that order in the script entity). Make a script_entity with this code in every level you want respawning monsters. Leave the top function the same, and adjust the count threshold, spawners, and activation methods to taste. With more spawners then the count threshold, it should never trigger a respawn twice in a row. With the threshold and amount of spawners, you can control the population range of the level. So in this one, the count can be 3 and still spawn 7 monsters, so the population will stay between 4 and 10 (except spawner 7 in this case is a fish, which can also be included, as well as anything that can be spawned... like herbs or food).
- dancing teleporters, pits opening in sequence (loops and steps)
- spawning and destroying various objects
- puzzles that include teleporters changing their targets depending on what the party does
- custom spells:
(healing spell that heals the most injured champion)
(remove injury spell)
(examine monster spell that reveals some info about a monster depending on the caster level)
- custom recipes
I love a bit of randomness, so I created a couple of modified custom assets like
- boxes that when destroyed spawn sometimes a random herb, sometimes a random food and usually nothing (depending on probabilities that you script)
- spider eggs that when destroyed sometimes spawn a spider and sometimes not
- dialogues, in which a random alive character that remarks something when exploring a specific area
I also use Grimrock ToolKit in my mods that enables dialogies and other interesting stuff.
As far as the respawning monsters go, I actually use a timer instead of pressure plate. Therefore monsters respawn depending on time rather then place (when a party steps on a plate somewhere). Of course, timers tick at different rate when the party is on the same level and tick more slowly when the party is elsewhere but this can be remedied by attaching a timer to the party itself.
What I wanted to ask is this: How do you plan to make your ideas and contraptions into a repository? What I would do is to make a custom dungeon editor file which would showcase different ideas in practice along with the scripting and possibly some explanations as well.
As for respawning monsters, a timer is ok, but can be unreliable unless you attach it to the party as you point out (which I still have no idea how to do, honestly). Another option is to use getTimeOfDay(), which can go right into the respawn script (so monsters only respawn at night, for example). The reason I use floor_triggers for the respawn is so the players don't see the respawn happen. In my dungeon, it's designed to work like most regular video games, where leaving the area and coming back respawns everything, but modified to work with the "permanent" nature of the monsters and everything in the dungeon.
For a repository, that's a pretty good idea, actually. I hadn't thought of that. I was thinking either a forum post or YouTube videos, but that might actually be easier and better. I was trying to think of something more accessible, but if people are looking for LoG II editor tips, they'll have the game and editor, and I can upload an editor file to NexusMods really easily.
If you want to upload a dungeon editor file somewhere, that would be great. Maybe I can learn how to do some things that I haven't even thought about. I try not to take too many ideas from other people's work, but sometimes it's necessary. If you didn't know, it's possible to get into the source of the default campaign, just by copying and moving some of LoGII's internal files around. That's how I figured out how to make the Meteor > Meteor Hammer work (which is actually pretty simple). Here's a video tutorial.
https://www.youtube.com/watch?v=jPUXngUUT9Y
http://grimrock.net/extras/grimrock2_asset_pack_2.zip
The copying of other people's work is how usually people start modding. At least I did. Reading through files, loading them up in editor and learning how you change this or that, how everything works. And being excited that it works and does not crash. And then getting a new idea and trying to implement that using knowledge you just acquired. And as you go, your dungeon traps, puzzles and scripts get ever more sophisticated.
Thank you for the tutorial, I watched it all already as I was starting to prepare my Grim2 mod, because I had made my previous mod for Grimrock 1 and there is a big change in scripting between these two games (certainly for the better).