Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

The previous Bethesda titles from the Elder Scrolls series - Morrowind and Oblivion - as well as the games based off Oblivion's engine, Fallout 3 and Fallout: New Vegas, used a custom scripting language internally, usually called "TESScript". A common complaint was that it was very limited, doing basically just enough for the specific game to work, and nothing more (Oblivion's version didn't even have looping statements, for example). This necessitated the development of so-called "script extenders" (MWSE, OBSE, FOSE and NVSE, respectively) to bring this language up to speed.

Did Bethesda take the criticism seriously and implement a different, complete scripting language into Skyrim - and if so, which one?

share|improve this question

closed as off topic by DrFish, StrixVaria, Dave DuPlantis, Matthew Read, Ullallulloo Nov 4 '11 at 17:27

Questions on Arqade are expected to relate to gaming within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

6  
Even if this question deems itself as not too localized, it would belong to gamedev.se –  DrFish Nov 4 '11 at 9:59
5  
@Bora: Maybe. On the other hand, there are other questions around here which ask about the technology behind some game: Rage, Source Engine, Minecraft –  Martin Sojka Nov 4 '11 at 10:12
10  
@bora: This question is very relevant from a players standpoint. There's a lot of modding and playability concerns which can be resolved by getting an answer to this, that fall squarely within our turf, not gamedevs. –  LessPop_MoreFizz Nov 4 '11 at 10:17
4  
@LessPop_MoreFizz There shouldn't be any concerns about playing core Skyrim that have to do with the scripting language. The language will obviously handle everything Bethesda needs it for in the main game. As for players intending to use mods, this question is a bit premature for that. As for players intending to make mods, that's not a relevant subject matter for this site. –  StrixVaria Nov 4 '11 at 13:23
4  
While mods are a big part of Bethesda's games, and while questions about playing those mods is on-topic here, questions about making them are more suited to game dev. –  Ullallulloo Nov 4 '11 at 17:29
show 6 more comments

1 Answer

up vote 5 down vote accepted

The specific details about the scripting language haven't been announced, but they are not using the same scripting language as Oblivion, and have built a completely new language for Skyrim (More on scripting in Skyrim). Supposedly the language is more extensive than the previous one and may be feature complete enough to not require extenders, but that remains to be seen once it has been officially released.

The results from the Skyrim Script Extender project indicate that the old scripting language is still there (see: full command list, including references to VATS and the Pipboy), but also that there's a second, VM-based scripting language called "Papyrus" included. To quote ianpatt from the Skyrim mod forums:

Time to start turning this in to the "Skyrim Internal Technical Research Discussion" thread. This time around, it looks like we have two totally different scripting engines in the game. One is the classic system used in the previous games, it looks almost exactly the same from a very quick lookthrough. Command dump coming shortlyish.

The new one is much more interesting and appears to be called Papyrus or SkyrimVM. We'll probably need to wait for the editor to be released to get any idea about the syntax as the original source code for scripts doesn't appear to be in the .esm (unless they're compressed). However, here's a quick feature rundown from what I can tell. Please take things with a grain of salt for now, this is just a first look.

  • core variable types are float, int, string, and bool
  • arrays of the above are supported natively
  • scripts are interpreted as a list of simpler yet much more powerful set of opcodes
  • if the conditional branch opcodes support negative offsets then loops are trivial to implement (and probably have been)
  • the new system is object-oriented - all scripts are class instances (UnrealScript influence here)
  • compiled scripts are stored as separate files, unpack Misc.bsa and look in the scripts folder
  • classes support inheritance, and there appear to be vm-world classes matching the internal form types
share|improve this answer
    
I added the results from the SKSE project to your answer; I think that with these edits, the answer is as complete as it needs to be. Thanks! –  Martin Sojka Nov 11 '11 at 10:31
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.