Is Papyrus worth learning?

Post » Mon Jun 18, 2012 9:34 am

Hello everyone, the title pretty much says it all; is papyrus worth learning? What I mean by that is I've heard horror stories of learning it, is it absolutely essential to modding?

Thanks, and have a wonderful day.
User avatar
Taylrea Teodor
 
Posts: 3378
Joined: Sat Nov 18, 2006 12:20 am

Post » Mon Jun 18, 2012 8:34 am

it will depend on the kind of mods you plan to make, if you aren't certain you'll need scripts for your mods then just wait to learn it later
User avatar
Jason White
 
Posts: 3531
Joined: Fri Jul 27, 2007 12:54 pm

Post » Mon Jun 18, 2012 5:35 am

Well as you most likely need it when creating Quests and Spells it surely is worth learning. You can do nice things with it. Is it hard to learn? I fear for someone totally unexperienced with scripting/programming and reading the documentation of programming languages it is extremely hard to learn. Anything that goes beyond the handful of tutorials in the wiki takes double the time figuring out where to start at all than actualy scripting the stuff. Biggest problem being that most functions lack proper examples giving the stuff a context of sorts. What I want to say is: The language per se is not that hard at all. But the documentation at least in my view is at the moment very poorly. Luckily the wiki is open for everyone of us to add to it so there's hope that the Papyrus Documentation will improve a lot over time.

For the time being I'm learning stuff by looking at other people's problems in here and trying to find a solution using the function glossary and trial and error in the CK/Skyrim.
User avatar
Liv Staff
 
Posts: 3473
Joined: Wed Oct 25, 2006 10:51 pm

Post » Mon Jun 18, 2012 5:39 pm

If you want to do anything more complicated than basic level design or item additions, yes.
User avatar
brenden casey
 
Posts: 3400
Joined: Mon Sep 17, 2007 9:58 pm

Post » Mon Jun 18, 2012 6:07 am

it follows the same logic as most otehr OO languages, so a lot of the skills learnt with papyrus can be applied to other game editors, so its not a completely worthless skill to have.
User avatar
Kelly Osbourne Kelly
 
Posts: 3426
Joined: Sun Nov 05, 2006 6:56 pm

Post » Mon Jun 18, 2012 6:26 am

You don't need papyrus if you want to build levels, models, or add dialogue and npc's, as long as you want them to behave essentially as they do in game. If you want the game or an object to do something different from what it already does in game or have unusual events in a town or dungeon, you'll need some scripting. My own approach is to learn by doing. I'll start with an in-game script that's similar to what I want and then add, subtract, tweak until it does what I want. I don't sit down and "study" the language in the same way you study a human language, beyond the basics in the tutorials (although technically, learning by doing is the best way for human languages, too). But over time, you start to learn the functions and can became more creative and flexible.
User avatar
Micah Judaeah
 
Posts: 3443
Joined: Tue Oct 24, 2006 6:22 pm

Post » Mon Jun 18, 2012 8:37 am

If you want to do anything beyond creating map layouts and altering stats on items, then yes, you will want to learn this. And the sooner you start, the better.

But don't start with somethng big. I first exposed myself to scripting back with Morrowind. At the verry beginning of the game, there is a character who leaves town if you help him out by loaning him some money. He is never seen again in the game after that. His house remains locked. You can break in and steal junk that is inside, but that's it. I got this idea that the player might buy the house. This presented an interresting issue. The house would need to exist in three states, Owned by the NPC (before he leaves town), Owned by Arille (the general store owner who holds the key after the NPC leaves town), and Owned by Player (after it is bought). First thing I did needed no editing. I loaded up the interior, Duplicated it and placed it in the same cell off to the side of the original version. I took out all the items that the player might pick up, but left all furniture intact, including the bed. But I changed the ownership of the bed to Arille and made the containers safe to drop stuff in. I wanted to make sure that if the player slept in the bed, he'd get fined for tresspassing. Next, I duplicated this interior and changed the bed ownership to Player.

So I had three instances of the same interior. Now the delimma became how to control when the player could access each of them. The key was in extending the quest that involved helping the NPC out so he could leave. So I added two additional steps to the quest. One for his house being for sale, and the other (the new end of the quest) being for when the player had bought the house. So here is where the scripting came in. I had 3 interiors. So I needed 3 Doors. Each Door was given a script that controlled when they were enabled or disabled. The first Door was scripted to disable based on the same conditions in the script that removed the NPC from the town (when the player left the cell the NPC was in, he would be disabled). That was important because otherwise, it would disable the moment you give the NPC the money he needs to afford to leave town. The second door, disabled by default was set to become enabled on the same conditions. It was also set to disable itself again when the house was purchased. The third Door, also disabled by default, was scripted to become enabled when the player bought the house, using the quest status as the condition. All 3 of these doors were placed in the exact same spot, so regardless of which stage the quest was in, there was no visible indication that anything was different.

Buying the house was handled through Dialogue with Arille. Conditions were set to make sure that the option would not appear until the NPC left town. I had some other quests going on in the town that paid some money. I made sure that the cost of the house was exactly the amount you could directly earn through those quests. Script segments were needed in the dialogue as well to make this work.

It took some trial and error to do all this. In the end, things worked out exactly as I needed them to. How did I learn? Because I wanted the whole thing to be centered around when the NPC left town, I studied the scripts, Dialogue and Quest data associated with him. I paid attention to how the developers set things up and experimented with those methods and found what ultimately worked. Did it take time? Absolutely. Could I have just asked the community how to do it? Of course. I did have to ask for a few pointers because the scripts were not working correctly, and it turned out I had made some mistakes. Once I knew what I did wrong, I figured out how to do it right. I wanted to learn. It felt great solving the problems with the only help being in the form of advice or pointing out a mistake I made.

But to be honest, I am right with you. I don't know a thing about Papyrus. But I will be learning it the same way.
User avatar
Max Van Morrison
 
Posts: 3503
Joined: Sat Jul 07, 2007 4:48 pm

Post » Mon Jun 18, 2012 3:34 pm

Well, you can get interesting stuff out with few scripting, is worth learning if you want to add more than what the game offer. Here I did this today and i'm not a script master:

http://www.youtube.com/user/trepaning?ob=0

Basicly is a system to lit depleted wall torches using a custom oil flask item. Is not groundbreaking, but is still something the game doesn't have.
User avatar
BEl J
 
Posts: 3397
Joined: Tue Feb 13, 2007 8:12 am

Post » Mon Jun 18, 2012 6:00 pm

Papyrus is extreme lacking as a language. There are no datetime arithmetic f.ex.
There is not a lot of utility/helper functions either.

There is no function that returns all objects of a given type, which would be extremely helpful (the GUI can do it, why cant the language?)

All this means more tedious and slower work.

So I wouldn't call it a serious language.
In the context of quests, it might be sufficient for small tasks.
User avatar
Captian Caveman
 
Posts: 3410
Joined: Thu Sep 20, 2007 5:36 am

Post » Mon Jun 18, 2012 6:06 am

At the very least you need to learn how Properties work. There are a lot of pre-existing scripts that can do some nice things, but you have to know how to set up the properties to conform to your situation.
User avatar
Erin S
 
Posts: 3416
Joined: Sat Jul 29, 2006 2:06 pm

Post » Mon Jun 18, 2012 12:54 pm

As far as lacking = yes, but there are always workaround. No date/time functions? Write one using game time in seconds, and share it with the community. For object types, try formlists. Etc

Truthfully the extent of workarounds this time around is much less. I remember when we had to write Taylor expansions in Oblivion just to get trig to work. Let's not even talk about Arrays or loops.
User avatar
Calum Campbell
 
Posts: 3574
Joined: Tue Jul 10, 2007 7:55 am


Return to V - Skyrim